案例
Xiaomi Kettle BLE protocol:重建智能电水壶的控制接口
记录 Xiaomi 电水壶封闭的低功耗蓝牙 GATT 协议;作者通过反编译 Mi Home Android 应用并反汇编其负责加密的原生库重建了该协议。文档涵盖连接与认证握手、状态通知的数据布局以及可写入的设置特征值,并附有用 Go 重新实现的少量加密辅助函数。作者据此开发了接入 Home Assistant 的水壶–MQTT 桥接程序,但未公开其代码,也不保证这些笔记对他人同样适用。
- 目标
- 协议
- 类别
- 独立重建案例
- 关联
- 独立重建项目
- 来源复核于
使用条件与局限
- 在 2018-11-29 的最后一次提交处审阅;仓库已归档,只包含一份 README 和一个 Go 文件。README 称该水壶基于 QN9020 MCU,但未指明具体型号或固件版本。
- 使用这些笔记需要使用者自己的水壶,以及任意能读写并订阅特征值的 BLE 库;作者使用 Go 与 currantlabs/ble。仓库未收录 Mi Home 应用、其原生库或任何反编译产物;握手使用客户端自行生成的令牌,因此既没有提交也不需要任何厂商密钥。
- README 列出了作者观察到的设备限制:除非保温模式已开启,否则无法通过 BLE 启动加热;保温模式只能用实体按键重新开启;保温时限最长为 12 小时。
- cipher.go 只包含加密与字节混排辅助函数,并非完整客户端。仓库没有测试、抓包或验证记录,因此协议说明为作者报告;README 致谢了 jadx-gui 和 IDA Pro,本次核查既未运行代码,也未连接水壶。
- 采用 WTFPL 第 2 版许可(LICENSE.txt)。Xiaomi 与 Mi Home 仍为其权利人的商标;所审阅来源未确立任何 AI 或 REA 使用。
关于此条目
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · anna-oake/xiaomi-kettle · 修订 fbc0b51
- cipher.go GitHub · anna-oake/xiaomi-kettle · 修订 fbc0b51
- LICENSE.txt GitHub · anna-oake/xiaomi-kettle · 修订 fbc0b51