如何让你的Android应用程序只要求超级用户访问一次?

时间:2012-07-09 20:46:02

标签: java android permissions root

我正在创建我的第一个Android应用程序,它正在更改您的MAC地址和设备主机名。但是,我只想要一次请求超级用户访问。

这就是我目前正在执行su命令的方式:

String[] cmdHost = { "su", "-c", "/system/bin/setprop net.hostname " + strHostname};
execute = Runtime.getRuntime().exec(cmdHost);

每次用户按下按钮更改主机名或MAC地址时,都会再次要求超级用户访问。

有什么办法可以解决这个问题吗?另外,我看到一些应用程序只在SuperUser应用程序日志中执行/ system / bin / sh。我显示了整个命令。

非常感谢!

1 个答案:

答案 0 :(得分:5)

查看库RootTools - 它支持以下操作:

if (RootTools.isAccessGiven()) { /* magic root code here */ }

您可以像这样发送命令到shell

try {
    List<String> output = RootTools.sendShell(command);

    String[] commands = new String[] { command1, command2 };
    List<String> otherOutput = RootTools.sendShell(commands);
} catch (IOException e) {
    // something went wrong, deal with it here
}