MacUpdateGuard v4.1 完整笔记(含查看、执行、原理、恢复)
一、下载并执行的完整命令
bash
cd ~ && curl -O https://raw.githubusercontent.com/ArdANANG/MacUpdateGuard/main/MacUpdateGuard.sh && chmod +x MacUpdateGuard.sh && sudo ./MacUpdateGuard.sh
命令含义拆解
| 命令 | 作用 |
|---|---|
cd ~ |
进入用户目录/Users/oneDream |
curl -O url |
从 GitHub 下载脚本 |
chmod +x |
添加执行权限 |
sudo ./ |
以管理员权限运行 |
✅ 脚本被保存到:
bash
/Users/oneDream/MacUpdateGuard.sh
二、如何查看这个脚本的具体内容
方式一:终端查看(推荐)
bash
cat /Users/oneDream/MacUpdateGuard.sh
方式二:分页查看(内容较多时)
bash
less /Users/oneDream/MacUpdateGuard.sh
按 q 退出
方式三:用文本编辑器打开
bash
open -e /Users/oneDream/MacUpdateGuard.sh
👉 脚本位置固定为:
bash
/Users/oneDream/MacUpdateGuard.sh
三、脚本长什么样(核心结构)
bash
#!/bin/bash
# MacUpdateGuard v4.1
# 作者: bili_25396444320
# 屏蔽的苹果域名
DEFAULT_DOMAIN_LIST=(
"swscan.apple.com"
"mesu.apple.com"
"swdist.apple.com"
"swcdn.apple.com"
"gdmf.apple.com"
"xp.apple.com"
)
# 主要功能函数
disable_system_updates()
restore_system_updates()
execute_disable_actions()
configure_hosts_block()
四、禁用更新时,脚本具体做了什么
当你选择菜单 1 时,脚本执行以下核心步骤:
1️⃣ 关闭更新计划
bash
sudo softwareupdate --schedule off
2️⃣ 禁用所有自动更新配置
bash
defaults write ... AutomaticCheckEnabled -bool FALSE
3️⃣ 备份并修改 /etc/hosts
bash
# 备份
sudo cp /etc/hosts /etc/hosts.bak_20260608090111
# 追加屏蔽规则
127.0.0.1 swscan.apple.com
127.0.0.1 mesu.apple.com
# ... 共 6 个域名
4️⃣ 禁用更新守护进程
bash
sudo launchctl disable system/com.apple.softwareupdated
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.softwareupdated.plist
5️⃣ 清除小红点和缓存
bash
defaults write com.apple.systempreferences AttentionPrefBundleIDs 0
killall Dock
sudo rm -f /var/db/SoftwareUpdate.badge
sudo rm -rf /Library/Updates/*
6️⃣ 刷新 DNS
bash
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
7️⃣ 禁用电源唤醒更新
bash
sudo pmset -a powernap 0
sudo pmset -a womp 0
五、核心原理(一句话总结)
通过 Hosts 劫持 + 禁用系统服务 + 清除缓存通知,让 Mac 完全无法检查、下载、提醒系统更新。
分层原理表
| 层面 | 方法 | 目标 |
|---|---|---|
| 网络层 | Hosts 重定向 6 个苹果域名 | 连不上更新服务器 |
| 服务层 | 禁用softwareupdated 守护进程 |
更新服务不运行 |
| 配置层 | 修改SoftwareUpdate.plist |
关闭所有更新开关 |
| UI 层 | 删除 badge / 通知 | 无小红点、无弹窗 |
| 电源层 | 关闭 Power Nap | 睡眠时不唤醒检查 |
六、如何恢复系统更新(推荐方式)
✅ 使用脚本自带的恢复功能
bash
sudo /Users/oneDream/MacUpdateGuard.sh
然后选择:
text
2. 恢复系统自动更新
脚本会自动:
- 恢复
/etc/hosts备份 - 重新启用更新服务
- 恢复电源设置
- 刷新系统状态
✅ 这是最安全、完整的恢复方式