一个可逆的 macOS AppleScript 小工具,用于关闭系统更新检查与推送、清理已有更新角标,并锁定“软件更新”设置入口。需要时可在同一应用内恢复。
Warning
停留在旧版 macOS 会错过后续安全补丁。本工具的“关闭并隐藏”还会关闭关键安全更新和系统数据文件更新。使用前请确认你愿意承担这项安全风险,并保留可靠备份。
- 已在 macOS Sonoma 14.8.8 实机验证。
- 需要管理员账户。
- 适合明确要求停留在当前系统版本的个人 Mac。
- 不建议用于公司、学校或其他已由 MDM 管理的 Mac。
- macOS Ventura/Sequoia 可能可用,但未做完整实机验证。
点击“关闭并隐藏”后,工具会:
- 关闭 macOS 自动检查和自动下载。
- 关闭 macOS 自动安装、关键安全更新与系统数据文件更新。
- 禁用当前用户的
SoftwareUpdateNotificationManager通知组件。 - 通过可移除描述文件锁定“软件更新”页面,并禁止更新通知。
- 把 macOS 14 的
AttentionPrefBundleIDs设为正确的空字典,清除普通更新角标。 - 如果系统已经生成
com.apple.SoftwareUpdateServices.followup,会先备份CoreFollowUp数据库,然后只删除这一条软件更新跟进提醒。
工具不会修改 SIP、系统只读卷、softwareupdated 系统文件、hosts 或防火墙,也不会连接任何第三方服务。
- 在仓库的 Releases 页面下载
SystemUpdateToggle.app.zip。 - 解压后把
系统更新开关.app拖入“应用程序”文件夹,它便会出现在启动台。 - 首次打开时请右键应用并选择“打开”。
- 如果 Gatekeeper 仍阻止,前往“系统设置 → 隐私与安全性”,点击“仍要打开”。
本项目的 Release 使用本地临时签名,没有 Apple Developer ID 公证。如不信任预编译应用,请使用下面的源码构建方式。
git clone https://github.com/txk996/macos-update-toggle.git
cd macos-update-toggle
./scripts/build.sh生成文件位于:
dist/系统更新开关.app
dist/SystemUpdateToggle.app.zip
构建只使用 macOS 自带的 osacompile、codesign、PlistBuddy 和 ditto。
- 打开“系统更新开关”。
- 选择“关闭并隐藏”。
- 输入 macOS 管理员密码。密码由 macOS 系统授权窗口处理,工具不会读取或保存它。
- 如果出现“允许控制 Finder”,请选择允许。该权限只用来备份受保护的本地
CoreFollowUp数据库,并精确清理已有的软件更新提醒。 - 第一次使用时,工具会打开
SystemUpdateHidden.mobileconfig。 - 在“系统设置”中找到已下载的“系统更新完全隐藏”描述文件,检查内容后手动安装。
- 安装完成后再运行一次应用,选择“关闭并隐藏”。
预期结果:
- 系统设置顶部不再显示“有软件更新可用”。
- 应用图标不再显示更新红色角标。
- “通用 → 软件更新”会变灰,并显示“这些设置受描述文件控制”。这是正常状态。
- 打开“系统更新开关”。
- 选择“开启推送”。
- 输入管理员密码。
- 如果描述文件未能自动移除,请在“系统设置”的描述文件页面手动删除“系统更新完全隐藏”。
恢复后,工具会重新开启更新检查与通知,但仍保持“不自动下载、不自动安装 macOS”;关键安全更新与系统数据文件更新会恢复。
-
工具没有网络请求、统计、自动更新或第三方依赖。
-
清理顶部提醒前,原数据库会备份到:
~/Library/Application Support/系统更新开关/Backups/ -
SQL 删除条件固定为
uuid='com.apple.SoftwareUpdateServices.followup',不会删除 Apple ID、iCloud、双重认证或其他CoreFollowUp记录。 -
.gitignore明确排除*.db、*.bak、*.db-wal和*.db-shm,防止本机备份误上传到 GitHub。
- 先在应用内选择“开启推送”。
- 确认“系统更新完全隐藏”描述文件已删除。
- 删除
系统更新开关.app。 - 如不再需要还原备份,可自行删除上述
Backups文件夹。
它不是普通角标,而是 CoreFollowUp 生成的独立侧边栏项。请在“系统设置 → 隐私与安全性 → 自动化”中允许“系统更新开关”控制 Finder,然后再点一次“关闭并隐藏”。
macOS 14 会保留这个系统项目的占位,但禁止打开它。“变灰 + 受描述文件控制”就是隐藏配置已生效的表现。
通常不需要。工具会关闭并重新加载相关界面缓存。如果系统受保护进程仍保留旧状态,注销或正常重启一次即可。
工具针对 macOS 软件更新检查、通知和设置页面。描述文件的 DisableSoftwareUpdateNotifications 会禁止软件更新通知,但不是用来卸载 App Store 或阻止你手动更新应用。
涉及的主要配置项:
/Library/Preferences/com.apple.SoftwareUpdategui/<uid>/com.apple.SoftwareUpdateNotificationManagercom.apple.systempreferences描述文件载荷com.apple.appstore描述文件载荷~/Library/CoreFollowUp/items.db中唯一的软件更新跟进记录
描述文件标识符为:
com.codex.system-update-toggle
欢迎提交 issue 或 pull request。如果报告兼容性问题,请附上 macOS 大版本和小版本,但请勿上传 CoreFollowUp/items.db、系统日志全文或其他可能包含账户信息的文件。