Мне нужно, чтобы мое приложение выполняло некоторые команды su
программно (телефон рутирован).
При использовании adb команды работают.
Например: su -c "mkdir /sdcard/testdir"
создает каталог с именем «testdir» в /sdcard.
Когда я звоню:
p = Runtime.getRuntime().exec("su -c \"mkdir /sdcard/testdir\"");
p.waitFor();
Он просто движется вперед, и никаких изменений не происходит.
Я попытался прочитать ввод:
DataInputStream dis = new DataInputStream(p.getInputStream());
while((temp = dis.readLine())!=null)
Log.d(ctx.TAG,"shell:"+temp);
Но он ничего не сообщает (цикл делает 0 итераций).
Кто-нибудь когда-либо сталкивался с этой проблемой раньше? Как это решить? Само собой разумеется, что команды, отличные от su, программно работают с этим методом.
Примечание. В качестве примера я привел mkdir
(я знаю, что для этого не обязательно требуется su). Мне нужно много разнообразных команд, которые будут выполняться под su
Благодарю вас!
РЕДАКТИРОВАТЬ: когда я вызываю su -c "id"
программно, на выходе получается, что uid=0.