
Aplicación de video FPV para dron HASAKEE en Android

Una aplicación Android para ver la transmisión de video en vivo de los drones FPV HASAKEE. Creada mediante ingeniería inversa del protocolo UDP propietario utilizado por la cámara WiFi del dron.
HASAKEE-WiFi-XXXXX)192.168.0.1, puerto de video: 40000Otros drones basados en HASAKEE/Lewei que usen el mismo protocolo también podrían funcionar.
WifiNetworkSpecifier, API 26-28 verifica la conexión existente)| Transmisión | Conexión WiFi automática |
|---|---|
![]() | ![]() |
Icono de la aplicación:
Icono de dron de Flaticon — gratuito para uso personal y comercial con atribución.
La aplicación se comunica con el dron a través de UDP:
HASAKEE-WiFi-XXXXX)63 63 01 00 00 00 00) cada 1 segundo a 192.168.0.1:40000El dron utiliza un formato de paquete propietario obtenido mediante ingeniería inversa de las bibliotecas nativas de la aplicación Android HASAKEE FPV (liblewei-2.3.so, liblewei63.so):
Offset 0x00-0x01: 0x6363 (encabezado mágico)
Offset 0x02: Tipo de comando (0x01=heartbeat, 0x03=video)
Offset 0x03-0x04: ID de secuencia
Offset 0x05-0x06: Longitud del paquete
Offset 0x07: Tipo de trama
Offset 0x08-0x0B: ID de trama
Offset 0x36 (54): Inicio de datos JPEG
Esta aplicación se creó a partir del conocimiento del protocolo obtenido mediante ingeniería inversa de la aplicación Android HASAKEE FPV (versión 1.0.4), específicamente de sus bibliotecas nativas utilizando Ghidra y análisis de paquetes con Wireshark.
El trabajo completo de ingeniería inversa, incluida la documentación del protocolo decompilado, código Python de prueba de concepto para la transmisión y notas detalladas del protocolo, está disponible en:
git clone https://github.com/mretallack/DroneCamera.git
cd DroneCamera
./gradlew assembleDebug
El APK estará en app/build/outputs/apk/debug/app-debug.apk.
Las compilaciones de versión requieren un almacén de claves (keystore) de firma:
export KEYSTORE_PATH=release.keystore
export KEYSTORE_PASSWORD=<your-password>
export KEY_ALIAS=release
export KEY_PASSWORD=<your-password>
./gradlew assembleRelease
El APK firmado estará en app/build/outputs/apk/release/app-release.apk.
./gradlew installDebug
./gradlew test
./gradlew lintDebug
app/src/main/java/uk/org/retallack/dronecamera/
├── FrameAssembler.kt # Analizador de paquetes 0x6363, ensamblaje de tramas, desofuscación
├── DroneConnection.kt # Enviador de heartbeat UDP y receptor de paquetes
├── WifiConnector.kt # Conexión automática al WiFi del dron HASAKEE
├── DroneStreamViewModel.kt # Gestión de estado (IDLE/CONNECTING/STREAMING/ERROR)
└── MainActivity.kt # Visualización de video SurfaceView e interfaz de usuario
Este proyecto está licenciado bajo la Licencia MIT — consulte LICENSE para más detalles.
Icono de dron de Flaticon.