ルート化された電話の最小/最大クロック速度をプログラムで設定しようとしています。この質問への回答で行われた提案に続いて、データを書き込むことを示唆するドキュメントをいくつか見つけました。
/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/*\"");
...エラーなしで実行されましたが、違いはありませんでした。次の 2 行のうち 2 行目を実行すると、エラーが発生します。
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」として変更されていないことを報告しました。
編集:この質問は元のタイトルから多少ずれているため、最後の編集を完全に新しい質問として投稿します。