Reputation: 71
I'm a new to software development on Android.
I want to make an application like SetCPU that can manipulate CPU frequency in Android.
But I couldn't find some related APIs or materials.
I want to know following two things sincerely.
Upvotes: 7
Views: 23294
Reputation: 330
Some commands in ADB
Set Governor:
adb shell echo "userspace" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
Set Frequency in KHz:
adb shell su -c "echo "702000" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed"
//min frequency
adb shell su -c "echo "384000" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq"
//MAX frequency
adb shell su -c "echo "384000" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq"
Get current CPU Frequency:
adb shell cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq
Show availables governors:
adb shell su -c "cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors"
Disable service that overwrite cpu online file:
adb shell su -c "stop mpdecision"
It's necessary to do this before enabling or disabling core. mp decision is restarted if the system is restarted.
Disable core:
adb shell su -c "echo "0" > /sys/devices/system/cpu/cpu3/online"
If that doesn't work:
& chmod 444 /sys/devices/system/cpu/cpu1/online
Upvotes: 17
Reputation: 39604
There is no Java API to change the frequency of an Android device. The only way to do this is to get your hands dirty with the Kernel.
Upvotes: 3
Reputation: 11
Looks like you need to root your device
http://www.pokedev.com/setcpu/
Upvotes: -3