2015-11-25 4 views
5

से इनकार किया जब मैं इस कोड का उपयोग:एंड्रॉयड Runtime.getRuntime() कार्यकारी ("सु") java.io.IOException: अनुमति

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

वहाँ हमेशा एक त्रुटि है, किसी भी विचार? java.io.IOException: एक Android आभासी डिवाइस पर चल रहा

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

क्या यह स्पष्ट नहीं है? आप सुपर उपयोगकर्ता विशेषाधिकार प्राप्त करना चाहते हैं लेकिन एंड्रॉइड में सुरक्षा प्रतिबंध हैं। –

+0

तो, मैं इसे कैसे हल कर सकता हूं? – GuiYQ

+1

क्या आपका डिवाइस रूट है? – Ben

उत्तर

1

यदि आप इस अनुमति

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

मैंने इसे जोड़ा है, लेकिन फिर भी यह समस्या है। – GuiYQ

0

जोड़ने के लिए की वजह से करने की कोशिश की अनुमति अस्वीकृत

  1. खोजने जहां su उदाहरण के लिए है: /system/xbin/su
  2. सु की फ़ाइल अनुमति जांचें: ls -al /system/xbin/su
  3. आवश्यक होने पर संशोधित मोड: chmod 4755 su
  4. पुन: प्रयास करें।
संबंधित मुद्दे