Android superuser not coming up

I ran into a weird problem on an Android 2.2 (Froyo) phone that I had. Although it was rooted, and Superuser was installed, su wouldn’t come up. Trying to root it again with SuperOneClick didn’t seem to work either. Starting Titanium Backup (which worked in the past) yielded “asking for root rights”, and trying to run Terminal Emulator and su just hung.

Finally, I stumbled my way to something working. I ran SuperOneClick 2.3.1 first. I turned off the “automatically start” option of LBE Privacy Guard. I rebooted, then ran ADB shell and was able to get root from there:

C:\super1click\adb\adb shell
$ su
#

From there, I figured out what device /system was:

# cat /proc/mounts

From this I determined that /system was mounted on /dev/block/stl9, so:

# mount -ro remount,rw /dev/block/stl9 /system
# chown root.root /system/bin/su
# chmod 6777 /system/bin/su

At this point, I was able to start su and do the “check for update”. su determined that it was out of date, and downloaded a new version, fixing the permissions as it did so. (6777 is a little lax, but I couldn’t remember what su was supposed to be.)

I have no explanation as to why su would break. I have no explanation why this would fix it, but it did for me. Maybe it will for you as well.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: