屏蔽 macOS 更新?我有新招

2022/10/25 macOS

随着年纪增长,对系统更新这件事似乎不那么热衷了,现在觉得设备只要能用就不想更新。iOS/iPadOS 可以通过安装 tvOS 描述文件轻松屏蔽系统更新,但是 macOS 显然就没有这样便捷的方法。

网络中流传的sudo softwareupdate --ignore "XXXXX"终端命令,早在 macOS 10.15.5 之后便失效了。

我记得 tvOS 描述文件要保持最新的版本,比如一台安装 tvOS15 描述文件的 iOS15 设备,无法屏蔽 iOS16的更新提醒,需要在 iOS16 发布以后,将描述文件同步换成 tvOS16 的,这样才能继续达到屏蔽效果。

最近想到一个新的思路:我在 iPhone 中一直用 Quantumult X 配合规则集,将 Apple 负责检测 iOS 系统更新的相关服务器域名设置为「REJECT」,同样可以达到屏蔽更新的效果。

这种方法唯一的缺点是:需要 Quantumult X 始终开启,但是我手机上的 Quantumult X 本来就是常开的,这一点对我来说倒是毫无影响。

而我的电脑也是常开 Clash X,如果使用相同的方法,是不是也能在 macOS 中产生同样的效果呢?

既然思路来了,说干就干。Clash X 自带日志功能,手动触发一次系统更新检测,通过 Clash X 日志可以发现,系统连接了swdist.apple.comgdmf.apple.comswscan.apple.comconfiguration.apple.com这4个域名,我猜测 Apple 可能是通过这四个域名检测 macOS 设备的升级信息。

再通过网络搜索参考资料,还发现了swcdn.apple.comswquery.apple.comswdownload.apple.com可能也是 Apple 用于更新检测的业务域名。

将上述 7 个域名和神机规则 DivineEngine 中屏蔽 iOS 更新的规则集再进行合并,得到一个包含 10 个域名的列表:

mesu.apple.com
gdmf.apple.com
updates-http.cdn-apple.com
xp.apple.com
swdist.apple.com
swscan.apple.com
configuration.apple.com
swcdn.apple.com
swquery.apple.com
swdownload.apple.com

将以上 10 个域名添加到 Clash X 的规则集中,并设置策略为 REJECT,macOS 更新提示果然消失了。

除了 Clash X,其他「网络调试软件」也可以进行类似设置,理论上也可以达到屏蔽效果。

当然,你也可以修改 macOS 内的 hosts 文件,将相关域名都指向 127.0.0.1,理论上也可以达到屏蔽效果。

你也可以在路由器(如果路由器支持的话)中修改hosts设置,将相关域名都指向 127.0.0.1,理论上也可以达到屏蔽效果。

倘若未来 Apple 使用新的域名用于系统更新检测,只要把新增域名在网络调试软件里设置为 REJECT,或者指向127.0.0.1,理论上也可以达到屏蔽效果。