Fixing Broken Droid2 Root
I had previously rooted my Droid2, but it was broken when the OTA Gingerbread came down. I don't really use root for much now that I don't really develop for Android anymore, but I found a need today, so I decided to re-root.
I found a nicely packaged exploit on rootzwiki, but when I ran it I hit a snag.
* daemon started successfully *
* Running exploit [part 3 of 3]...
remount succeeded
5524 KB/s (1867568 bytes in 0.330s)
651 KB/s (26264 bytes in 0.039s)
5928 KB/s (196521 bytes in 0.032s)
pkg: /data/local/tmp/Superuser.apk
Failure [INSTALL_FAILED_ALREADY_EXISTS]
link failed File exists
My old root was blocking my new root. Lame.
Easy to fix after poking around on the file system.
Essentially it boils down to this:
- Manually remove old Superuser.apk
- Clean up Superuser.apk data files
- Install new super user apk
- Link up new su
Details below, but as always YMMV.
Manually remove old Superuser.apk
Make sure you know the full namespace before you delete this file, you will need it later (i.e. com.noshufou.android.su)
jmhobbs@Cordelia:~/root$ ./adb.linux shell
# cd /system/app
# rm Superuser.apk
Clean up Superuser.apk data files
jmhobbs@Cordelia:~/root$ ./adb.linux uninstall com.noshufou.android.su
Success
Install new super user apk
From here on out you are essentially just finishing up the root script that got skipped.
jmhobbs@Cordelia:~/root$ ./adb.linux install Superuser.apk
3217 KB/s (196521 bytes in 0.059s)
pkg: /data/local/tmp/Superuser.apk
Success
Link up new su
jmhobbs@Cordelia:~/root$ ./adb.linux shell
# cd /system/bin
# mv su su.orig
# ln -s /system/xbin/su /system/bin/su
All done! You should be rooted again.