前言

其实我几个月前就弄好了,当时用思维导图记录了下屏蔽系统更新的过程,然后一直拖着没写博客,半个多月前为了复现问题又弄了好久,然而还是没写博客,今天终于开始写了。导图导出的图片(放在最后)不知道能不能看清。不是每一步都是必要的,可能有冗余,主要看博客内容。

原理

其实就是删除macOS更新系统的程序(不是真删除,改后缀让程序无法运行)和系统偏好设置里面的系统更新面板程序(panel)。

屏蔽系统更新

关闭macOS的系统完整性保护(SIP)

进入恢复模式(Recovery)(按住Command+R然后开机)里面的终端(上方工具栏-实用工具-终端)输入csrutil disable,重启进入macOS

删除系统更新功能

  1. 虽然关闭了SIP,但还是没有写权限的。
    # 打开终端,运行命令添加读写权限
    sudo mount -rw /
    
  2. 删除 系统偏好设置 面板里的 软件更新 图标
    修改文件名添加后缀.bak,需要时还可以恢复
    cd /System/Library/PreferencePanes/  
    sudo mv SoftwareUpdate.prefPane SoftwareUpdate.prefPane.bak  
    
  3. 删除软件更新功能(不影响App Store里面的软件更新)
    cd /System/Library/CoreServices/
    # 输入时使用TAB键补全路径   
    sudo mv Software\ Update.app Software\ Update.app.bak  
    
  4. 重启,如果已经没什么问题了就可以跳过这一章节了看下部分PS了。
  5. 如果仍然存在小红点,删除系统更新小红点
    # 实际上就是修改/Users/[username]/Library/Preferences/com.apple.systempreferences.plist文件
    defaults write com.apple.systempreferences AttentionPrefBundleIDs 0
    killall Dock
    

恢复系统更新

  1. 关闭macOS的系统完整性保护(SIP),具体见上一节: 关闭macOS的系统完整性保护(SIP)
  2. 如下:
# 打开终端,运行命令添加读写权限
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

  1. 删除之前点击了更新后下载的文件,节省空间。系统可能后台自动下载了更新的系统镜像,有好几个G,可以删除腾出空间。系统更新下载的文件存在/Library/Updates/目录,可用命令sudo rm -rf /Library/Updates/*小心点使用哈,别打错了,用自动补全。
  2. 推荐收藏博客,遇到任何问题,在下面这张导图里找答案,一定可以解决,我已经使用了几个月了,没有任何BUG。

我花了挺多时间找出的系统更新相关的程序还有系统偏好设置里面系统更新的面板程序(panel),如果帮助到你了点个赞让更多人看到,帮助更多的人,因为我在网上找过很多教程都是治标不治本,过一会又会提醒。

屏蔽系统更新思维导图

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