Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
byd-dolphin-hacking — 逆向工程 BYD Dolphin 车机——CAN 总线、AVAS、NFC 钥匙、OTA 等。DiLink 3 / Android 10。 | Kitploit
工具/GitHubGitHub/wheregoes/byd-dolphin-hacking
Android安全嵌入式系统安全权限提升物联网安全漏洞分析逆向工程信息收集硬件黑客二进制分析论文与研究
GitHubwheregoes/byd-dolphin-hacking

byd-dolphin-hacking

591082天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

逆向工程 BYD Dolphin 车机——CAN 总线、AVAS、NFC 钥匙、OTA 等。DiLink 3 / Android 10。

查看仓库

🚗 比亚迪海豚车机 — 研究与逆向工程

针对 比亚迪海豚 25/26 信息娱乐系统(DiLink 3,Android 10)的逆向工程、文档和工具。

这里的一切都是通过 ADB 探索、APK 反编译和 CAN 总线探测发现的——未使用任何专有文档。

⚠️ 免责声明: 非官方、社区驱动的项目——与比亚迪无任何关联。 对比亚迪内部 Android 服务的逆向工程仅用于教育和互操作性目的。 使用风险自负——修改车辆软件可能会使您的保修失效或违反比亚迪的服务条款。 作者对您的车辆、软件或数据造成的任何损害不承担任何责任。


📋 目录

  • 车机规格
  • 快速开始
  • 关键发现
  • 安全发现
  • 架构
  • 文档
  • 脚本
  • 仓库结构
  • 固件资源与参考
  • 许可证

🖥️ 车机规格

属性值
平台DiLink 3.0
Android10 (API 29)
SoCQualcomm QCM6125 (SM6125 Trinket)
架构ARM64,8 核
RAM~3.5 GB
内核4.14.117-perf
ADBWiFi,端口 5555
车机 IP192.168.10.10(车载 WiFi)
固件13.1.32.2507250.1(2025 年 7 月 25 日)
MCU13.5.2.2312260.1
DSP13.5.5.2505300.2
Bootloader已解锁(ro.boot.flash.locked=0)
验证启动Orange(已解锁)
仪表盘独立的 Qt/QML 系统(Qt 5.15.10 / 6.5.5)

已在固件 13.1.32.2507250.1 上测试。 较旧版本可能可用。比亚迪较新的固件更新可能会改变或破坏某些功能——不提供任何保证。


🚀 快速开始

初次使用? 请从侧载指南开始,在您的比亚迪上安装应用——无需 root。

有关基于本研究构建的自定义应用,请参阅 byd-apps。

快速 ADB 连接

adb connect 192.168.10.10:5555

侧载快速事实

  • USB 方法 — 将 APK 放入 Third Party Apps XX 文件夹(带国家代码后缀),插入车机
  • 主密码 — BYD6125F(DiLink 3 通用)
  • APK 要求 — ARM64、targetSdk ≤ 33、minSdk ≤ 29
  • 国家/地区特定限制 — 哈萨克斯坦(14 个应用白名单)、印度(仅 Mappls)、欧洲/日本/澳大利亚(在线验证)

CAN 总线注入(VCDS 风格编码)

从 ADB 注入 CAN 帧 — 无需 root,无需 OBD2 适配器:

# 1. Start the ClusterDebug app + service (acts as privileged proxy)
adb shell "am start -n com.byd.clusterdebug/.MainActivity"
adb shell "am startservice -n com.byd.clusterdebug/.ClusterDebugService"

# 2. Inject CAN frames
adb shell "am broadcast -a com.byd.cluster.spi --es normal 'FF,FF,FF,FF,FF,FF,FF,FF'"

# 3. Capture cluster screenshot
adb shell "fission_screencap -d 1 -p /data/local/tmp/cluster.png"
adb pull /data/local/tmp/cluster.png

有关完整的 UDS 诊断协议、CAN 帧格式和 ECU 网络拓扑,请参阅 Driver Display。


🔬 关键发现

✅ 可用功能(无需 Root)

