[英]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.