# bosectl：重建 Bose BMAP 耳机协议

> 无需 Bose 应用、账号或云服务，即可在 Linux 和 macOS 上控制 Bose 耳机：项目提供 Python、Rust 和 C++ 库及命令行工具，在蓝牙 RFCOMM 上实现 Bose 的 BMAP 协议。作者在 NOTES.md 中记录了 BMAP 的功能块、操作符、载荷布局和错误码，据称是通过探测 RFCOMM 通道、在 Bose 应用中更改设置时抓取蓝牙通信并逐一测试各操作符得出的；这些库涵盖降噪、均衡器、空间音频、按键重映射、配置档和设备设置。各型号的支持情况由作者和贡献者报告。

- 类型：案例
- 目标：协议
- 类别：独立重建案例
- 关联：独立重建项目
- 来源复核于：2026-10-20
- 收录于：2026-11-02
- 原始资源：<https://github.com/aaronsb/bosectl>
- 一手来源：<https://github.com/aaronsb/bosectl/blob/70570b29c1d3c9ba775b08a29eaea72385de27b5/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/bosectl-bose-bmap-protocol-case/>
- 记录 JSON：<https://awesomerea.org/resources/bosectl-bose-bmap-protocol-case/record.json>
- 英文版：[English](https://awesomerea.org/resources/bosectl-bose-bmap-protocol-case/index.md)

## 使用条件与局限

- 所审阅的提交即 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 许可。

## 一手来源

1. <https://github.com/aaronsb/bosectl/blob/70570b29c1d3c9ba775b08a29eaea72385de27b5/README.md>
2. <https://github.com/aaronsb/bosectl/blob/70570b29c1d3c9ba775b08a29eaea72385de27b5/NOTES.md>
3. <https://github.com/aaronsb/bosectl/blob/70570b29c1d3c9ba775b08a29eaea72385de27b5/docs/architecture.md>
4. <https://github.com/aaronsb/bosectl/blob/70570b29c1d3c9ba775b08a29eaea72385de27b5/docs/quietcomfort-headphones-prince.md>
5. <https://github.com/aaronsb/bosectl/tree/70570b29c1d3c9ba775b08a29eaea72385de27b5/captures>
6. <https://github.com/aaronsb/bosectl/blob/70570b29c1d3c9ba775b08a29eaea72385de27b5/bmap-capture.py>
7. <https://github.com/aaronsb/bosectl/blob/70570b29c1d3c9ba775b08a29eaea72385de27b5/fixtures/README.md>
8. <https://github.com/aaronsb/bosectl/blob/70570b29c1d3c9ba775b08a29eaea72385de27b5/python/pyproject.toml>
9. <https://github.com/aaronsb/bosectl/blob/70570b29c1d3c9ba775b08a29eaea72385de27b5/rust/README.md>
10. <https://github.com/aaronsb/bosectl/blob/70570b29c1d3c9ba775b08a29eaea72385de27b5/cpp/CMakeLists.txt>
11. <https://github.com/aaronsb/bosectl/blob/70570b29c1d3c9ba775b08a29eaea72385de27b5/python/tests/test_integration.py>
12. <https://github.com/aaronsb/bosectl/blob/70570b29c1d3c9ba775b08a29eaea72385de27b5/.github/workflows/test.yml>
13. <https://github.com/aaronsb/bosectl/blob/70570b29c1d3c9ba775b08a29eaea72385de27b5/LICENSE>
14. <https://github.com/aaronsb/bosectl/releases/tag/v0.5.0>
15. <https://crates.io/crates/bose-bmap/0.5.0>

## 同分区更多条目：协议

- [lib-osmo-ble：DJI Osmo Pocket 3 低功耗蓝牙协议库](https://awesomerea.org/zh/resources/osmo-pocket-3-ble-protocol-case/index.md) · 案例
- [DJI MIMO BLE 逆向素材：重建 DJI Osmo 控制协议](https://awesomerea.org/zh/resources/dji-mimo-ble-reveng-case/index.md) · 案例
- [Cat Printer BLE：重建 MXW01 热敏打印机协议](https://awesomerea.org/zh/resources/catprinterble-mxw01-printer-case/index.md) · 案例
- [a0rfid：A0 协议 UHF RFID 读写头的开源驱动](https://awesomerea.org/zh/resources/a0rfid-uhf-reader-protocol-case/index.md) · 案例
- [Xiaomi Kettle BLE protocol：重建智能电水壶的控制接口](https://awesomerea.org/zh/resources/xiaomi-kettle-ble-protocol-case/index.md) · 案例
- [Ford Fiesta MK5 MS-CAN：解码仪表盘与收音机总线](https://awesomerea.org/zh/resources/ford-fiesta-mk5-ms-can-case/index.md) · 案例

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
