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Анализ уязвимостейОбратная инженерияСбор информацииАппаратный ХакингАнализ Бинарных ФайловСтатьи и Исследования
GitHub
591082 дней назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
wheregoes/byd-dolphin-hacking

byd-dolphin-hacking

Реверс-инжиниринг головного устройства BYD Dolphin — CAN-шина, AVAS, NFC-ключи, OTA и многое другое. DiLink 3 / Android 10.

Репозиторий

🚗 BYD Dolphin Head Unit — Исследование и реверс-инжиниринг

Реверс-инжиниринг, документация и инструменты для информационно-развлекательной системы BYD Dolphin 25/26 (DiLink 3, Android 10).

Всё здесь было обнаружено путём исследования через ADB, декомпиляции APK и анализа CAN-шины — проприетарная документация не использовалась.

⚠️ Отказ от ответственности: Неофициальный проект, поддерживаемый сообществом — не связан с BYD. Реверс-инжиниринг внутренних Android-сервисов BYD выполняется исключительно в образовательных целях и для обеспечения совместимости. Используйте на свой страх и риск — модификация программного обеспечения автомобиля может привести к потере гарантии или нарушению условий обслуживания BYD. Авторы не несут ответственности за любой ущерб вашему автомобилю, программному обеспечению или данным.


📋 Содержание

  • Характеристики головного устройства
  • Начало работы
  • Ключевые находки
  • Находки в области безопасности
  • Архитектура
  • Документация
  • Скрипты
  • Структура репозитория
  • Ресурсы и ссылки по прошивкам
  • Лицензия

🖥️ Характеристики головного устройства

СвойствоЗначение
ПлатформаDiLink 3.0
Android10 (API 29)
SoCQualcomm QCM6125 (SM6125 Trinket)
АрхитектураARM64, 8 ядер
RAM~3.5 ГБ
Ядро4.14.117-perf
ADBWiFi, порт 5555
IP головного устройства192.168.10.10 (WiFi автомобиля)
Прошивка13.1.32.2507250.1 (25 июля 2025)
MCU13.5.2.2312260.1
DSP13.5.5.2505300.2
ЗагрузчикРазблокирован (ro.boot.flash.locked=0)
Verified bootOrange (разблокирован)
Приборная панельОтдельная система Qt/QML (Qt 5.15.10 / 6.5.5)

Протестировано на прошивке 13.1.32.2507250.1. Более старые версии, вероятно, тоже работают. Новые обновления прошивки от BYD могут что-то изменить или сломать — никаких гарантий.


🚀 Начало работы

Впервые здесь? Начните с Руководства по сайдлоадингу, чтобы установить приложения на ваш BYD — 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)

Внедрение CAN-кадров из ADB — без 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

См. Driver Display для полного описания диагностического протокола UDS, формата CAN-кадров и топологии сети ECU.


🔬 Ключевые находки

✅ Что работает (без root)

ФункцияДетали
Чтение температуры кондиционераgetTemprature(zone) — зона 1/2 = заданная температура, зона 4 = наружная/окружающая
Полное управление кондиционером40+ getter- и SET-методов (старт/стоп, температура, вентилятор, режим обдува) через обход разрешений
Удалённое управление кондиционеромhasFeature("ACRemoteControl") = 1, поддерживает таймер 10–30 мин
Обход разрешенийBydPermissionContext (ContextWrapper) автоматически выдаёт разрешения BYDAUTO_* на стороне клиента
Чтение/запись CAN-шиныЧерез ADB с использованием app_process + reflection
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+
Потоковая передача PCM через setBuffer128-байтовые PCM-кадры принимаются MCU (ret=0) для 8+ feature ID. Максимальный буфер: 128 байт. Интерпретирует ли MCU их как аудио — не подтверждено.
Тестовые тоны AVAHВоспроизводятся на внешнем динамике AVAS с использованием заводских диагностических сигналов (0x6E970010)
Мелодии AVAS8 рабочих шаблонов (дверной звонок, магазинный чайм, сигнализация, фанфары и т. д.) через управление высотой тона TEST_AUDIO_AVAS_SET — Door Sound app
Инъекция в CAN-шинуВозможно кодирование функций в стиле VCDS — инъекция CAN-кадров через широковещательную рассылку com.byd.cluster.spi, root не требуется
Скриншот кластераЗахват дисплея водителя через fission_screencap -d 1 -p <file>
Чтение данных приборной панелиPowerUnit, TempUnit, BacklightCtlType, InsThemeValue через BYDAutoManager
Переключение DRLsetInt(1004, 0x43100046, 1/2) — автоматический режим DRL ВКЛ/ВЫКЛ, подтверждено обратным чтением
Устройство YUN (1034)ВСЕ feature ID 0xAA принимаются MCU — setBuffer(1034, fid, data) и setInt(1034, fid, val) возвращают 0 (OK). Приватный канал MCU от cloudmanager. Для активации требуется шифрование AES.
Content providersПредоставляют данные автомобиля (батарея, давление в шинах, обслуживание, расход за поездку)
SideloadingUSB-накопитель или ADB — см. руководство
Кадры с 360-камерЖивое изображение 1280×960 со всех четырёх камер кругового обзора, без root. bmmcamera.jar доступен для чтения всем — загрузите его самостоятельно и управляйте JNIBMMCamera напрямую из app_process с uid shell. Установленное приложение никогда не сможет этого сделать (SELinux запрещает untrusted_app_* доступ к binder bmmcameraserver); процесс, запущенный через ADB, может — подробности

⚠️ Работает частично

ФункцияСтатус
Статус блокировки дверейОсновные двери возвращают INVALID (0), детский замок читается. Нет выделенного setDoorLockStatus() — требуется универсальный set() с неизвестными feature ID
Управление отображением 360-камерыBYDAutoPanoramaDevice (режим, поворот, прозрачность) контролируется на стороне сервера, и обход через BydPermissionContext не работает. Захват кадров работает — см. выше

❌ Что не работает

Скачать инструмент