Many of us love Android because of the way we can customise it to work and run how we want it to tun. We have near total control over how our device acts and looks. Apart from basic widgets and different launchers the only way to do this was with the use of flashing a custom rom and/or installed modded apps. The problem with doing this is that you often have to sacrifice stability and the stock Android experience to get this. Here at Ausdroid we have some members who do not want to give up the stability of an OEM/Google rom. They need that stability that these roms provide but at the same time like many of the tweaks that a custom rom can provide.
What about if you just ordered a brand new phone, for example a Nexus 5? You, like me, may love the Google Nexus experience and are thus one of the early adopters. Problem is that the source has only just been dropped into AOSP and custom rom developers often take weeks or months to merge all the Googley changes into the source for their own roms while at the same time maintaining some semblance of stability that would allow for the rom to be used as a daily driver. But can you really give up the wonderful things that a custom rom can provide that you have grown used to and now rely on in everyday usage of your device? Love using Halo, theming the status bar, changing the clock or the battery notification, the extended power menu? Never fear you can install and use these mods without installing a custom rom by using the Xposed framework, once it has been adapted to 4.4. At this stage Google has made quite a few changes under the hood of KitKat and Xposed doesn’t work but it is only a matter of time before it does. The only requirements for using Xposed is that your device should be rooted. We suggest you read as much as you can and learn about this process with your device before taking the leap. Make it an educated jump, not a leap of faith.
The Xposed framework mod has been developed by XDA-recognised developer Rovo89. So how does the Xposed framework accomplish this wizardry? While how it does what it does is not important to using the Xposed framework it is nice to know a little bit of what goes on behind the scenes.
During startup of the Android system the Linux kernel calls the process “init”. init reads the files “/init.rc” and “init.device.rc” where “init.device.rc” is device specific. “init.rc” starts the process “Zygote” via the program “/system/bin/app_process”. Zygote loads the core Java classes and performs initial processing of them. These classes can be reused by any Android application. This is where Xposed performs its magic. When you install Xposed it installs an extended app_process is installed into the file system at /system/bin. The modified app_process adds an additional jar file into the process when the device is started. This file can then be part of every single app process in the system, be it the framework, a system app or a custom or user app. This allows the Xposed mod to alter any and every app’s behaviour when it starts, or at “runtime”. From here you can change what an app does, how it looks, and how it behaves, without having to install a modified app or custom rom.
To use Xposed framework the user needs to install the framework itself first. The Xposed apk can be downloaded from here. Once installed the app will ask you to reboot. After rebooting the extended app_process is installed and operational.
From here you can install the modules that you require to tweak your device. The modules come as an apk file and are installed as you would normally sideload any app, unless you get them from the repository from within the Xposed app. Not all modules are in this repository but there is an extensive list of the available modules on XDA. Once installed the module can be opened to determine what it can and can’t do but it won’t be activated until it is activated from within the Xposed app. Once activated the device must be rebooted before the module is applied to your device.
The list of possible tweaks available to the user of Xposed framework includes, but is not limited to, theming all png and files within a device, changing the position of the clock, remap hardware buttons, change DPI for specific apps (not system wide), changing NFC behaviour, control colour and rate of notification LED light and others. Head on over to XDA to read through the list and I am sure you will find something of use there. There are also quite a few device/manufacturer specific modules- eg. there are specific Samsung/TouchWiz modules and also Xperia and Sense ones. You can also visit the Play Store to find others although you may want to (or not) avoid the search results for “exposed” apps.
Below you can see a few screenshots of a few basic modules being used on my Nexus 4. Notice how the calendar has had the DPI changed to 230 to go from the phone UI to the tablet UI, and although small it makes a lot more useful information immediately available.
Is this something that appeals to you? Why would you prefer this method for hacking/tweaking your phone? What would be the modules you would most use? What would you most like to see developed?