Skip to content

DiPlay 2.0(93)· leapmotor

Choose a tag to compare

@github-actions github-actions released this 03 Oct 05:07

DiPlay Android 7 构建版 · 功能状态(零跑版)

版本号 = 构建号,见 APK 版本名 2.10(NN) 与诊断报告第一行。
签名:固定 release 密钥(platform,SHA-256 C8:A2:E9:BC:CF:59:7C:2F:B6:DC:66:BE:E2:93:FC:13:F2:FC:47:EC:77:BC:6B:2B:0D:52:C1:1F:51:19:2A:B8)。
本页描述当前整体状态;每次构建的本次改动由 CI 自动附在文末(取自本次提交说明)。

✅ 可用

  • 有线 CarPlay:视频 24–26 fps、LPCM 音频零丢包、触控延迟约 35 ms,长会话稳定。
    有线期间车机其他 app 可正常上网(VPN 只接管 CarPlay 的 IPv6 链路,IPv4 放行)。
  • 无线 CarPlay(外部 Wi-Fi 方案,默认方式):车机与 iPhone 连接同一个外部网络
    (如随身 WiFi),视频约 23–30 fps,触控可用。完整流程已实测跑通:
    AirPlay 连接 → 会话建立 → 蓝牙交接完成(handoff/complete)。
    SSID、密码、信道全部自动读取网络真实值,无需手动设置。
  • 方向盘媒体键(零跑方控):监听车机的 car.meter.music.BROADCAST 广播,上一首 / 下一首 /
    播放暂停 转发给 iPhone(CarPlay HID);仅转发真正的方向盘键,车机内部命令(如焦点变化时
    自己广播的 pause)一律丢弃。CarPlay 播放时原厂播放器由音频焦点压停。
  • 倒车自动暂停(零跑 CAN 档位):通过 carcanserver 的广播接口(leapmotor.apptocan.update
    → leapmotor.cantoapp.update,信号 1010105)读取挡位 P/R/N/D;挂 R 自动暂停 CarPlay 音乐,
    退出 R 自动恢复
    (仅恢复本次倒车中自己暂停的)。
  • 定位上报(iPhone 导航用):已启用,1 秒限流;蓝牙 → Wi-Fi 交接后继续上报
    (iPhone 只在蓝牙链路请求定位,DiPlay 会把请求带到 Wi-Fi 链路)。
  • 有线自愈:配对记录或 host ID 被车机 Lockdown 拒绝时自动清除并重新配对,不再直接失败
    (新 iPhone 首连报 InvalidHostID 的修复已包含,请使用 v2.0-84 及以上构建)。
  • 界面汉化:约 520 处全部完成,应用名 DiPlay。
  • 版本溯源 + 诊断报告:构建号烙进版本名与诊断报告第一行;设置 → 关于与诊断 → 保存诊断报告,
    含显示协商、多代历史日志、无线判层结论、连接诊断行。

🆕 新增(待真机验证)

