Archive | July 2012

ADB Toggle can now reboot your phone into recovery


I have added a new feature into ADB Toggle that offers you all the common reboot options. When you need to reboot more frequently then you can use the new home screen widget!

For the reboot options (normal, recovery and bootloader) ADB Toggle require the REBOOT permission. This permission is only granted by the Android system when the app is registered as system application. If you have installed the previous version of ADB Toggle then the system does not grant the reboot permission yet, therefore the system application needs to be updated. You don’t have to do anything to make this work. ADB Toggle updates itself (followed by a reboot) when you try to use the reboot features.

Here the reboot options are explained in detail:

1. Fast reboot

This option does not fully reboot your device, it only restarts the Android system. This reboot option is not provided by the Android system and is only working with root access. It’s the same reboot method that is also used internally by ADB Toggle when you install or remove the system app.

2. Normal reboot

This option performs a full device reboot. Before restarting the device Android makes sure that all processes and services are closed properly. Obviously this takes little more time than the fast reboot option but it’s the recommended way if you need to reboot under normal conditions.

3. Reboot into recovery

When you need to make a NANDROID backup or want to flash the newest Jelly Bean ROM then you are probably using ClockworkMod recovery or one of the newer custom recoveries with touch support. People with a serious flash addiction might love the quick access from the home screen widget.

4. Reboot into bootloader

You need to reboot into bootloader mode when you need to have fastboot access. Fastboot is a tool which is used to unlock/lock the bootloader on Nexus devices. Furthermore you can use it to flash custom recoveries or restore stock images.

App Quarantine: issues with Root access


Update 25/08/2012:

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.

The solution!

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:

su
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:

http://forum.xda-developers.com/showthread.php?t=1538053

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!