2013-01-17 73 views

回答

1

假設設備是植根和您的應用程序已被授予超級用戶權限,可以使用以下方法以root身份運行命令:

public static void runAsRoot(String[] cmds){ 
     Process p; 
     try { 
      p = Runtime.getRuntime().exec("su"); 
      DataOutputStream os = new DataOutputStream(p.getOutputStream()); 
      BufferedReader bf = new BufferedReader(new InputStreamReader(p.getInputStream())); 
      for (String tmpCmd : cmds) { 
       os.writeBytes(tmpCmd+"\n"); 
       String test; 
       while((test = bf.readLine()) != null) 
       { 
        Log.i(TAG, test); 
       } 
      } 

      //os.writeBytes("exit\n"); 
      os.flush(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 

只是傳遞一個字符串數組命令的列表。

+1

'您的應用已被授予超級用戶權限'如何? – jaudo

+0

通常情況下,在有根設備上會彈出一個對話框,詢問用戶是否應該給這個應用程序根權限。用戶必須同意爲您提供訪問權限。 –

+0

我需要更改manifest.xml嗎?或者,添加其他東西? – jaudo

相關問題