4

我正在尝试在我的 android 模拟器上获得 root 访问权限以运行 iptables。我浏览了很多论坛并尝试了很多方法,但似乎没有任何效果。以下是我的设备规格,我在模拟器上尝试了一切。

版本 - 2.3 内核版本 - 2.6.29-00261-g0097074-dirtydigit@digit #20

内部版本号 - sdk-eng 2.3 GRH55 79397 测试密钥

那么如何在android中成为root。请帮忙。

4

1 回答 1

8

在 SDK r10 提供的模拟器上,您可以从您的主机获得一个执行“adb shell”的根 shell。一旦你有了这样的 root shell,你就可以按照以下步骤获取一个命令,该命令可以从终端模拟器以 root 身份登录:

# 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

现在,从模拟器中,只需运行“/data/su”就可以了,你就是 root。

SDK 中包含的普通“/system/xbin/su”命令执行内部用户 ID 检查,因此这些命令...

mount -o remount,rw /dev/block/mtdblock0 /system
chmod 7755 /system/xbin/su

......只是行不通。没有办法欺骗 /system/xbin/su 以允许普通用户(在我的情况下为 UID 10018)成为 root。

请注意,处理 setuid 程序可能存在安全风险(不过,不会比使用通用“su”命令高)。使用此解决方案需要您自担风险。

于 2011-05-13T13:32:08.220 回答