明確にするために、このコードを使用してアプリのスーパーユーザー権限を取得し、root などにアクセスできるようにします。
public String runProcess(String[] functs) {
DataOutputStream dos;
DataInputStream dis;
StringBuffer contents = new StringBuffer("");
String tempInput;
Process process;
try {
process = Runtime.getRuntime().exec(functs);
dos = new DataOutputStream(process.getOutputStream());
dis = new DataInputStream(process.getInputStream());
for (String command : functs) {
dos.writeBytes(command + "\n");
dos.flush();
while ((tempInput = dis.readLine()) != null)
contents.append(tempInput + "\n");
}
dos.writeBytes("exit\n");
dos.flush();
process.waitFor();
} catch (Exception e) {
e.printStackTrace();
}
return contents.toString();
}
問題なく動作しますが、呼び出すたびに、runProcess(new String[] { "su", "-c", "some other command" });
常にスーパーユーザーの許可を求めます。アプリを起動するたびにスーパーユーザーの許可を取得するだけでよいルートアプリが市場にたくさん出回っていますが、アプリが関数を呼び出すたびにユーザーにスーパーユーザーの許可を求める必要はないと思いますSUが必要です。したがって、私の質問は、SU 関連のアクションごとに継続的に要求することなく、アプリの起動時に一度 SU 許可を与えるようにユーザーに求めるにはどうすればよいでしょうか?
編集:毎回「su」と入力せずにメソッド/Runtime.getRuntime().exec()メソッドを実行できることはわかっていますが、それはsu以外の関連アクション(つまり、exec("ps")またはexec)でのみ機能します("ls") 何かアイデアはありますか?