Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
byd-dolphin-hacking — Rétro-ingénierie de l'unité centrale de la BYD Dolphin — bus CAN, AVAS, clés NFC, OTA, et plus encore. DiLink 3 / Android 10. | Kitploit
Outils/GitHubGitHub/wheregoes/byd-dolphin-hacking
Sécurité AndroidSécurité des Systèmes EmbarquésEscalade de PrivilègesSécurité IoTAnalyse des VulnérabilitésRétro-ingénierieCollecte d'InformationsHacking MatérielAnalyse de BinairesArticles et Recherche
GitHub
59108il y a 2 joursVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
wheregoes/byd-dolphin-hacking

byd-dolphin-hacking

Rétro-ingénierie de l'unité centrale de la BYD Dolphin — bus CAN, AVAS, clés NFC, OTA, et plus encore. DiLink 3 / Android 10.

Voir le dépôt

🚗 BYD Dolphin Head Unit — Recherche & Rétro-ingénierie

Rétro-ingénierie, documentation et outillage pour le système d'infodivertissement BYD Dolphin 25/26 (DiLink 3, Android 10).

Tout ce qui se trouve ici a été découvert via l'exploration ADB, la décompilation d'APK et le sondage du bus CAN — aucune documentation propriétaire n'a été utilisée.

⚠️ Avertissement : Projet non officiel, porté par la communauté — aucune affiliation avec BYD. Rétro-ingénierie des services Android internes de BYD à des fins éducatives et d'interopérabilité uniquement. À utiliser à vos propres risques — modifier le logiciel du véhicule peut annuler votre garantie ou violer les conditions d'utilisation de BYD. Les auteurs déclinent toute responsabilité pour tout dommage causé à votre véhicule, logiciel ou données.


📋 Table des matières

  • Spécifications de l'unité centrale
  • Pour commencer
  • Principales découvertes
  • Découvertes de sécurité
  • Architecture
  • Documentation
  • Scripts
  • Structure du dépôt
  • Ressources et références firmware
  • Licence

🖥️ Spécifications de l'unité centrale

PropriétéValeur
PlateformeDiLink 3.0
Android10 (API 29)
SoCQualcomm QCM6125 (SM6125 Trinket)
ArchitectureARM64, 8 cœurs
RAM~3.5 GB
Noyau4.14.117-perf
ADBWiFi, port 5555
IP de l'unité centrale192.168.10.10 (WiFi de la voiture)
Firmware13.1.32.2507250.1 (25 juil. 2025)
MCU13.5.2.2312260.1
DSP13.5.5.2505300.2
BootloaderDéverrouillé (ro.boot.flash.locked=0)
Verified bootOrange (déverrouillé)
Instrument ClusterSystème Qt/QML séparé (Qt 5.15.10 / 6.5.5)

Testé sur le firmware 13.1.32.2507250.1. Les versions plus anciennes fonctionnent probablement. Les mises à jour firmware plus récentes de BYD peuvent modifier ou casser des choses — aucune garantie.


🚀 Pour commencer

Nouveau ici ? Commencez par le Guide de sideloading pour installer des applications sur votre BYD — aucun root nécessaire.

Pour les applications personnalisées construites sur cette recherche, voir byd-apps.

Connexion ADB rapide

adb connect 192.168.10.10:5555

Faits rapides sur le sideloading

  • Méthode USB — déposez les APK dans le dossier Third Party Apps XX (suffixe du code pays), branchez dans la voiture
  • Mot de passe maître — BYD6125F (universel sur DiLink 3)
  • Exigences APK — ARM64, targetSdk ≤ 33, minSdk ≤ 29
  • Restrictions spécifiques au pays — Kazakhstan (liste blanche de 14 applications), Inde (Mappls uniquement), Europe/Japon/Australie (vérification en ligne)

Injection CAN Bus (codage de style VCDS)

Injectez des trames CAN depuis ADB — sans root, sans dongle 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

Voir Driver Display pour le protocole de diagnostic UDS complet, le format des trames CAN et la topologie du réseau ECU.


