首页 / 业务功能与流程 / OTA 升级流程
OTA 升级流程
固件上传签名、升级任务创建、NATS 下发、设备升级与防回滚的完整流程。
平台化补充:固件工件、发布策略、每设备任务、灰度门槛、回滚与按需诊断日志的完整边界见OTA 平台与远程诊断;本页聚焦端到端升级流程。
流程总览
后台上传固件(签名/存储)→ 创建升级任务(Java iot)
→ NATS device.down.ota → Go otasvr/dmsvr 下发 → 设备下载升级
→ 上报结果 → 状态跟踪(Confirm/Cancel/Retry)
固件管理
- Java
IotOtaFirmwareController管理固件版本;Go otasvrotaFirmwareInfoCreate/Update/Delete/Index/Read落库 - 固件包存储:OSS 私有桶
ithings-private,设备下载使用临时凭证;公开桶ithings-public与临时桶ithings-temporary按用途隔离 - 固件必须数字签名,设备升级前校验签名
升级任务下发
- Java
IotOtaTaskController创建升级任务,选择固件与目标设备/分组 - 发布 NATS
device.down.ota.{productID}.{deviceName} - Go
otaFirmwareJobCreate/Index/Read管理任务;otaFirmwareDeviceIndex跟踪每台设备升级状态 - 设备在线时直接下发;离线设备通过设备影子缓存,上线后补发
设备升级与结果
| 操作 | 说明 |
|---|---|
otaFirmwareDeviceConfirm | 设备确认升级结果(成功/失败) |
otaFirmwareDeviceCancel | 取消待升级任务 |
otaFirmwareDeviceRetry | 失败设备重试 |
Java IotOtaUpgradeJob | 任务调度与状态推进(@XxlJob) |
升级结果以设备上报为准;任务状态跟踪与超时重试由任务系统保障,不允许仅凭下发即判定成功。
安全机制
- 固件数字签名校验,严禁加载未授权固件
- 防回滚(Anti-rollback):禁止刷入含已知漏洞的旧版固件
- Secure Boot:硬件层 Root of Trust,保证从 Bootloader 起固件完整性
- 下载临时凭证短时效(S3 Presigned URL ≤10 分钟)
- 升级记录作为审计证据留存(含结果、版本、时间)