Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
byd-dolphin-hacking — Engenharia reversa da central multimídia do BYD Dolphin — barramento CAN, AVAS, chaves NFC, OTA e mais. DiLink 3 / Android 10. | Kitploit
Ferramentas/GitHubGitHub/wheregoes/byd-dolphin-hacking
Segurança AndroidSegurança de Sistemas EmbarcadosEscalada de PrivilégiosSegurança IoTAnálise de VulnerabilidadesEngenharia ReversaColeta de InformaçõesHacking de HardwareAnálise de BináriosPapers e Pesquisa
GitHub
59108há 2 diasRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
wheregoes/byd-dolphin-hacking

byd-dolphin-hacking

Engenharia reversa da central multimídia do BYD Dolphin — barramento CAN, AVAS, chaves NFC, OTA e mais. DiLink 3 / Android 10.

Ver Repositório

🚗 BYD Dolphin Head Unit — Pesquisa e Engenharia Reversa

Engenharia reversa, documentação e ferramentas para o sistema de infoentretenimento do BYD Dolphin 25/26 (DiLink 3, Android 10).

Tudo aqui foi descoberto através de exploração via ADB, descompilação de APK e sondagem do barramento CAN — nenhuma documentação proprietária foi utilizada.

⚠️ Aviso: Projeto não oficial, conduzido pela comunidade — sem qualquer afiliação com a BYD. Engenharia reversa dos serviços Android internos da BYD para fins exclusivamente educacionais e de interoperabilidade. Utilize por sua conta e risco — modificar o software do veículo pode anular a sua garantia ou violar os termos de serviço da BYD. Os autores não assumem qualquer responsabilidade por danos ao seu veículo, software ou dados.


📋 Índice

  • Especificações da Head Unit
  • Primeiros Passos
  • Principais Descobertas
  • Descobertas de Segurança
  • Arquitetura
  • Documentação
  • Scripts
  • Estrutura do Repositório
  • Recursos e Referências de Firmware
  • Licença

🖥️ Especificações da Head Unit

PropriedadeValor
PlataformaDiLink 3.0
Android10 (API 29)
SoCQualcomm QCM6125 (SM6125 Trinket)
ArquiteturaARM64, 8 núcleos
RAM~3.5 GB
Kernel4.14.117-perf
ADBWiFi, porta 5555
IP da Head Unit192.168.10.10 (WiFi do carro)
Firmware13.1.32.2507250.1 (25 de julho de 2025)
MCU13.5.2.2312260.1
DSP13.5.5.2505300.2
BootloaderDesbloqueado (ro.boot.flash.locked=0)
Verified bootLaranja (desbloqueado)
Painel de InstrumentosSistema Qt/QML separado (Qt 5.15.10 / 6.5.5)

Testado no firmware 13.1.32.2507250.1. Versões mais antigas provavelmente funcionam. Atualizações de firmware mais recentes da BYD podem alterar ou quebrar o funcionamento — sem garantias.


🚀 Primeiros Passos

Novo por aqui? Comece pelo Guia de Sideloading para instalar aplicações no seu BYD — sem necessidade de root.

Para aplicações personalizadas construídas com base nesta pesquisa, consulte byd-apps.

Conexão ADB Rápida

adb connect 192.168.10.10:5555

Fatos Rápidos sobre Sideloading

  • Método USB — coloque os APKs na pasta Third Party Apps XX (sufixo do código do país), conecte ao carro
  • Senha mestra — BYD6125F (universal em todo o DiLink 3)
  • Requisitos do APK — ARM64, targetSdk ≤ 33, minSdk ≤ 29
  • Restrições específicas por país — Cazaquistão (whitelist de 14 apps), Índia (apenas Mappls), Europa/Japão/Austrália (verificação online)

Injeção no CAN Bus (Codificação Estilo VCDS)

Injete frames CAN a partir do ADB — sem root, sem 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

