Mam aplikację, która powinna użyć niektórych poleceń powłoki, aby skopiować plik z sdcard do/system/media /. Będzie wymagał rootowania, a ja testuję na zrootowanym urządzeniu. Używam środowiska wykonawczego do wykonywania poleceń powłoki, ale to nie działa. Oto co mam na moje czasy pracyUruchamianie poleceń powłoki za pomocą kodu Java na Androida?
public void RunAsRoot{String[] commands = {"sysrw", "rm /data/local/bootanimation.zip", "sysro"};{
Process p = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(p.getOutputStream());
for (String tmpCmd : commands) {
os.writeBytes(tmpCmd+"\n");
}
os.writeBytes("exit\n");
os.flush();
}
Ale moja logcat pokazuje tylko dwa z nich nie uzyskiwanie odrzucony
07-30 03:14:11.112: WARN/su(3593): request rejected (10047->0 /system/bin/sh)
07-30 03:14:11.132: DEBUG/su(3592): 10047 com.bba.stormdroid executing 0 /system/bin/sh using shell /system/bin/sh : sh
07-30 03:14:11.152: WARN/su(3594): request rejected (0->0 /system/bin/sh)
07-30 03:14:11.182: WARN/su(3595): request rejected (0->0 /system/bin/sh)
07-30 03:14:11.202: WARN/su(3596): request rejected (0->0 /system/bin/sh)
07-30 03:14:11.242: DEBUG/su(3597): 10047 com.bba.stormdroid executing 0 /system/bin/sh using shell /system/bin/sh : sh
Ci dwaj spojrzeniem być polecenia sysrw i sysro, jednak aplikacja nadal prosi o uprawnienia root'a po uruchomieniu tego kodu. Jestem nowy w pracy z root-ami i nie mogę się zorientować, jak to uruchomić.
Czy mogę uzyskać działający projekt tego przykładu? –
To nie działa dla mnie i nie otrzymuję żadnych wyjątków FileNotFound ani niczego w Javie. Ponadto SuperSU przechwytuje żądanie roota i jestem w stanie go przyznać, więc wiem, że działa funkcja 'getRuntime()'. Z jakiegoś powodu po prostu nie pozwala mi manipulować plikami w folderze '/ system/media'. – anon58192932
Ah wygląda na to, że sysrw i sysro są nieznanymi komendantami. – anon58192932