🚗
Showcase 能把一台越狱 iPad 变成一台完整可用的无线 CarPlay 车机。核心思路是逆向苹果自家的 CarPlay Simulator —— Mac 里没有 MFi 协处理器,iPhone 却认它 —— 再用 iOS 内置的 BAA 内部证书机构给自己签发证明,径直穿过认证大门。
不需要开发者账号、付费证书,也不需要任何硬件。
本文译自 Amine Rostane 的项目文档,保留原文配图与结构。
附件
Showcase 宣传图
Showcase 宣传图

Beta 4 新增

  • 不需要 SIM 卡。 在 Showcase 旁边再装一个 Share,任何越狱 iPad 都能拥有个人热点。详情见下文。
  • Rootful 与 rootless 全支持,iPad 和 iPhone 都行,iOS 12 及以上。
  • 车机音频。 由你决定用哪台设备播放。
  • 适配任意屏幕,不需要按机型预置参数。
  • 画面更顺、触控更快,而且 Showcase 会自己重连。
  • 自动帮你开热点。

太长不看(TL;DR)

Showcase 能把一台越狱 iPad 变成一台完整可用的无线 CarPlay 车机。
这个方法来自对 Apple 自家 CarPlay Simulator 的逆向分析 —— 那是苹果提供给开发者、让他们在 Mac 上测试 CarPlay 应用的开发工具。Mac 内部并没有 Apple 认证协处理器,可 iPhone 却把它当成真正的车机接受了。把这个应用拆开,答案就浮出来了:iOS 里内置了一套名为 BAA 的内部证书颁发机构,iPhone 会信任它签发的证明,用它来替代那颗已授权的协处理器签名。一台越狱设备只要拿到正确的 entitlements,就能给自己签发一份这样的证明,然后径直穿过那道门。
这个包以 Sileo / Cydia 源的形式发布在 https://aminerostane.com/repo。完整的协议细节 —— 每一条消息、每一把密钥 —— 都在上面链接的报告里。

工作原理

市面上的后装无线 CarPlay 接收器是存在的,便宜的大约 150 美元。MFi 适配器也有,大约 30 美元。更硬核的路线是直接买一颗裸片的 Apple 认证协处理器(几美元),再把它集成到自制板子上。这几条路要么贵(而且质量一般),要么对终端用户来说技术门槛太高。
我抽屉里正好有一台 iPad Air 1。苹果早就停止为它提供软件更新了。但它的屏幕依旧锐利,芯片也够快,有 Wi-Fi 和蓝牙,而且已经越狱多年(拿到 root 权限)。纸面上看,这台 iPad 具备成为一台优秀 CarPlay 接收器的全部条件。
但事情比这复杂一点。
所有问题归根结底都在 MFi 芯片上。无线 CarPlay 通常要求 iPhone 在对端看到一个 MFi —— 一小块用出厂烧录密钥对挑战值签名的硅片。没有协处理器,就没有握手。
通过逆向 Apple 的 CarPlay Simulator(苹果给开发者在 Mac 上模拟 CarPlay 的工具),我发现 Mac 是用一张来自名为 BAA 的私有内部 CA 的证书来做替代的;而每一台足够新的苹果设备,为了自己的信任体系,机内都随身带着这个 CA。只要拿到正确的 entitlements,越狱 iPad 就能向 iOS 申请一张 BAA 叶子证书,然后用它替代芯片签名交给 iPhone。iPhone 顺着证书链往上验,在根部看到苹果的签名,于是把这台 iPad 当成一台真正的车来接受。
剩下的就是纯软件实现的标准化 CarPlay 握手:iPad 通过蓝牙配对,iPhone 把 Wi-Fi 凭据交给它,两台设备进入同一个私有网络,视频流随即开始。iPad 用自己的 GPU 解码 H.264。触控则沿着真实触摸屏会走的那条路回传。
然后是应用。一次点击,一个无线连接,不需要任何硬件。

你需要准备什么

  • 一台越狱的 iPad 或 iPhone,iOS 12 或更高,rootful 或 rootless 均可。作者在 iOS 12.5.8 + checkra1n 的 iPad Air 1(A1475),以及 iOS 15.8.4 + Dopamine 的 iPhone 7 上做过测试。
  • 一台运行较新 iOS 版本的 iPhone。从 iPhone 5 开始 CarPlay 支持就已经普及,所以这几乎肯定不是你的瓶颈。
  • 接收端第一次打开 Showcase 时需要联网。它只需要联网一次来完成准备工作。

