macOS 彻底关闭系统更新红点与提示的无损方案(支持 Ventura/Sonoma 及更新版本)
在 macOS 11 (Big Sur) 之后,苹果移除了终端中传统的 softwareupdate --ignore 忽略更新命令。这就导致很多人在系统设置里关闭了“自动更新”后,系统依然会在后台偷偷下载更新信息,并在 Dock 栏和设置图标上强行打上烦人的“红点角标”。
本文提供一套无损、无需关闭 SIP (系统完整性保护) 且极易还原的组合拳方案。
第一步:关闭基础自动检查
首先在图形界面中关掉基础的自动下载:
- 打开 系统设置 > 通用 > 软件更新。
- 点击“自动更新”右侧的 ⓘ (信息图标)。
- 关闭所有选项(包括检查更新、下载新的更新、安装 macOS 更新等)。
第二步:Hosts 拦截与缓存清理(一键屏蔽)
由于苹果系统会在后台绕过设置悄悄联网验证新版本,最釜底抽薪的做法是在本地屏蔽苹果的更新验证服务器,同时清空它之前偷偷下载到本地的更新缓存和角标。
打开 终端 (Terminal),复制并执行以下连击命令(执行过程中可能需要输入你的开机密码):
# 1. 屏蔽苹果更新验证服务器
sudo sh -c 'echo "127.0.0.1 gdmf.apple.com" >> /etc/hosts'
sudo sh -c 'echo "127.0.0.1 mesu.apple.com" >> /etc/hosts'
# 2. 抹除系统底层的历史更新缓存数据
sudo defaults delete /Library/Preferences/com.apple.SoftwareUpdate.plist RecommendedUpdates 2>/dev/null
sudo defaults delete /Library/Preferences/com.apple.SoftwareUpdate.plist LastUpdatesAvailable 2>/dev/null
sudo defaults delete /Library/Preferences/com.apple.SoftwareUpdate.plist LastRecommendedUpdatesAvailable 2>/dev/null
# 3. 清理 Dock 栏与系统设置的红点角标缓存
defaults delete com.apple.systempreferences AttentionPrefBundleIDs 2>/dev/null
defaults delete com.apple.systemsettings AttentionPrefBundleIDs 2>/dev/null
# 4. 杀掉相关后台进程强制刷新
sudo killall softwareupdated
killall System\ Settings 2>/dev/null
killall Dock执行完毕后,Dock 栏会闪烁重启一次。此时不仅红点彻底消失,“软件更新”界面也会因为无法连接服务器而误以为当前已是最新版本,一劳永逸!
附:如何一键还原(未来需要升级时)
当你的工作需要,或者你确实想要升级到更高版本(如 macOS 15/16)时,只需解除网络屏蔽并唤醒服务即可。
在终端中执行以下连击命令:
# 1. 移除 hosts 中的屏蔽记录
sudo sed -i '' '/gdmf.apple.com/d' /etc/hosts
sudo sed -i '' '/mesu.apple.com/d' /etc/hosts
# 2. 杀掉更新后台服务,强制让其重新联网校验
sudo killall softwareupdated
killall System\ Settings 2>/dev/null
# 3. 强行触发一次后台更新检索
softwareupdate -l等待命令跑完,再次打开系统设置的“软件更新”,就能正常接收到官方的最新系统推送了。