设备固件升级概览¶
EnOS 提供面向设备的固件 OTA(Over-the-Air)升级服务,该服务支持云端对设备的固件版本管理和升级消息推送能力,以满足设备部署后的缺陷修复和功能升级等需求。
固件版本全生命周期管理¶
你可以通过 EnOS 管理控制台 实现固件版本全生命周期管理,新建固件版本并设定升级策略。云端自动对选中的设备推送升级请求,记录升级进度和结果和删除固件版本。EnOS 可以将升级请求推送到已筛选或选定的设备,并记录其升级进度和结果。设备可以请求对 EnOS 进行 OTA 升级,搜索可用的新固件,然后进行 OTA 升级。
通过 EnOS 管理固件版本生命周期的过程如下:
资源准备¶
设备文件存储资源
为 OTA 使用设备文件存储服务前,需确保 OU 已经通过 EnOS 管理控制台 > 资源管理 页面申请 设备文件存储 资源。有关申请资源的详细信息,参见 设备文件存储。
设备端 OTA 升级 SDK¶
提供设备端 OTA 升级 SDK,封装版本号上报和升级的相关消息接口,设备应自行实现具体的固件切换逻辑,并上报升级后的固件版本号。
固件 OTA 升级流程¶
EnOS 支持以下固件升级方式:
云端主动推送升级:云端对设备端发起强制升级,要求指定设备升级到指定的版本号。
设备端请求升级:由设备所有者或者运维人员判断是否要进行升级,只有确定升级时设备才会向云端发起升级请求。
云端主动推送升级¶
云端主动推送升级流程如下图所示:
云端创建批量升级任务后,根据升级策略维护待升级的设备范围,按照升级序列将升级请求推送至设备:
如果设备此时在线,则 EnOS 会将新固件推送到设备以开始升级过程。
如果此时设备不在线,则 EnOS 会等待设备下次在线后将新固件推送到设备上。
一般情况下设备接收到请求即会进入升级流程并重启上报新版本号,但是否真的强制升级依赖于设备端的实现,开发者仍然可以对下载后的 OTA 固件增加本地确认升级逻辑,以便用户选择是否进行升级,本地确认后才会真正切换到新的固件启动区。
设备请求升级¶
设备请求升级流程如下图所示:
设备主可以动请求 OTA 升级。当设备将升级请求发送到 EnOS 时,EnOS 会判断是否属于任何升级列表。如果设备可以升级,则 EnOS 会将可用的固件发送到设备。
设备主动升级增加了人工干预和确认环节,为用户提供了更大的灵活性来决定是否升级设备。