我需要通过su获得root访问权限,以启动TcpDump二进制文件(我正在开发一种安卓嗅探器)。我使用以下代码:
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();
}
这在已经root的手机上可以完美运行,但我想在模拟器中实现这个功能。 默认情况下,您无法通过su在模拟器上获取root权限(尽管可以通过adb shell实现)。
我找到了this篇文章
但对我来说它不起作用。我在某个地方读到,这个技巧在当前sdk版本中不起作用,但它没有说明适用于哪个版本。 我尝试了sdk修订版10和avd运行Android 2.1。