最新消息:

xcertplay / DiPlay:不用 CarPlay 盒子,直接把 Android 车机变成 CarPlay 接收

佳软 yeeach 20浏览 0评论

在车机智能化的浪潮中,Apple CarPlay 凭其极简的 UI 与流畅的交互以及与iPhone一致的体验,成为了许多车主的必备功能。然而如果想在普通的 Android 车机或车机系统上使用 CarPlay,用户通常只能购买像 CarlinKit(车连易)这样的第三方 USB 硬件转接盒,并搭配其闭源的 APK 文件使用。

最近,开源社区涌现出了多个无需传统盒子或基于原生硬件芯片的独立 CarPlay 接收端开源项目,其中最瞩目的莫过于 xcertplay 和 DiPlay。

DiPlay:https://github.com/shihabal3amri/DiPlay

xcertplay :https://github.com/shilapi/xcertplay

 

xcertplay 和 DiPlay 把“车机端”直接做进 Android APK。iPhone 不越狱,也不需要 Mac 或账号服务器。车机要能装 APK,无线还要有蓝牙和可用的热点或 Wi-Fi Direct。

 

核心技术原理:CarPlay 接收端是如何工作的?

要在非苹果认证设备(如 Android 车机、Mac/PC 浏览器)上实现 CarPlay 协议,核心在于突破 Apple 的三个技术关卡:

1. 协议协商与身份认证(iAP2 & MFi)

Apple 规定 CarPlay 设备必须包含 MFi(Made for iPhone)硬件加密芯片,通过 iAP2 协议完成双向认证。

硬件方案:直接读取车机板载的 MFi 芯片,或利用 USB-to-UART/TTL 芯片(如 CH341)挂载 MFi 芯片。

软件/公钥密钥方案:利用泄露或提取的认证证书/密钥对(xcert),在软件层模拟 MFi 握手。

 

2. 无线引导与链路建立(BT + Wi-Fi Handoff)

蓝牙:iPhone 首先通过蓝牙与接收端建立 iAP2 连接并交换密钥。

Wi-Fi 切换:随后接收端启动 Wi-Fi 热点(或运行 Bonjour / mDNS 服务广播 _airplay._tcp)。

RTSP 握手:iPhone 自动关闭蓝牙音频,切换至 Wi-Fi 并通过 RTSP 协议握手,建立数据传输通道。

 

3. 媒体解码与反向控制(Media Stream & HID Control)

视频流:iPhone 将屏幕渲染为 H.264 / HEVC 视频流发送给接收端,接收端通过 Android 的 MediaCodec(或 WebCodecs)进行硬件解码渲染。

音频流:媒体音、导航音、Siri/通话音通过 RTP 协议独立传输。

触控与控制:接收端捕获屏幕触摸坐标、物理按键/旋钮输入,转换为标准 HID(Human Interface Device)报告反向发送给 iPhone。

 

xcertplay vs. DiPlay

虽然 xcertplay 和 DiPlay 都致力于在 Android 车机上运行独立的 CarPlay 接收端,但它们的技术走向与硬软件依赖有明显区别:

 

与 CarPlay 相关的一些项目:

https://github.com/serein-morii/DiPlay-CN   DiPlay汉化版

https://github.com/youcci/playport    把 DiPlay / xcertplay 的 AirPlay、iAP2、配件认证移植到 Kotlin/JVM 服务端,浏览器当屏幕,不装车机 APK

https://github.com/catplay-labs/catplay   面向无线盒子固件(Carplay2Air),仍要求 MFi 芯片,和 Android APK 路线不同

https://github.com/andreknieriem/open-headunit 面向无线盒子固件(Carplay2Air),仍要求 MFi 芯片,和 Android APK 路线不同

https://github.com/shilapi/ch341-to-mfi-chip   xcertplay 配套的 CH341 到 MFi 转接板

 

 

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址