无需 SIM 卡

CarPlay 依赖接收端的个人热点,而 iOS 只有在插入可用 SIM 卡时才会显示「个人热点」。过去这意味着你得有一台蜂窝版 iPad 和一张预付费 SIM 卡。
Share 解决了这个问题。它是同一个源里的另一个独立插件。装上它,打开设置,「个人热点」就在那儿了。不需要 SIM,不需要套餐,也不需要蜂窝硬件。
Share
Share
Share 让热点保持在本地。加入的设备可以与接收端通信 —— 这正是 CarPlay 需要的 —— 但没有任何流量会经由它访问互联网。
你不需要开发者账号,不需要付费证书,不需要 Apple 认证协处理器,也不需要任何硬件。

安装应用

Showcase 以 Sileo / Cydia 包的形式分发。
1. 添加源。 在 Sileo 中进入 源 › 编辑 › +,粘贴 https://aminerostane.com/repo,点击 添加源。
在 Sileo 中添加 Showcase 源
在 Sileo 中添加 Showcase 源
2. 打开包页面。 Sileo 刷新源之后,Showcase 会出现在包列表里。点进去。
Sileo 中的 Showcase 包页面
Sileo 中的 Showcase 包页面
3. 加入队列并确认。 点击 获取,然后在待操作面板上点 确认。Sileo 会负责下载和安装。不需要 respring。
已加入安装队列,等待确认
已加入安装队列,等待确认
4. 打开它。 Showcase 会和其他应用一起出现在主屏幕上。
iPad 主屏幕上的 Showcase 图标
iPad 主屏幕上的 Showcase 图标
5. 没有 SIM 卡?把 Share 也装上。 它就在同一个源里、紧挨着 Showcase。装完之后打开 设置,确认 个人热点 出现了。如果没有出现,重启一次。

首次启动

点击 Showcase 图标。第一次打开时,应用会要求你设置 iPad 的个人热点名称和密码。CarPlay 依赖那个热点,而 iOS 26 对 SSID 能长什么样有两条不成文的规矩。Showcase 会带你依次走完。
点击 设置 Wi-Fi,会出现一个两步的界面。

步骤 1:给你的 iPad 命名

iOS 会用 iPad 的设备名称作为个人热点的 SSID。这里有两条不成文的规矩:iPhone 拒绝自动加入少于六个字符的 SSID,也拒绝包含 iPad、iPhone 或 iPod 的 SSID。而你的 iPad 出厂时的默认名称,这两条全都违反了。
Showcase 建议使用 Carplay-Receiver。点击复制按钮,Showcase 会把名称复制到剪贴板。
Wi-Fi 设置第 1 步 —— 建议的 SSID 已复制到剪贴板
Wi-Fi 设置第 1 步 —— 建议的 SSID 已复制到剪贴板
打开 设置 › 通用 › 关于本机 › 名称,粘贴,再回来。
在 iOS 设置中把 iPad 重命名为复制来的名称
在 iOS 设置中把 iPad 重命名为复制来的名称

步骤 2:设置热点密码

回到 Showcase,输入你的个人热点所使用的密码。你可以在 设置 › 个人热点 › 无线局域网密码 里找到或修改它。挑一个好记的 —— 你永远不会在 iPhone 上输入它,Showcase 会在握手过程中替你传过去。
在 iOS 设置中哪里找到个人热点密码
在 iOS 设置中哪里找到个人热点密码

Beta 4 新变化

你不再需要自己手动打开个人热点了。点击 启动 CarPlay 时 Showcase 会自己把它打开。如果 iOS 拒绝,Showcase 会显示 打开个人热点,右侧带一个按钮直达对应的设置面板。
这就是全部的一次性设置。从那以后,应用会记住一切。

连接一台 iPhone

在 iPad 上点击 Start CarPlay。在 iPhone 上打开 设置 › 通用 › CarPlay,在 可用的车 里选择 Miata(或者你自定义的车名)。首次连接大约需要 30–45 秒。
之后,只要打开 Showcase 就行。它会像一台车那样通过蓝牙呼叫你的 iPhone,CarPlay 就回来了,完全不用碰 iPhone。
CarPlay 运行期间,用 三根手指 点击 iPad 可以唤出控制面板。点 × 停止 CarPlay,点齿轮进入 设置。点其他任何地方返回 CarPlay。停止会拆除会话并恢复正常的蓝牙状态。

