国行 Mac 解锁 Apple 智能全功能:RegionSpoof 内核扩展原理详解

📅 2026年06月14日 · 技术

enableMacosAI 项目封面

国行 Mac 用户苦 Apple Intelligence 久矣。尽管你的 M3 Max 性能拉满、macOS 27 也升级到位,但只要系统检测到设备区域码是 CH/A,Apple 智能的门就死死关着——写作工具、图乐园、Genmoji、Foundation Models,统统与你无关。最近 GitHub 上一个叫 enableMacosAI 的项目,用一个极简内核扩展(kext)从源头解决了这个问题。

问题根源在哪

Apple 判断你的设备能否使用 Apple 智能的关键,是 MGGetStringAnswer("RegionCode") 这个调用。当它返回 CH 时,智能功能直接被关闭。而这个值并不是存在某个 plist 文件里等着你去改——它实时来自 IORegistry 中 IOPlatformExpertDeviceregion-info 属性。

macOS 27 的 eligibilityd 守护进程基于 SwiftData 做实时重算,这意味着过去那些改 plist、锁 uchg 标志的老办法全部失效了。你改了文件,系统下次检查又从硬件层重新读取区域码,一切打回原形。

RegionSpoof 的思路

既然问题出在 IORegistry 源头,那就从源头改。这个 kext 会匹配 IOPlatformExpertDevice 服务,在 start() 阶段直接把 region-info 属性从 CH/A 改成 LL/A(美版),同时把 country-of-origin 设为 USA

妙处在于:这一改是全局性的。全系统的每个进程读到的都是美版区域信息,不需要逐个进程注入,资格校验、模型下发、前端 UI 就全部畅通了。端侧模型、Private Cloud Compute 云端推理、ChatGPT 扩展,一个不落。

一键安装

项目提供了一个非常完善的 install.sh 脚本,支持安装、卸载、体检、诊断四个子命令:

前提条件是 SIP 已关闭(需要在恢复模式中执行 csrutil disable)。脚本会在安装时自动检测并给出分步指引。值得一提的是,脚本会主动移除 amfi_get_out_of_my_way 这个 boot 参数——因为这个参数会杀死 Private Cloud Compute 功能,很多人为了装第三方 kext 加了它,结果反而导致云端智能不可用。

技术含量在哪里

这个项目的技术价值不在于"破解",而在于它精准定位了资格校验链路中最底层的那个数据来源。理解了 macOS 的 IOKit 架构和 MobileGestalt 机制,才能知道该在哪里动手。整个 kext 源码就是一个 C++ 的 IOService 子类,核心逻辑也就几行 setProperty 调用,但定位到这个点需要对系统底层有相当深入的理解。

对于开发者来说,这也是一个学习 macOS 内核扩展开发的绝佳案例——从源码编译、ad-hoc 签名、LaunchDaemon 配置到 IOKit 服务匹配,麻雀虽小五脏俱全。

参考来源

🔧 在线开发者工具 — JSON格式化 · Base64 · UUID生成 · 正则测试 等80+免费工具
🔧 在线开发者工具 — JSON格式化 · Base64 · UUID生成 · 正则测试 等80+免费工具