我正在尝试以编程方式在有根电话上设置最小/最大时钟速度。根据针对此问题提出的建议,我找到了一些文档,建议我将数据写入:
/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq
和
/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq
我已经有了
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
在我的清单中。我也可以成功读取这两个文件。当我尝试写入文件时,我得到了open failed: EACCES (Permission denied)
. 于是我试了...
Runtime.getRuntime().exec("su -c \"chmod 777 /sys/devices/system/cpu/cpu0/cpufreq/*\"");
...执行没有错误,但这没有任何区别。当我执行这两行中的第二行时发生错误:
File file = new File("/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq");
BufferedWriter bw = new BufferedWriter(new FileWriter(file));
我不确定接下来我可以尝试什么。
编辑:按照 mrPjer 的建议,我运行了 adb shell。我输入su
并导航到/sys/devices/system/cpu/cpu0/cpufreq
. 然后我输入
chmod 777 scaling_max_freq
并通过键入确认权限已被接受
ls -l scaling_max_freq
果然它被列为-rwxrwxrwx
。然后我输入
echo 124200 > scaling_max_freq
接着
cat scaling_max_freq
遗憾的是,据报道该文件未更改为“1512000”。
编辑:这个问题现在已经偏离了原来的标题,所以我将把最后一次编辑作为一个新问题发布。