leesamsik
V2EX  ›  macOS

macOS 屏蔽更新的方法

  •  
  •   leesamsik · 4 days ago · 2663 views

    我的设备是 M2Pro 的 MBP ,目前系统停在 15.8 不准备再升级了。27 的系统更新提示实在是烦人,最近发现把 Beta 版更新开关打开,然后选择“macOS Sequoia Public Beta 版”就不会有 macOS27 的更新提示了。操作简单且不用更改系统设置,需要的 V 友可以试试

    15 replies    2026-09-20 21:55:03 +08:00
    Superoutman
        1
    Superoutman  
    PRO
       4 days ago via iPhone
    晚上回去试试
    hangzhou
        2
    hangzhou  
       4 days ago
    xi't 系统已经下载好了,不想升级怎么办。问 gpt 说是只能关机或启用 caffeinate -dimsu 命令,不让电脑进入睡眠。现在只要待机就会自动升级系统
    leesamsik
        3
    leesamsik  
    OP
       4 days ago
    @hangzhou 系统设置 > 通用 > 储存空间,检查“macOS”或“应用程序”分类下的安装包文件,删除
    shintendo
        4
    shintendo  
       4 days ago
    但是那个 beta 更新很频繁,也挺烦的
    ech2o
        5
    ech2o  
       4 days ago
    @hangzhou #2 没下载好啊,大版本安装包只能手动点击升级才下载,不信你去 update 文件夹看看
    bokix
        6
    bokix  
       4 days ago
    我之前是让 codex 写了一个 plist ,会屏蔽更新的,应该是这个帖子: https://www.v2ex.com/t/1160516#reply18
    yoyoyoyolol
        7
    yoyoyoyolol  
       4 days ago
    AI 时代全是漏洞,不更新有风险。前段时间 iOS18.6 之前的设备有个漏洞,打开一个病毒网页就可以把你本地的 keychain 都偷走了
    leesamsik
        8
    leesamsik  
    OP
       4 days ago via iPhone
    @bokix #6 收藏学习了,回头试试
    leesamsik
        9
    leesamsik  
    OP
       4 days ago via iPhone
    @shintendo #4 所以把 beta 测试选到自己所在的这个版本,更新的频率不高。
    leesamsik
        10
    leesamsik  
    OP
       4 days ago via iPhone
    @yoyoyoyolol #7 事实是这样,如果系统更新既能补漏,又不姑姑带来其他问题的话,没人会成天研究怎么屏蔽更新,大部分人其实都想无脑 OTA
    q534
        11
    q534  
       3 days ago
    我的方法,host 里面写一条:127.0.0.1 gdmf.apple.com ,既可以接受系统组件的更新比如 safari27 ,又不会收到系统本身更新的提示🫡
    n2Day
        12
    n2Day  
       3 days ago
    ttkanni
        13
    ttkanni  
       3 days ago via iPhone
    只加 host 不行,代理开了 TUN 还要在代理里写拦截规则,不然屏蔽会失效。
    ErZhou
        14
    ErZhou  
       3 days ago
    15.3 也可以吗
    vovov
        15
    vovov  
       3 days ago
    我写了一个脚本 toggle_apple_hosts.sh ,终端执行 sudo sh toggle_apple_hosts.sh 可自动切换是否更新系统,执行后重启电脑,小红点即可消失:

    ```bash
    #!/bin/bash

    # 确保脚本以 root 权限运行
    if [ "$EUID" -ne 0 ]; then
    echo "权限不足,请使用 sudo 运行此脚本: sudo $0"
    exit 1
    fi

    HOSTS_FILE="/etc/hosts"
    # 使用其中一个需要切换的域名作为状态判断基准
    CHECK_DOMAIN="swdist.apple.com"

    # 检查 hosts 文件中是否已存在这些域名
    if ! grep -q "$CHECK_DOMAIN" "$HOSTS_FILE"; then
    echo "错误:未在 $HOSTS_FILE 中找到相关域名,请先按照配置更新 hosts 文件。"
    exit 1
    fi

    # 检查当前是否已被注释 (行首以 # 开头并包含该域名)
    if grep -q "^#.*$CHECK_DOMAIN" "$HOSTS_FILE"; then
    echo "当前状态: [已放行] 系统更新(规则被注释)。"
    echo "正在切换为 -> [拦截] 模式 (仅拦截系统更新,保留 App Store)..."

    # 仅取消注释特定的 6 个域名(同时生效于 IPv4 和 IPv6 )
    sed -i '' -e '/swdist.apple.com/ s/^#*//' \
    -e '/swdownload.apple.com/ s/^#*//' \
    -e '/swcdn.apple.com/ s/^#*//' \
    -e '/gdmf.apple.com/ s/^#*//' \
    -e '/xp.apple.com/ s/^#*//' \
    -e '/mesu.apple.com/ s/^#*//' "$HOSTS_FILE"
    else
    echo "当前状态: [已拦截] 系统更新(规则生效中)。"
    echo "正在切换为 -> [放行] 模式..."

    # 仅为特定的 6 个域名添加注释(同时生效于 IPv4 和 IPv6 )
    sed -i '' -e '/swdist.apple.com/ s/^/#/' \
    -e '/swdownload.apple.com/ s/^/#/' \
    -e '/swcdn.apple.com/ s/^/#/' \
    -e '/gdmf.apple.com/ s/^/#/' \
    -e '/xp.apple.com/ s/^/#/' \
    -e '/mesu.apple.com/ s/^/#/' "$HOSTS_FILE"
    fi

    # 刷新 DNS 缓存
    echo "正在刷新 macOS DNS 缓存..."
    dscacheutil -flushcache
    killall -HUP mDNSResponder

    echo "切换完成!"
    ```
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2847 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 123ms · UTC 14:46 · PVG 22:46 · LAX 07:46 · JFK 10:46
    ♥ Do have faith in what you're doing.