2

MAC アドレスとデバイスのホスト名を変更する最初の Android アプリを作成しています。ただし、スーパーユーザー アクセスを 1 回要求するだけで済みます。

これは、現在 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 */ }

このようにコマンドをシェルに送信できます

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 に答える