Sony has announced the release of a tool designed to create custom themes for their Xperia smartphones, Theme Creator Beta. The tool relies on code contributed to AOSP last year by Sony Mobile engineer Zoran Jovanovic.
Jovanovic’s work was a new framework called Runtime Resource Overlay that allows replacement of application resources while the application is running – this brings about the possibility to customise of the device and the application of themes – any OEM can use these features to customise their UI, and Sony’s exposing this ability through the Theme Creator app.
Runtime Resource Overlay (RRO) hooks into the resource lookup framework, shadowing existing values or adding values for new configurations. The resource interface used by the application is unchanged, and the application is unaware of both RRO and the different resource configurations.
Theme Creator Beta can be used by anyone to create their own theme which is then exported as an APK file that can be installed and used on any Xperia device.
So, what can be themed by the Theme Creator? Sony says, “you can style everything from home screen wallpaper and icons to buttons, colours and assets inside selected pre-installed Sony signature apps.” This appears to include the SystemUI as well, which opens up a lot of opportunity for customisation within the UI of Sony Android phones.
The tool looks to be easy to use. Anyone can head over to the Sony Theme Creator website, download the program and start creating their own themes.
Layers upon Layers
If you want to take advantage of RRO but don’t have a Sony device, you’ll need to install a custom ROM that incorporates a new development called Layers, which uses the Sony-developed RRO to not only theme a device, but it can also used to modify a ROM – eg, for bug fixes or for translations.
With RRO, it’s possible to modify all resource types (integers, strings, drawable, arrays, and so on) for existing or new configurations, and replace or add assets (existing and new ones). While this isn’t entirely exposed within the new Theme Creator tool, any app on your device can be themed using Layers. RRO is also easily reversed by just turning off the Layer/Theme.
How do these differ from CyanogenMod’s theme engine?
CM uses the overlays to provide themes but at the time of the inception of the theme engine, there was a not a simple way to have overlays be swappable so CM decided to port aapt (android asset packaging tool) onto the device so they modify app’s assets (resources) in real time but at the cost of modifying that actual app. This is a major security hole.
Sony originally set about replicating this behaviour for their Xperia themes, and submitted it to AOSP but was shot down because of the security implications of using aapt on a device. Being intent on having swappable themes, they worked with Google to devise the current implementation of RRO, providing a much more secure way of going about theming.
Of note is that Google actually broke RRO in the official release of Lollipop, but a fix has been submitted to AOSP and will be included in the next update. Given that Sony is now rolling out Lollipop-based devices, we can assume they incorporate the fix.
Whether this means themes for all users no matter the ROM is unknown, but we can certainly hope so. Sony should be congratulated for not only developing this but also giving back to the Android community. Others should pay attention.
If you want to check out the new Theme Creator and want to start creating your own themes head on over to the Sony Developer site, download the program, read the accompanying documentation and get stuck in.