{
  "added_at": "2026-11-03",
  "additional_evidence_urls": [
    "https://github.com/xaionaro/reverse-engineering-dji/blob/5c9278ff0b53bbe0d03ea6c830aab13ac775871e/mimo/ble/message_types.md",
    "https://github.com/xaionaro/reverse-engineering-dji/blob/5c9278ff0b53bbe0d03ea6c830aab13ac775871e/mimo/ble/wireshark-dissector/dji-ble-message.c",
    "https://github.com/xaionaro/reverse-engineering-dji/blob/5c9278ff0b53bbe0d03ea6c830aab13ac775871e/mimo/ble/wireshark-dissector/Makefile",
    "https://github.com/xaionaro/reverse-engineering-dji/blob/5c9278ff0b53bbe0d03ea6c830aab13ac775871e/LICENSE"
  ],
  "category": "reconstruction-cases",
  "description_en": "Documents the Bluetooth Low Energy message format that DJI's proprietary MIMO app uses to control DJI Osmo devices, as artifacts produced while building the independent djictl CLI. The author derives the framing — a magic byte, length, protocol version, header CRC8, subsystem and message-id fields, a payload and a message CRC16 — from the author's own Android BLE logs, and ships a Wireshark dissector plus an annotated catalog of message types. Many message types are labelled as guesses or unknown; the author reports reaching working livestreaming on a DJI Osmo Pocket 3 and pausing further analysis.",
  "description_zh": "记录 DJI 专有 MIMO 应用用于控制 DJI Osmo 设备的低功耗蓝牙报文格式，是作者在开发独立 CLI 工具 djictl 时产出的逆向工程素材。作者依据自己手机的蓝牙日志推断出报文结构——魔数、长度、协议版本、头部 CRC8、子系统与消息 ID 字段、载荷以及消息 CRC16——并提供一个 Wireshark 解析插件和一份带注释的消息类型目录。许多消息类型被标注为推测或未知；作者报告在 DJI Osmo Pocket 3 上实现了可用的直播推流后暂停了进一步分析。",
  "entry_url": "https://awesomerea.org/resources/dji-mimo-ble-reveng-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/dji-mimo-ble-reveng-case/",
  "evidence_url": "https://github.com/xaionaro/reverse-engineering-dji/blob/5c9278ff0b53bbe0d03ea6c830aab13ac775871e/README.md",
  "group": "cases",
  "id": "dji-mimo-ble-reveng-case",
  "json_url": "https://awesomerea.org/resources/dji-mimo-ble-reveng-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/dji-mimo-ble-reveng-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/dji-mimo-ble-reveng-case/index.md",
  "name": "DJI MIMO BLE artifacts: reconstructing the DJI Osmo control protocol",
  "name_zh": "DJI MIMO BLE 逆向素材：重建 DJI Osmo 控制协议",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirements": [
    "Reviewed at the main-branch head of 2025-06-08. The repository is a set of reverse-engineering notes, not a runnable application: the companion tool djictl lives in a separate repository. The README describes a DJI Osmo Pocket 3.",
    "The method uses the user's own Android phone: the README captures a Bluetooth HCI snoop log through an adb bug report, then opens it in Wireshark. No DJI firmware, app binary or account is committed to or required by this repository, and no captured log is included beyond one Wireshark screenshot.",
    "mimo/ble/message_types.md lists annotated sample frames for about two dozen message types, and the Wireshark dissector in mimo/ble/wireshark-dissector/ maps message-type codes to names; many entries are marked with a question mark or as unknown, so the catalog is partial and author-interpreted rather than a complete specification.",
    "Building the dissector needs Wireshark development headers and pkg-config on a system with a C compiler; its Makefile installs a shared-object plugin into the Wireshark 4.2 plugin directory. The notes record protocol observations only.",
    "The repository is licensed CC0-1.0 (public-domain dedication). DJI, MIMO and Osmo remain trademarks of their owners."
  ],
  "requirements_zh": [
    "在 2025-06-08 的 main 分支最新提交处审阅。该仓库是一组逆向工程笔记，而非可运行的应用：配套工具 djictl 位于另一个独立仓库。README 描述的是 DJI Osmo Pocket 3。",
    "方法使用使用者自己的 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 仍为其权利人的商标。"
  ],
  "targets": [
    "protocol"
  ],
  "url": "https://github.com/xaionaro/reverse-engineering-dji",
  "verification": "source-reviewed",
  "verified_at": "2026-10-27"
}