🔬 Principales découvertes

✅ Ce qui fonctionne (sans root)

FonctionnalitéDétails
Lecture de la température de climatisationgetTemprature(zone) — zone 1/2 = température réglée, zone 4 = extérieur/ambiante
Contrôle complet de la climatisationPlus de 40 méthodes getter + SET (démarrage/arrêt, température, ventilation, mode de soufflage) via contournement des permissions
Contrôle à distance de la climatisationhasFeature("ACRemoteControl") = 1, prend en charge une minuterie de 10 à 30 min
Contournement des permissionsBydPermissionContext (ContextWrapper) accorde automatiquement les permissions BYDAUTO_* côté client
Lecture/écriture du bus CANVia ADB en utilisant app_process + réflexion
Plus de 75 paquets BYDAvec accès au bus CAN, plus de 100 permissions BYDAUTO_* personnalisées
Son du simulateur de moteurSimulateur présent et commutable (HAS_SIMULATOR=2), préréglage sélectionné via 0x3E300038. Le MCU stocke et renvoie n'importe quel type de source — vérifié jusqu'à 200 ; seul 0 est rejeté — donc l'acceptation n'implique pas un son distinct et le nombre de préréglages réels n'est pas découvrable via cette API. 0x48F00013 renvoie 1 signifiant « une source existe », pas un nombre. — Engine Sound app
Sélection de préréglage AVASInscriptible via CAN — l'interface affiche 2 mais le MCU accepte 0–5+
Streaming PCM setBufferTrames PCM de 128 octets acceptées par le MCU (ret=0) pour plus de 8 ID de fonctionnalité. Tampon max : 128 octets. Interprétation audio par le MCU non confirmée.
Tonalités de test AVAHLecture sur le haut-parleur externe AVAS à l'aide de signaux de diagnostic d'usine (0x6E970010)
Motifs mélodiques AVAS8 motifs fonctionnels (sonnette, carillon de boutique, alarme, fanfare, etc.) via le contrôle de hauteur TEST_AUDIO_AVAS_SET — Door Sound app
Injection sur le bus CANCodage de fonctionnalités de style VCDS possible — injecter des trames CAN via la diffusion com.byd.cluster.spi, sans root
Capture d'écran du combinéCapturer l'affichage conducteur via fission_screencap -d 1 -p <file>
Lectures du combiné d'instrumentsPowerUnit, TempUnit, BacklightCtlType, InsThemeValue via BYDAutoManager
Bascule DRLsetInt(1004, 0x43100046, 1/2) — mode auto DRL ON/OFF, confirmé par relecture
Périphérique YUN (1034)TOUS les ID de fonctionnalité 0xAA acceptés par le MCU — setBuffer(1034, fid, data) et setInt(1034, fid, val) renvoient 0 (OK). Canal MCU privé de Cloudmanager. Nécessite un chiffrement AES pour l'actionnement.
Fournisseurs de contenuExposent les données du véhicule (batterie, pression des pneus, entretien, consommation du trajet)
Installation en sideloadClé USB ou ADB — voir le guide
Images de la caméra 360Flux live 1280×960 depuis les quatre caméras périphériques, sans root. bmmcamera.jar est lisible par tous — chargez-le vous-même et pilotez JNIBMMCamera directement depuis un app_process en uid shell. Une application installée ne pourra jamais le faire (SELinux refuse à untrusted_app_* le binder bmmcameraserver) ; un processus lancé via ADB le peut — détails

⚠️ Partiellement fonctionnel

FonctionnalitéStatut
État de verrouillage des portesLes portes principales renvoient INVALID (0), le verrouillage enfant est lisible. Pas de setDoorLockStatus() dédié — nécessite un set() générique avec des ID de fonctionnalité inconnus
Contrôle d'affichage de la caméra 360BYDAutoPanoramaDevice (mode, rotation, transparence) est appliqué côté serveur et le contournement BydPermissionContext échoue. La capture d'images fonctionne — voir ci-dessus

❌ Ce qui ne fonctionne pas

Télécharger l’outil