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 SecurityEmbedded Systems SecurityPrivilege EscalationIoT SecurityVulnerability AnalysisReverse EngineeringInformation GatheringHardware HackingBinary AnalysisPapers & Research
GitHub
591082일 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
wheregoes/byd-dolphin-hacking

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의 최신 펌웨어 업데이트는 동작을 변경하거나 중단시킬 수 있으며, 보장할 수 없습니다.


🚀 시작하기

처음이신가요? 사이드로딩 가이드를 통해 루트 없이 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 프레임 주입 — 루트 불필요, 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

See Driver Display for the full UDS diagnostic protocol, CAN frame format, and ECU network topology.


🔬 주요 발견 사항

✅ 작동하는 것 (루트 불필요)

기능세부 사항
AC 온도 읽기getTemprature(zone) — zone 1/2 = 설정 온도, zone 4 = 외부/주변
완전한 AC 제어권한 우회를 통한 40개 이상의 getter + SET 메서드 (시작/정지, 온도, 팬, 풍량 모드)
AC 원격 제어hasFeature("ACRemoteControl") = 1, 10–30분 타이머 지원
권한 우회BydPermissionContext (ContextWrapper)가 클라이언트 측에서 BYDAUTO_* 권한을 자동 부여
CAN 버스 읽기/쓰기app_process + 리플렉션을 사용하여 ADB를 통해
75개 이상의 BYD 패키지CAN 버스 접근, 100개 이상의 사용자 정의 BYDAUTO_* 권한 포함
엔진 시뮬레이터 사운드시뮬레이터 존재 및 전환 가능 (HAS_SIMULATOR=2), 0x3E300038을 통해 프리셋 선택. MCU는 모든 소스 유형을 저장하고 반환함 — 200까지 검증됨; 0만 거부됨 — 따라서 수용이 별개의 사운드를 의미하지 않으며 실제 프리셋 수는 이 API를 통해 확인할 수 없음. 0x48F00013은 "소스가 존재함"을 의미하는 1을 반환하며, 개수가 아님. — Engine Sound 앱
AVAS 프리셋 선택CAN 쓰기 가능 — UI는 2를 표시하지만 MCU는 0–5+를 수용
setBuffer PCM 스트리밍8개 이상의 기능 ID에 대해 MCU가 128바이트 PCM 프레임 수용 (ret=0). 최대 버퍼: 128바이트. MCU가 오디오로 해석하는지 미확인.
AVAH 테스트 톤공장 진단 신호 (0x6E970010)를 사용하여 AVAS 외부 스피커에서 재생
AVAS 멜로디 패턴TEST_AUDIO_AVAS_SET 피치 제어를 통한 8가지 작동 패턴 (초인종, 상점 차임, 경보, 팡파르 등) — Door Sound 앱
CAN 버스 주입VCDS 스타일 기능 코딩 가능 — com.byd.cluster.spi 브로드캐스트를 통해 CAN 프레임 주입, 루트 불필요
클러스터 스크린샷fission_screencap -d 1 -p <file>을 통해 운전자 디스플레이 캡처
계기판 클러스터 읽기BYDAutoManager를 통한 PowerUnit, TempUnit, BacklightCtlType, InsThemeValue
DRL 토글setInt(1004, 0x43100046, 1/2) — DRL 자동 모드 ON/OFF, 읽기로 확인됨
YUN 장치 (1034)MCU가 모든 0xAA 기능 ID 수용 — setBuffer(1034, fid, data) 및 setInt(1034, fid, val)이 0 (OK) 반환. Cloudmanager의 전용 MCU 채널. 작동을 위해서는 AES 암호화 필요.
콘텐츠 프로바이더차량 데이터 노출 (배터리, 타이어 압력, 유지보수, 주행 소비량)
사이드로딩USB 드라이브 또는 ADB — 가이드 참조
360 카메라 프레임4개의 서라운드 카메라 모두에서 라이브 1280×960, 루트 불필요. bmmcamera.jar는 전 세계 읽기 가능 — 직접 로드하고 shell-uid app_process에서 JNIBMMCamera를 직접 구동. 설치된 앱은 절대 이렇게 할 수 없음 (SELinux가 untrusted_app_*에게 bmmcameraserver 바인더를 거부); 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 프로세스 메모리 (루트)에서만 사용 가능.
부팅 애니메이션교체하려면 루트 필요 (/system/media/)
실내/내부 온도API를 찾을 수 없음 — 철저한 프로빙으로 사용 불가 확인됨
브라우저 blob 다운로드 우회fetch→blob→anchor.click은 펌웨어 13.1.32.2507250.1에서 BYD의 "Download proibido" 정책에 의해 조용히 차단됨. 파일이 생성되지 않고, 오류도, 팝업도 없음. 이것이 작동한다는 이전 주장은 부정확했음 — 전체 진단은 test-log 참조. navigator.share도 이 빌드에서는 undefined.

🔓 루트 사용 시 (Magisk)

루트는 선택 사항 — 대부분의 기능은 루트 없이 작동. 루팅 가이드

기능세부 사항
직접 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) 실행

🔒 보안 발견 사항

연구자를 위한 주요 보안 관련 발견:

도구 다운로드