案例
open_oura:基于逆向 BLE 协议、无需云端的 Oura Ring 客户端
用一组 Rust crate 和 oura 命令行客户端重新实现 Oura Ring 第 3/4/5 代的低功耗蓝牙协议,可直接与戒指配对、认证并同步数据,无需 Oura 账户或云服务。作者称从反编译的 Android 应用中恢复了 GATT 布局、数据包帧格式和基于 AES 的应用认证流程,并依据 Ghidra 对应用原生库的反编译结果,移植了历史事件解码器以及 HRV、睡眠负债、夜间体温基线等若干设备端指标算法。事件内容以原始形式存入 SQLite,解码器改进后可重新解码。
使用条件与局限
- 审阅的是 main 分支 2026-10-07 的最新提交;仓库没有发布版本或标签,工作区版本为 0.1.0。README 称已在 Ring 3 Horizon 和 Ring 5 上实测配对、认证和事件同步,并说明客户端面向共用同一 GATT 布局、数据包帧格式和认证流程的 Ring 3/4/5 设计。若干事件布局标注为推断或部分未解析;算法状态表显示睡眠、准备度和活动评分仅部分恢复。基于这些 crate 的 iOS 应用和网页仪表盘位于独立的 open_health 仓库。
- 需要使用者自己的戒指和主机蓝牙适配器。需认证的读取要求把戒指的 16 字节应用认证密钥写入密钥文件:pair 命令会在恢复出厂设置的戒指上安装新密钥;已由官方应用完成初始化的戒指,其密钥保存在官方应用的本地数据库中,仓库附带的导出辅助脚本需要已 root 的 Android 手机。睡眠分期和部分评分依赖 Oura 专有的设备端模型,README 说明这些模型不包含在仓库中,需由使用者自行提供;恢复出厂设置等会改变状态的命令须显式加参数才能执行。
- 使用 Cargo 构建,为 Rust 2021 工作区。oura-link crate 默认使用 btleplug 实现 BLE,也可去掉该依赖构建,由 iOS 宿主提供自己的 CoreBluetooth 传输层;在 macOS 上需为终端授予蓝牙权限。tools/ 下另有使用 bleak 和 pycryptodome 的 Python 研究工具集。
- 审阅时 cargo test 包含 88 个 Rust 单元测试,涵盖已捕获数据包的解码、AES 认证已知答案向量、基于模拟传输层的认证与同步以及移植的指标函数;仓库未提交 CI 工作流。文档中的夜间心率、RMSSD 和 SpO2 比值等生理数据来自作者自己的戒指;本次审阅既未运行测试,也未运行客户端。
- 采用 MIT 许可(见 LICENSE 和 Cargo 元数据)。Oura 的应用、原生库、模型、固件、反编译输出、抓包数据和密钥均未纳入仓库;仓库中关于固件更新、模型解密和应用修补的笔记,本条目有意不予链接或转述。仓库提交了面向编程智能体的 CLAUDE.md 指南;所审来源未确立与 REA 的关联。
关于此条目
- 类型
- 案例
- 类别
- 独立重建案例
- 关联
- 独立重建项目
- 目标
- 应用 · 协议
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · Th0rgal/open_oura · 修订 e57c43c
- crates/README.md GitHub · Th0rgal/open_oura · 修订 e57c43c
- docs/architecture.md GitHub · Th0rgal/open_oura · 修订 e57c43c
- docs/horizon-ring3-protocol-cheatsheet.md GitHub · Th0rgal/open_oura · 修订 e57c43c
- docs/native-decoder.md GitHub · Th0rgal/open_oura · 修订 e57c43c
- docs/algorithms/README.md GitHub · Th0rgal/open_oura · 修订 e57c43c
- docs/data-recovery-map.md GitHub · Th0rgal/open_oura · 修订 e57c43c
- docs/security-observations.md GitHub · Th0rgal/open_oura · 修订 e57c43c
- crates/oura-protocol/src/events.rs GitHub · Th0rgal/open_oura · 修订 e57c43c
- crates/oura-protocol/src/auth.rs GitHub · Th0rgal/open_oura · 修订 e57c43c
- crates/oura-link/Cargo.toml GitHub · Th0rgal/open_oura · 修订 e57c43c
- Cargo.toml GitHub · Th0rgal/open_oura · 修订 e57c43c
- CLAUDE.md GitHub · Th0rgal/open_oura · 修订 e57c43c
- LICENSE GitHub · Th0rgal/open_oura · 修订 e57c43c
同分区更多条目:应用
- JADX-AI-MCP · 集成
- apktool-mcp-server Apktool MCP 服务 · 集成
- frida-mcp (yfe404) · 集成
- Super Trouper · 集成
- Frida · 工具
- JADX · 工具