UTILITY · SHELL · MIT

关闭自动更新,但一定要留好退路。

一个可恢复、幂等的 shell 方案,用于关闭 macOS 自动系统更新检查、下载和安装,同时保留通过系统设置或 softwareupdate 手动维护系统的能力。

ShellMIT可恢复手动更新仍可用
$ ./disable-macos-updates.sh

→ softwareupdate --schedule off
→ 备份 SoftwareUpdate 偏好设置
→ 5 个自动更新键设为 0
→ 可选关闭 Dock 更新角标
→ 验证结果

✓ 验证失败自动回滚

$ ./restore-macos-updates.sh
✓ 恢复备份 / 正常更新计划

01 / 设计

关闭自动策略,但不要破坏手动维护。

脚本不会停用 softwareupdated,也不会修改 Apple 更新服务器地址,因此仍可使用“系统设置”或 softwareupdate 手动更新。

01

可恢复

修改前备份相关偏好设置,并提供配套 restore 脚本恢复自动更新行为。

02

幂等

项目目标不是只在“干净系统”上运行一次,而是允许重复执行而不依赖脆弱的初始状态。

03

验证与回滚

disable 脚本会检查最终值;验证失败时自动回滚,而不是把系统留在半修改状态。

02 / 修改内容

一个计划开关,加五个更新偏好值。

Dock 中“系统设置”的更新角标属于可选项,可以通过参数保留。

Schedulesoftwareupdate --schedule off
AutomaticCheckEnabled关闭
AutomaticDownload关闭
AutomaticallyInstallMacOSUpdates关闭
ConfigDataInstall关闭
CriticalUpdateInstall关闭

03 / 使用

一个脚本关闭,一个脚本恢复。

脚本通过 sudo 请求管理员权限;脚本本身不包含密码,也不需要联网。

chmod +x disable-macos-updates.sh restore-macos-updates.sh
./disable-macos-updates.sh

# 保留系统设置 Dock 角标
./disable-macos-updates.sh --keep-dock-badge

# 恢复自动更新
./restore-macos-updates.sh

必须明确的安全代价

关闭自动更新也会关闭配置数据更新和关键安全更新的自动安装,这会增加系统长期暴露在已知漏洞下的风险。仓库明确建议定期手动检查并安装更新。

README 将方案定位为面向 Catalina 及更新版本设计,并明确写了 macOS 13 Ventura 与 macOS 14 Sonoma。Apple 后续可能调整更新机制,因此新系统上使用前仍应检查脚本输出。