欢迎热心人士完善为可复用的 tweak。如果你是从本帖得到的思路,请考虑 credit 本帖。
我并非 jailbreak 社区开发者,因此本帖不可避免地包含 AI Slop。若在意请自行退出。
仅测试过 CH/A 的 iPhone 11 / iOS 17.0 以及 iPhone 15 Pro / iOS 18.7.2;其它系统版本请自行测试
TL;DR
在仍有 MobileGestalt 修改漏洞的 iOS 版本上,快捷指令导出 MobileGestalt 文件
修改 CacheData 中的green-tea为false,not-green-tea为true后写回设备
重启,确认修改生效后即可直接启用 FaceTime Audio。来去电均支持
以前很有名的 FaceTime Audio Enabler 在 iOS17 或更新版本中 Hook 的函数似乎已经不足以开启 FaceTime Audio。
让 6.1-sol 调查了一下,给出的结论大致总结为:
对于我手里这台 CH/A iPhone 15 Pro / iOS 18.7.2,有以下 flag:
green-tea = true // 是否启用国行 FaceTime Audio 限制
venice = true // 是否支持 FaceTime Video
voip = true
RegionalBehaviorNoVOIP = false
FaceTime Audio 可用 = venice && (!green-tea || 运营商明确允许 FaceTime Audio)
因此只要能想办法将 green-tea 改为 false,即可让国行机器支持 FaceTime Audio。
而我的运气很好,6.1-sol 发现这一个 flag 也在 MobileGestalt 缓存里,因此修改对应缓存即有可能启用 FaceTime Audio。
注意
我的机器为了强开 Apple Intelligence,修改过设备区域为 LL/A。
我没有做对照实验。如果如果仅修改green-tea无法启用,可能需要考虑修改设备区域。
开启步骤大致如下:
- 用快捷指令导出设备的 MobileGestalt 文件
- 将设备接入 PC / Mac,让你的 Agent 查找你的机器和系统版本上
green-tea和not-green-tea在 CacheData 里对应的偏移。这一步不需要越狱
可以指示你的 Agent “通过 USB 隧道读取 dyld 共享缓存列表”。至少 6.1-sol 是这么做的
(iPhone 11 / iOS 17.0 和这台机器的 CacheData 里,这两个 bool 的偏移位置并不相同。因此不建议不同机型/系统版本混用 Template) - 让你的 Agent 生成用于 Nugget 的 Template
- 备份你的数据。如果你不怕死,可以跳过这一步
- 用 Nugget 应用 Template 但不要指定 MobileGestalt 文件,将修改写回设备并重启
做完上述操作,理论上 FaceTime Audio 应该可用。你的其它 Apple 设备应该会提示有新设备可用于 FaceTime。
已配对的国行 Apple Watch 理论上也应该会响铃且能接听/和手机之间双向转移通话
如果重启后仍然不可用,重新导出 MobileGestalt 确定 CacheData 的写入是否生效。
