mchardysam/magene-l308-taillight
GitHub: mchardysam/magene-l308-taillight
逆向文档化 Magene L308 智能尾灯的 BLE 协议,并提供 Web Bluetooth 工具和 Python CLI 来替代官方 App 进行图案自定义与设备控制。
Stars: 0 | Forks: 0
# Magene L308 — 非官方互操作工具
read-settings # brake / sleep / timeout
.venv/bin/python l308_send.py --name list-patterns # stored ids + current slot
.venv/bin/python l308_send.py --name pattern 3 # show slot 3 (1-based)
.venv/bin/python l308_upload.py store.bin --name # replace the on-device store
```
`` 是车灯广播名称的任意子字符串(例如 `L308_4B91`)。`l308_explore.py` 会扫描并输出设备的 GATT。
## 快速入门 — Web App
```
cd web && python3 -m http.server 8753
```
在 Chrome/Edge 中打开 `http://localhost:8753` 并点击 **连接车灯**。或者将 `web/` 推送到 GitHub Pages 网站 —— 该 `https://` URL 满足 Web Bluetooth 的安全上下文要求。(Web Bluetooth 适用于 Chrome/Edge 桌面端 + Android;**不支持** iOS Safari。)
## 协议
完整文档请见 **[`spec/L308-ble-protocol.md`](spec/L308-ble-protocol.md)**:GATT 映射、命令帧、设置、图案列表/选择、分块文件上传序列,以及 `light_mode.bin` 记录格式(常亮/闪烁/脉冲/gif/文字,亮度 + 时序字段)。通过观察我们自己的硬件推导得出;`web/` 和 `garmin/` 客户端均实现了此协议。
## 安全警告
- 仅重放已知安全的字节 —— 禁止模糊测试 (fuzzing)。
- **切勿**写入 SMP/DFU 服务(`8d53dc1d…`)—— 它可能会刷新或重置固件(**存在变砖风险**)。这些工具仅涉及供应商命令/数据特征。
- 车灯**无法读取回图案**:上传会直接替换整个存储库且无法撤销,因此请妥善保留 `.bin` 备份(Web App 的库是你的数据真相来源)。
## 支持
这是一个免费的非官方业余项目。如果它为你节省了时间,你可以[赞助开发](https://github.com/sponsors/mchardysam) —— 完全自愿,无论是否赞助,这些工具都将保持免费。
## 许可证
代码:**MIT**(`LICENSE`)。协议规范:**CC-BY-4.0**(`spec/LICENSE`)。
标签:Web蓝牙, 云资产清单, 后端开发, 数据可视化, 智能硬件控制, 物联网, 自行车配件, 蓝牙低功耗, 逆向工具, 逆向工程