众所周知,传统的降温策略是:限制内核最高频率,或限制内核核心数。但这些做法会带来一个问题,就是使用比较耗费资源的应用,尤其是大型游戏时,容易出现卡顿,影响使用感受,导致性能、温度无法兼顾,显得比较盲目。
近日,@Mostafa Wael提供了一种温度控制配置策略,可以在温度较低时,发挥M9的全部性能,不受影响;而在温度较高时,才采取相应的策略加以限制,从而控制温度。
使用方法
确保 PnPMgr 为启用状态(如果不知道 PnPMgr 是什么,请跳过此步骤)
下载降温补丁
复制补丁文件到 /system/etc 覆盖原文件(建议先备份)
修改权限为 0644(rw-r--r--)
重启手机后生效
补丁下载
链接: http://pan.baidu.com/s/1c2I4jcc
密码: s3ur
科普介绍
降温补丁的由来
从 Android 5.1 开始到现在的 Android 6.0,M9 官方的温度控制变得越来越激进,牺牲性能实现降温,因此必须想方设法修改温度控制策略。有些开发者使用了比较传统的方式,一次性给所有内核限制频率,比如安装 EX 内核时可以选择所有内核的频率限制。但我发现这种解决方法并不是最好的,我开始四处挖掘,并且成功通过修改 CPU 调节器设置的方法,使性能、耗电、温度达到最佳平衡,但需要关闭 HTC 专利 PnpMgr 才能生效,这让我相当失望,因为我们失去了 PnpMgr 的众多优点(后面会介绍)。到后来,我发现了“一加2”的 Boeffla 内核,它通过配置 /system/etc/thermal-engine.conf 文件来调节不同温度范围内的使用策略。不幸的是,这个文件是加密的,因此我只能继续搜索能使 M9 正常使用的这个文件。万幸“Nexus 6P”有这个文件,再配合“一加2”的一些配置行,可以正常使用。于是我不停地调整它们直到满意,现在终于可以发出来给大家分享了。
PnpMgr 开与关的区别
PnpMgr 全称 Power & Performance Manager,负责协调温度和 CPU 调度策略之间的关系,换句话说,它负责关屏时关闭大核、使用相机时防止过热等一系列温度相关的事情。不仅于此,它还进行了深度整合,根据不同条件实现不同的策略。
PnpMgr 开启时的特点:
正确的温度控制支持,需要时提供性能,不需要时关闭核心避免浪费
正确的 CPU 调度,使用应用时不会发生卡顿
必要时的性能提升,比如启动应用更加快速
根据不同温度自动调整策略(虽然我不认为它的策略是正确的)
日常使用时,温度可能很快到达 37℃,但很难到达 38℃
PnpMgr 关闭时的特点:
多任务时温度稍微低些,因为启动应用或切换应用时不会有性能提升
长时间使用(超过半小时)时糟糕的温度控制,合理的调节器设置可以解决此问题
无法根据温度调整策略,使用相机之类的应用时发热耗电
无法动态调整内核最高频率、内核核心数
稍微阻碍了性能,比如启动应用时不会有性能提升
一些人认为电池续航有所改进
降温补丁不同方案介绍
以下介绍基于一个常识:M9 有 4 个大核(A57,最高频率 1958MHz)和 4 个小核(A53,最高频率 1555MHz)
HTC 官方:
由于文件加密,只能通过使用情况分析出温度控制策略
36℃ 开始:限制大核最高频率为 1632 MHz
38℃ 开始:将大核运行的进程迁移到小核,小核以最高频率运行的同时,大核也未关闭,而是以 384 MHz 的最低频率运行
这个策略看似不错,实际却带来了可怕的温度问题和糟糕的性能体验
日常使用 Daily use:
直到 41℃ 开始,才执行降温策略!
41℃ -> 42℃:限制大核最高频率为 1344 MHz,并关闭 1 个大核,小核不受影响
42℃ -> 43℃:限制大核最高频率为 960 MHz,并关闭 2 个大核,小核仍然不受影响
43℃ -> 44℃:限制小核最高频率为 1344 MHz,并关闭 4 个大核
你可能会说最后这个策略有些激进,但没办法,这是解决发热的唯一方法。这个补丁已经集成在 LeeDroid ROM(R9 或更高版)和 ICE ROM 中,根据反馈效果最佳
推荐方案。如果你不知道选哪个,选它准没错!
日常使用(宽松版) Daily use (relaxed):
与“日常使用”方案相同,但首个温度范围区间下降 2℃,即从 39℃ 到 40℃,第二个区间从 40℃ 开始
使用标准“日常使用”方案仍然觉得较热时(通常是夏天高温的时候),建议使用此方案
游戏 Gaming:
此方案仍在持续开发、优化中,目标是提供长时间游戏(超过半小时)时的稳定性能。
可针对依赖 GPU 资源的大型游戏(比如“死亡效应2”)进行测试,目标是控制温度在 43℃ 到 44℃ 之间
此方案还提供了一个测试版,仍在开发中,不建议初级用户使用
平时玩大型游戏较多的人,可以使用此方案