2013-03-10 32 views
0

我正在寫一個應用程序,它改變了與setCpu類似的cpu管理器。在Android中編寫系統文件的最有效方法?

問題我有有時編寫管理文件(系統文件)時,我得到一個IOException(壞文件編號),它似乎隨機發生。

我請求我的onCreate方法根和飼養過程作爲一個字段:

private Process suProcess; 

public void onCreate(Bundle ...) { 
    ...  
    suProcess = Runtime.getRuntime().exec("su"); 
    ... 

,當我需要寫一個系統文件,這是我的代碼:

try { 
    DataOutputStream out = new DataOutputStream(suProcess.getOutputStream()); 
    out.writeBytes("echo " + FILE_CONTENTS + " > " + SYSTEM_FILE); 
    out.flush(); 
    out.close(); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 

是這是處理根權限的正確方法?爲什麼我會隨機得到IOException? (有時它有時不起作用)

回答

0

對這個問題顯然不感興趣,但是繼承了我的解決方案。

呼叫

Runtime.getRuntime().exec("su"); 
中的onCreate

保證用戶不必處理使用過程中SU對話框。

然後書寫時的系統文件創建另一個SU進程(應用程序應該已經有蘇許可)

try { 
    Process suProcess = Runtime.getRuntime().exec("su"); 
    DataOutputStream out = new DataOutputStream(suProcess.getOutputStream()); 
    out.writeBytes("echo " + FILE_CONTENTS + " > " + SYSTEM_FILE); 
    out.flush(); 
    out.close(); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 
相關問題