i am trying to get root access on my android emulator to run iptables. i went through many forums and tried many methods but nothing seems to work. the following is my device specification and i try everything on emulator.
version - 2.3
kernel version - 2.6.29-00261-g0097074-dirtydigit@digit #20
build number - sdk-eng 2.3 GRH55 79397 test-keys
so how to become root in the android. please help.
On the emulator provided with the SDK r10, you can get a root shell executing "adb shell" from your host computer. Once you have such root shell, you cat follow this steps to get a command that can log you as root from the terminal emulator:
# Remount /data to allow executables and setuids on it
mount -o remount,rw /dev/block/mtdblock1 /data
# There's no "cp" command on Android
cat /system/bin/sh > /data/su
# Give setuid permissions to the shell
chmod 7755 /data/su
Now, from the emulator, just run "/data/su" and that's it, you're root.
The normal "/system/xbin/su" command included in the SDK performs internal user id checks, so these commands...
mount -o remount,rw /dev/block/mtdblock0 /system
chmod 7755 /system/xbin/su
...just won't work. There's no way to trick /system/xbin/su to allow the normal user (UID 10018 in my case) to become root.
Please note that dealing with setuid programs can be a security risk (not higher than having a universal "su" command, though). Use this solution at your own risk.