作者:gc(at)sysin.org,主页:www.sysin.org
请访问原文链接:https://sysin.org/article/disable-macos-update/,查看最新版。
提示:
以下步骤不是完全必要,但是全部执行可以确保解决顽固性的更新通知角标出现。
以下步骤主要针对 macOS Catalina,macOS Mojave 有限适用,更低的版本不适用。
如果是新安装系统,暂时不要联网,确保完美屏蔽更新。
1. 取消自动更新选项
请选取苹果菜单 > “系统偏好设置”,然后点按“软件更新”。
取消勾选:“自动保持我的 Mac 最新”
2. 清除系统更新标记(红点 1)
如果已经检测到更新,可以使用如下方法临时去除更新通知标记。
打开“终端”,执行如下命令:
defaults write com.apple.systempreferences AttentionPrefBundleIDs 0
Killall Dock
- 1
- 2
3. 屏蔽网络访问
3.1 编辑 hosts 文件,添加如下内容:
推荐使用 SwitchHosts!(免费软件)
127.0.0.1 swscan.apple.com
127.0.0.1 swcdn.apple.com
127.0.0.1 swdist.apple.com
- 1
- 2
- 3
3.2 或者(或同时)使用防火墙软件屏蔽:
推荐 Little Snitch,这是一个商业软件
新建规则 1:
Process Name:/System/Library/CoreServices/Software Update.app/Contents/Resources/softwareupdated
Deny Outgoing Connections
To: Any Server
新建规则 2:
Process Name:/System/Library/PrivateFrameworks/SoftwareUpdate.framework/Versions/A/Resources/SoftwareUpdateNotificationManager.app/Contents/MacOS/SoftwareUpdateNotificationManager
Deny Outgoing Connections
To: Any Server
4. 修改权限
该步骤需要禁用 SIP(系统完整性保护),或者在恢复模式下直接操作。
禁用 SIP 需要进入恢复模式,然后要重新打开 SIP,步骤略嫌繁琐,本例直接在恢复模式下操作。
进入恢复模式(启动到 recoveryOS):
重启电脑,在黑屏的时候按住 command + R 进入恢复模式(可以按住 command + R 不放,直到 apple logo 画面出现)
打开“终端”(Utilities (实用工具) -> Terminal(终端)):
# 切换到系统所在卷,默认名称是 “Macintosh HD”
cd /Volumes/Macintosh\ HD
# 如果修改了名称,假如系统卷名称是 Mac
cd /Volumes/Mac
- 1
- 2
- 3
- 4
取消 SoftwareUpdateNotificationManager 可执行权限(默认权限位是 751):
检测系统更新时该进程一直在运行,即使屏蔽了网络访问,仍然可能出现通知标记,所以修改它的可执行权限来禁止它运行。
chmod 644 System/Library/PrivateFrameworks/SoftwareUpdate.framework/Versions/A/Resources/SoftwareUpdateNotificationManager.app/Contents/MacOS/SoftwareUpdateNotificationManager
- 1
清空 /Library/Updates 文件夹:
如果已经检测到更新,新版本系统的描述等信息保存在这个文件夹下面。
rm -rf Library/Updates/
- 1
备注:取消 /Library/Updates 文件夹的写入权限(默认权限位是 755):
chmod -R 444 Library/Updates/
,没有实际意义,仍然会写入到其他文件夹(未知)。
退出终端,重启电脑,操作完毕。
5. 如果需要更新
建议访问 App Store 下载 macOS 软件包,下载后会自动保存在“应用程序”下面,直接安装即可。