Decompiling/Recompiling APKs for Ouya

Many games work very well when sideloaded onto the Ouya, but the unfortunate thing is that they will always show up in the MAKE section of you Ouya, away from your other games. Another rather annoying fact is that the app thumbnail may look rather poo. Luckily, there’s an easy way around these.

Step 1 - Download APK easy tool (https://forum.xda-developers.com/android/software-hacking/tool-apk-easy-tool-v1-02-windows-gui-t3333960)

Step 2 - Extract the zip file and run the executable for your machine (32 or 64 bit).

Step 3 - Add your APK using the “Select” button and then click “Decompile”

Step 4 - Click “Decompiled APK directory” and navigate to the APK folder you decompiled.

Step 4 - Edit the files you need to edit (More on that below) and then go back into APK Easy Tool.

Step 5 - Click “Recompile” and after it has finished, click "Recompiled APK directory to find your newly recompiled APK!

Changing the Android Manifest.xml so your sideloaded apps show in PLAY

Step 1 - Locate the tags

Step 2 - Add this line underneath the first intent filter tag, for example

  <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
    <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
    <category android:name="tv.ouya.intent.category.GAME" />
  </intent-filter>

Step 3 - repeat for any other intent filter tags (May not be necessary but some androidmanifest.xmls have one or more intent filter tags, some for advertisements etc.

Step 4 - Save the Android manifest and proceed to step 5 of the tutorial above :slight_smile:

Images in the Ouya Launcher

To get a nice image in the OUYA launcher, add an image file of size 732x412 into res/drawable-xhdpi/ouya_icon.png .

Amending other files in the decompiled APK

Please comment below on what you have successfully managed to change. I haven’t experimented much with this. .

2 Likes

To get a nice image in the OUYA launcher, add an image file of size 732x412 into res/drawable-xhdpi/ouya_icon.png.

Reference for size and intents: https://github.com/ouya/docs/blob/master/setup.md

1 Like

@Toasterkidd I installed this program and attempted to Decompile but got an error becaue I didn’t have Java installed.

'java' is not recognized as an internal or external command,
operable program or batch file.

What exactly will resolve this?

Figured it out, I installed jdk-8u231-windows-x64

Then I needed to know how to edit the xml so I downloaded
XML Notepad from Microsoft
https://www.microsoft.com/en-us/download/confirmation.aspx?id=7973

Come on man. Get Notepad++ installed!! :wink:

1 Like

Haven’t needed anything like that up to this point. Thanks for the tip.

1 Like

Owwwwww, great!! But… Windows!!! Argh (Linux User Here, LOL)!

1 Like

Success on Linux using this tutorial:

With the instructions about the edition of Android Manifest.xml described here!

3 minutes recipe (On Linux):

Download and install apktool from here: https://ibotpeaches.github.io/Apktool/install/
Download and install SignApk.zip from here: https://forum.xda-developers.com/showthread.php?t=2213985

You can put all the files inside the same folder. I prefered to use directly the apktool.jar file than the apktoll script.

ATENTION

Don’t use the certificate.pem and key.pk8 which came with SignApk.zip. You must create your own. Follow the tutorial on this page: http://www.londatiga.net/it/how-to-sign-apk-zip-files/

So:

Decompiling the apk (It will creat a folder with the same name of apk):
java -jar apktool.jar d YourApk.apk

Do exactly how described here: Go inside the apk folder and put a png file called ouya_icon.png with size of 732x412 inside the “res/drawable-xhdpi” and change the Android Manifest.xml.

AN ADDENDUM: If there is no folder called drawable-xhdpi, but there is one like drawable-xhdpi-v4, you can place the image ouya_icon.png inside it. The “v4” indicates the minimum version of the Android SDK from which it will be used, any higher version will use the same image. OUYA uses SDK 16, so a folder with v4 in the name means “from version 4 onwards”.

Then (I prefer to use OUYA as part of the name of the new version) :
java -jar apktool.jar b TheApkFolder -o TheApkName-OUYA.apk

And finally, you should sign the new apk (I prefer to use signed as part of the name of the new version) :
java -jar signapk.jar certificate.pem key.pk8 TheApkName-OUYA.apk TheApkName-OUYA-signed.apk

ATENTION:

Pay atention about where the folders are.

3 Likes

Thanks for doing this! I’ll see if I can do something similar on Mac OS, too.

1 Like