Meta data of games for the OUYA console. Use them to populate your own "Discover" server.
Game .apk files are hosted on The OUYA library in the Internet Archive.
Locate the JSON game data file in the
classicfolderOpen it in a text editor
Go to
"releases"and duplicate the current release, then adjust it:Update
nameto the new versionTo get
versionCodeyou need to have the Android SDK toolaaptoraapt2:$ aapt dump badging game.apk package: name='example.game' versionCode='23' versionName='1.23'
Create a random
uuidwith a web service or theuuidcommand line toolSet
dateto the time the version has been releasedlatestmust betruefor the new version, andfalsefor all others.urlmust be a HTTP URL, not HTTPS!sizeis the apk file size in bytesmd5sumcan be created with themd5sumcommand line tool.
Check if everything is correct -> See "validating the game files"
You can also create a patch/pull request; Github will run the checks automatically.
You can use the script bin/create-from-apk.php to generate the JSON.
Only adjust the FIXME fields afterwards!
Copy example-game.json to the new/ folder and adjust it.
You can get packageName from aapt as described above.
Note that all URLs have to be plain http, HTTPS is not supported!
Use a random uuid as developer UUID.
Use 0 for the first 8 characters so we can distinguish original UUIDs
from self-generated ones.
On the command line:
$ unzip -j game.apk res/drawable-xhdpi-v4/ouya_icon.png
This image has a size of 732x412 pixels.
Media images need to have a full size of 1280x720, while thumbnails have a size of 852x479.
When you start a game, it should be unlocked (full version) automatically.
If a game is stuck in demo mode despite that you installed the ouya-plain-purchases module, this can have the following reasons:
- The game data file has no purchasable products (most often)
- The developer UUID is wrong. Fix it! (sometimes)
- The game does not fetch receipts from the server when starting up (seldom)
- We have no game data file for it (seldom)
We do not have all developer UUIDs which are required for in-game purchases
to work.
Dummy UUIDs begin with 00000000.
UUIDs that are not important because the game has no IAPs begin with 11111111.
When there are no products in the game data file, we have to get them from the game itself.
- Add a new line
DEBUG=1in theouya_config.propertiesfile and reboot. - Connect the OUYA to your PC and run
adb logcat. - Start the game and look at the logcat output
There will be lines like this:
D/HTTP ( 604): Request 33: GET /api/v1/developers/b8b9eb6d-.../products/?auth_token=...&only=overkill2_om_1%2Coverkill2_om_2
Everything after &only= are product IDs.
%2C is an URL-encoded comma, so in the example we have two product IDs.
Now have a look at the example-game.json file and add new products to
your game's data file (in the classic/ folder).
If you do not know what price the product had, use 0.01.
We provide a JSON schema file: ouya-game.schema.json.
- Install php-json-schema to get the
validate-jsoncli tool - Use python's
pip3to install the jsonschema cli tool
Self-hosted OUYA servers: