案例
bosectl:重建 Bose BMAP 耳机协议
无需 Bose 应用、账号或云服务,即可在 Linux 和 macOS 上控制 Bose 耳机:项目提供 Python、Rust 和 C++ 库及命令行工具,在蓝牙 RFCOMM 上实现 Bose 的 BMAP 协议。作者在 NOTES.md 中记录了 BMAP 的功能块、操作符、载荷布局和错误码,据称是通过探测 RFCOMM 通道、在 Bose 应用中更改设置时抓取蓝牙通信并逐一测试各操作符得出的;这些库涵盖降噪、均衡器、空间音频、按键重映射、配置档和设备设置。各型号的支持情况由作者和贡献者报告。
- 目标
- 协议
- 类别
- 独立重建案例
- 关联
- 独立重建项目
- 来源复核于
使用条件与局限
- 所审阅的提交即 2026-09-28 发布的 v0.5.0 版本,该版本提供由 Rust 和 C++ 代码构建的 Linux x86_64 bmapctl 二进制,并附 SHA256SUMS;Rust crate 也以 bose-bmap 0.5.0 发布在 crates.io 上,Python 软件包则需从仓库通过安装脚本或 pipx 安装。README 的设备表将以 QC Ultra Headphones 2 为首的六个型号标为不同程度地已验证,Ultra Open Earbuds 则依据一份设备报告标为部分支持;设备目录中的其他 BMAP 产品虽能按产品 ID 识别,但没有经过测试的配置。
- 需要使用者自己已配对的 Bose 耳机和蓝牙适配器:Linux 上使用 BlueZ;macOS 需 10.15+,Python 库通过 PyObjC 的 IOBluetooth 绑定访问蓝牙。Rust crate 仅支持 Linux,在 Linux 上构建 C++ 版本需要 CMake、C++17 编译器和 BlueZ 开发头文件。运行时无需任何 Bose 软件或文件。
- README 报告的方法包括探测 RFCOMM 通道、在 Bose 应用中切换设置时抓取蓝牙 HCI 通信,以及在各功能块上逐一测试操作符;NOTES.md 还引用了 Bose Android 应用中的类名。仓库中没有该应用、反编译代码或原始 HCI/网络抓包:captures/ 中是 bmap-capture.py 记录的八份设置变更前后快照,其中 MAC 地址、序列号等标识已部分遮盖;fixtures/ 中有一份供测试使用的数据包。
- README 称项目只使用耳机无需认证即可接受的 BMAP 操作,不提取密钥、不破解加密,也不重放通信;应用须经云端认证后才能执行的写入操作仍无法使用。尚未实现 USB 控制,NOTES.md 认为 USB 接口用于固件更新。
- CI 在 Ubuntu 和 macOS 上运行 Python、Rust 和 C++ 的测试目标,无需连接耳机;需要已配对设备的集成测试只有在启用时才会运行。本次核查未复现任何设备行为。采用 MIT 许可;未确立任何 REA 使用。
关于此条目
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · aaronsb/bosectl · 修订 70570b2
- NOTES.md GitHub · aaronsb/bosectl · 修订 70570b2
- docs/architecture.md GitHub · aaronsb/bosectl · 修订 70570b2
- docs/quietcomfort-headphones-prince.md GitHub · aaronsb/bosectl · 修订 70570b2
- captures GitHub · aaronsb/bosectl · 修订 70570b2
- bmap-capture.py GitHub · aaronsb/bosectl · 修订 70570b2
- fixtures/README.md GitHub · aaronsb/bosectl · 修订 70570b2
- python/pyproject.toml GitHub · aaronsb/bosectl · 修订 70570b2
- rust/README.md GitHub · aaronsb/bosectl · 修订 70570b2
- cpp/CMakeLists.txt GitHub · aaronsb/bosectl · 修订 70570b2
- python/tests/test_integration.py GitHub · aaronsb/bosectl · 修订 70570b2
- .github/workflows/test.yml GitHub · aaronsb/bosectl · 修订 70570b2
- LICENSE GitHub · aaronsb/bosectl · 修订 70570b2
- https://github.com/aaronsb/bosectl/releases/tag/v0.5.0
- https://crates.io/crates/bose-bmap/0.5.0
同分区更多条目:协议
- Wireshark 协议分析工具 · 工具
- Netzob 协议建模与推断框架 · 工具
- Scapy 报文分析与构造工具 · 工具
- Universal Radio Hacker(URH)无线协议分析工具 · 工具
- SavvyCAN CAN 总线分析工具 · 工具
- AALpy 自动机学习库 · 工具