2015-11-25 11 views
5

verweigert Wenn ich diesen Code verwenden:Android Runtime.getRuntime() exec ("su") java.io.IOException: Permission

process = Runtime.getRuntime().exec("su"); 
os = new DataOutputStream(process.getOutputStream()); 

gibt es immer ein Fehler, irgendwelche Ideen? Laufen auf einem Android virtuelles Gerät

W/System.err(3211): java.io.IOException: Error running exec(). Command: [su] Working Directory: null Environment: null 
W/System.err(3211):  at java.lang.ProcessManager.exec(ProcessManager.java:211) 
W/System.err(3211):  at java.lang.Runtime.exec(Runtime.java:174) 
W/System.err(3211):  at java.lang.Runtime.exec(Runtime.java:247) 
W/System.err(3211):  at java.lang.Runtime.exec(Runtime.java:190) 
W/System.err(3211):  at com.example.executeandroidtest.ShellUtils.execCommand(MainActivity.java:661) 
W/System.err(3211):  at com.example.executeandroidtest.MainActivity$3.run(MainActivity.java:410) 
W/System.err(3211):  at java.lang.Thread.run(Thread.java:818) 
W/System.err(3211): Caused by: java.io.IOException: Permission denied 
W/System.err(3211):  at java.lang.ProcessManager.exec(Native Method) 
W/System.err(3211):  at java.lang.ProcessManager.exec(ProcessManager.java:209) 
W/System.err(3211):  ... 6 more 
+1

Ist es nicht offensichtlich? Sie möchten Super User Privilegien bekommen, aber Android hat Sicherheitseinschränkungen. –

+0

Also, wie kann ich es lösen? – GuiYQ

+1

Ist Ihr Gerät verwurzelt? – Ben

Antwort

1

Haben Sie versucht, diese Berechtigung hinzufügen

<uses-permission android:name="android.permission.ACCESS_SUPERUSER"/> 
+5

Ich habe das hinzugefügt, aber immer noch dieses Problem. – GuiYQ

0

Verursacht durch: java.io.IOException: Permission

verweigert
  1. finden, wo So ist zum Beispiel: /system/xbin/su
  2. check su's Dateierlaubnis: ls -al /system/xbin/su
  3. mod ändern wenn nötig: chmod 4755 su
  4. versuchen Sie es erneut.
Verwandte Themen