gpt4 book ai didi

android - 写入cpu0/cpufreq/cpuinfo_min_freq : open failed: EACCES (Permission denied)

转载 作者:太空宇宙 更新时间:2023-11-04 03:49:24 28 4
gpt4 key购买 nike

我正在尝试以编程方式设置已 root 的手机上的最小/最大时钟速度。遵循针对 this question 提出的建议,我找到了some documentation这建议我将数据写入:

/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"/>

在我的 list 中。我也可以成功读取这两个文件。当我尝试写入文件时,出现打开失败:EACCES(权限被拒绝)。所以我尝试...

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 777scaling_max_freq

并通过键入

确认权限已被接受

ls -lscaling_max_freq

果然它被列为-rwxrwxrwx。然后我输入了

echo 124200>scaling_max_freq

然后

猫scaling_max_freq

遗憾的是,报告称该文件未更改为“1512000”。

编辑:这个问题现在已经偏离了原来的标题,所以我将把最后的编辑发布为 a new question altogether .

最佳答案

不要将系统文件的权限更改为全局可读/可写(您确实不应该这样做),而是尝试使用 root 访问权限直接写入文件。

您可以通过在 su 调用中使用 echo 而不是 chmod 轻松地做到这一点。例如

Runtime.getRuntime().exec("su -c \"echo 1234 > /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq\"");

exec 调用还应该返回一个 Process 对象,您可以在该对象上调用 waitFor(),这将为您提供调用的返回代码。如果该值与零不同,则表示出现问题。

最后,确认您确实获得了 root 访问权限 - 在执行 su 请求时,是否会弹出一个对话框要求您允许该操作?

此外,由于您正在编写启用 root 功能的应用程序,请查看 RootTools 库:https://code.google.com/p/roottools/wiki/Usage .

关于android - 写入cpu0/cpufreq/cpuinfo_min_freq : open failed: EACCES (Permission denied),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26911026/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com