
一款用于查看 HASAKEE FPV 无人机实时视频流的 Android 应用。通过逆向工程无人机 WiFi 摄像头使用的专有 UDP 协议构建。
HASAKEE-WiFi-XXXXX)192.168.0.1,视频端口:40000其他使用相同协议的 HASAKEE/Lewei 系列无人机可能也可使用。
WifiNetworkSpecifier,API 26-28 检查现有连接)| 视频流 | WiFi 自动连接 |
|---|---|
![]() | ![]() |
应用图标:
无人机图标来自 Flaticon — 免费供个人和商业使用,需注明出处。
应用通过 UDP 与无人机通信:
HASAKEE-WiFi-XXXXX)192.168.0.1:40000 发送心跳数据包(63 63 01 00 00 00 00)该无人机使用一种专有数据包格式,通过逆向工程 HASAKEE FPV Android 应用的本地库(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
本应用基于对 HASAKEE FPV Android 应用(版本 1.0.4)进行逆向工程所获得的协议知识构建,具体是使用 Ghidra 和 Wireshark 数据包分析对其本地库进行逆向。
完整的逆向工程成果,包括反编译的协议文档、Python 概念验证视频流代码以及详细的协议笔记,可在以下地址获取:
git clone https://github.com/mretallack/DroneCamera.git
cd DroneCamera
./gradlew assembleDebug
APK 将位于 app/build/outputs/apk/debug/app-debug.apk。
发布构建需要签名密钥库:
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。