车机装不了 APK 并且只有无线 CarPlay,于是写了个把小米 CarWith 转成无线 CarPlay 的安卓 App

wangx0102 2026-10-27 15:22 1

我的车车机装不了 APK 且我用的是小米手机,CarWith 在车上也用不了,因为车机只有无线 CarPlay 和 hicar 。


所以换个方向:不往车机装东西,让安卓手机扮演 iPhone 。


mcarplay 做的事:


CarWith ->(本机 CarLife 七路 TCP)-> mcarplay ->(蓝牙 iAP2 + Wi‑Fi AirPlay)->车机



  • 作为 CarLife 客户端,从 CarWith 拿到 H.264 画面、PCM 音频,并把触控回传给它

  • 作为 CarPlay 手机端:蓝牙 iAP2 握手拿到热点信息,再走 AirPlay 配对、SETUP 、RECORD 推流

  • 音频是 44.1k PCM 重采样到 48k 后编码成 AAC-LC ;画面直接转发 CarWith 的 H.264 ,不重新编码

  • 不需要 root ,车机端也不需要装任何东西


踩过的几个坑:



  1. AirPlay 已经连上,CarWith 端口却一直不起来。 排查后发现:mcarplay 在后台打开 CarWith 入口时,被 MIUI 的「后台弹出界面」权限静默拦截了。startActivity() 不报错,日志还显示“已请求”。

  2. 入网时系统选网框一直是空的。 原因是保活服务拿着 WIFI_MODE_FULL_LOW_LATENCY ,应用在前台时,这台小米的 Wi‑Fi 扫描全部 Scan aborted (-7)。中途我一度误以为是 CarWith 投屏造成的,做了对照实验才排除。

  3. 中途接入的视频流解不出来。CarWith 的 IDR 帧不一定带 SPS/PPS ,要缓存下来,在第一个 IDR 前补上。


现状:



  • 在 DiPlay 、WinPlay 这两个软件接收端上跑通了:画面约 20fps ,声音、触控都正常

  • 还没上过实车,车最近不在身边。所以不承诺兼容任何车型

  • 实验性项目,日志和诊断报告都做了脱敏,不会自动上传


欢迎:



  • 有小米手机、车机支持无线 CarPlay 的朋友帮忙测一下

  • 对 iAP2 、AirPlay 或 CarLife 协议熟悉的朋友来指点


GitHub: https://github.com/wangxso/mcarplay
(基于 CarDeck ,MIT )

最新回复 (2)
  • zsxzy 10-27 16:54
    1楼
    CarWith 协议是楼主逆向出来的吗
  • wangx0102 楼主 10-27 18:50
    2楼
    @zsxzy 是的 AI 帮着做的 其实跟 carlife 差不多
* 帖子来源V2EX
返回