It is common knowledge that the best way to customize your Android device is to flash it with a new ROM. It is also wrong. It turns out there's an easier way: If you have a rooted device, you can customize any ROM using a free and powerful app: The Xposed framework.  Imagine being able to:

  • Change the way your status bar looks (put the clock in the center, change the color of the icons)
  • Force some apps to always start in full-screen
  • Make it so the screen never turns off when you're reading a long article on Pocket
  • Enable 180-degree screen rotation
  • Change the DPI on a per-app basis (an awesome feature I mentioned in my PAC ROM review)
  • And just about anything else you can think of...

All without flashing a new ROM! Sounds crazy, right? But Xposed really works, and I've been using it for about a month now. Let me show you some of the cooler things you can do with it.

The Framework

Xposed itself is just a framework: On its own, it doesn't change anything about your device. It merely makes it possible for you to install modules. That's where all the customization happens: You can pick and choose different modules, each with its own configuration options. This is a brilliant architecture, because it means anyone can write a module - you don't have to wait for the main Xposed developer to pay attention to your device or your favorite feature.

First things first: You're going to have to install the framework itself. Assuming your device is already rooted, you just have to grab the Xposed Installer app, and run it. It will ask for root permissions, and then you'll just have to tap Install/Update, wait a moment, and reboot your device when you get a success message.

xposed-4

Above you can see what Xposed looks like when it's already installed but due for an update (left), and when it's fully up to date (right). So, yes, you get over-the-air updates for the framework, and it keeps getting better even after you install it.

Next, you're going to have to pick some modules to play with. Modules do not change system files on your device: All of their work is done in-memory, which means you can easily disable them if things go wrong, and just go back to the way your device originally ran without having to restore any backups. Did I mention this framework is brilliant?

Here's the built-in module repository:

xposed-5

This part of the app could do with a bit of work -- specifically, community reviews would make it much better, as would support for tagging each module with relevant tags. As it stands, you can see when each module was added to the repository, and when it was last updated. You can also quickly search for modules -- the right-hand screenshot shows a few navigation-bar related modules. This doesn't mean they're the only modules you can use to customize your navbar - only that the word "navbar" was used to describe them.

Once you download a module, you are going to have to enable it and restart your device

xposed-6

To the left you can see four disabled modules, and to the right you can see them all enabled. Again, just ticking the checkbox won't do the trick - you must also reboot your device for the modules to become active (and you may not want to activate four modules all at once, just in case they interact in surprising ways).

Now, let's check out three of these modules. These aren't necessarily the ones you'll go for -- there are dozens of modules to choose from (you can also browse the module repository online). These are just three modules I've been using for over a month, and have been impressed with.

App Settings

App Settings takes much of what I love about PAC ROM and makes it available in any ROM:

xposed-2

For each individual app on your phone, you can specify a number of key settings. You can run it in a tablet or phablet layout by changing the Screen setting; force it to start in full-screen mode and hide your status bar; make it so the screen never turns off as long as you're using that app (great for reading), and more.

BootManager

One of the things that can slow your Android phone down over time is apps starting up at boot. Some apps really do need to start when you first boot your device: The excellent security app Cerberus is one example. But really, there is no reason an app for choosing wallpapers would want to start itself when you switch on your phone. BootManager helps you prevent such apps from starting:

xposed-1

This module couldn't be simpler to use. Just tap the apps you want to keep from starting, and you're done. By the way, just because an app is on the list doesn't mean it actually starts on boot - only that it can do so. By marking it in BootManager, you take away that ability and ensure it doesn't auto-start.

XBlast Tools

Many custom ROMs tout basic interface improvements as key selling points: "Center clock!" (put your clock in the center of the status bar); "Kill-all button!" (a way to quickly terminate all running apps from the Recent Apps screen), and other tweaks are marketed as great reasons to install a ROM. Well, with XBlast Tools, this is no longer the case:

xposed-3

This Xposed Framework module lets you tweak numerous system settings. Make your screen rotate 180 degrees when you flip the phone over; make the status bar transparent; go ahead and put that clock in the middle of your status bar. With dozens of settings to tweak and customize, you won't run out of options anytime soon -- and you won't have to install any special ROM to enjoy those settings.

Convinced Yet?

The Xposed framework is pretty much the best thing to happen to Android customization since rooting became widely available. I can only hope the developer community that started around it grows stronger with time, and that more and more people adopt the framework both as users and as coders. Some apps, such as Greenify (mentioned here), even ship with optional Xposed modules as part of the main app. Perhaps this is a sign of things to come.

Will you be trying the Xposed framework out? If so, I'd love to hear about your favorite modules in the comments - do share!