我开发了一款可以修改CPU频率的应用。我的应用程序与我的Nexus 4 Lollipop工作得很好,我可以打开/关闭核心,修改每个核心的频率等等。但是现在我已经切换到我的Nexus 6 Nougat,它不允许我将频率降低到某个级别,例如:
(州长是用户空间)
这些是可能的频率:
300000 422400 652800 729600 883200 960000 1036800 1190400 1267200 1497600 1574400 1728000 1958400 2265600 2457600 2496000 2572800 2649600
如果我试图回复'1497600'以下的任何频率,我的手机会自动将此频率提升回'1497600',但任何高于此水平的速度都会正常粘连。我试图阻止mpdecision,然后重命名,但没有变化。有没有办法知道mpdecision是否已停止?新Android不允许我更改这些值吗?
private void writeSpeedOnCore(int core,int speed){
StringBuilder path = new StringBuilder();
//Turn on Core if it is offline
if(speed!=0) {
if(currentClockLevel[core][2]==0) {
turnCoreOnOff(core, true);
}
adjustMinAndMaxSpeed(core);
try {
path.setLength(0);
path.append(String.format("echo %d" + " > " + pathCPU + core + "/cpufreq/scaling_setspeed", speed));
Process proc = Runtime.getRuntime().exec(new String[]{"su", "-c", path.toString()});
proc.waitFor();
currentClockLevel[core][0] = speed;
} catch (InterruptedException | IOException e) {
e.printStackTrace();
}
}
else
turnCoreOnOff(core,false);
}