前言:省电者都习惯于修改CPU参数来让手机顺畅省电平衡,而追求性能者也是改参数,甚至删除温控、热插拔功能。但是高通这CPU也就是怪,我修改了多次,总是没能找到完美的解决方案(因为就目前知道的,应该就是热插拔、温控、电压值这三个会引起关闭核心,导致修改出问题),这次换了一下思路,通过监测手机的温度进而控制频率来达到想要的目的:发热时限制,不发热时不限制,性能与省电交融一起。
修改机型:moto x pro xt1115 5.0.2 (理论上高通CPU通用,不同机型需要自己找合适的平衡点)
前提:手机需要ROOT
操作:使用ES文件浏览器(或其它root文件管理器),打开路径:/system/etc/找到这个文件thermal-engine-shamu.conf,高通的温控文件,按下图增加方框内代码或根据自身需求修改(省电版截图,第一次测试用的,用了几天后发现不够好,后面有进阶版代码,推荐用进阶版)
原文件里找不到我要的功能,因此,自己看了这些代码,猜测着写了一段,测试可行,解读:(按行数来)
1、中括号里的应该是名称,这个关系不大,
2、类型
3、读取来源(CPU0代表4个核心的第一个,选这个因为第一个核心是强制不离线的,其它核心是可能被动态关闭的)
4、采样时间(5秒)
5、限制阈值(60度)
6、解除阈值(55度)
7、作用对象(整个CPU,4个核)
8、限制值(1574400,也就是软件里看到的1574MHz,这个数值必须是高通支持的才行,有特定值)
整段意思是,当CPU第一个核心温度到达60度时,整个CPU限制最大频率1574MHz,温度降到55度时,解除此限制。
(第一次测试用的)增加代码(不玩游戏,想省电的用这个,不过综合考虑不推荐):
[MONITOR-CPU]
algo_type monitor
sensor cpu0
sampling 5000
thresholds 60000
thresholds_clr 55000
actions cpu
action_info 1574400
(第二次测试用的)进阶版(推荐,应用更全面):
[MONITOR-CPU]
algo_type monitor
sensor cpu0
sampling 5000
thresholds 60000
thresholds_clr 55000
actions cpu1+cpu2+cpu3
action_info 1728000+1728000+1728000
对于偏向性能,追求游戏快感的可以用这个
说明:游戏大多对单核性能要求较高,所以保留一个核心不降频,代码意思是当1号核心温度高的时候,其它3个核心限制最高频率保证整个CPU温度不要太高。
对于高通805来说,这个进阶版真的是更合适不过了,单核频率高,性能强大,但是发热严重,通过这样的限制,尽量保证整个CPU温度不要过高,不轻易触发关闭核心的条件,能更好地发挥其应有的性能。
(第三次测试用的)进阶版再优化,目前自己在用:
[MONITOR-CPU0]
algo_type monitor
sensor cpu0
sampling 5000
thresholds 80000
thresholds_clr 79000
actions cpu0
action_info 17280000
[MONITOR-CPU1]
algo_type monitor
sensor cpu1
sampling 5000
thresholds 50000
thresholds_clr 49000
actions cpu1
action_info 17280000
[MONITOR-CPU2]
algo_type monitor
sensor cpu2
sampling 5000
thresholds 50000
thresholds_clr 49000
actions cpu2
action_info 17280000
[MONITOR-CPU3]
algo_type monitor
sensor cpu3
sampling 5000
thresholds 50000
thresholds_clr 49000
actions cpu3
action_info 17280000
在测试进阶版的时候,发现这CPU还有另外一个功能,当只需要一个核心占用高的时候,它会轮流用4个核心中的一个设置高频,因此,温控也就独立出来设置,其中1号核心限制温度设置高点,其它的低点,这样平常温度会控制得比较 低,还可以轮流使用各个核心。而游戏时就算整个CPU温度上来了,至少还有一个核心可以高频率使用。测试游戏王者荣耀,改机型开启60帧也没问题,就是有点热,平常匹配赛不开60帧,温度不高。