以下功能已并入构建并通过 CI(编译 + 全部单元测试),但尚未在真机上实测确认;
验证可用后移入"✅ 可用"。

  • 歌曲信息与专辑封面(0.2.10 同步):CarPlay 正在播放的歌曲名 / 艺人 / 播放进度 /
    专辑封面会写入 Android 系统媒体会话——车机的媒体卡片、锁屏等界面可以显示;
    iPhone 端的播放位置也持续同步,不再停在旧值。
  • AirPlay 端口自动选择(0.2.10 同步):车机上其他程序占用 7000 端口导致
    "连接不上"的场景自动避开——先试 7000,被占则依次尝试 7001–7010,最后由系统分配,
    并把实际端口通过 Bonjour / iAP2 告知 iPhone,无需人工处理。
  • 通话回声消除 / 降噪(0.2.10 同步):CarPlay 通话时自动切到 Android 通信音频模式
    (启用通话下行通路),并启用平台回声消除 / 噪声抑制;麦克风采集失败不再影响音乐播放。
  • iOS 27 视频车内播放(0.2.10 播放器升级):iPhone(iOS 27)在 N 挡时可以把视频
    投到车机播放。新播放器支持进度条拖动 / 快进快退 10 秒 / 播放暂停(方控键同样可控制);
    支持 HLS 流式视频;App 内自有协议的视频地址由 iPhone 代为下载(原 Apple 接收端同款机制)。
    离开 N 挡自动关闭;FairPlay 版权保护内容(如 Apple TV+)无法播放,会提示并自动跳过。
  • 视频画面等比适配(0.2.10 同步):CarPlay 画面按会话分辨率等比显示(黑边补齐),
    黑边区域的触摸不再误传给 iPhone;倒车影像引起的窗口缩放不再重启 CarPlay 会话。
  • 连接诊断进报告(0.2.10 同步):蓝牙连接前后快照、USB 配置识别、USBMUX 链路收发、
    各资源关闭耗时、麦克风启动失败原因等关键节点都会以 CONNECTION_DIAGNOSTIC 行写入
    诊断报告,问题定位不再依赖猜。
  • USB 数据流 padding 精准处理(0.2.10 同步):iOS 27 手机在 USBMUX 握手帧后追加的
    4 字节 padding 只在确认边界时跳过,误判不再导致握手卡死;
    USB 有线会话也不再要求先完成无线热点设置才能启动。
  • Wi-Fi Direct 兼容性兜底(0.2.10 同步):未知安全类型按 WPA2-PSK 处理不再中断;
    建组被拒时继续尝试下一信道(含 5 GHz → 2.4 GHz 回退),无权限类错误立即报告不空转。
  • 在线更新(本版新增):设置 → 在线更新 → 检查 GitHub 上的新构建;
    高于当前版本时自动下载 APK → 弹确认 → 静默安装(platform 签名)→ 自动重新打开 DiPlay →
    删除已装的 APK。支持直连 GitHub 或代理下载
    (seep.eu.org / jsnzkpg4.pages.dev / down.nigx.cn,任选其一)。
  • VPN 改为仅覆盖 DiPlay 自身(本版新增):有线连接时的本地 VPN 只白名单 DiPlay 自己的包名,
    车机上其他所有 app(含飞牛 com.trim.app)完全绕开 VPN——此前它们的链路本地 IPv6 流量
    会被 VPN 吞掉导致"没网",现在与未连 CarPlay 时一致。
  • 外部 Wi-Fi 名称自动填入(本版新增):设置里的 Wi-Fi 名称不再需要手动输入——
    打开设置页或切换无线方式时自动读取车机当前连接的 Wi-Fi 并写入(密码可留空);
    车机未连 Wi-Fi 时会显示引导提示。

🔴 暂不可用

  • 无线 CarPlay · 车机自建热点 / Wi-Fi Direct:Android 7 内核会丢弃热点客户端发往车机
    7000 端口的流量(IPv6 静默丢弃,无 root 无法放行防火墙),iPhone 拨号无响应。
    实测确认 0.2.10 的端口自动选择(7001–7010)同样被丢弃——内核防火墙拦的是整个端口段,
    应用层无法绕过;此路径留待后续测试研究。无线请使用"外部 Wi-Fi"方案
    (车机与手机连同一个网络)。
  • 有线改设置后自动重连:改设置后仍需重新插拔数据线才会重连(重枚举后系统
    会再次弹 USB 授权,属系统行为)。

⚠️ 已知限制

  • 外部 Wi-Fi 方案需要第三个网络:车机与 iPhone 必须连在同一个 Wi-Fi(如随身 WiFi),
    该网络需允许设备互访(未开客户端隔离)。车机尚未连接 Wi-Fi 时,App 会静默等待
    (不再周期性重试刷屏),车机连上后自动继续。
  • 有线会话偶发等待重枚举:约 10 秒内自动恢复,极少数情况需重试一次。
  • 无线丢帧波动:外部 Wi-Fi 网络质量波动时可能短时掉到 10 fps 以下并自行恢复。
  • iOS 27 视频:仅 iOS 27 手机可用;N 挡限定(零跑没有 P 挡读数,与上游的 P 挡不同);
    版权保护内容不可播。视频与 CarPlay 画面共用一块车机屏,播视频时 CarPlay 在后台保持连接。
  • 挡位信号来源:依赖零跑 carcanserver 广播接口;收到第一条挡位数据前
    一律按"不可用"处理(视频不开、倒车不触发)。
  • 上游 BYD 专属功能未移植(与本分支无关):CAN/CANFD 电池信息、仪表盘地图镜像与
    歌曲卡片、桌面小组件、地图共享给第三方桌面、乌克兰语翻译。零跑分支保持纯度,
    不引入依赖 BYD HUD/SOME-IP 的代码。

本次构建(2.0(93)· leapmotor)

修复 run 92 编译失败:VPN 自身白名单改用反射调用(API 37 起 addAllowedPackage 改名 addAllowedApplication,而车机 API 25 只有旧名),运行时优先 addAllowedPackage、回退 addAllowedApplication