[英]Most efficient way to write system files in Android?
我正在寫一個更改cpu調控器(類似於setCpu)的應用程序。
我有時遇到的問題是在寫入調控器文件(系統文件)時,我得到了IOException(錯誤的文件號),而且似乎是隨機發生的。
我在我的onCreate方法中請求root並將進程保留為字段:
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();
}
這是處理root權限的正確方法嗎? 為什么我會隨機獲得IOException? (有時無法正常工作)
在這個問題上顯然沒有很多興趣,但是這是我的解決方案。
呼叫
Runtime.getRuntime().exec("su");
在onCreate中確保用戶在使用過程中不必處理SU對話框。
然后,在寫入系統文件時,創建另一個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();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.