App Quarantine: issues with Root access
In the newest versions of App Quarantine (1.25) and App Quarantine Pro (2.5) root access works now more reliable. However, if you still have an out-dated version of SuperUser then App Quarantine doesn’t work anymore. I used to have some ‘bloat’ code that did some kind of ‘special care’ for the SuperUser app. However this did lead to issues on other devices. In the meanwhile SuperUser doesn’t need this ‘special care’ anymore. So if App Quarantine doesn’t work anymore then just call the SuperUser app, swipe left to the ‘Info’ tab and tap ‘check for updates’:
Now App Quarantine will work again. If you still have issues with SuperUser then please read on and learn what else you can do.
Issues with SuperUser app
I’m receiving more and more reports from users that updated their phone from Android 2.3 to 4.0 and then were unable to use App Quarantine anymore. The “Failed to get root access!” message appears on the screen:
Furthermore, their phones are all rooted properly and all other root apps are still working fine! Of course I have Android 4 running on my own devices (Galaxy Nexus, Motorola Xoom) and I can’t reproduce the error! Almost 6.000 active users are successfully running App Quarantine on Android 4 as well so this is a issue that only happens on some “selected” devices.
But there’s a solution to the problem thanks to a nice user who helped to assist me in trying out few things on his phone. In the end we found out it’s just as easy as using the SuperSu app instead of SuperUser. So tell me: why are other root apps still working with SuperUser and why is this damn App Quarantine not working?
What’s going on behind the scenes?
So to explain this issue I have to go into some technical details! If you feel uncomfortable with this then just skip this chapter ! 😉
When a app is disabled or enabled using App Quarantine (or any other freeze app in the market) then a command line tool is used that is part of every Android installation. Obviously this only works when called with superuser privileges. But this tool is not a normal Linux command like for instance all the stuff you get in the busybox collection. It’s slightly more complicated as it first needs to start a new Dalvik instance (like every Android app does as well). This is needed so the tool can access the Android framework. For doing all this the tool relies on a few dependencies. Unfortunately some of these dependencies have changed on newer Android 4 ROMs and it seems the SuperUser app (well, actually the associated su binary) can’t handle this anymore.
You can easily test it on your own and open a terminal emulator on your phone (I’m always using https://play.google.com/store/apps/details?id=jackpal.androidterm) and then type the following:
pm disable com.google.earth (or any other app you’d like to test with)
When succeeded then it will say “Package com.google.earth new state: disabled” and when you’re launching App Quarantine you’ll see it got moved into the list of quarantined apps. With the “corrupt” SuperUser dependencies the command will crash and drop some strange error message, hence the app is not getting disabled at all.
Now on the other hand the newly developed SuperSu (which also comes with its own su binary) was developed by Chainfire (a well recognized member on xda-developers) in order to solve some of the problems that seems like they can’t be solved with the SuperUser app. One of these improvements is that it can solve such dependencies just fine!
SuperSu – the Superuser access management tool of the future
As you are still reading this you probably want to know more about SuperSu – and no, I’m not getting paid by Chainfire for doing this! 😉
While SuperUser was developed in the early days of Android, SuperSu is brand new and developed from scratch! It’s based on the needs and experiences that were learned when “playing around with root” and now provides a cleaner and more reliable solution for managing root access on your Androids!
You can read all the details in the official thread on xda-develoers here:
SuperSu installation guide
Please be aware that I’m not responsible for any damanges in case something is wrong on your phone or with SuperSu!
1. if you have ClockworkMod then first do a nandroid backup (just in case)
2. Install SuperSu from Google Play: https://play.google.com/store/apps/details?id=eu.chainfire.supersu
DO NOT remove the SuperUser app (yet)!
3. Run it, and let it install itself. Then try App Quarantine again. When this is successful (and your other root apps are playing fine as well) then you can remove SuperUser.
4. In case you want to uninstall SuperSU and revert back to SuperUser then you first have to run the original SuperUser app and restore root access by choosing the “update su binary” option in the settings. You should first test and confirm that your ‘old’ Superuser access is working again before uninstalling SuperSu, otherwise you might lose root access!