【macOS】彻底禁止macOS自动更新并去除更新标记和通知 | 您所在的位置:网站首页 › 禁止更新软件怎么设置 › 【macOS】彻底禁止macOS自动更新并去除更新标记和通知 |
如何彻底禁止 macOS Monterey 自动更新,去除更新标记和通知
如何彻底禁止 macOS Big Sur 自动更新,去除更新标记和通知
如何彻底禁止 macOS Catalina 自动更新,去除更新标记和通知
随着 macOS Monterey 12.5 的发布,macOS Monterey 的功能和性能已经大幅改善,达到了当前版本的最佳状态,Monterey 更新的使命已经完成,是时候屏蔽自动更新了!建议普通用户长期保持该版本直到 13.5 的发布。macOS 爱好者和开发者可以转战 Ventura。
如果您想快速屏蔽更新,只需要查看 “3.1 编辑 hosts 文件,添加如下内容” 此章节即可。 提示: 以下步骤不是完全必要,但是全部执行可以确保解决顽固性的更新通知角标出现。 本文针对 macOS Monterey,低版本或者更新版本有限适用。 如果是新安装系统,暂时不要联网,可以确保完美屏蔽更新。 1. 取消自动更新选项请选取苹果菜单 > “系统偏好设置”,然后点按 “软件更新”。 取消勾选:“自动保持我的 Mac 运行最新版本” 参看:在 Mac 上更改 “软件更新” 偏好设置 2. macOS Monterey 如何进行自动更新路径:检测 > 通知 > 下载 检测:进程 /System/Library/CoreServices/Software Update.app/Contents/Resources/softwareupdated 访问 Apple 相关 URL 检测软件更新; 要访问的域名主要如下:swdist.apple.comswscan.apple.comswcdn.apple.comxp.apple.com 检测:进程 /usr/libexec/mobileassetd 访问 Apple 相关 URL 检测软件更新(该项为 Monterey 新增); 要访问的域名主要如下:gdmf.apple.comxp.apple.com 通知:进程 /System/Library/PrivateFrameworks/SoftwareUpdate.framework/Versions/A/Resources/SoftwareUpdateNotificationManager.app/Contents/MacOS/SoftwareUpdateNotificationManager 负责通知,产生系统更新标记(小红点); 下载:进程 /usr/libexec/nsurlsessiond 主要负责下载软件更新 (sysin)。 要访问的域名主要如下:mesu.apple.comupdates.cdn-apple.com 注意:以上为笔者粗略分析,具体进程执行的功能仅供参考,但屏蔽方法是有效的。 所以要屏蔽自动更新和更新标记出现,解决方案如下: 检测(屏蔽网络访问) > 通知(取消执行权限) > 下载(屏蔽网络访问)。 3. 屏蔽网络访问 3.1 编辑 hosts 文件,添加如下内容手动编辑:打开终端,执行命令 sudo vi /etc/hosts,添加以下条目: 1234567 ## Mac Software Update (sysin)127.0.0.1 swdist.apple.com127.0.0.1 swscan.apple.com127.0.0.1 swcdn.apple.com127.0.0.1 gdmf.apple.com127.0.0.1 mesu.apple.com127.0.0.1 xp.apple.com
推荐使用 SwitchHosts(免费软件)。 注意:SwitchHosts 最后要空一行。 一般到此步骤即可发生作用,自动更新已经被屏蔽(下文部分可以忽略^_^)。 例外:如果使用了系统代理或者虚拟专用网,将绕过本地 DNS 设置,仅仅设置 hosts 仍然会检测到更新。 3.2 或者(或同时)使用防火墙软件屏蔽例如 Little Snitch,这是一个商业软件。 新建规则 1:禁止 nsurlsessiond 出站访问 Process Name:/usr/libexec/nsurlsessiond Deny Outgoing Connections To: Any Server 新建规则 2:禁止 mobileassetd 出站访问 Process Name:/usr/libexec/mobileassetd Deny Outgoing Connections To: Any Serve 新建规则 3:禁止 softwareupdated 出站访问 Process Name:/System/Library/CoreServices/Software Update.app/Contents/Resources/softwareupdated Deny Outgoing Connections To: Any Server 备注: 在 macOS Big Sur 进程为:/System/Library/PrivateFrameworks/MobileSoftwareUpdate.framework/Support/softwareupdated 在 macOS Catalina 进程为:/System/Library/CoreServices/Software Update.app/Contents/Resources/softwareupdated 但 softwareupdated 具体功能似乎有所差异。 4. 清除系统更新标记(红点 1) 4.1 临时清除系统更新标记如果已经检测到更新,可以使用如下方法临时去除更新通知标记。 打开 “终端”,执行如下命令: 12 defaults write com.apple.systempreferences AttentionPrefBundleIDs 0Killall Dock经过测试在 Monterey 中进行 hosts 屏蔽后再次检查软件更新,会自动清除更新标记。 4.2 修改权限该步骤适用于 macOS Big Sur 和 macOS Monterey。 macOS Big Sur 相对于之前的版本,系统完整性保护进一步增强,无法在“恢复模式”下修改下述文件的权限。操作略嫌复杂,步骤如下。 确保 FileVault 已经禁用(默认禁用),在 ” >> 系统偏好设置… >> 安全性和隐私 >> 文件保险箱” 查看确认。 进入恢复模式(启动到 recoveryOS),打开终端执行如下命令: 参看:关于 macOS 恢复功能:重启电脑,在黑屏的时候按住 command + R 进入恢复模式(可以按住 command + R 不放,直到 apple logo 画面出现)即可进入恢复模式,然后点击菜单栏,“实用工具 >> 终端”。 12 csrutil authenticated-root disablecsrutil disable正常重启到 macOS。 通过执行 mount 命令查找要挂载的设备(这里定义为 ): 12 $ mount/dev/disk1s5s1 on / (apfs, sealed, local, read-only, journaled)注意:这里的 / 目录的的设备名称显示 /dev/disk1s5s1,那么应该挂载的设备名称是 /dev/disk1s5,s1 表示 “Snapshot 1”(APFS 快照): 创建一个新目录用于挂载(这里定义为 ): 例如:~/mount 1 mkdir -p -m777 ~/mount执行挂载: 1 sudo mount -o nobrowse -t apfs例如使用上面的值: 1 sudo mount -o nobrowse -t apfs /dev/disk1s5 ~/mount在 下修改文件。 例如 (sysin): 12 cd ~/mountsudo chmod 644 System/Library/PrivateFrameworks/SoftwareUpdate.framework/Versions/A/Resources/SoftwareUpdateNotificationManager.app/Contents/MacOS/SoftwareUpdateNotificationManager执行 sudo bless --folder /System/Library/CoreServices --bootefi --create-snapshot。 注意:将 修改为实际路径如 ~/mount。 重启系统生效。 在正常启动系统后验证。 12 ls -l /System/Library/PrivateFrameworks/SoftwareUpdate.framework/Versions/A/Resources/SoftwareUpdateNotificationManager.app/Contents/MacOS/SoftwareUpdateNotificationManager-rw-r--r-- 1 root wheel 668960 2 26 15:05 /System/Library/PrivateFrameworks/SoftwareUpdate.framework/Versions/A/Resources/SoftwareUpdateNotificationManager.app/Contents/MacOS/SoftwareUpdateNotificationManager此时,即使不做任何屏蔽操作,可以正常检测软件更新,但不会出现更新标记(红点数字1)! 开启 SIP 最后要恢复 “系统完整性保护”,进入恢复模式(启动到 recoveryOS),打开终端执行如下命令: 参看:关于 macOS 恢复功能:重启电脑,在黑屏的时候按住 command + R 进入恢复模式(可以按住 command + R 不放,直到 apple logo 画面出现)即可进入恢复模式,然后点击菜单栏,“实用工具 >> 终端”。 1 csrutil enable注意不要执行 csrutil authenticated-root enable,否则权限修改失效。 重启完毕。 提示:在 macOS Catalina 中只需要在 recoveryOS 操作即可,步骤如下: 进入恢复模式(启动到 recoveryOS): 重启电脑,在黑屏的时候按住 command + R 进入恢复模式(可以按住 command + R 不放,直到 apple logo 画面出现) 参看:关于 macOS 恢复功能 打开 “终端”(Utilities (实用工具) -> Terminal(终端)): 1234 # 切换到系统所在卷,默认名称是 “Macintosh HD”cd /Volumes/Macintosh\ HD# 如果修改了名称,假如系统卷名称是 Maccd /Volumes/Mac取消 SoftwareUpdateNotificationManager 可执行权限(默认权限位是 755): 检测系统更新时该进程一直在运行,即使屏蔽了网络访问,仍然可能出现通知标记,所以修改它的可执行权限来禁止它运行。 1 chmod 644 System/Library/PrivateFrameworks/SoftwareUpdate.framework/Versions/A/Resources/SoftwareUpdateNotificationManager.app/Contents/MacOS/SoftwareUpdateNotificationManager退出终端,重启电脑,操作完毕。 5. 如果需要更新并不建议采用补丁加补丁的方式在线更新,虽然操作省事,容易导致系统卡顿,出现异常,甚至出现未知故障,可以使用完整软件包升级或者全新安装: 下载本站 macOS 镜像,完整安装: macOS 下载汇总macOS Monterey 下载 或者取消上述第 3 条的屏蔽,访问 App Store 下载 macOS 完整软件包,下载后会自动保存在“应用程序”下面,直接安装即可。 6. 禁用 App Store 更新 6.1 取消 “自动更新”App Store > 偏好设置…,取消勾选 “自动更新”(默认)。 6.2 清除更新标记(数字角标)如果已经检测到更新,App Store 图标上出现红点数字,打开终端执行如下命令可以清除: 12 defaults write com.apple.appstored.plist BadgeCount 0Killall DockApp Store 左侧的更新条目通知也会清空。 6.3 禁用标记 App 图标(禁用数字角标)系统偏好设置… > 通知与专注模式,通知,选择 “App Store” 取消勾选 “标记 App 图标”(也可以完全关闭该项通知)。 参考:https://developer.apple.com/documentation/devicemanagement/appstore 6.4 可选步骤(仅供参考)上述步骤已经可以禁用更新了,以下内容是非必要的,一般忽略即可。 但是如果检测到了更新以下两处仍然会有提示(非 MAS App 不受影响): Apple logo 菜单下的 App Store… 会提示有 “x项更新” (可以重复 “6.2 清除更新标记(数字角标)”) 打开 App Store 右侧会提示可更新的 App 列表 禁用全局 App 更新通知编辑 hosts 文件,添加如下内容: 手动编辑:打开终端,执行命令sudo vi /etc/hosts,添加以下条目: 1 127.0.0.1 gsp64-ssl.ls.apple.com备注:以上地址为笔者实际检测地址,因网络环境差异,地址可能有所差异,如果无效请反馈。使用防火墙屏蔽进程可以彻底解决该问题。 推荐使用 SwitchHosts(免费软件)。 或者(或同时)使用防火墙软件屏蔽: 例如 Little Snitch,这是一个商业软件。 新建规则 1:禁止下载更新相关的数据 Process Name:/usr/libexec/nsurlsessiond Deny Outgoing Connections App Store 更新 App 时可能需要访问以下主机: 以下是 Apple 官方提供的列表,请根据需要屏蔽。 主机端口协议OS描述支持代理 *.itunes.apple.com 443、80 TCP iOS、Apple tvOS 和 macOS 商店内容,如 App、图书和音乐 是 *.apps.apple.com 443 TCP iOS、Apple tvOS 和 macOS 商店内容,如 App、图书和音乐 是 *.mzstatic.com 443 TCP iOS、Apple tvOS 和 macOS 商店内容,如 App、图书和音乐 — itunes.apple.com 443、80 TCP iOS、Apple tvOS 和 macOS 是 ppq.apple.com 443 TCP iOS、Apple tvOS 和 macOS 企业 App 验证 — 禁用单个 App 更新通知打开 Finder (访达),浏览到侧边栏 Applications(应用程序),找到不需要更新的 App,点击右键 “显示包内容”,此时出现 Content 文件夹,展开该文件夹,可以看到下面有个 _MASReceipt 文件夹,下面有个 receipt 文件。将 receipt 文件内容清空或者直接将 _MASReceipt 文件夹删除,即可禁用该 App 自动检测 App Store 软件更新(有限支持)。 在终端中执行的示例,这里以微信(WeChat)为例: 清空 receipt 文件内容:echo '' > /Applications/WeChat.app/Contents/_MASReceipt/receipt 或者删除 _MASReceipt 文件夹:rm -rf /Applications/WeChat.app/Contents/_MASReceipt/ |
CopyRight 2018-2019 实验室设备网 版权所有 |