2011-04-16 163 views
5

我需要通过su获取root权限才能午餐TcpDump二进制文件(我正在研究一种android嗅探器)。我用这个代码:在Android模拟器上通过su获得root权限

try { 
    Process process = Runtime.getRuntime().exec("su"); 
    DataOutputStream os = new DataOutputStream(process.getOutputStream()); 
    os = new DataOutputStream(process.getOutputStream()); 
    os.writeBytes("/data/local/tcpdump-arm -c 10 -s 0 -w /data/local/out.txt\n"); 
    os.writeBytes("exit\n"); 
    os.flush(); 
} catch (IOException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 

它完全有根的电话,但我想在模拟器中实现这一目标。 默认情况下,您无法通过模拟器上的su获得root权限(虽然可以通过adb shell)。

我发现this

但它不为我工作。我在某处读过这篇技巧不会与sdk的修正版一起工作,但它没有说明它会起作用。 我尝试使用sdk revision 10和avd运行Android 2.1。

回答

8

好吧,我自己解决的问题:/

它与SDK版本10,并在AVD 2.2。我之前遵循的提示的问题是重新安装步骤。这里是为我工作的命令列表(摘自http://forum.xda-developers.com/showthread.php?t=821742):

adb shell mount -o rw,remount -t yaffs2 /dev/block/mtdblock03 /system 
adb push su /system/xbin/su 
adb shell chmod 06755 /system 
adb shell chmod 06755 /system/xbin/su 
adb install superuser.apk 

你可以得到的苏二进制和超级用户的应用程序在这里:http://forum.xda-developers.com/showthread.php?t=682828

你必须这样做,每次启动模拟器。

+0

http://russelldavis.blogspot.com/2011/01/rooting-android-emulator.html – 2011-08-25 05:59:26

1

我能得到superuser.apk删除/system/app/SdkSetup.apk

我刚才检查了一遍,它被重新重启之间留下来,但我仍然有我的Superuser.apk之间重新启动。

我也建议推一个busybox二进制文件和su。

0

请注意,a.b.d中的步骤也适用于OS 2.3.3 Gingerbread的AVD仿真器。 我从所提供的链接下载了su-2.3.6.1-signed.zip。

此外,我创建了一个.bat文件,其中包含由a.b.d提供的命令以便即时执行。

相关问题