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