功能详情
空调温度读取getTemprature(zone) — zone 1/2 = 设定温度,zone 4 = 车外/环境温度
完整空调控制40+ 个 getter + SET 方法(启动/停止、温度、风量、风向模式),通过权限绕过实现
空调远程控制hasFeature("ACRemoteControl") = 1,支持 10–30 分钟定时
权限绕过BydPermissionContext(ContextWrapper)在客户端自动授予 BYDAUTO_* 权限
CAN 总线读写通过 ADB 使用 app_process + 反射实现
75+ 个 BYD 包具备 CAN 总线访问权限,100+ 个自定义 BYDAUTO_* 权限
引擎模拟器音效模拟器存在且可切换(HAS_SIMULATOR=2),预设通过 0x3E300038 选择。MCU 会存储并回显任何源类型 — 已验证至 200;仅 0 被拒绝 — 因此接受并不代表存在不同的音效,且通过此 API 无法发现真实预设的数量。0x48F00013 返回 1 表示“存在一个源”,而非数量。 — Engine Sound app
AVAS 预设选择可通过 CAN 写入 — UI 显示 2 个,但 MCU 接受 0–5+
setBuffer PCM 流式传输MCU 接受 128 字节 PCM 帧(ret=0),支持 8+ 个功能 ID。最大缓冲区:128 字节。MCU 是否将其解释为音频尚未确认。
AVAH 测试音使用出厂诊断信号(0x6E970010)在 AVAS 外部扬声器上播放
AVAS 旋律模式通过 TEST_AUDIO_AVAS_SET 音高控制实现 8 种可用模式(门铃、商店提示音、警报、号角等) — Door Sound app
CAN 总线注入可实现 VCDS 风格的功能编码 — 通过 com.byd.cluster.spi 广播注入 CAN 帧,无需 root
仪表盘截图通过 fission_screencap -d 1 -p <file> 捕获驾驶员显示屏
仪表盘读取通过 BYDAutoManager 读取 PowerUnit、TempUnit、BacklightCtlType、InsThemeValue
DRL 切换setInt(1004, 0x43100046, 1/2) — DRL 自动模式开/关,已通过回读确认
YUN 设备(1034)MCU 接受所有 0xAA 功能 ID — setBuffer(1034, fid, data) 和 setInt(1034, fid, val) 返回 0(OK)。Cloudmanager 的私有 MCU 通道。执行操作需要 AES 加密。
内容提供者暴露车辆数据(电池、胎压、保养、行程消耗)
侧载USB 驱动器或 ADB — 参见指南
360 摄像头画面来自全部四个环视摄像头的实时 1280×960 画面,无需 root。 bmmcamera.jar 全局可读 — 自行加载它,并从 shell 用户 ID 的 app_process 直接驱动 JNIBMMCamera。已安装的应用永远无法做到这一点(SELinux 拒绝 untrusted_app_* 访问 bmmcameraserver binder);通过 ADB 启动的进程可以 — 详情

⚠️ 部分可用

功能状态
车门锁状态主车门返回 INVALID (0),儿童锁可读。没有专用的 setDoorLockStatus() — 需要使用通用 set() 配合未知功能 ID
360 摄像头显示控制BYDAutoPanoramaDevice(模式、旋转、透明度)在服务端强制执行,BydPermissionContext 绕过失败。画面捕获可用 — 见上文

❌ 不可用功能

功能原因
自定义 AVAS 音频上传setBuffer 接受 128 字节 PCM 数据(ret=0),但 MCU 可能不会将其解释为音频。外部扬声器路由(AUDIO_EXTERIOR_SPEAKER)返回 -10011(Dolphin 不支持)。完整的 Boombox 风格自定义音频尚未确认 — 参见 AVAS 研究。
AVAS 音量控制在 MCU 中硬编码,PROMPT_VOLUME_LEVEL 对其无效
仪表盘主题/皮肤更改AutoContainer 服务在单 OS 模式(fission_single_os=1)下抛出“no AutoContainerNative”
仪表盘调试命令日间/夜间、经典/科技、FPS、皮肤 — 均需要 AutoContainer(被阻止)
BYDAutoInstrumentDevice API需要 BYDAUTO_INSTRUMENT_COMMON/SET 权限 — shell UID 2000 被阻止
自定义锁车/开机音效MCU 固件拒绝这些命令
喇叭硬件继电器,无法通过软件控制
危险警示灯闪烁MCU GUID 门控 — MCU 接受 SPI 传输(result=0),但在未注册云认证 GUID 的情况下会静默丢弃远程控制命令。通过 setInt(1005, 0xAA00004A, 1) 使 MCU 上线(已确认 mMCUStatus=1)。帧格式已通过 Ghidra 完全解码。最终障碍:GUID 仅存在于 cloudmanager 进程内存中(需要 root)。
开机动画需要 root 才能替换(/system/media/)
车内/内部温度未找到 API — 穷举探测确认不可用
浏览器 blob 下载绕过fetch→blob→anchor.click 在固件 13.1.32.2507250.1 上被 BYD 的“Download proibido”策略静默阻止。没有文件落地,没有错误,没有弹窗。此前关于此方法可用的说法不准确 — 完整诊断请参见 test-log。navigator.share 在此版本中也是 undefined。

🔓 使用 Root(Magisk)

Root 是可选的 — 大多数功能无需 root 即可使用。Root 指南

能力详情
直接 SPI 访问/dev/spidev_ivi — 绕过 128 字节 Java API 限制(最多 247 字节 SPI 记录)
ALSA 混音器控制通过 tinymix 实现潜在的 AVAS 音频路由
MCU 配置重置通过直接 SPI 命令重置 MCU 状态
系统分区写入修改 /system/media/(开机动画)、安装系统应用、替换 cluster_theme*.rcc
仪表盘主题替换替换 /system/lib64/ 中的 132MB/124MB RCC 文件,修补 libBydCluster.so 单 OS 检查
OBD 诊断发送BYDAUTO_OTA_SET + BYDAUTO_SETTING_COMMON 权限,用于完整 UDS 编码
内核符号/proc/kallsyms 访问、dmesg
KernelSU不可行 — 需要 GKI 内核 5.10+,设备运行 4.14.117(非 GKI)

🔒 安全发现

面向研究人员的关键安全相关发现:

下载工具