别以为只删了模型:RemoveMacAI 禁用的 14 项功能里可能有你正在用的
【免费下载链接】RemoveMacAIDebloat macOS: turn off Apple Intelligence, analytics, ads and pop-ups. A native app and CLI, and every change can be undone.项目地址: https://gitcode.com/gh_mirrors/re/RemoveMacAI
RemoveMacAI 走红,靠的是"一条命令关掉 Apple Intelligence、释放约 12GB 磁盘"这个传播点。但模型删除只是这套工具的第二层动作:它真正做的事,是先通过一份配置描述文件(.mobileconfig)把 Apple Intelligence 的 14 项功能逐个锁死,再调用 Apple 私有 Unified Asset Framework 请求删除本地模型,并把模型下载地址劫持到本地封闭端口。换句话说,"删模型"只是结果之一,功能被禁用才是第一层后果——而这 14 项里,很可能就有你正在用的 Writing Tools、邮件摘要甚至 Xcode 补全。本文基于仓库源码逐一拆解这 14 项功能是如何被关闭的、--keep的选择性保留逻辑与模型依赖关系,以及删完之后怎么补救。
一、先看清机制:禁用的是功能,删除的只是模型
把 RemoveMacAI 对 Apple Intelligence 的处理拆开,是三层各司其职的动作,全部记录在 Commands.swift 的off流程里:
- 安装配置描述文件:把要关闭功能的限制键(restriction)和强制偏好(forced preference)写进
io.github.omlahore.removemacai标识的 profile,需要你在系统设置里手动批准安装; - 劫持模型下载:对每个被移除的模型集,profile 会把
com.apple.MobileAsset域下的DownloadServerBaseURLOverride-<AssetType>指向https://127.0.0.1:9/removemacai-blocked/(见 Profile.swift),让 macOS 想重新下载时直接失败; - 删除模型:通过动态加载
/System/Library/PrivateFrameworks/UnifiedAssetFramework.framework,建立 XPC 连接到com.apple.siri.uaf.subscription.service,发送ResetAssetSets操作(见 UAF.m)。
这套设计里最容易被忽略的是:功能开关与模型删除是独立的两件事。就算某个模型集因为网络或资产服务不可用而没删成,profile 里的功能锁定依然生效;反过来,即使模型全部保留,功能也可能已被锁 off。所以removemacai status会同时报告每个功能的 on/off 状态和每个模型集占用的磁盘字节——看状态时别只看空间数字。
二、14 项被禁功能的完整清单
Catalog.features数组(Catalog.swift)定义了恰好 14 项功能,每一项由"限制键 + 强制偏好 + 依赖模型集"三要素描述。按用途可以分成四类:
助手与生成类
| 功能(id) | 源码标题 | 关闭方式 | 依赖模型集 |
|---|---|---|---|
siri | Siri and Siri AI | 限制键allowAssistant+ 强制偏好(com.apple.Siri、com.apple.assistant.support) | foundation |
chatgpt | ChatGPT and other AI extensions | 限制键allowExternalIntelligenceIntegrations、allowExternalIntelligenceIntegrationsSignIn | 无 |
writing-tools | Writing Tools | 限制键allowWritingTools | foundation |
genmoji | Genmoji | 限制键allowGenmoji | foundation + visual |
image-playground | Image Playground | 限制键allowImagePlayground | foundation + visual |
摘要与智能回复类
| 功能(id) | 源码标题 | 关闭方式 | 依赖模型集 |
|---|---|---|---|
mail | Mail summaries and smart replies | 限制键allowMailSummary/allowMailSmartReplies+ 强制偏好(group.com.apple.mail) | foundation |
notification-summaries | Notification summaries | 强制偏好group.com.apple.usernoted的summarize_previews | foundation |
messages-summaries | Messages summaries | 强制偏好com.apple.MobileSMS的messageSummarizationEnabled | foundation |
safari-summaries | Safari summaries | 限制键allowSafariSummary | foundation |
notes-summaries | Notes transcription summaries | 限制键allowNotesTranscriptionSummary | foundation |
输入、照片与开发者类
| 功能(id) | 源码标题 | 关闭方式 | 依赖模型集 |
|---|---|---|---|
inline-predictions | Inline text predictions | 强制偏好.GlobalPreferences的NSAutomaticInlinePredictionEnabled | 无 |
spatial-photos | Spatial Photos | 强制偏好com.apple.spatialphotosrelive的LocallyDisabled | spatial |
photos-clean-up | Photos Clean Up | 无开关、无偏好,仅删除模型 | cleanup |
xcode-completion | Xcode predictive code completion | 无开关、无偏好,仅删除模型 | code |
清单里有两个值得注意的"隐形"功能:
- Photos Clean Up 和 Xcode 补全没有任何系统开关:它们在 Catalog 里 restrictions 与 preferences 全为空,禁用方式就是"删除模型 + 阻止下载"。所以删完模型后,系统设置里根本找不到对应的开关可以手动恢复——想要回来,只能重新触发模型下载(见下文补救路径)。这也解释了 README 为何专门提示:Photos Clean Up 不是在系统设置里开的,而是打开照片 App → 编辑 → 工具 → 清理(Clean Up)。
chatgpt与inline-predictions不依赖任何模型:关闭它们纯靠 profile 锁键,不涉及模型删除。这意味着它们的"关闭"和磁盘空间完全无关。
三、想留几个?--keep与它的模型连带效应
如果 14 项里确实有你依赖的功能,removemacai off --keep就是为你准备的:它会跳过这些功能,不写入它们的限制键,也不删除它们依赖的模型。用法如下:
removemacai features # 先看全部功能的 id 和标题 removemacai status # 看当前每项功能状态和模型占用 removemacai off --keep writing-tools,genmoji --dry-run # 预览将发生什么 removemacai off --keep writing-tools,genmoji--dry-run会精确列出"将要删除的模型"以及"因故保留的模型及原因"(Commands.swift),还不会真正改动系统——动手之前值得先跑一次。
保留逻辑的关键在Catalog.setsToRemove(keeping:):一个模型集只有当它的所有使用者都被关闭时才会被删除。换句话说,你保留的每个功能都会连带保住它依赖的整个模型集,而不是只保留"那一部分"模型。五个模型集的使用关系如下(Catalog.swift):
| 模型集 | 资产类型 | 用途 | 使用者 |
|---|---|---|---|
foundationModels | com.apple.MobileAsset.UAF.FM.GenerativeModels | Apple Intelligence 基础模型 | 9 项功能(siri、writing-tools、genmoji、image-playground、mail、notification/messages/safari/notes 摘要) |
visualModels | com.apple.MobileAsset.UAF.FM.Visual | 图像与 Genmoji 模型 | genmoji、image-playground |
spatialModels | com.apple.MobileAsset.UAF.Photos.SpatialPhotosRelive | 空间照片模型 | spatial-photos |
cleanUpModels | com.apple.MobileAsset.UAF.Photos.MagicCleanup | 照片清理模型 | photos-clean-up |
codeModels | com.apple.MobileAsset.UAF.FM.CodeLM | Xcode 代码补全模型 | xcode-completion |
由此能推演出几个反直觉的结论:
- 基础模型是"一荣俱荣"的最大块:9 项功能共用 foundation 模型集。只要
--keep里包含这 9 项中的任意一个(比如只留一个writing-tools),整个 foundation 模型集就不会被删。媒体普遍报道的"约 12GB 回收空间"里,大头正是这块基础模型——也就是说,你保留的功能越多,能回收的空间越少。 --keep genmoji会连带保住 visual 模型:因为 Genmoji 同时依赖 foundation 和 visual 两个模型集,保留它等于两块都留下。同理--keep image-playground也是。--keep chatgpt与--keep inline-predictions是"零成本"保留:它们不依赖任何模型集,保留它们不会妨碍任何模型删除,是想要空间又舍不得功能的折中最优解。
还有一个容易踩的坑,工具本身也在 0.2.5 的更新说明里明确过:--keep只是"不让 profile 锁 off 这个功能",并不会帮你把已经关闭的功能重新打开。off执行完后,warnKeptButOff会检查每个被保留功能的状态,如果它本来就是 off(比如系统层面早已关闭,或之前手动关过),会打印提示让你去系统设置里手动开启(Commands.swift)。所以"保留"和"启用"是两件事,别把--keep当成万能复活键。
四、删完发现功能缺失?三条补救路径
如果执行之后发现某功能确实离不开,RemoveMacAI 的每个动作都是可逆的,按影响范围从小到大有三条路径:
1. 只恢复 Apple Intelligence,保留其他调整
removemacai onon会把 profile 里的 AI 部分移除(若没有其他 tweaks 则整体移除 profile),其他改动(隐私、Finder、Dock 等 tweaks)原样保留。执行后终端会提示 "macOS downloads the models again when you turn a feature back on"——恢复功能意味着模型会重新下载,需要联网,且占用空间会回来。
2. 定向撤销个别改动
removemacai undo writing-tools # 按 tweak 名撤销,不是 AI 功能名 removemacai revert # 撤销 RemoveMacAI 的一切改动非 profile 内的设置(Finder、Dock、输入法等),工具在改动前会把原始值写入~/Library/Application Support/RemoveMacAI/journal.json(Engine.swift),undo/revert时按 journal 精确还原,而不是粗暴地重置为系统默认值。
3. 手动移除 profile
profile 本质是一份配置描述文件,随时可以手动解除:打开系统设置 → 通用 → 设备管理(或登录项与扩展),选中 RemoveMacAI 移除;命令行则是:
sudo profiles remove -identifier io.github.omlahore.removemacai移除 profile 后,限制键和强制偏好全部失效,功能开关回到你自己的设置;模型则会在功能再次被启用时重新下载。
补几条与"功能缺失"相关的边界事实(均出自 README 的 FAQ,与源码行为一致):
- 听写(语音输入)不受影响:它是独立设置,语音模型不在删除清单里;
- 系统更新不会让 profile 失效:配置描述文件跨系统更新持久存在,这也是它能"锁死"功能的原理;
- 删除模型后空间不会立刻释放:UAF 的
ResetAssetSets请求发出后,文件由 macOS 按自己的调度删除,系统设置 → 通用 → 存储里可能还会显示一段时间; - 一个容易误判的"幽灵进程":macOS 27 里 Spotlight 窗口的进程名就叫 Siri,所以关掉后看到名为 Siri 的进程还在跑,并不代表没生效;
- 真正会失效的其实不止这 14 项:FAQ 明确列出,使用 Foundation Models 框架的第三方 App、Shortcuts 里的 "Use Model" 动作、Visual Intelligence,以及日历中的自然语言编辑,都会在 AI 关闭后停摆——这些才是"删完才知道少了什么"的重灾区。
写在最后
把 RemoveMacAI 当"磁盘清理工具"用,是最常见的误读。它的本质是一个系统级功能开关:14 项 Apple Intelligence 功能被 profile 锁死,模型删除与下载拦截只是配套动作。动手之前,先跑一次removemacai status看清每项功能的状态与模型占用,再用off --keep <你离不开的功能> --dry-run预览,确认保留项没有触及你的日常链路。好在每一步都可逆、可审计,试错成本是模型重新下载的流量与时间——总比某天发现 Writing Tools 和 Xcode 补全同时消失要好。
【免费下载链接】RemoveMacAIDebloat macOS: turn off Apple Intelligence, analytics, ads and pop-ups. A native app and CLI, and every change can be undone.项目地址: https://gitcode.com/gh_mirrors/re/RemoveMacAI
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考