macOS后台下载由图形设置、系统偏好、launchd调度和权限校验四层共同控制:界面关闭“自动下载”仅限触发源头,需执行sudo defaults write禁用全局开关、softwareupdate --schedule off停定时唤醒,并依赖签名验证拦截未公证包。

macOS 系统更新程序的后台下载权限不是靠一个开关决定的,而是由图形设置、系统服务、偏好配置和权限校验四层共同约束。关掉界面里的“自动下载”,不等于后台彻底停摆——因为 softwareupdated 守护进程仍可能按计划唤醒并尝试联网。
图形界面设置:触发源头,但可被绕过
这是用户最常操作的一层,控制是否允许系统发起下载行为:
- 进入“系统设置 → 通用 → 软件更新 → 自动更新 → 高级”,必须关闭全部四项:下载新更新、安装 macOS 更新、安装 App Store 应用更新、安装安全响应和系统文件
- 单独关闭“自动保持我的 Mac 最新”主开关,仅禁用部分逻辑,高级选项里仍有残留下载可能
- 该设置写入的是用户级偏好,重启或系统策略刷新后可能被重置,尤其在 MDM 管理设备上
系统级偏好配置:真正生效的核心开关
图形界面背后依赖的是 com.apple.softwareupdate 的 plist 文件,直接修改它才能阻断底层下载逻辑:
- 执行 sudo defaults write /Library/Preferences/com.apple.softwareupdate AutomaticDownload -bool false,将全局下载开关设为 false
- 该命令影响所有用户账户,且优先级高于用户级设置,是防止重置的关键一步
- 配合 sudo killall softwareupdated 可立即终止当前活跃的更新检查进程
launchd 守护进程调度:决定“何时检查”,而非“是否下载”
softwareupdated 由 launchd 按固定周期(约每24小时)唤醒,即使界面已关,它仍会发起 HTTPS 请求获取元数据:
- 用 sudo softwareupdate --schedule off 可停用定时唤醒机制
- 但该命令不阻止手动触发或系统事件(如开机联网)引发的即时检查
- 真正切断检查链,需结合 hosts 屏蔽或防火墙规则,否则它仍会尝试连接 apple.com 更新域名
权限与签名验证:下载前的最后一道门
即便下载启动,macOS 仍会对安装包做双重校验:
- 下载的 .pkg 或完整安装器必须携带 Apple 签名,并通过 Gatekeeper 公证(Notarization)验证
- 未公证的更新包会被拒绝写入 /Library/Updates/,哪怕已开始下载也会中止
- 管理员密码不参与下载阶段,只在安装时介入;后台下载全程以 _softwareupdate 用户身份运行,无交互式权限提升


















