
Drone HASAKEE FPV video app for Android

An Android app for viewing the live video stream from HASAKEE FPV drones. Built by reverse engineering the proprietary UDP protocol used by the drone's WiFi camera.
HASAKEE-WiFi-XXXXX)192.168.0.1, video port: 40000Other HASAKEE/Lewei-based drones using the same protocol may also work.
WifiNetworkSpecifier, API 26-28 checks existing connection)| Streaming | WiFi Auto-Connect |
|---|---|
![]() | ![]() |
App icon:
Drone icon by Flaticon — free for personal and commercial use with attribution.
The app communicates with the drone over UDP:
HASAKEE-WiFi-XXXXX)63 63 01 00 00 00 00) every 1 second to 192.168.0.1:40000The drone uses a proprietary packet format reverse engineered from the HASAKEE FPV Android app's native libraries (liblewei-2.3.so, liblewei63.so):
Offset 0x00-0x01: 0x6363 (magic header)
Offset 0x02: Command type (0x01=heartbeat, 0x03=video)
Offset 0x03-0x04: Sequence ID
Offset 0x05-0x06: Packet length
Offset 0x07: Frame type
Offset 0x08-0x0B: Frame ID
Offset 0x36 (54): JPEG data start
This app was built from protocol knowledge gained by reverse engineering the HASAKEE FPV Android app (version 1.0.4), specifically its native libraries using Ghidra and Wireshark packet analysis.
The full reverse engineering work, including decompiled protocol documentation, Python proof-of-concept streaming code, and detailed protocol notes, is available at:
git clone https://github.com/mretallack/DroneCamera.git
cd DroneCamera
./gradlew assembleDebug
The APK will be at app/build/outputs/apk/debug/app-debug.apk.
Release builds require a signing keystore:
export KEYSTORE_PATH=release.keystore
export KEYSTORE_PASSWORD=<your-password>
export KEY_ALIAS=release
export KEY_PASSWORD=<your-password>
./gradlew assembleRelease
The signed APK will be at 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
This project is licensed under the MIT License — see LICENSE for details.
Drone icon by Flaticon.