Я разрабатываю свое первое приложение 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?