案例
DJI MIMO BLE 逆向素材:重建 DJI Osmo 控制协议
记录 DJI 专有 MIMO 应用用于控制 DJI Osmo 设备的低功耗蓝牙报文格式,是作者在开发独立 CLI 工具 djictl 时产出的逆向工程素材。作者依据自己手机的蓝牙日志推断出报文结构——魔数、长度、协议版本、头部 CRC8、子系统与消息 ID 字段、载荷以及消息 CRC16——并提供一个 Wireshark 解析插件和一份带注释的消息类型目录。许多消息类型被标注为推测或未知;作者报告在 DJI Osmo Pocket 3 上实现了可用的直播推流后暂停了进一步分析。
- 目标
- 协议
- 类别
- 独立重建案例
- 关联
- 独立重建项目
- 来源复核于
使用条件与局限
- 在 2025-06-08 的 main 分支最新提交处审阅。该仓库是一组逆向工程笔记,而非可运行的应用:配套工具 djictl 位于另一个独立仓库,本次核查未对其评估。README 描述的是 DJI Osmo Pocket 3,未声称覆盖其他 DJI Osmo 型号。
- 方法使用使用者自己的 Android 手机:README 通过 adb 错误报告导出蓝牙 HCI 抓包日志,再用 Wireshark 打开。本仓库既不收录也不要求任何 DJI 固件、应用二进制或账号,除一张 Wireshark 截图外也未包含抓包日志。
- mimo/ble/message_types.md 为约二十余种消息类型列出带注释的样本帧,mimo/ble/wireshark-dissector/ 中的 Wireshark 解析插件将消息类型编码映射为名称;许多条目带有问号或标为未知,因此该目录是部分、经作者解读的内容,而非完整规范。
- 构建解析插件需要 Wireshark 开发头文件、pkg-config 以及 C 编译器;其 Makefile 会将共享库插件安装到 Wireshark 4.2 的插件目录。笔记仅记录协议观察;本次核查既未运行插件,也未连接任何设备。
- 仓库采用 CC0-1.0(公有领域贡献)许可。DJI、MIMO 与 Osmo 仍为其权利人的商标;所审阅来源未确立任何 AI 或 REA 使用。
关于此条目
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · xaionaro/reverse-engineering-dji · 修订 5c9278f
- mimo/ble/message_types.md GitHub · xaionaro/reverse-engineering-dji · 修订 5c9278f
- mimo/ble/wireshark-dissector/dji-ble-message.c GitHub · xaionaro/reverse-engineering-dji · 修订 5c9278f
- mimo/ble/wireshark-dissector/Makefile GitHub · xaionaro/reverse-engineering-dji · 修订 5c9278f
- LICENSE GitHub · xaionaro/reverse-engineering-dji · 修订 5c9278f