
Видеоприложение для дрона HASAKEE FPV на Android

Android-приложение для просмотра прямого видеопотока с FPV-дронов HASAKEE. Создано путём реверс-инжиниринга проприетарного UDP-протокола, используемого WiFi-камерой дрона.
HASAKEE-WiFi-XXXXX)192.168.0.1, видеопорт: 40000Другие дроны HASAKEE/Lewei, использующие тот же протокол, также могут работать.
WifiNetworkSpecifier, API 26-28 проверяет существующее подключение)| Трансляция | WiFi-автоподключение |
|---|---|
![]() | ![]() |
Иконка приложения:
Иконка дрона от Flaticon — бесплатно для личного и коммерческого использования с указанием авторства.
Приложение взаимодействует с дроном по UDP:
HASAKEE-WiFi-XXXXX)63 63 01 00 00 00 00) каждую 1 секунду на 192.168.0.1:40000Дрон использует проприетарный формат пакетов, восстановленный реверс-инжинирингом нативных библиотек Android-приложения HASAKEE FPV (liblewei-2.3.so, liblewei63.so):
Offset 0x00-0x01: 0x6363 (магический заголовок)
Offset 0x02: Тип команды (0x01=heartbeat, 0x03=видео)
Offset 0x03-0x04: Идентификатор последовательности
Offset 0x05-0x06: Длина пакета
Offset 0x07: Тип кадра
Offset 0x08-0x0B: Идентификатор кадра
Offset 0x36 (54): Начало данных JPEG
Это приложение создано на основе знаний о протоколе, полученных путём реверс-инжиниринга Android-приложения HASAKEE FPV (версия 1.0.4), в частности его нативных библиотек, с использованием Ghidra и анализа пакетов в Wireshark.
Полная работа по реверс-инжинирингу, включая документацию декомпилированного протокола, Python-код proof-of-concept для трансляции и подробные заметки о протоколе, доступна здесь:
git clone https://github.com/mretallack/DroneCamera.git
cd DroneCamera
./gradlew assembleDebug
APK будет находиться по пути app/build/outputs/apk/debug/app-debug.apk.
Для релизных сборок требуется keystore для подписи:
export KEYSTORE_PATH=release.keystore
export KEYSTORE_PASSWORD=<your-password>
export KEY_ALIAS=release
export KEY_PASSWORD=<your-password>
./gradlew assembleRelease
Подписанный APK будет находиться по пути app/build/outputs/apk/release/app-release.apk.
./gradlew installDebug
./gradlew test
./gradlew lintDebug
app/src/main/java/uk/org/retallack/dronecamera/
├── FrameAssembler.kt # 0x6363 packet parser, frame assembly, deobfuscation
├── DroneConnection.kt # UDP heartbeat sender and packet receiver
├── WifiConnector.kt # Auto-connect to HASAKEE drone WiFi
├── DroneStreamViewModel.kt # State management (IDLE/CONNECTING/STREAMING/ERROR)
└── MainActivity.kt # SurfaceView video display and UI
Этот проект лицензирован по лицензии MIT — см. LICENSE.
Иконка дрона от Flaticon.