ex-OUYA Android Engineer talks APX mode - c. 2017


4 points ·
3 years ago

Hey, ex-OUYA Android Engineer, here. APX mode is Nvidia’s “download mode” for flashing bootloaders. If you can’t get it back into the kernel in any way it’s a bricked device.

Story time!

The unfortunate truth about the OUYA is that the bootloaders are encrypted per-device, and we never had the keys.

The motherboard was produced by an outside manufacturer that developed Tegra devices and, as such had a relationship with Nvidia. I’d assume that meant either cheaper chips or maybe board design advice. They had told the folks working on the initial designs of the OUYA that Nvidia required each chip to be uniquely encrypted so the DRM keys wouldn’t get leaked. (You can see the same thing on the Nexus 7 Tegra developed by ASUS.) Unfortunately, again, those involved at OUYA in the early days weren’t savvy enough about homebrew Android development to know that those keys were so important, and didn’t ensure that the keys were in the possession of OUYA. (I didn’t start working there until 2013). This means that we couldn’t even repair our own bricked devices in house!

On top of that, nobody at OUYA was advised to provide a way to boot directly into fastboot strictly from hardware for recovery, which meant that the only way to get to it was from a working kernel. We added a keyboard shortcut to the kernel (sysreq+alt+x, I think) to reboot pre-ADB, but it still depends on a working kernel.

To the credit of those working there at the time, they thought that they had provided the community with an open device by ensuring each device was rooted and contained a micro USB dev port. If you didn’t know better, this does seem to be what people are always looking for in an Android device, right? They also disabled signature checks in fastboot so anybody could flash their own images.

If you just flash the system partition you can go nuts since the kernel has that shortcut, but if you flash the kernel and accidently break it your device is completely busted.

Sorry for the bad news but I wanted to try and illuminate why this would be such an issue, and hopefully exonerate the good folks who made it in the process :wink: