首页 / 业务功能与流程 / OTA 升级流程
平台化补充:固件工件、发布策略、每设备任务、灰度门槛、回滚与按需诊断日志的完整边界见OTA 平台与远程诊断;本页聚焦端到端升级流程。

流程总览

后台上传固件(签名/存储)→ 创建升级任务(Java iot)
  → NATS device.down.ota → Go otasvr/dmsvr 下发 → 设备下载升级
  → 上报结果 → 状态跟踪(Confirm/Cancel/Retry)

固件管理

  • Java IotOtaFirmwareController 管理固件版本;Go otasvr otaFirmwareInfoCreate/Update/Delete/Index/Read 落库
  • 固件包存储:OSS 私有桶 ithings-private,设备下载使用临时凭证;公开桶 ithings-public 与临时桶 ithings-temporary 按用途隔离
  • 固件必须数字签名,设备升级前校验签名

升级任务下发

  1. Java IotOtaTaskController 创建升级任务,选择固件与目标设备/分组
  2. 发布 NATS device.down.ota.{productID}.{deviceName}
  3. Go otaFirmwareJobCreate/Index/Read 管理任务;otaFirmwareDeviceIndex 跟踪每台设备升级状态
  4. 设备在线时直接下发;离线设备通过设备影子缓存,上线后补发

设备升级与结果

操作说明
otaFirmwareDeviceConfirm设备确认升级结果(成功/失败)
otaFirmwareDeviceCancel取消待升级任务
otaFirmwareDeviceRetry失败设备重试
Java IotOtaUpgradeJob任务调度与状态推进(@XxlJob)
升级结果以设备上报为准;任务状态跟踪与超时重试由任务系统保障,不允许仅凭下发即判定成功。

安全机制

  • 固件数字签名校验,严禁加载未授权固件
  • 防回滚(Anti-rollback):禁止刷入含已知漏洞的旧版固件
  • Secure Boot:硬件层 Root of Trust,保证从 Bootloader 起固件完整性
  • 下载临时凭证短时效(S3 Presigned URL ≤10 分钟)
  • 升级记录作为审计证据留存(含结果、版本、时间)