If you use a rooted Android device or develop root applications for Android, your life might be getting a little harder in the near future.
According to XDA developer Chainfire on his Google+ page, changes are being made in the recent code commit of the Android Open Source Project master tree (where all of the recent code developments to Android are posted), which will break how root apps could work in the next update of the operating system.
Chainfire says the new commit specifically prevents the “unconfined domain … from executing file located on the/data partition.” The unconfined domain is where Super User actions are run through in order to execute files, especially for root apps.
A lot of root apps (though by no means all of them) include binaries or scripts that they extract to their app-specific files or lib directory (located on the /data partition) and execute from there as root. This will no longer work out-of-the-box, and generate an access denied error.
What Is Rooting And Why Do People Do It?
If you are unfamiliar with rooting an Android smartphone, it is akin to “jailbreaking” an iOS device. Rooting and jailbreaking are not a perfect one-to-one comparison, but it is an apt description for those not prone to digging into the internal software and kernels of their smartphones and tablets. Essentially, rooting an Android device allows the user to gain control to all aspects of the device by giving them the ability to change their ID profile. Rooting a device allows for a user to download “root” apps that are not available through the Google Play app store and generally allow more granular control of permissions.
Basically, if you root your device you earn “Super User” permissions that allow you to do just about whatever you want with your Android device. The Google Play app store often blocks apps that have default Super User permissions because they can easily lead to spam and malware delivery unbeknownst to the user. When some of the earliest Android malware arrived in 2010 and 2011, it acted as a way to root the device and remotely download malicious code and spyware to user devices.
Root Apps Become More Difficult, But Security Is Better
The recent commit to the AOSP, which will effect how developers build and maintain root apps, was done solely in the name of security. But it is not an attempt by Google to kill root capability in Android.
The Android security model has always had sandboxes that protect user data from other applications. By changing the flow through which data progresses through root apps, Android engineers are attempting to make it more difficult for malicious apps to take advantage of the security aspects of the operating system. When it comes to writing root apps, Google’s policy has long been to allow users to unlock their own devices and build software (certain manufacturers make it harder to root devices, but this does not technically have anything to do with Google).
A respected XDA developer that goes by the name Justin Case notes in the comments of Chainfire’s Google+ post that the changes in the AOSP are beneficial for the Android platform.
And before anyone freaks out, this is a GOOD thing. This increases the security of your phone, making it less likely malware or malicious people could take advantage of flaws.
The changes were written and committed by Stephen Smiley, a researcher for the National Security Agency who focuses on security. In particular, Smiley contributes to Security-Enhanced Linux (SE Linux). The Android implementation, called SE Android, made its first merger into the lower level software stack in the Android Jelly Bean 4.3 operating system, announced by Google in July 2013.
SE Android has two modes: permissive and enforcing. When it is in permissive mode (as it was in the 4.3 Jelly Bean mode), security policy violations in Android are logged but not action is taken. In enforcing mode (as it is in Android 4.4 KitKat), policy violations are stopped before happening.
Developers like Chainfire and Justin Case don't think this update will break root apps or the ability to root Android devices going forward. At the same time, root app developers will need to become very familiar with SE Linux and SE Android to ensure their apps work in the way they are supposed to when they're downloaded.
The commit by Smiley in the AOSP is not active for users or developers. Hence, the changes will likely take effect in either the next update to Android 4.4 KitKat, or in the next released version of Android, either Android 4.5 or 5.0.