文档版本: v0.6.2
更新日志¶
0.6.2 - 2026-10-22¶
签名固件包¶
- 新增
inspect_firmware_bundle()和ota-inspect,支持离线验签和完整元数据展示,包括 JSON 输出。 - 升级开始前验证清单签名、签名密钥标识、内部数据摘要、长度和加密应用固件头。
- 发送内部 OTA 数据前核对设备型号、板型和允许的起始版本;重启后重新连接,核对完整运行版本。
- 测试配置包需显式允许。验签公钥必须通过独立可信渠道取得,不能直接信任下载包附带的公钥。
本机 IMU 校准¶
- 新增加速度计六面拟合、陀螺仪静止零偏拟合和独立验证。
- 已验证的配置保存在本机,并绑定设备标识、型号、完整固件版本和传感器量程。
- 新增
imu-calibrate和显式校正数据流,以 g 和度/秒输出,保留原始数据流并避免重复校正。 - 校准全部在电脑端完成,不向戒指写入校准参数;受支持的 IMU 功能契约无需为此升级固件。
不兼容改动与迁移¶
update_firmware() 和 ota-update 现在只接受签名 OTA ZIP。原始 BIN 输入及 version、sha256、expected_model 覆盖参数已移除,版本和适配信息改为从已验签的元数据中读取。
from pathlib import Path
import openzilo as sdk
# ring 表示已经连接的 OpenZiloClient。
bundle = Path("firmware.ota.zip").read_bytes()
public_key = Path("trusted-signing-public.pem").read_bytes()
metadata = sdk.inspect_firmware_bundle(bundle, trusted_public_key=public_key)
info = await sdk.update_firmware(ring, bundle, trusted_public_key=public_key)
新增必需依赖 cryptography>=43。现有固件 OTA 传输协议保持不变。设备侧加密密钥匹配和防回滚仍由设备检查;电脑端验签不代表已安装成功,也不能证明实机校准精度。