1
2
3
4
5
6
7
# Mac Software Update (sysin)
127.0.0.1 swdist.apple.com
127.0.0.1 swscan.apple.com
127.0.0.1 swcdn.apple.com
127.0.0.1 gdmf.apple.com
127.0.0.1 mesu.apple.com
127.0.0.1 xp.apple.com
圖:sudo vi /etc/hosts 添加的內(nèi)容
或者使用 (免費(fèi)軟件)。
注意: 最后要空一行。
一般到此步驟即可發(fā)生作用,自動更新已經(jīng)被屏蔽(下文部分可以忽略^_^)。
例外:如果使用了系統(tǒng)代理或者虛擬專用網(wǎng),將繞過本地 DNS 設(shè)置,僅僅設(shè)置 hosts 仍然會檢測到更新。
3.2 或者(或同時)使用防火墻軟件屏蔽
例如 Little Snitch,這是一個商業(yè)軟件。
備注:
在 macOS Big Sur 進(jìn)程為:/System/Library//./Support/
在 macOS 進(jìn)程為:/System/Library// Update.app///
但 具體功能似乎有所差異。
4. 清除系統(tǒng)更新標(biāo)記(紅點(diǎn) 1)4.1 臨時清除系統(tǒng)更新標(biāo)記
如果已經(jīng)檢測到更新,可以使用如下方法臨時去除更新通知標(biāo)記。
打開 “終端”,執(zhí)行如下命令(可能需要重啟才能生效):
1
2
defaults write com.apple.systempreferences AttentionPrefBundleIDs 0
Killall Dock
經(jīng)過測試在 中進(jìn)行 hosts 屏蔽后再次檢查軟件更新,會自動清除更新標(biāo)記。
4.2 修改權(quán)限
該步驟適用于 macOS Big Sur 和 macOS 。
macOS Big Sur 相對于之前的版本,系統(tǒng)完整性保護(hù)進(jìn)一步增強(qiáng),無法在“恢復(fù)模式”下修改下述文件的權(quán)限。操作略嫌復(fù)雜,步驟如下。
確保 已經(jīng)禁用(默認(rèn)禁用),在 ”? >> 系統(tǒng)偏好設(shè)置… >> 安全性和隱私 >> 文件保險箱” 查看確認(rèn)。
進(jìn)入恢復(fù)模式(啟動到 ),打開終端執(zhí)行如下命令:
參看:關(guān)于 macOS 恢復(fù)功能:重啟電腦,在黑屏的時候按住 command + R 進(jìn)入恢復(fù)模式(可以按住 command + R 不放,直到 Apple logo 畫面出現(xiàn),即可進(jìn)入恢復(fù)模式),然后點(diǎn)擊菜單欄 “實(shí)用工具 >> 終端”。
1
2
csrutil authenticated-root disable
csrutil disable
正常重啟到 macOS。
通過執(zhí)行 mount 命令查找要掛載的設(shè)備(這里定義為 ):
1
2
mount
/dev/disk1s5s1 on / (apfs, sealed, local, read-only, journaled)
注意:這里的 / 目錄的的設(shè)備名稱顯示 /dev/,那么應(yīng)該掛載的設(shè)備名稱是 /dev/disk1s5,s1 表示 “ 1”(APFS 快照):
創(chuàng)建一個新目錄用于掛載(這里定義為 ):
例如:~/mount
1
mkdir -p -m777 ~/mount
執(zhí)行掛載:
1
sudo mount -o nobrowse -t apfs
例如使用上面的值:
1
sudo mount -o nobrowse -t apfs /dev/disk1s5 ~/mount
在 下修改文件。
例如 (sysin):
1
2
cd ~/mount
sudo chmod 644 System/Library/PrivateFrameworks/SoftwareUpdate.framework/Versions/A/Resources/SoftwareUpdateNotificationManager.app/Contents/MacOS/SoftwareUpdateNotificationManager
執(zhí)行 sudo bless --folder /System/Library/ --bootefi --create-。
注意:將 修改為實(shí)際路徑如 ~/mount。
重啟系統(tǒng)生效。
在正常啟動系統(tǒng)后驗(yàn)證。
1
2
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
此時,即使不做任何屏蔽操作,可以正常檢測軟件更新,但不會出現(xiàn)更新標(biāo)記(紅點(diǎn)數(shù)字1)!
開啟 SIP
最后要恢復(fù) “系統(tǒng)完整性保護(hù)”,進(jìn)入恢復(fù)模式(啟動到 ),打開終端執(zhí)行如下命令:
參看:關(guān)于 macOS 恢復(fù)功能:重啟電腦,在黑屏的時候按住 command + R 進(jìn)入恢復(fù)模式(可以按住 command + R 不放,直到 Apple logo 畫面出現(xiàn),即可進(jìn)入恢復(fù)模式),然后點(diǎn)擊菜單欄 “實(shí)用工具 >> 終端”。
1
2
csrutil enable
csrutil authenticated-root disable
在當(dāng)前新版本中,執(zhí)行 csrutil enable 將自動配置 csrutil -root enable 即不允許從修改過的 啟動,所以需要同時執(zhí)行 csrutil -root disable 否則修改無效。
重啟完畢。
提示:在 macOS 中只需要在 操作即可,步驟如下:
進(jìn)入恢復(fù)模式(啟動到 ):
重啟電腦,在黑屏的時候按住 command + R 進(jìn)入恢復(fù)模式(可以按住 command + R 不放,直到 apple logo 畫面出現(xiàn))
參看:關(guān)于 macOS 恢復(fù)功能
打開 “終端”( (實(shí)用工具) -> (終端)):
1
2
3
4
切換到系統(tǒng)所在卷,默認(rèn)名稱是 “Macintosh HD”
cd /Volumes/Macintosh\ HD
如果修改了名稱,假如系統(tǒng)卷名稱是 Mac
cd /Volumes/Mac
取消 可執(zhí)行權(quán)限(默認(rèn)權(quán)限位是 755):
檢測系統(tǒng)更新時該進(jìn)程一直在運(yùn)行,即使屏蔽了網(wǎng)絡(luò)訪問,仍然可能出現(xiàn)通知標(biāo)記,所以修改它的可執(zhí)行權(quán)限來禁止它運(yùn)行。
1
chmod 644 System/Library/PrivateFrameworks/SoftwareUpdate.framework/Versions/A/Resources/SoftwareUpdateNotificationManager.app/Contents/MacOS/SoftwareUpdateNotificationManager
退出終端,重啟電腦,操作完畢。
5. 如果需要更新
并不建議采用補(bǔ)丁加補(bǔ)丁的方式在線更新,雖然操作省事,容易導(dǎo)致系統(tǒng)卡頓,出現(xiàn)異常,甚至出現(xiàn)未知故障,可以使用完整軟件包升級或者全新安裝:
6. 禁用 App Store 更新6.1 取消 “自動更新”
App Store > 偏好設(shè)置…,取消勾選 “自動更新”(默認(rèn))。
6.2 清除更新標(biāo)記(數(shù)字角標(biāo))
如果已經(jīng)檢測到更新,App Store 圖標(biāo)上出現(xiàn)紅點(diǎn)數(shù)字,打開終端執(zhí)行如下命令可以清除:
1
2
defaults write com.apple.appstored.plist BadgeCount 0
Killall Dock
App Store 左側(cè)的更新條目通知也會清空。
6.3 禁用標(biāo)記 App 圖標(biāo)(禁用數(shù)字角標(biāo))
系統(tǒng)偏好設(shè)置… > 通知與專注模式,通知,選擇 “App Store” 取消勾選 “標(biāo)記 App 圖標(biāo)”(也可以完全關(guān)閉該項(xiàng)通知)。
參考:
6.4 可選步驟(僅供參考)
上述步驟已經(jīng)可以禁用更新了,以下內(nèi)容是非必要的,一般忽略即可。
但是如果檢測到了更新以下兩處仍然會有提示(非 MAS App 不受影響):
禁用全局 App 更新通知
編輯 hosts 文件,添加如下內(nèi)容: