前言
其实我几个月前就弄好了,当时用思维导图记录了下屏蔽系统更新的过程,然后一直拖着没写博客,半个多月前为了复现问题又弄了好久,然而还是没写博客,今天终于开始写了。导图导出的图片(放在最后)不知道能不能看清。不是每一步都是必要的,可能有冗余,主要看博客内容。
原理
其实就是删除macOS更新系统的程序(不是真删除,改后缀让程序无法运行)和系统偏好设置里面的系统更新面板程序(panel)。
屏蔽系统更新
关闭macOS的系统完整性保护(SIP)
进入恢复模式(Recovery)(按住Command+R然后开机)里面的终端(上方工具栏-实用工具-终端)输入csrutil disable
,重启进入macOS
删除系统更新功能
- 虽然关闭了SIP,但还是没有写权限的。
# 打开终端,运行命令添加读写权限 sudo mount -rw /
- 删除
系统偏好设置
面板里的软件更新
图标
修改文件名添加后缀.bak
,需要时还可以恢复cd /System/Library/PreferencePanes/ sudo mv SoftwareUpdate.prefPane SoftwareUpdate.prefPane.bak
- 删除软件更新功能(不影响App Store里面的软件更新)
cd /System/Library/CoreServices/ # 输入时使用TAB键补全路径 sudo mv Software\ Update.app Software\ Update.app.bak
- 重启,如果已经没什么问题了就可以跳过这一章节了看下部分PS了。
- 如果仍然存在小红点,删除系统更新小红点
# 实际上就是修改/Users/[username]/Library/Preferences/com.apple.systempreferences.plist文件 defaults write com.apple.systempreferences AttentionPrefBundleIDs 0 killall Dock
恢复系统更新
- 关闭macOS的系统完整性保护(SIP),具体见上一节: 关闭macOS的系统完整性保护(SIP)
- 如下:
# 打开终端,运行命令添加读写权限
sudo mount -rw /
cd /System/Library/PreferencePanes/
sudo mv SoftwareUpdate.prefPane.bak SoftwareUpdate.prefPane
cd /System/Library/CoreServices/
# 输入时使用TAB键补全路径
sudo mv Software\ Update.app.bak Software\ Update.app
重启
PS
- 删除之前点击了更新后下载的文件,节省空间。系统可能后台自动下载了更新的系统镜像,有好几个G,可以删除腾出空间。系统更新下载的文件存在
/Library/Updates/
目录,可用命令sudo rm -rf /Library/Updates/*
小心点使用哈,别打错了,用自动补全。 - 推荐收藏博客,遇到任何问题,在下面这张导图里找答案,一定可以解决,我已经使用了几个月了,没有任何BUG。