wangx0102

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

  •  
  •   wangx0102 · 14h 43m ago · 477 views

    我的车车机装不了 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 replies  •  2026-10-27 18:50:09 +08:00
    zsxzy
        1
    zsxzy  
       13h 10m ago
    CarWith 协议是楼主逆向出来的吗
    wangx0102
        2
    wangx0102  
    OP
       11h 15m ago
    @zsxzy 是的 AI 帮着做的 其实跟 carlife 差不多
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1423 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:05 · PVG 06:05 · LAX 15:05 · JFK 18:05
    ♥ Do have faith in what you're doing.