Я пытаюсь программно установить минимальную/максимальную тактовую частоту на рутированном телефоне. Следуя предложению, сделанному в ответ на этот вопрос, Я нашел некоторая документация, которая предполагает, что я записываю данные в:
/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));
Я не уверен, что я могу попробовать дальше.
EDIT: Следуя совету mrPjer, я запустил оболочку adb. Я набрал 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».
РЕДАКТИРОВАТЬ: Этот вопрос теперь несколько отклонился от первоначального названия, поэтому я опубликую последнее редактирование как совсем новый вопрос.