Android L, SELinux and the breaking of root
Android L is coming, and if some are to be believed it’s the end of root as we know it. This will be the fifth such “end of root as we know it” event that I’ve been through since 2011, so I thought I’d write a little bit about what’s happening.
I’m not a developer, just a longtime root user and writer, so if I’ve got anything wrong below let me know and I’ll fix it.
The first issue are SELinux changes. This is a security module that effectively attempts to prevent system hacking, kernel exploits, etc. From a security standpoint it’s a good thing, from a root standpoint it does some things similar to what HTC has been doing for a while now – disallows writing to /system, and makes runtime based exploits of the system that much harder.
The inability to write to /system makes changing boot animations, installing busybox, and a few other things a bit more difficult on a stock rooted ROM.
Fortunately there’s no requirement that you continue running on a stock rooted ROM. You can change out whatever you want post-root, and disable SELinux altogether if you want.
It’s pretty important to remember that an unlocked/rooted phone is not a secure phone, so disabling the SELinux module isn’t really going to hurt you, but it’s another step you’ll need to accomplish to go from stock to fully operational stock rooted.
Goodbye Dalvik, hello ART
The Dalvik cache is going away replaced by ART as the default, and only, runtime. This means all exploits that work based on modifying the Dalvik at runtime are gone.
Some examples of these are many ROM developers include extreme customization applications that modify the cache at runtime allowing you to change things such as colors, text, icons, etc. Additionally the Xposed framework also works by directly modifying the cache in memory, changing code that’s going to be executed to some other code that the user wants.
While the ART runtime does wonders on some devices, many who aren’t running a Google Play Edition/Nexus ROM aren’t going to see a whole lot of improvement overall.
For the unrooted end user, the Dalvik to ART conversion is most likely going to go unnoticed.
For ROM developers who use Dalvik exploits for their configuration options, they’re tearing their hair out now attempting to figure out how to make Android L do what KitKat did. It will happen though.
On the Xposed front, the framework will need to be re-written to support ART. Also the modules will most likely need to be modified with the respective ART changes implemented. It will happen, though.
One-click root goes away
While not entirely an accurate statement, the ability to unlock and root a phone via a download-to-phone exploit should be completely gone. If you’re on HTC hardware, we haven’t had a one-click downloadable exploit that worked for a long long time. It also hasn’t stopped us as long as there’s been a computer and a USB cable nearby.
One-click computer applications, however, will probably still exist.
Why all the breakage?
Security, speed, battery. It’s really important that you as a root user understand that the goal of Android is to be the fastest, most open, most secure operating system ever.
To be the most secure sometimes our root toys get broken and new ones have to be built, however sometimes in enhancing security and openness a new method opens up for an application that’s not root to do things only rooted users could do before.
Sometimes it’s to fix what’s been broken and being constantly rigged to function like the Dalvik was.
What exactly is going to be broken?
There are thousands of root applications out there. Ones that write to /system and exploits that give you root will initially be what appears as broken.
Busybox, boot animation changers, Xposed modules, ROM Dalvik hacks, and things that require init.d support. These will have some problems on a stock rooted device.
Of those, only the Xposed framework and ROM mods aren’t simply one step away from working again (by disabling SELinux, installing a patch, etc.)
What is going to be broken at Android L +3 months?
Probably nothing if the Xposed framework manages to crack ART. There’ll be an extra step for stock rooted users do go through if they want to run something that writes to /system.
And most likely there will never again be a one-click application to root your phone from the phone, there’ll probably be a computer required from SELinux adoption on out.
So for the average root users, not much is going to change. Developers are going to lose some hair. Life will go on.