我正在编写一个应用程序来更改类似于 setCpu 的 cpu 调节器。
我遇到的问题有时是在编写调控器文件(系统文件)时,我得到一个 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?(有时有效,有时无效)