Consulte Driver Display para o protocolo de diagnóstico UDS completo, formato de frame CAN e topologia de rede da ECU.


🔬 Principais Descobertas

✅ O Que Funciona (Sem Root)

RecursoDetalhes
Leitura de temperatura do ACgetTemprature(zone) — zona 1/2 = temperatura definida, zona 4 = externa/ambiente
Controle total do ACMais de 40 métodos getter + SET (iniciar/parar, temperatura, ventilador, modo de vento) via bypass de permissão
Controle remoto do AChasFeature("ACRemoteControl") = 1, suporta timer de 10–30min
Bypass de permissãoBydPermissionContext (ContextWrapper) concede automaticamente permissões BYDAUTO_* no lado do cliente
Leitura/escrita no barramento CANVia ADB usando app_process + reflection
Mais de 75 pacotes BYDCom acesso ao barramento CAN, mais de 100 permissões BYDAUTO_* personalizadas
Som do simulador de motorSimulador presente e alternável (HAS_SIMULATOR=2), preset selecionado via 0x3E300038. A MCU armazena e devolve qualquer tipo de fonte — verificado até 200; apenas 0 é rejeitado — portanto a aceitação não implica um som distinto e o número de presets reais não é descobrível através desta API. 0x48F00013 retorna 1 significando "existe uma fonte", não uma contagem. — Engine Sound app
Seleção de preset AVASGravável via CAN — a UI mostra 2 mas a MCU aceita 0–5+
Streaming PCM via setBufferFrames PCM de 128 bytes aceitos pela MCU (ret=0) para mais de 8 feature IDs. Buffer máximo: 128 bytes. Se a MCU interpreta como áudio não confirmado.
Tons de teste AVAHReproduzidos no alto-falante externo AVAS usando sinais de diagnóstico de fábrica (0x6E970010)
Padrões de melodia AVAS8 padrões funcionais (campainha, som de loja, alarme, fanfarra, etc.) via controle de tom TEST_AUDIO_AVAS_SET — Door Sound app
Injeção no barramento CANCodificação de recursos estilo VCDS possível — injetar frames CAN via broadcast com.byd.cluster.spi, sem necessidade de root
Captura de tela do clusterCapturar o display do motorista via fission_screencap -d 1 -p <file>
Leituras do painel de instrumentosPowerUnit, TempUnit, BacklightCtlType, InsThemeValue via BYDAutoManager
Alternância de DRLsetInt(1004, 0x43100046, 1/2) — modo automático de DRL ON/OFF, confirmado por leitura de retorno
Dispositivo YUN (1034)TODOS os feature IDs 0xAA aceitos pela MCU — setBuffer(1034, fid, data) e setInt(1034, fid, val) retornam 0 (OK). Canal MCU privado do Cloudmanager. Requer criptografia AES para atuação.
Content providersExpõem dados do veículo (bateria, pressão dos pneus, manutenção, consumo de viagem)
SideloadingPen drive USB ou ADB — ver guia
Frames da câmera 360Ao vivo 1280×960 das quatro câmeras surround, sem root. bmmcamera.jar é legível por todos — carregue-o você mesmo e controle JNIBMMCamera diretamente de um app_process com uid shell. Um app instalado nunca consegue fazer isso (o SELinux nega a untrusted_app_* o binder bmmcameraserver); um processo iniciado via ADB consegue — detalhes

⚠️ Funcionando Parcialmente

RecursoStatus
Status da trava das portasPortas principais retornam INVALID (0), trava infantil legível. Sem setDoorLockStatus() dedicado — precisa de set() genérico com feature IDs desconhecidos
Controle de exibição da câmera 360BYDAutoPanoramaDevice (modo, rotação, transparência) é aplicado no lado do servidor e o bypass do BydPermissionContext falha. A captura de frames funciona — ver acima

❌ O Que Não Funciona

Baixar ferramenta