如何解决Mac OS 10.13系统待机掉电多、能耗高问题?

升级Mac OS 10.13.5之后,不插电源待机耗电陡然增加,经过一晚上七个小时的待机,会掉电17-25%这样。

期间,在各种百度、知乎上寻找答案,一直没能解决。

让我下定决心解决这个问题的原因是,之前参加会议,期间我只改了大约不到一个小时的稿件,剩余时间电脑都是合盖状态。当天会议结束回家后,电量就只剩30%多了。

这让我很敏感——就用了不到一个小时,晚上电量就快没了,万一我有什么紧急的事情需要处理,就歇菜了。

继续百度,没查到什么有用信息。于是,又拿Google搜,变着各种关键词,前后查阅了四五个小时的资料,测试多次,终于解决了问题。

第一次测试,待机8个多小时,只掉电2%。

第二次测试,待机将近9个小时,掉电3%。

如何解决的呢?其实这是一位网名为“liul85”给出的解决文案(后来查证,最终来源是国外某网站),整个操作流程如下:

1. 重启 Macbook,在启动的时候按住 command + R,然后系统会尽入 recovery 模式。

2. 选择语言,点下一步,然后在菜单栏选择打开 terminal。

3. 输入 csrutil disable 禁掉 SIP,然后正常重启 macbook。

4. 打开 terminal,输入 ioreg -l | grep board-id 查看你的 board-id,

5. 在这个目录 /System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/PlugIns/X86PlatformPlugin.kext/Contents/Resources 下面找到你的 board-id 对应的 .plist 文件

6. 用管理员账户编辑上一步中的 plist 文件,比如 sudo vim Mac-2BD2C31983FE1634.plist

7. 修改以下参数,然后保存:

<key>TCPKeepAliveDuringSleep</key>

<false/>

<key>NotificationWake</key>

<false/>

<key>DNDWhileDisplaySleeps</key>

<true/>

8. 重启 mac,按照第 1,2 步进入 recovery 模式,开启 SIP,csrutil enable。

9. 正常重启 mac,就可以了。可以用这个命令 ioreg -l | grep IOPlatformFeatureDefaults 来查看修改后的状态。

修改这三项是什么意思呢,网上有人做出了解释:

TCPKeepAliveDuringSleep:就是在睡眠的时候TCP你就不要老想着连接WiFi网络存活了。

NotificationWake:意思是随机唤醒然后检查提醒,这个也改成false关闭吧。

DNDWhileDisplaySleeps:意思是do not distrub while sleep. 这个意思是屏幕睡着了, 你就别打扰我, 让我安心睡眠。 如果有些人希望屏幕睡眠了还能用, 自己考虑这个要不要改成ture。

需要指出的是,这个方法能解决98%以上的Mac待机耗电多的难题。如果你试用这个方法后,仍然无效,而你凑巧是2015年的Macbook,那么问题原因可能是15款MacBook的一个Bug:

诡异的系统设置是15年款的macbook升级到sierra后有的,因为我找了很多同事的对比,他们captian系统的电源参数都是正常符合上述的式子的,可以正常休眠,然后15年款之前的升级到sierra参数也符合,就我和另外几个15年款的mac升级sierra后出现无法休眠问题。

解决办法:

附录历程:

1)其实掉电,升级10.12后就有,只不过那个时候,手动关闭WiFi,掉电还能忍耐(一晚上8%)。

2)Mac OS在10.13.4之前是没问题的,待机耗电也在可忍耐范围之内,一晚上8%。10.13.4及之后,掉线大增,一晚上(7个小时)18%

3)中间有查询资料,看看如何解决,尝试了包括重置SMC之类的,都无效。

4)我彻底无法忍耐之后,就开始投入时间解决这个问题。包括通过终端命令:pmset -g custom,查看tcpkeepalive有没有关闭(参数解释见这里:https://www.deaboway.com/macbook-pro-2017-powon.html ),并关闭,然而无效。

5)准备四五次尝试,然后当尝试文章上面说到的解决方案后就直接解决了,撒花!