我正在开发我的第一个 Android
应用程序,我很好奇是否有任何“标准”方法来执行特权 shell
命令。我只能通过执行 su
,然后将我的命令附加到 stdin
的 su
DataOutputStream pOut = new DataOutputStream(p.getOutputStream());
DataInputStream pIn = new DataInputStream(p.getInputStream());
String rv = "";
// su must exit before its output can be read
pOut.writeBytes(cmd + "\nexit\n");
pOut.flush();
p.waitFor();
while (pIn.available() > 0)
rv += pIn.readLine() + "\n";
我读过关于包装特权( superuser
)调用 JNI
:这可能吗?如果是这样,人们将如何实现它?除此之外,还有其他方法可以从 Java
调用特权指令吗?
原文由 Emma 发布,翻译遵循 CC BY-SA 4.0 许可协议
据我所知,您只能使用 root 权限运行命令行命令。您可以使用我制作的这个通用类,它在您的代码中包含根访问权限:http: //muzikant-android.blogspot.com/2011/02/how-to-get-root-access-and-execute.html
您需要做的就是扩展此类并覆盖
getCommandsToExecute
方法以返回您要以 root 身份执行的命令。