2

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

这就是我当前执行 su 命令的方式:

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

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

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

非常感谢你!

4

1 回答 1

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
}
于 2012-07-09T21:03:31.587 回答