Rooting Froyo 2.2

The planets finally aligned and Virgin Mobile provided an android 2.2 (Froyo) update for the intercept. To install it, I made sure I reversed the changes I had made on previous roots (renaming the sound files back). I also uninstalled the z4root and super user apps to get the phone back in a pristine state.

I backed up as much stuff as I could in case it was wiped by the upgrade, but it turned out that everything important survived the installation of the upgrade. All my contacts were preserved, and various apps like the alarm clock still had my alarms defined, etc. (I was really pleasantly surprised by this :-).

As I had seen mentioned on the message boards, the poor old z4root program doesn't work on Froyo. I gave it a shot, but it never got root access. This meant going to some other (more complicated) root technique.

The main thread I went to for information was here. (Despite the name, it isn't one click, or if it is, then everything else you do with a computer is one click as well, since at some point you make the one final click :-)

The calm my fears about what this might do to my phone, I perused some articles around the web such has this one and this one.

My actual experience didn't work as described since I couldn't get my Windows XP box to talk to the phone with USB debugging. The only machine I was able to get to talk to the phone was an ancient box with fedora 14 I happened to have installed for testing. It only had USB 1.1 ports, and they worked fine. All the other systems I tried have USB 2.0 and they all barfed when I hooked up the phone. I eventually ran the START_ROOT.bat script by hand, translating the DOS commands to linux commands where appropriate and got the rooting to work from the linux box USB connection.

Important Update: I have since discovered that the real problem (and probably why I couldn't get it to work on several systems) is that the phone, in addition to doing USB debugging, is also trying to charge itself, and drawing too much power (which seems to upset finiciky USB 2.0 controllers more than old USB 1.1 controllers).

Connecting the phone via a powered USB hub worked fine on the same systems that were failing previously. The hub I got was this one (not that I think the model matters).

I had no fears of doing a permanent root this time (I always used temporary root with z4root) because I doubt there is any chance that a 2.3 update will ever be released (though I did make a full backup of the /system directory before I started removing things, so in theory I could restore that, run the unroot script, and have the phone back in the original 2.2 state again).

OK, Now the fun stuff:

(Rubbing hands together...)

The first thing to do should probably be to install the Android Market SuperUser app. The su program created by the one click exploit is wide open to anyone. The market app will give you an su that will pop up a notification and keep a log. You need to open the app settings and run the new binary check a couple of times once it is installed to get it to fetch the fancy su binary and replace the one on the phone after one click.

In the adb shell, or using a terminal app on the phone, you can now type su and you should get the popup to verify you really want root access to be granted. Once you have root, you can:

mount -o rw,remount /dev/block/stl5 /system

and you will have read/write access to the /system partition (where all the annoying crap Virgin Mobile shoves onto your phone is stored).

You might want to just run mount with no arguments first to see the device that is mounted as /system, but all the Virgin Mobile intercepts do seem to use /dev/block/stl5.

Then you can get down to deleting junk that is taking up space you'd rather use for your own junk. Here's my list:

File Deleted What is it?
/system/etc/poweron.wav The insanely annoying Virgin Mobile tune played when powering up the phone.
/system/media/audio/ui/shutdown.mp3 The equally annoying power off tune.
/system/app/amazonmp3.apk Amazon MP3 store
/system/app/Virgin_Mobile.apk Virgin Mobile LIVE radio
/system/app/Android_VirginUS-Chat.apk airG Chat
/system/app/vmu_production_rc_store_v1_1_55_vn_8.apk Downloads (Virgin mobile wants you to buy junk)
/system/app/FBAndroid-1.4.1.apk Facebook ('nuff said)
/system/app/SPGMyAccount_1.1.0.apk My Account (worthless Virgin Mobile account checker app, you want the 3rd party Minutes Checker app for Virgin accounts)
/system/app/thinkdroid.apk ThinkFree Office (think fantastic bloat)
/system/app/WHERE.apk WHERE (who? what? why?)
/system/app/YouTube.apk YouTube (also 'nuff said)

If you are wondering how the heck to tell which annoying app you see in the launcher matches which .apk file in the directory, check out my post about that on the intercept forums. It has a file attached with the complete list I built.

Another nice app I installed now that I'm rooted is Titanium Backup (seemed well worth paying for the pro version). Using this, I was able to clean up the leftover .dex files from the cache which no longer have a matching .apk file, thus getting back more space, and, of course it is useful for its primary function of doing backups.

Once I had backups on my sdcard, I installed the rsync for android app from the market and setup a directory on my linux box where I could rsync the Titanium backup files (which goes from there to my external USB backup drive, so I got belt and a couple of sets of suspenders going with backups).

Page last modified Wed Apr 27 20:59:45 2011