pubglite55/SpaceTravel-Protocol

GitHub: pubglite55/SpaceTravel-Protocol

该项目完整逆向分析了水月雨 MOONDROP Space Travel TWS 耳机基于高通 GAIA V3 的蓝牙通信协议,并提供了配套的分析文档与 Frida 动态调试脚本。

Stars: 0 | Forks: 0

# 水月雨 MOONDROP Space Travel 太空漫游 蓝牙协议分析 **水月雨 MOONDROP** | **Space Travel 太空漫游** | **TWS真无线耳机** 基于逆向工程分析 **水月雨 MOONDROP Space Travel 太空漫游** TWS 真无线耳机的蓝牙通信协议。 ## 项目概述 本项目通过反编译 **水月雨官方 MOONDROP Link APP**、抓包分析、Frida Hook 等手段,完整分析了 **MOONDROP Space Travel 太空漫游** 耳机的蓝牙连接协议和通信机制。 ### 核心发现 - **通信协议**: GAIA V3 (Qualcomm Generic Audio Interface Architecture) - **传输层**: RFCOMM Channel 16, MTU 990 bytes - **Vendor ID**: 29 (0x001D) - **验证机制**: SDP 服务发现 + Android 蓝牙权限验证 ## 目录结构 ``` SpaceTravel-Protocol/ ├── README.md # 本文件 ├── docs/ # 文档 │ ├── Space_Travel_连接协议分析.md # 协议概述 │ ├── Space_Travel_完整分析报告.md # 完整分析报告 │ ├── GAIA_完整抓包数据.md # 实际抓包数据 │ ├── GAIA_协议抓包分析.md # 协议分析 │ ├── GAIA_认证流程分析.md # 认证流程分析 │ ├── 协议通信代码示例.md # 代码示例 │ └── 官方签名证书分析.md # 签名证书分析 ├── scripts/ # Frida 脚本 │ ├── frida_bluetooth_hook.js # 蓝牙基础 hook │ ├── frida_connect_hook.js # 连接 hook │ ├── frida_auth_hook.js # 认证 hook │ ├── frida_data_hook.js # 数据 hook │ └── frida_gaia_hook.js # GAIA 协议 hook └── app/ # 测试 App (Android) └── src/main/ ├── AndroidManifest.xml ├── res/layout/activity_main.xml └── java/com/moondrop/spacetravel/ ├── MainActivity.kt └── BleService.kt ``` ## 快速开始 ### 1. 克隆项目 ``` git clone https://github.com/pubglite55/SpaceTravel-Protocol.git cd SpaceTravel-Protocol ``` ### 2. 使用 Frida Hook #### 安装 Frida ``` pip install frida-tools frida ``` #### 下载 frida-server ``` # 根据设备架构下载 # https://github.com/frida/frida/releases # 推送到设备 adb push frida-server /data/local/tmp/ adb shell "chmod 755 /data/local/tmp/frida-server" adb shell "/data/local/tmp/frida-server &" ``` #### 运行 Hook ``` # 启动 MOONDROP APP adb shell am start -n com.moondroplab.moondrop.moondrop_app/.MainActivity # 获取进程 PID frida-ps -U | grep MOONDROP # 运行 GAIA 数据 hook frida -U -p -l scripts/frida_data_hook.js ``` ### 3. 构建测试 App ``` cd app ./gradlew assembleDebug # 安装到设备 adb install -r app/build/outputs/apk/debug/app-debug.apk ``` ## GAIA 协议详解 ### 数据包格式 #### 命令包 (手机 → 耳机) ``` 字节0-1: [0xFF, 0x04] 包头 字节2-3: [类型, 序列号] 字节4: [0x00] 字节5-6: Vendor ID (0x001D = 29) 字节7: Feature ID 字节8+: Command ID + Payload ``` #### 响应包 (耳机 → 手机) ``` 字节0: [0x00] 字节1: Vendor ID (29) 字节2: Feature ID 字节3: Command ID (带类型位) 字节4+: Payload ``` ### Feature ID 映射 | Feature | 十进制 | 功能 | |---------|--------|------| | 0x00 | 0 | 设备管理 | | 0x01 | 1 | 基础功能 | | 0x03 | 3 | ANC V2 | | 0x07 | 7 | EQ/音乐处理 | | 0x0A | 10 | 编解码器 | | 0x0B | 11 | 状态查询 | ### 实际抓包示例 ``` # 发送: 查询固件版本 TX: [-1, 4, 0, 0, 0, 29, 0, 5] │ │ │ │ │ │ │ └─ Cmd=5 (版本查询) │ │ │ │ │ │ └─── Feature=0 │ │ │ │ │ └───────── Vendor=29 │ │ │ │ └──────────── 序列号 │ │ │ └─────────────── 类型 │ │ └────────────────── 包头 │ └───────────────────── 长度 └──────────────────────── 标志 # 接收: 固件版本 "1.0.0" RX: [0, 29, 1, 5, 49, 46, 48, 46, 48] │ │ │ │ └─────────────────── "1.0.0" (ASCII) │ │ │ └────────────────────── Cmd=5 │ │ └───────────────────────── Feature=1 │ └──────────────────────────── Vendor=29 └─────────────────────────────── 固定值 ``` ## 连接失败原因 ### 验证机制 ``` ┌─────────────┐ ┌─────────────┐ │ 手机 APP │ │ 耳机 │ └──────┬──────┘ └──────┬──────┘ │ │ │ 1. RFCOMM 连接请求 │ │ (带 UUID) │ │ ──────────────────────────────→ │ │ │ │ 2. SDP 服务发现 │ │ 耳机验证 APP 身份 │ │ │ │ 3. 验证通过/失败 │ │ ←────────────────────────────── │ │ │ ``` ### 为什么第三方 APP 连不上 1. **SDP 查询拒绝**: 耳机只响应特定 APP 的 SDP 查询 2. **签名验证**: Android 系统级蓝牙签名验证 3. **包名绑定**: 可能只接受 `com.moondroplab.moondrop.moondrop_app` ## 官方签名证书 ``` Subject DN: CN=kasuga, OU=moondrop, O=moondroplab, L=chengdu, ST=szechuan, C=CN Key Algorithm: RSA 2048-bit SHA-256: d7b972698f528a7994cf6aa814b266564c777f91641568142d11221ff77125b7 ``` ## 水月雨 MOONDROP Space Travel 太空漫游 硬件规格 | 参数 | 值 | |------|-----| | 品牌 | **水月雨 MOONDROP** | | 产品型号 | **Space Travel 太空漫游** | | 产品类型 | TWS 真无线耳机 | | 蓝牙版本 | 5.3 | | 芯片平台 | Qualcomm | | 编解码 | SBC / AAC | | 协议 | A2DP / AVRCP / HFP / HSP | | 续航 | 耳机 4h / 充电仓 12h | | 工作距离 | 10米 (无障碍空旷环境) | | 官方APP | MOONDROP Link | | 官方网站 | https://moondroplab.com/cn/products/space-travel | ## 参考资料 - [Qualcomm GAIA 协议](https://www.qualcomm.com/) - [Android Bluetooth API](https://developer.android.com/develop/connectivity/bluetooth) - [Frida 文档](https://frida.re/docs/home/) ## 许可证 MIT License ## 贡献 欢迎提交 Issue 和 Pull Request! ## 免责声明 本项目仅用于教育和研究目的。请遵守当地法律法规,尊重知识产权。
标签:Docker支持, Frida, GAIA V3, TWS耳机, 云资产清单, 协议分析, 权限提升, 物联网, 自定义脚本, 蓝牙协议, 逆向工程