通过Android模拟器上的su获取root访问权限

a.b*_*b.d 5 android android-emulator

我需要通过su获取root访问权来午餐TcpDump二进制文件(我正在研究一种Android嗅探器).我用这个代码:

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();
}
Run Code Online (Sandbox Code Playgroud)

它在root手机上完美运行,但我想在模拟器中实现这一点.默认情况下,您无法通过模拟器上的su获得root权限(尽管可以通过adb shell获得).

我找到了这篇文章

但它对我不起作用.我读过这个提示不适用于sdk的修复版本,但它没有说明它将起作用.我尝试使用sdk修订版10和avd运行Android 2.1.

a.b*_*b.d 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
Run Code Online (Sandbox Code Playgroud)

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

每次启动模拟器时都必须这样做.