最近两天发现MacBook pro在不插电源待机的时候掉电飞快,
而且有时候摸上去还烫烫的
盒盖睡眠一晚上也能掉30%多的电
甚至有一次放了一天,开盖直接显示电量低要充电了!
猜测应该是睡眠中被唤醒或者是mac根本就没进入睡眠状态
上网查了一下解决方案,目前效果良好
方法如下
如果终端返回的结果是:{"TCPKeepAliveDuringSleep"=Yes,"DNDWhileDisplaySleeps"=No,"TCPKeepAliveExpirationTimeout"=43200,"NotificationWake"=Yes}则是可以按照下面的操作来。
- 重启 Macbook,在启动的时候按住 command + R,然后系统会尽入 recovery 模式。
- 选择语言,点下一步,然后在菜单栏选择打开 terminal。
- 输入 csrutil disable 禁掉 SIP,然后正常重启 macbook。
- 打开 terminal,输入 ioreg -l | grep board-id 查看你的 board-id
(注意这里grep管道之前的字符是小写的L,然后才是“|”) - 在这个目录 /System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/PlugIns/X86PlatformPlugin.kext/Contents/Resources 下面找到你的 board-id 对应的 .plist 文件
- 用管理员账户编辑上一步中的 plist 文件,比如 sudo vim Mac-2BD2C31983FE1634.plist
- 把 TCPKeepAliveDuringSleep 修改为 false, 然后保存
<key>TCPKeepAliveDuringSleep</key>
<false></false>
<key>NotificationWake</key>
<false></false>
<key>DNDWhileDisplaySleeps</key>
<true></true>
- 重启 mac,按照第 1,2 步进入 recovery 模式,开启 SIP,csrutil enable。
- 正常重启 mac,就可以了。可以用这个命令 ioreg -l | grep IOPlatformFeatureDefaults 来查看修改后的状态。
这个改完后的意思是,TCPKeepAliveDuringSleep--这个就是在睡眠的时候TCP你就不要老想着连接WiFi网络存活了。NotificationWake--- 这个意思是随机唤醒然后检查提醒,这个也改成false关闭吧。DNDWhileDisplaySleeps --这个意思是do not distrub while sleep. 这个意思是屏幕睡着了, 你就别打扰我, 让我安心睡眠。 如果有些人希望屏幕睡眠了还能用, 自己考虑这个要不要改成ture。