# open_oura：基于逆向 BLE 协议、无需云端的 Oura Ring 客户端

> 用一组 Rust crate 和 oura 命令行客户端重新实现 Oura Ring 第 3/4/5 代的低功耗蓝牙协议，可直接与戒指配对、认证并同步数据，无需 Oura 账户或云服务。作者称从反编译的 Android 应用中恢复了 GATT 布局、数据包帧格式和基于 AES 的应用认证流程，并依据 Ghidra 对应用原生库的反编译结果，移植了历史事件解码器以及 HRV、睡眠负债、夜间体温基线等若干设备端指标算法。事件内容以原始形式存入 SQLite，解码器改进后可重新解码。

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

## 使用条件与局限

- 审阅的是 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 指南。

## 一手来源

1. <https://github.com/Th0rgal/open_oura/blob/e57c43ce5fe0cf9a646afa790bda3731be767507/README.md>
2. <https://github.com/Th0rgal/open_oura/blob/e57c43ce5fe0cf9a646afa790bda3731be767507/crates/README.md>
3. <https://github.com/Th0rgal/open_oura/blob/e57c43ce5fe0cf9a646afa790bda3731be767507/docs/architecture.md>
4. <https://github.com/Th0rgal/open_oura/blob/e57c43ce5fe0cf9a646afa790bda3731be767507/docs/horizon-ring3-protocol-cheatsheet.md>
5. <https://github.com/Th0rgal/open_oura/blob/e57c43ce5fe0cf9a646afa790bda3731be767507/docs/native-decoder.md>
6. <https://github.com/Th0rgal/open_oura/blob/e57c43ce5fe0cf9a646afa790bda3731be767507/docs/algorithms/README.md>
7. <https://github.com/Th0rgal/open_oura/blob/e57c43ce5fe0cf9a646afa790bda3731be767507/docs/data-recovery-map.md>
8. <https://github.com/Th0rgal/open_oura/blob/e57c43ce5fe0cf9a646afa790bda3731be767507/docs/security-observations.md>
9. <https://github.com/Th0rgal/open_oura/blob/e57c43ce5fe0cf9a646afa790bda3731be767507/crates/oura-protocol/src/events.rs>
10. <https://github.com/Th0rgal/open_oura/blob/e57c43ce5fe0cf9a646afa790bda3731be767507/crates/oura-protocol/src/auth.rs>
11. <https://github.com/Th0rgal/open_oura/blob/e57c43ce5fe0cf9a646afa790bda3731be767507/crates/oura-link/Cargo.toml>
12. <https://github.com/Th0rgal/open_oura/blob/e57c43ce5fe0cf9a646afa790bda3731be767507/Cargo.toml>
13. <https://github.com/Th0rgal/open_oura/blob/e57c43ce5fe0cf9a646afa790bda3731be767507/CLAUDE.md>
14. <https://github.com/Th0rgal/open_oura/blob/e57c43ce5fe0cf9a646afa790bda3731be767507/LICENSE>

## 同分区更多条目：应用

- [Sony Headphones Client：Sony 耳机控制协议的桌面客户端](https://awesomerea.org/zh/resources/sony-headphones-client-case/index.md) · 案例
- [cbyge：重建 C by GE 智能灯泡云端协议](https://awesomerea.org/zh/resources/cbyge-c-by-ge-protocol-case/index.md) · 案例
- [Clickwill：重建 iPod 音乐库数据库编辑功能](https://awesomerea.org/zh/resources/clickwill-case/index.md) · 案例
- [Spark Mail：借助 Wine 兼容层在 Linux 上运行 Windows 桌面应用](https://awesomerea.org/zh/resources/spark-mail-linux-case/index.md) · 案例
- [OpenTracks：OpenTracks7 BETA1 的 UWP 移植](https://awesomerea.org/zh/resources/opentracks-uwp-case/index.md) · 案例
- [RTO eChalan：调查 BankBot 安卓 APK](https://awesomerea.org/zh/resources/rto-echalan-android-analysis-case/index.md) · 案例

## 关于此条目

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