Cyanogen mod the Ouya.
Why Cyanogen Mod (sometimes refered to at CM11) you ask? The future of Ouya and the news of the most recent acquisition of the company to Razer has made a lot of Ouya owners such as myself feel rather uneasy with the consoles business as a whole. Couple this with an aging OS to the point where some favorite applications such as Kodi no longer work under android 4.1 due to programming issues. Razer is now stating that they will keep the Ouya servers up for another year. But then what? I guess they pull the plug and tell console owners such as myself to buy the next latest/greatest razer box. To which I will probably laugh and buy an Nvidia shield if I were to ever get an android box again. But that’s not the point of this blog entry.
The point of this blog entry is to keep Ouyas running. Because both Ouya Inc. and Razer Gaming cannot tell users like me when my little silver box is dead. That is up to me to decide when my little silver box is truly dead. And Cyanogen modding is an alternative. By heavily software modding your Ouya you can continue to use your box well after the servers for Ouya are long gone.
In case you have no-script enabled or for some reason cannot see the title video on this website. I have provided direct links for these videos.
- WebM – Link – This is the newest video standard, works great on Opera, Firefox, Chrome, and newer android phones, not good for Safari, IE, Apple.
- MP4 – Link – The most compatible codec but also rather large in file size. Make take a while to download.
- OGV – Link – The fallback codec for older PC’s and Linux USB stick OS’s. 1st generation web video streaming based on Ogg-Vorbis encoding.
What the hell is Cyanogen?
For those that have never touched an android device in their entire life; Cyanogen is open source firmware which is typically modded onto cell-phones. Many cell-phone companies do not like people loading their own custom firmware onto their phones and will in fact go as far as to void the warranty on said phone if you upgrade it as a scare tactic to keep users far away from Cyanogen.
Short answer is “yes.”
Unlike the original Xbox and its soft-modding and homebrew community where Microsoft would go after ANYONE making a .xbe file. Ouya Founder Julie Uhrman stated in their kick starter video on youtube indexed at 2:21 that “Their console is open for hackers who want to tweak the box and make it their own.” So it almost makes sense for lovers of Cyanogen mod to port the software over to this game-console. As for the new company Razor they are only interested in the Ouya Dashboard with the “discover” store where all of the devs have signed up to have their games published. Razor has no direct interest over the legacy Ouya hardware.
Pic not relevant, We just like that “Pause face” on 2:21. :)
Why even install Cyanogen mod to the Ouya?
Like any decision that you make with your device there is always advantages and disadvantages towards installing a new firmware onto a device. Lets go through some of them.
The good of Cyanogen mod:
- Kodi – At the time of this posting Kodi is moving away from Android 4.1 and onward to Android 4.2 for their latest release of Kodi v15 which makes it much easier to develop for what they need. This of course created a bit of a backlash in the Ouya community as the default firmware for Ouya is still sitting at Android 4.1 . Kodi v14 is a perfectly fine video player that works brilliantly side-loaded onto the Ouya! But anyone who has witnessed the Kodi/XBMC progression will tell you that the moment the latest version gets released suddenly plugin development sort of stops on the previous versions. So Kodi is now telling Ouya users to upgrade to Cyanogen to experience v15 or to stay behind on v14.
- Google Play – I have published articles in the past on how to get google play working on your Ouya. But over time Google has gotten more and more obnoxious with the way it decides to update itself. That sometimes on the Ouya OS google doesn’t really update properly . The end result is getting a lot of 921 errors when downloading apk’s of your favorite utilities and games off of Google Play.
- Side Loading – There always will be compatibility issues with side loading any game or application on any android device as it’s just with going to a newer version of android it opens up the doors on games that otherwise would’ve crashed on the Ouya before. Once again, it gets back to how newer android operating systems can handle older apk’s as well as some of the newly compiled apk’s.
The bad of Cyanogen Mod:
- Ouya Discover Store – If you like Ouyas Discover and do not want to screw around with getting your console working with weird controls or have to occasionally hook and keyboard or mouse to exit an application this can be awfully problematic.
- Don’t want google play – You’ve never rooted your Ouya and have no intention to.
- ROM flashing risks – Like anything there is a danger of hard-bricking your Ouya
- Kodi v14 sideloaded on your Ouya – It’s perfectly fine for what you do and have no reason/intention of going to Kodi v15.x and above.
- Hardware based compatibility issues – see blow.
Then Cyanogen mod will not be for you and you can stop reading right now.
Ouya Compatibility chart with Cyanogen Mod CM11:
All Ouya consoles can accept CyanogenMod. However, there is some compatibility issues in terms of Wi-Fi and Bluetooth.
1/8/2016 – I have decided to provide a compatibility chart to help decide if CM11 is right for your Ouya.
- All ouya systems with the BCM4330 chipset are compatible with CM11 for Wi-Fi and Bluetooth. This includes the development edition clear, kickstarter bronze, and retail silver.
- All ouya systems with the BCM4334 chipset are not compatible with CM11. Although it will load fine activating Wi-Fi and Bluetooth will not work. Someone on the XDA forums made a patch to at least get Bluetooth working for these models of Ouya however Wi-Fi is still crippled. This affects the Anthracite, Ninja Black, and Christmas White edition Ouya consoles.
3rd party controller compatibility in Cyanogen:
- Ouya controller for the most part works. Home button behaves as a minimize command in Cyanogen. Touchpad does work so long as you do not plug a USB mouse into the Ouya. For some reason when you plug in a mouse for playing FPS games like quake it knocks out the controller touchpad functionality. You can temporarily get it back by un-pairing and re-pairing your Ouya controller via Bluetooth. But on reboot it’s gone again until you reload Cyanogen.
- Xbox 360 controllers both wired and wireless work. I have taken the notes from the Ouya chinesse receiver and merged it into the keylayouts zip file.
- A lot of your moble based controllers such as Moga and Nvidia all work.
- PS3 controllers only work wired they do not work wireless. This was something that the original Ouya dev team actually worked on a bit with their variant of android 4.1.
- It has been reported that Wii-Motes may not work as well. Same reason.
Disclaimers about software and Cyanogen mod:
S-Config or anyone on the internet for that matter is not responsible for any damages that occur both physical, financial, mental, or psychological when hacking of modifying the software of your console. If you have an issue with this then stop immediately and purchase a different android based console that can better suit you for applications such as Kodi v15.
Basic hardware prerequisites for Ouya Cyanogen are as follows:
- USB male “A” to female “micro A” cable. In this tutorial we will not even be logging into our Ouya account which makes this cable a requirement.
- USB Keyboard – This will be essential during the installation process as Bluetooth will not be active when we go through the boot-loader nor will it be active during initial configuration of Cyanogen 11
- USB Mouse – Not nearly as essential during the bootloader process of but very handy when doing your initial configuration. Update 1/17/2016: You may want to skip the mouse all together on this installation if you want the track-pad of your Ouya Controller working. I have not figured out how to reset mouse control back after i plug a USB mouse into CM11 yet.
- USB Hub – It does not have to be self-powered unless you are hooking large external storage such as a portable hard drive to your Ouya.
Acquire the software:
Extract files from the archive:
Use your favorite file extraction utility on the 7-zip file you just downloaded. For this tutorial we will be extracting to C:\cyanouya which we will be using as a reference point throughout this tutorial. If you extract it elsewhere or if you are on a MAC of linux box make note of where you extract it to and make adjustments accordingly.
The files that are in cyanouya.7z are as follows:
- adb.exe as well as the two DLL’s required to run adb
- fastboot.exe which will be required to upload the recovery-clockwork-188.8.131.52-ouya.img via the micro-USB cable.
- zip folder containing the following: cm-11-20160312-NIGHTLY-ouya.zip (Ouya nightly build of the Cyanogen OS) gapps-kk-20140105.zip (Google Play Apps) ouyabootmenu-mlq-v2.0.4.zip (required for Ouyas bootmenu) ouya-keylayouts.zip (which contains .kl files for the Ouya controller as well as a few other genetic controllers) recovery-clockwork-184.108.40.206-ouya.zip (This version of clockworks gets installed onto your Ouya bootloader and does not get removed). Please note: At the time of article this was the most currently nightly build. Newer versions can be acquired here.
- driver folder containing files that allow you to access your Ouya in both “ADB” mode and “Fastboot” mode. The android_winusb.inf is already modified to find an ouya on USB device USB\VID_2836&PID_0010 .
- apk folder which although we will not be using any apks during the installation of Cyanogen mod they are exceptionally handy to have after you have installed everything as I shall show you later.
Lets begin installing.
We’re going to power up our ouya and leave it on the welcome screen. These instructions do not require your Ouya to be rooted or even logged into your Ouya account. If you had a mint Ouya still wrapped in plastic and opened it up and plugged and powered it up. Then that’s all you need to do for now on your Ouya.
Now if you are already logged into your ouya and you want to start fresh you can always do a factory reset to get the “welcome” screen. Just go under MANAGE > FACTORY RESET to continue.. Just keep in mind when you do factory reset your Ouya all data such as XBMC/KODI profiles, save games, and settings for your emulators may be lost.
Once we are at the welcome screen on the Ouya now is the time that you will be plugging in your micro-USB cable into the back of your Ouya, and the other end to the PC.
Now lets go over to the PC side to see if we can find our Ouya in device manager (screenshots are all windows 7 and may vary between OS’s). If this is your first time plugging your Ouya in via USB you should see something like my device manager where the Ouya is in the Other Devices catagory. That’s not going to work with ADB in the state it is in . So we are going to update the driver.
Note: I have received a few users stating that they do not receive the “OUYA” underneath other devices catagory but instead only have the Ouya MTP underneath the “Portable Devices” catagory. If you are already logged into your Ouya do a factory reset as depending on what is going on with your Ouya the ADB function may or may not be disabled on it.
Right-Click on the Ouya in Other Devices and click Update Driver Software to continue.
Also, if you are running windows XP, 7, 10(32-bit-edition) and you do not see the word “Ouya” or something similar but instead see the words “Unknown Device” underneath other devices then your system has not properly detected your Ouya ADB port. The biggest cause of this problem is due to a bad or faulty USB data cable. Try a different data cable and try again.
I can’t find the unknown device catagory on my windows 10 x64 bit edition box! Help!
You are not going crazy if you do not see “Ouya” under “Unknown Devices”. We do however need to talk. Click here to learn how to correct driver issues with ADB inside of windows 10 64-bit for the Ouya. Do not worry, this will open another tab so you can pick up right from this section the moment your driver is straightened out.
Continuing onward if you did find “OUYA” in “unknown devices”
We are going to browse where our ADB drivers are. Since I extracted my cyanouya.zip file right to the root of C:\ I can simply type in C:\cyanouya\driver . If you placed your drivers elsewhere or you are using the Android SDK instead of the ADB binary included in the zip file. You will then have to click the Browse button to find where your ADB drivers are at.
Click OK to continue.
Windows should have already determined that the best driver is “Android Composite ADB Interface” if not or if this is blank, uncheck the “Show compatible hardware” box and select your Android Composite ADB Interface from there.
Click Next to proceed with driver installation.
If everything went well then you will get a message like the window above. If for some reason there is an error code. Then there is something wrong with your Ouyas connection. Click close to continue.
Your Other Device and your Ouya will disappear from device manager. You should now have a new catagory called “Android Device” and the device known as “Android Composite ADB Interface” . Your PC will now understand what your Ouya is whenever you connect it to your PC. From This point you can now close out of device manager.
Installing the adb_usb.ini file:
This file exists in your user profile folder underneath a section called .android and it has a very simple one line comment which tells ADB where to look for your Ouya in your devices. For example if your username in windows is “skippy” then the logical path for this file will be C:\Users\skippy\.android\adb_usb.ini . What is in that ini file is as follows:
now you can either open up a command prompt and type in the following:
mkdir %USERPROFILE%\.android\ echo 0x2836 >> "%USERPROFILE%\.android\adb_usb.ini"
Say that your username in “Penguin” for logging into windows. This will make the folder C:\users\penguin\.android\ and inside of that folder it will make a very small text file called adb_usb.ini . The reason why we must create this file in a very particular area is without it the adb.exe file has no idea what vendor to look for in device manager and it will come up blank in the next few steps.
Working with ADB to transfer data to your Ouya for Cyanogen mod upgrade.
We can continue going to the command prompt by clicking “Start” and “Run” and typing in “cmd” to pull up a command prompt. Once you are there you will want to do the following.
cd C:\cyanouya adb start-server
It should respond with the following:
* daemon not running. starting it now on port 5037 * * daemon started successfully *
Next lets see if adb can actually see our Ouya.
It should respond with:
List of devices attached 015d49062a501415 device
If it does not have anything underneath “List of devices attached” then adb is not properly talking to the USB driver. Make sure your device is installed in device manager and the adb_usb.ini file exists underneath your %userprofile%\.android\ folder.
Unlike the ADB screen capture blog I did a while back there is no need to pass the adb connect command. You will be already connected via hard wire. The adb connect command is only required if you are connecting to a remote source over the network.
now we are ready to push all of the .zip files to the Ouya /sdcard/ folder at once. Unlike previous documentation where they wanted you to adb sideload each zip file in the recovery bootloader. We’re going to push them all at once and then let the ClockWorkMod bootloader handle it from there.
adb push zip /sdcard/
If you are in your C:\cyanouya folder then it should report something like this:
push: zip/recovery-clockwork-220.127.116.11-ouya.zip -> /sdcard/recovery-clockwork-18.104.22.168-ouya.zip push: zip/ouyabootmenu-mlq-v2.0.4.zip -> /sdcard/ouyabootmenu-mlq-v2.0.4.zip push: zip/ouya-keylayouts.zip -> /sdcard/ouya-keylayouts.zip push: zip/gapps-kk-20140105.zip -> /sdcard/gapps-kk-20140105.zip push: zip/cm-11-20150727-UNOFFICIAL-ouya.zip -> /sdcard/cm-11-20150727-UNOFFICIAL-ouya.zip 5 files pushed. 0 files skipped. 1291 KB/s (306718311 bytes in 231.945s)
Yes, it will take around 4 minutes to complete the transfer because of how much data we are sending.
So far, everything we’ve done could’ve been easily done by an ADB network connection instead of going through the headache of USB connections. The next command is where ADB network will fail you.
adb reboot bootloader
This will place the Ouya into the bootloader state otherwise known as “fastboot” as your device manager will start chiming in finding unknown devices once again.
Note: At this time your Ouya will only have a power light and a pitch black screen. This is normal as we have not given the Ouya any instruction as to what to load yet. If you reset your Ouya right now it will break out of the boot-loader and return you to the Ouya welcome screen. We have written nothing to the boot-loader of the Ouya as of yet. Make sure the keyboard is plugged into your Ouya at this time.
Working with fastboot:
Just like with ADB when you first plugged it into your machine. Device manager now detect a new unknown device in the Other Devices catagory known as Fastboot . We need to install the driver for this as well in order for us to push the ClockWorkMod over USB to the Ouya. Without ClockWorkMod the rest of the Cyanogen mod installation will not work.
Note: If you do not see the word “Fastboot” under the “Other devices” catagory but instead see the words “Unknown Device” underneath other devices then your system has not properly detected your Ouya ADB port. The biggest cause of this problem is due to a bad or faulty USB data cable. Try a different data cable and try again.
2nd Note: On some operating systems “Fastboot” may not show underneath “unknown devices” but in fact may automatically install itself under the “Android Device” catagory. This is due to updating the .inf drivers so that Windows XP users to perform this hack as well. If it does indeed install you may skip all the way down to passing the fastboot commands down below.
Pass the Fastboot commands to your Ouya.
To test to make sure fastboot can see your Ouya type in the following:
Just like before it will report back if it can see your Ouya or not.
If returns with a statement similar to the above then everything is good. The next command you will be typing in will be the following:
fastboot boot recovery-clockwork-22.214.171.124-ouya.img
It will report back the following at the same time you will notice your Ouya come back to life with a signal on your TV.
downloading 'boot.img'... OKAY [ 1.594s] booting... OKAY [ 0.264s] finished. total time: 1.861s
Clockwork Mod loading Cyanogen Mod into your Ouya:
At this time you should see your Ouya come back to life but instead of the typical Ouya splash screen you will be greeted with something new. You will be welcomed to the ClockWorkMod splash screen.
Out of interest of saving bandwidth and readability. I shall focus on just the upper-left hand corner of the screen which is where all of the action of ClockWorkMod is at. There will be information text with each step we do and if the screen changes to much I’ll make a full-screen shot. But Lets begin.
Arrow down to “recovery-clockwork-126.96.36.199-ouya.zip” and press enter to install. This will make ClockWorkMod your permanent bootloader recovery partition on your Ouya which is essential for Cyanogen mod to work properly.
Arrow to “chose zip from /sdcard” and press enter.
Arrow to “chose zip from /sdcard” and press enter.
Arrow down to cm-11-20160312-NIGHTLY-ouya.zip and press enter
Note: the dates will always change which is normal for nightly releases.
Arrow down to Yes and press enter.
Arrow to “chose zip from /sdcard” and press enter.
The final selection that we will install is the keylayout files or .KL files that are required to attempt to make not only your Ouya Controller compatible with Cyanogen but other controllers such as the PS3 controller and the Xbox Controller.
Arrow to “chose zip from /sdcard” and press enter.
After all of these partial installs, you should have a complete Cyanogen Mod now loaded onto your Ouya. Now before we reboot there is one last thing we need to do.
Clearing cache and wiping user data in ClockWorkMod for Cyanogen Mod first-time boot.
Clearing all user data and cache from your Ouya is very important because if you do not. Cyanogen may simply sit and do nothing on the first time you boot it because it’s reading data from a previous launcher that it really should not read. So lets begin.
Welcome to Cyanogen Mod OS on your Ouya.
The very first thing you’ll be greeted with is the Ouya Bootmenu. You do not have to touch anything and it will disappear in about 3 seconds. But if you want to go back to the recovery partition you can simply click your Ouya power button to cycle through the menus on this screen.
Your installation is successful if you get the Welcome to Cyanogen Mod screen asking for language. That means it was able to setup its profile and didn’t encounter anything strange that would otherwise crash the first-time startup screen such as erroneous cache or user data left behind from another launcher.
This is where having a mouse as well as the keyboard is super-handy since Bluetooth has not been enabled yet.
From here you will be asked a series of questions such as your Wi-Fi (if you are already hard-wired then it will not ask you) as well as your Google Play account so that you can begin downloading from the new marketplace. As well as basic questions as if you are on a new tablet or phone device. you can leave all of the settings default if you wanted.
From here you can customize your desktop by simply click-dragging widgets where you want. I personally get rid of everything including the backdrop because it saves some bandwidth when recording video. You may want to wait about 5 minutes to begin using Cyanogen Mod as it will be in the process of updating Everything such as all of the google plugins as well as the play-store marketplace to the latest version. If you already downloaded items with the google marketplace you can re-download them again by launching the Play Store and going into Apps.
Enabling bluetooth in Cyanogen Mod.
One of the first things you may want to do is get Bluetooth working ASAP so you can ditch the keyboard/mouse and go back to your Ouya Controller.
You will want to click the icon that is right above the default home screen of your Cyanogen which is where all of your installed applications are. From there find settings and click on that.
You should be approaching familiar territory for those Ouya people that have played in their advanced menu to get controllers working. And it even found my stock Ouya as I keep the bluetooth running all of the time in my house. Click SEARCH FOR DEVICES in the upper right-hand corner to place the Bluetooth chip in discovery mode. While it is scanning. Hold the power button of your Ouya controller down until both lights are flashing.
It will find your controller relatively fast in contrast to how Stock Ouya finds the controller. But it shows it bluetooth network address instead of actual name. This will straighten out the moment you click on it.
After you pair your controller and give it permission to pair. It will actually show the proper name. As well as player assignment on your Ouya Controller. You can now navigate around the menus with your analog or digital D-pad as well as use your mouse track-pad (depending if you have a USB mouse hooked up to your Ouya or not).
Overscan issue with CyanogenMod.
Flat panel televisions are designed a little differently then regular computer LCDs. Sometimes the picture falls off of the screen known as overscan . to correct this problem you can either go back into adb shell or launch the shell program in the applications folder of Cyanogen and type the following commands:
su setprop persist.sys.hdmi.overscan 1
setprop persist.sys.hdmi.overscan.val [example: 0.0 – 0.2]
The value is a minimum of 0.0 and a maximum of 0.2 for overscan compensation. As an example. My 32″ Vizio my overscan settings are as follows:
setprop persist.sys.hdmi.overscan.val 0.02
And my Apex 27″ is as follows:
setprop persist.sys.hdmi.overscan.val 0.13
The value of your flat panel TV may be different then mine so adjust accordingly.
you will have to reboot in order for your adjusted overscan values to take effect.
Special thanks and credits:
Kodi – For giving reasons why Ouya is still alive in 2016 and beyond.
Ouya Forums – For kicking me in the ass to actually write this documentation.
That’s what server said.
END OF LINE+++