首页 / 业务功能与流程 / OTA 平台与远程诊断

平台对象与职责

对象职责关键字段/约束
固件包型号/硬件兼容性、版本、大小、哈希、签名、存储位置不可变工件;禁止覆盖同一版本文件;下载 URL 必须短时有效。
发布策略目标范围、分批比例、升级窗口、暂停/回滚阈值先定义受控设备集和停止条件,不能直接对全量设备下发。
升级任务把发布策略拆成每设备升级单元并追踪状态单设备同一时刻最多一个活动任务;请求、下发、回执均以幂等 ID 关联。
设备升级记录下载、校验、烧录、重启、版本校验及失败原因区分平台受理、设备下载、设备应用和设备重连成功。
诊断请求/日志包按需采集设备诊断信息并支撑维护排障与 OTA 任务分离;受权限、范围、短时授权和自动删除约束。

升级与回滚闭环

  1. 上传已签名固件,生成内容哈希、兼容矩阵和不可变版本元数据;安全扫描和人工审批通过后才可发布。
  2. 创建发布策略,选择产品/型号/区域/设备组和分批比例;提前定义失败率、离线率、耗时等暂停阈值。
  3. 为目标设备创建升级任务,冻结固件版本与目标参数;通过可靠消息或 MQTT 下发短时下载信息与校验值。
  4. 设备下载、校验、烧录、重启并回报进度;平台只以设备 ACK 和上线后实际版本确认终态。
  5. 每一批达到健康门槛后才扩大范围;异常则暂停新批次,保留任务、日志、固件和版本证据。
  6. 回滚使用已验证的兼容版本和同样的灰度流程;若设备无法远程恢复,创建可追踪的人工服务/返修闭环。

推荐状态:CREATED → SCHEDULED → DISPATCHED → DOWNLOADING → VERIFYING → APPLYING → REBOOTING → SUCCEEDED;失败分为 DELIVERY_FAILEDDOWNLOAD_FAILEDVERIFY_FAILEDAPPLY_FAILEDPOSTCHECK_FAILED,而不是一个笼统的“失败”。

远程诊断边界

  • 诊断必须由有权限的用户/运维人员显式发起,设备接收受控命令后才打包本地环形日志;禁止全量设备持续上传日志。
  • 大日志包使用对象存储预签名 URL 直传,不穿透业务 API;URL、对象前缀和区域要绑定设备/请求/有效期。
  • 日志检索只展示脱敏摘要;下载需再次授权和审计。密码、Token、Wi-Fi 凭证、原始媒体内容与完整位置敏感数据不得进入普通诊断包。
  • 诊断对象独立生命周期管理,完成排障后自动删除;诊断失败不能阻断设备的正常心跳、定位或 OTA 恢复。

观测、灰度与验收

维度至少观测验收证据
发布健康受理率、下发率、下载率、校验率、成功率、分型号/区域失败码、平均升级时长分批报告、阈值触发记录和未扩大范围的证据
设备恢复升级后心跳恢复、版本回报、在线率、资源异常和业务功能抽检真机升级/断网恢复/掉电场景记录
安全签名校验失败、非法版本请求、过期下载 URL、权限拒绝、审计覆盖率篡改包、重放命令、越权下载和回滚攻击测试
诊断拉取请求数、包大小、上传失败、查看/下载审计、自动删除执行率预签名直传、脱敏扫描、TTL 删除和权限回归测试

来源:ota/ota_platform_design.mdota/ota_platform_technical_spec.mdspecs/设备与云平台系统接口*.md。基础升级链路见OTA 升级流程