2015-11-25 2 views
5

Когда я использую этот код:Android Runtime.getRuntime() Exec ("су") java.io.IOException: Отказано в

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

всегда есть ошибка, любые идеи? Запуск на андроид виртуального устройства

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

Разве это не очевидно? Вы хотите получить права суперпользователя, но у android есть ограничения безопасности. –

+0

Итак, как я могу его решить? – GuiYQ

+1

Является ли ваше устройство укорененным? – Ben

ответ

1

Вы пытались добавить это разрешение

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

Я добавил это, но все же эта проблема. – GuiYQ

0

Вызванный: java.io.IOException: Отказано в

  1. найти, где su, например: /system/xbin/su
  2. проверить разрешение su's: ls -al /system/xbin/su
  3. изменить mod при необходимости: chmod 4755 su
  4. попробуйте еще раз.
Смежные вопросы