Personal View site logo

User Tools

Site Tools


sony-hack:nex5r-6-android-reversing

Android subsystem

The Nex 5R & Nex 6 firmware contains a custom android build that is responsible for the “apps” that can be downloaded from Sony. It's a fairly standard Android 2.3.7 build with only a handful of system apps but a very extensive list of wrapper classes for hardware functionality. My initial impression is that it is very well possible to control the entire camera hardware via an android app.

Custom apps

The flow of installing apps from Sony is very simple. And Android app called “ScalarAMarket” browses to a custom Sony website and simply displays it. Once you hit the download button on any of the available apps, the market app downloads the app binary (in apk form) and installs it just like any other Android app is installed.

In theory this means we can alter the Android system to allow installation of non Sony apps and redirect the browser to a different location so custom apps can be downloaded and installed.

Since one can easily reverse engineer Android apps, it shouldn't be much of an issue to create working apps from scratch. The main problem here is to get the app on the camera and make the camera accept it. Once these problems are solved we should be able to create fully custom apps that integrate seamlessly with the existing apps.

System apps & frameworks

As usual, the system apps and frameworks are odexed. Sony messed with the header of the odex files so deodexing the existing files doesn't work. Luckily they just changed the version code stored in the header, so a basic fix (or rather a crappy hack) is easy.
I wrote a small tool to fix the headers, so anyone can deodex the apps just fine.

Source: headerfix_source.zip
Binary (requires .net framework 4): headerfix_binary.zip

Simply drop the binary in the /system/app or /system/framework folder and execute it. After this step deodex the apps andframework like any other odex files.

sony-hack/nex5r-6-android-reversing.txt · Last modified: 2015/08/10 19:10 by vitaliy_kiselev