多台车

Showcase 在 设置 › Cars 下维护一份已保存的配置列表。每一条都持有自己的凭据,点击哪一条,哪一条就生效。
打开 Cars,点 + 添加一台,给它起个名字,保存。
Cars 列表,其中一条被标记为当前生效
Cars 列表,其中一条被标记为当前生效

设置

在主界面点击齿轮。
  • 声音(Sound)。 选择车机音频从哪里播放。左侧是 这台 iPad(或 这台 iPhone),右侧是 CarPlay 发送端。点任意一侧即可。
  • 显示(Display)。 右侧 Dock 用于右舵车;优先流畅画面;Wi-Fi 专供 CarPlay;自动启动 CarPlay,让 Showcase 一打开就自动开始。
  • 故障排查(Troubleshooting)。 打开 详细日志,复现问题,然后点 发送日志。

故障排查

  • Showcase 提示「连接到互联网」。 它需要联网来完成准备。加入任意一个 Wi-Fi 网络,Showcase 会自己继续。准备状态在多次启动之间最多保持 12 小时。
  • 装了 Share,但设置里没有出现个人热点。 重启一次。如果还是没有出现,Share 会在 /var/mobile/Documents/Share-Report.json 留下一份报告。用 Filza 打开它并发给作者。
  • iPhone 一认证,Showcase 就崩溃。 重新打开 Showcase,再点一次 Start CarPlay。iPhone 会保留配对信息,所以第二次尝试会跳过蓝牙那一套流程,直接进入串流。把车留在 iPhone 的 CarPlay 列表里即可。
  • iPhone 在「可用的车」里看不到 Showcase。 等 iPad 显示 请在 iPhone 的 CarPlay 中选择 Miata 之后,再去 iPhone 上查看。蓝牙守护进程需要几秒钟。如果还是看不到,把 iPhone 的蓝牙关掉再打开 —— iOS 会缓存附近设备的过期视图。
  • iPhone 连上了,但 iPad 一直黑屏。 iPhone 没能自动加入 iPad 的热点。最常见的原因是 SSID 违反了 iOS 26 的某条规矩(少于六个字符,或包含 iPad / iPhone / iPod)。重新打开 Showcase 的 Wi-Fi 设置,确认名称。
  • iPad 发热。 H.264 解码跑在 GPU 上,负载本身很轻,但一台 Lightning 接口的 iPad 被闷在密封支架里、还晒着太阳,必然会降频。在 iPad 背后贴一块被动散热垫就能解决。
  • 其他任何问题。 在 设置 › 故障排查 里打开 详细日志,复现问题,点 发送日志,然后发给作者。

为什么要做这个

我那台 2015 款标致 208 的车载系统糟糕透顶。而我一直很喜欢这台 iPad,多年来一直在想办法让它重获新生。好的 CarPlay 平板相当昂贵,我实在无法接受 —— 这么一台性能出色、外观漂亮的 iPad,居然搞不定一次无线握手和视频串流。

致谢

Matthias Ringwald 的 BTstack 是让这个接收端得以存在的前提。iOS 把它的蓝牙协议栈藏在 bluetoothd 后面,应用既没办法把自己广播成 CarPlay 配件,也没办法从零实现 iAP2 链路层。BTstack 用一个用户态协议栈替换 bluetoothd,直接和射频硬件讲原始 HCI。没有它,这个项目不会存在。
Christoph Wille(wiomoc)和 Tom Signalius 记录了 iAP2 链路层与 CarPlay 消息目录。openairplay 团队在 airplay2-receiver 里梳理出了 AirPlay 2 的控制通道。electric-monk、rhysmorgan134 和 niellun 分别在 pycarplay、react-carplay 和 FastCarPlay 里重建了无线流程的一部分。这些项目都没有在 iOS 上实现一个无线接收端,但协议之所以能被重新拼起来,是因为每一位作者都写下了自己搞懂的那部分。谢谢你们。
也感谢我的父亲 —— 从 2009 年的 iPhone 3GS 开始,我就和他一起越狱苹果设备。这是我做出来的第一件想回赠给那个他带我走进的社区的东西。

参考文章

  • 作者:Amine Rostane,发布于 2026 年 4 月 15 日
  • 本文为中文翻译,版权归原作者所有
💡
译文仅供学习交流,技术细节与风险请参看原文及作者提供的完整技术报告。
Hackintosh OpenCore学习版CS:GO下载
Loading...