拆解 RemoveMacAI 的配置档案:restriction 键、MCX 强制设置与把模型下载指向 127.0.0.1 的拦截技巧
【免费下载链接】RemoveMacAITurn off Apple Intelligence on macOS 27 and get its disk space back. One command, fully reversible.项目地址: https://gitcode.com/gh_mirrors/re/RemoveMacAI
macOS 27 取消了 Apple Intelligence 的总开关,关掉功能后十几 GB 的模型文件仍然留在磁盘上。开源工具RemoveMacAI用一条命令就能关闭功能、删除模型,并阻止 macOS 再次下载,而且全程可逆。这篇文章拆解它的核心产物——一个 配置档案(configuration profile):restriction键如何关掉有官方开关的设置、MCX 强制设置如何接管没有开关的设置,以及把模型下载指向 127.0.0.1 的拦截技巧到底是怎么回事。
为什么选择"配置档案"而不是改注册表
macOS 27 不再有单个总开关,如果只去关各个功能,系统需要时又会把模型悄悄下载回来;直接删文件又不稳定,还可能触碰系统保护边界。
RemoveMacAI 选择的是 Apple 自己的MDM 配置档案机制:工具生成一个标准的.mobileconfig文件,引导用户在"系统设置 > 配置文件"中批准(这一下点击是 macOS 的硬性要求,见 Commands.swift)。档案装上是系统级生效的,macOS 更新不会把它冲掉;而把档案删掉,所有改动原样恢复——这就是"完全可逆"的来源。
整个档案只有一个Configuration类型的主 payload,里面装了三类子 payload,各管一件事:
| 子 payload | 类型 | 负责的事 |
|---|---|---|
| ① restriction 键 | com.apple.applicationaccess | 关掉所有有官方开关键的功能 |
| ② MCX 强制设置 | com.apple.ManagedClient.preferences | 接管没有开关键的设置项 |
| ③ 下载拦截 | com.apple.ManagedClient.preferences | 把模型下载地址指向本机死地址 |
三类 payload 的生成代码集中在 Profile.swift 的data(keeping:)里,不到 40 行。
第一层:restriction 键——给官方开关上锁
com.apple.applicationaccess是 Apple 经典的"限制"payload(企业设备管理里用它锁 App Store、锁蓝牙等)。它的每个键对应一个官方命名的功能开关:
- 关 Siri:
allowAssistant = false - 关写作工具:
allowWritingTools = false - 关 Genmoji:
allowGenmoji = false - 关邮件摘要:
allowMailSummary = false
工具遍历"要关闭的功能列表",把每个功能对应的键全部写成false(Profile.swift)。"哪个功能对应哪些键"的完整映射在 Catalog.swift 的features目录里——从 Siri、写作工具、Genmoji、Image Playground,到邮件/信息/Safari/备忘录的摘要,共 13 项。
这种"上锁"的可见效果:设置页面对应的开关会被系统锁定,用户点不回去。removemacai status里那些绿色的off (locked)就是读到了这些被强制的键(判定逻辑见 System.swift)。
第二层:MCX 强制设置——没有开关的设置怎么办
有些设置根本不在applicationaccess的键表里:Siri 菜单栏图标(StatusMenuVisible)、语音唤醒(VoiceTriggerUserEnabled)、通知摘要(summarize_previews)、行内文本预测(NSAutomaticInlinePredictionEnabled)……这些没有"官方开关键",restriction 层管不到。
RemoveMacAI 用第二个 payload 类型com.apple.ManagedClient.preferences补上,也就是 macOS 的MCX(Managed Client)偏好强制机制:每个偏好域(如com.apple.Siri、group.com.apple.mail、.GlobalPreferences)单独生成一个 payload,内容统一是Forced→mcx_preference_settings结构(Profile.swift)。
"哪个域、哪个键、强制成什么值"由目录里的ForcedPreference描述(Catalog.swift)。比如通知摘要这条功能没有任何 restriction 键,靠的正是group.com.apple.usernoted域里summarize_previews = false这一个强制项(Catalog.swift)。
两层合起来的原则很简单:有官方键的用 restriction 上锁,没有的用 MCX 兜底,确保每个被关的功能都处于"用户改不回来"的状态。
第三层:把模型下载指向 127.0.0.1——最精巧的一步
删掉模型只是上半场:macOS 在功能需要时会自动把模型重新下载回来,磁盘空间又没了。
RemoveMacAI 的拦截技巧(源自先行工具 pared):Apple 的资产服务(Asset Service)支持按资产类型覆盖下载服务器地址。工具在com.apple.MobileAsset域下,为每一个被删除的模型集强制一个键:
DownloadServerBaseURLOverride-<资产类型> = https://127.0.0.1:9/removemacai-blocked/关键点:127.0.0.1是本机回环地址,端口9(discard 端口)上没有任何服务在监听。于是 macOS 每次尝试下载模型都会立刻失败——不是慢,是秒失败,磁盘永远不会被重新占满。这个地址定义在 Profile.swift。
哪些模型集会被拦截?只拦截"不再被任何人需要"的集合。判定函数 setsToRemove 的规则是:一个模型集若仍被某个"保留功能"需要,就不删、也不拦。这正是off --keep writing-tools能保住写作工具及其依赖模型的原因——保留项会自动传导到模型层。
可逆性是怎么做到的
- 稳定 UUID:每个 payload 的 UUID 由标识符经 SHA-1 生成(version 5 风格),永远不变。重新安装新档案时是"覆盖"而非"新增",不会留一堆残留(Profile.swift)。
- 自标记 payload:档案里额外写了一个以工具自身标识符为域的 payload(
installed: true+ 保留的功能清单),status命令靠它判断档案是否在生效(Profile.swift)。 - 允许移除:主 payload 显式设置
PayloadRemovalDisallowed: false,用户随时可自行删除。 - revert 就是删档案:
removemacai revert会打开配置文件页面引导你点"移除"(Commands.swift)。移除后,你原来的设置全部回来,macOS 需要时也会重新下载模型。
不碰系统就能先自检
removemacai selftest在不改动系统任何东西的情况下,把配置档案的生成逻辑重新跑一遍并验证:restriction 值是否正确、每个待删模型集是否都有127.0.0.1:9的拦截键、保留功能是否未被误伤、UUID 是否唯一且稳定(SelfTest.swift)。想动手前心里有底,可以先跑这个。
试一试
仓库是只读的,克隆一份即可用 Swift 构建(需 Apple 芯片的 Mac):
git clone https://gitcode.com/gh_mirrors/re/RemoveMacAI cd RemoveMacAI swift build -c release也可以用项目自带的 install.sh 一键下载最新 release(会校验 SHA-256)。
关键文件速查
| 想了解什么 | 看哪里 |
|---|---|
| 配置档案怎么拼出来的 | Sources/removemacai/Profile.swift |
| 功能 ↔ 开关键 / 模型集映射 | Sources/removemacai/Catalog.swift |
| "off (locked)" 状态怎么判定 | Sources/removemacai/System.swift |
| 两步走:装档案 → 删模型 | Sources/removemacai/Commands.swift |
| 一键自检 | Sources/removemacai/SelfTest.swift |
| 版本记录(0.2.3 修复了模型大小统计) | CHANGELOG.md |
📌一句话总结:RemoveMacAI 把"关功能、删模型、防下载"三件事全部装进一个标准配置档案——restriction 键上锁官方开关、MCX 强制设置兜底无键设置、DownloadServerBaseURLOverride把下载指向 127.0.0.1 的死端口。看懂这一个.mobileconfig,就看懂了整个工具。
【免费下载链接】RemoveMacAITurn off Apple Intelligence on macOS 27 and get its disk space back. One command, fully reversible.项目地址: https://gitcode.com/gh_mirrors/re/RemoveMacAI
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考