2011-02-01 55 views
0

早上好:執行外部應用程序根 - 問題

我試圖運行需要執行 爲根的外部應用程序。在執行 之後,我必須從這個應用程序中讀取退出的行,但它說「權限被拒絕」,就好像 沒有被正確執行。我一直在想着 ,我無法前進。代碼如下:

process = Runtime.getRuntime().exec("su"); 
String[] command = {external application command}; 
process = Runtime.getRuntime().exec(comando); 
InputStream inputStream = process.getInputStream(); 
BufferedReader bufferedReader = null; 
try 
{ 
    bufferedReader = new BufferedReader(new 
     InputStreamReader(inputStream),8192); 
    String line = null; 
    while ((line = bufferedReader.readLine()) != null) 
    { 
     System.out.println("read line:"+line); 
    } 
} 
catch (IOException ioe) 
{ 
    ioe.printStackTrace(); 
} 
process.waitFor(); 

有誰知道爲什麼不讓我運行命令?

謝謝。

回答

0

試圖運行su時是否有任何錯誤? (我想你會的,因爲su可能會直接打開終端提示輸入密碼; su將不只是讀取標準輸入密碼。)

不要嘗試運行當你有任何錯誤或成功簡單的程序,像/usr/bin/cat /etc/passwd?不妨從簡單的開始,看看你是否可以在嘗試更復雜的程序之前讓它工作。

+0

我的代碼工作什麼的罰款,如果我把命令被執行 一個「LS-1」爲例。但是,我試圖運行訪問設備/ dev/xxxx但需要訪問的 應用程序。我已經植根我的手機,如果我沒有問題從控制檯/終端運行命令,但它的工作原理,但源代碼告訴我「權限被拒絕」。 謝謝。 – user598011 2011-02-01 09:57:32

0

關於嘗試

sudo -iu root 

,而不是蘇

+0

我的代碼工作正常,如果我把命令執行 例如「ls-l」。但是,我試圖運行一個訪問設備/ dev/xxxx的 應用程序,該設備需要使用 根。我已經紮根移動,它運作,如果我從終端運行命令 沒有問題,但由於源代碼告訴我 「權限被拒絕」。 謝謝。 – user598011 2011-02-01 09:58:04