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セキュリティ組み込みシステムセキュリティ特権昇格IoTセキュリティ脆弱性分析リバースエンジニアリング情報収集ハードウェアハッキングバイナリ解析論文と研究
GitHubwheregoes/byd-dolphin-hacking
591082日前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

byd-dolphin-hacking

BYD Dolphinのヘッドユニットをリバースエンジニアリング — CANバス、AVAS、NFCキー、OTAなど。DiLink 3 / Android 10。

リポジトリを見る

🚗 BYD Dolphin ヘッドユニット — リサーチ & リバースエンジニアリング

BYD Dolphin 25/26 インフォテインメントシステム(DiLink 3、Android 10)のリバースエンジニアリング、ドキュメント、ツール。

ここにあるものはすべて ADB 探索、APK デコンパイル、CAN バスプロービングを通じて発見されたものであり、独自のドキュメントは一切使用していません。

⚠️ 免責事項: 非公式のコミュニティ主導プロジェクトであり、BYD とは一切関係ありません。 BYD の内部 Android サービスに対するリバースエンジニアリングは、教育および相互運用性の目的のみを意図しています。 自己責任で使用してください — 車両ソフトウェアを変更すると、保証が無効になったり、BYD の利用規約に違反する可能性があります。 著者は、車両、ソフトウェア、データへのいかなる損害についても責任を負いません。


📋 目次

  • ヘッドユニット仕様
  • はじめに
  • 主な発見
  • セキュリティ上の発見
  • アーキテクチャ
  • ドキュメント
  • スクリプト
  • リポジトリ構造
  • ファームウェアリソース & 参考資料
  • ライセンス

🖥️ ヘッドユニット仕様

項目値
プラットフォーム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
ブートローダーアンロック済み (ro.boot.flash.locked=0)
検証付きブートOrange (アンロック)
インストルメントクラスター独立した Qt/QML システム (Qt 5.15.10 / 6.5.5)

ファームウェア 13.1.32.2507250.1 でテスト済み。 古いバージョンでもおそらく動作します。BYD からの新しいファームウェアアップデートにより、動作が変更または破損する可能性があります — 保証はありません。


🚀 はじめに

初めての方へ サイドローディングガイド から始めて、root なしで BYD にアプリをインストールしましょう。

このリサーチに基づいて構築されたカスタムアプリについては、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 不要)

機能詳細
AC 温度読み取りgetTemprature(zone) — zone 1/2 = 設定温度、zone 4 = 外気/周囲温度
AC 完全制御40 以上の getter + SET メソッド(start/stop、温度、ファン、風モード)を権限バイパス経由で
AC リモートコントロール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 ストリーミング128 バイトの PCM フレームが 8 以上の機能 ID で MCU に受理される(ret=0)。最大バッファ: 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 オートモード ON/OFF、読み戻しで確認済み
YUN デバイス (1034)すべての 0xAA 機能 ID が MCU に受理される — setBuffer(1034, fid, data) と setInt(1034, fid, val) が 0(OK)を返す。cloudmanager のプライベート MCU チャネル。実行には AES 暗号化が必要。
コンテンツプロバイダ車両データ(バッテリー、タイヤ空気圧、メンテナンス、トリップ消費)を公開
サイドローディングUSB ドライブまたは ADB — ガイドを参照
360 カメラフレーム4 台のサラウンドカメラすべてからライブ 1280×960、root 不要。 bmmcamera.jar は world-readable — 自分でロードし、shell uid の app_process から JNIBMMCamera を直接駆動できる。インストール済みアプリではこれは絶対に不可能(SELinux が untrusted_app_* に bmmcameraserver binder を拒否する)が、ADB 経由で起動したプロセスなら可能 — 詳細

⚠️ 部分的に動作するもの

機能ステータス
ドアロックステータスメインドアは INVALID (0) を返し、チャイルドロックは読み取り可能。専用の setDoorLockStatus() はなく、未知の機能 ID を指定した汎用 set() が必要
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 APIBYDAUTO_INSTRUMENT_COMMON/SET 権限が必要 — shell UID 2000 はブロック
カスタムロック/電源オンサウンドMCU ファームウェアがコマンドを拒否する
ホーンハードウェアリレーであり、ソフトウェア制御不可
ハザードランプ点滅MCU GUID ゲート — MCU は SPI トランスポートを受け入れる(result=0)が、クラウド認証済み GUID が登録されていないリモートコントロールコマンドはサイレントに破棄する。MCU は setInt(1005, 0xAA00004A, 1) でオンライン化(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 なしで動作する。Rooting Guide

機能詳細
直接 SPI アクセス/dev/spidev_ivi — 128 バイトの Java API 制限をバイパス(最大 247 バイトの SPI レコード)
ALSA ミキサーコントロールtinymix 経由の AVAS 音声ルーティングの可能性
MCU 設定リセットMCU 状態をリセットする直接 SPI コマンド
システムパーティション書き込み/system/media/(ブートアニメーション)の変更、システムアプリのインストール、cluster_theme*.rcc の置き換え
クラスタテーマ置き換え/system/lib64/ 内の 132MB/124MB RCC ファイルを置き換え、libBydCluster.so のシングル OS チェックにパッチ
OBD 診断送信完全な UDS コーディングのための BYDAUTO_OTA_SET + BYDAUTO_SETTING_COMMON 権限
カーネルシンボル/proc/kallsyms アクセス、dmesg
KernelSU実行不可 — GKI カーネル 5.10+ が必要だが、デバイスは 4.14.117(非 GKI)で動作

🔒 セキュリティ上の発見

研究者向けのセキュリティ関連の主要な発見:

ツールをダウンロード