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)
[email protected]:~/root$ ./adb.linux shell # cd /system/app # rm Superuser.apk
Clean up Superuser.apk data files
[email protected]:~/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.
[email protected]:~/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
[email protected]:~/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.