Every so often, an OEM will do things right. Well, nearly right anyway—right enough at least for their stock ROMS to only need some minor tweaks before they are almost perfect. More often than not though, these tweaks are things that can be tricky to implement for the average user—a user who will often find himself looking to install a custom ROM that is pretty close to stock with these desired tweaks added in. Usually that means downloading a pretty large file and then following the obligatory backup/flash/restore process that many of us now have down to a fine art. It shouldn’t have to be this way though, and luckily it isn’t. You just might not know it yet.
You may or may not have heard of the Xposed Framework, the brainchild of XDA Recognized Developer rovo89. If you’re already familiar with this particular mod, there’s really no need for me to tell you how awesome it is. You’re excused and can go play outside. If you aren’t already familiar with the framework, take a seat and listen up. While the Xposed Framework certainly isn’t a new thing, it doesn’t get nearly as much recognition as it deserves, and it’s time to do something about that.
According to the developer, Xposed works as follows:
“Some technical details:
I extended the /system/bin/app_process executable to load a JAR file on startup. The classes of this file will sit in every process (including the one for system services) and can act with their powers. And even more: I have implemented something that allows developers to replace any method in any class (may it be in the framework, systemui or a custom app). This makes Xposed very powerful. You can change parameters for the method call, modify the return value or skip the call to the method completely – it’s all up to you! Also replacing or adding resources is easy.”
What that means is that modifications (known as Xposed modules) can be made to any app or element of the OS itself by simply coding the desired change, packing it into its own APK, and installing to the device. The Xposed Framework takes care making sure it gets to where it needs to go and stays there. This eliminates the need to decompile the specific item you’re modifying or creating different versions for different ROMs and devices. There may be a need to alter an Xposed module after a major change in Android itself, for example 4.1 to 4.2, but let’s face it: That’s a fairly infrequent occurrence. No files on the device itself are modified, and this means that in the event something does go wrong, returning the device to a stable state is no more complicated than flashing a zip to disable the framework. That’s right, no more lengthy and storage consuming nandroid backup process every time something goes wrong.
Installation is incredibly quick and painless, considering the scope of this utility. Simply grab the Xposed Installer from the forum thread and sideload to your device, open up the app once it’s installed and click on “Install/Update,” reboot the device, and you’re good to go. No seriously, it’s that simple.
Installing each individual module is as easy as sideloading the APK, installing, activating it via the Xposed application and rebooting. Some mods will offer a user interface depending on how much functionality they are capable of, others just have one specific purpose and need no attention at all.
So what kind of modifications are we talking about here? Well, if you can think of tweak then chances are it can be packed into an Xposed module. Think of the added little extras that make your favourite custom ROM so appealing. Those are the sort of things that Xposed was created for.
A perfect example is Smart Alarm Icon, created by XDA Forum Member Mantelinho. This mod will configure the alarm icon in your status bar to only be displayed at a predetermined period before the alarm is due to sound. Let’s say you have your alarm set Monday through Friday. You can leave the alarm set all week but won’t have to see that little clock shaped reminder of Monday morning hanging around in your status bar over the weekend.
There a multitude of mods out there for various purposes, and you can bet that we’ll be highlighting as many as we can in the future. In the meantime, you can check out a repository for various modifications that was put together by Developer Admin pulser_g2. There is also a development tutorial aimed at getting people to create their own modules and making this the single most powerful tool for customisation there is.
Just when you thought this whole thing couldn’t possibly get any more awesome, it’s all open source. Be sure to check out the original forum thread on the Xposed Framework for more information.