固件升级支持对设备的固件进行远程空中升级(Over-The-Air),实现对设备的远程维护、功能升级、问题修复等场景的使用。您可以指定产品新增一个固件,对固件进行验证,验证通过后开始批量升级,并在固件详情中查看升级结果。

背景信息

固件在线升级功能是网络设备所必须支持的基础服务。在设备固件出现安全漏洞、软件BUG维护、自身功能优化、以及设备性能改良等需更新固件时,在线升级功能就尤为重要。

飞燕平台目前提供两种升级方式:

  • 静默升级:设备连云后若发现有新的固件版本就自动进行升级,无需用户干预。
  • App提醒升级:手机App会提示用户有新版本可用,并询问用户是否确认升级,只有在用户确认升级的情况下才会进行设备升级。

新增固件

  1. 在项目主页面,单击运营中心
  2. 选择设备运维 > 固件升级
  3. (可选)若您的设备搭载了AliOS Things芯片,可以开启安全升级功能。

    安全升级是保证固件完整性、机密性的一种方式,建议打开。使用安全升级功能,设备端需配合对固件和固件的签名进行验证。具体请参见AliOS Things技术文档

    1. 固件升级页,单击安全升级
    2. 在对话框中,将待升级产品对应的安全升级按钮设置为
      当安全升级功能为时,可单击对应的复制按钮,复制公钥,用于设备端签名。
  4. 固件升级页,单击新增固件
  5. 添加固件对话框中,输入固件信息,上传固件文件。
    固件升级
    参数 描述
    固件类型
    • 整包:您上传的固件文件是完整的固件文件,将推送整包固件给设备进行升级。
    • 差分:您上传的固件文件仅包含新版本固件与之前版本的差异部分,仅推送差异部分至设备进行升级。您需自行生成差分升级包。

      差分升级可有效减少升级对设备资源的占用,和减少下发固件的流量消耗。

      如果设备使用AliOS-Things芯片,差分升级包的生成方法,可参见OTA差分工具使用指南

    固件名称 设置固件名称。仅支持中文、英文字母、数字和下划线(_),且不能以下划线(_)开头。长度限制为4~32字符。
    固件版本号 设置该固件的版本号。仅支持英文字母、数字、点号、连字符(-)和下划线(_)。长度限制为1~64字符。

    固件类型选择为整包时,需设置的参数。

    待升级版本号 选择待升级的固件版本号。下拉选项框中,将展示当前产品下所有设备的固件版本号,选择一个或者多个待升级的固件版本。

    固件类型选择为差分时,需设置的参数。

    升级后版本号 设置升级后的固件版本号。

    固件类型选择为差分时,需设置的参数。

    所属产品 选择固件所属产品。
    签名算法 仅支持MD5和SHA256。
    上传固件 上传固件文件。文件大小不能超过1,000 MB,仅支持bin、tar、gz、tar.gz、zip、gzip类型的文件。

验证固件

在进行批量升级之前,您需要首先选取某个或者某些设备进行固件,确认固件的版本号、各项功能使用正常之后才可进行固件批量升级,避免因为固件缺陷导致在线的多个设备升级后因故障而造成不能正常工作。

  1. 选择要验证的固件,单击操作中的验证固件
    说明 固件上传至物联网平台后,必须使用少量设备对固件进行验证。确认测试设备升级成功后,才能批量升级。
  2. 配置验证固件的参数。
    验证固件
    参数 描述
    待升级版本号 下拉选项框中,展示当前产品下所有设备的固件版本号,选择一个或者多个待升级的固件版本。

    选择待升级版本号后,使用这些固件版本的设备将展示在待验证设备列表中。

    待验证设备 选择用于此次测试的设备。
    设备升级超时时间 设置单个设备的升级超时时间,即多长时间之后,升级未完成则为超时。从设备第一次上报升级进度开始计算时间。可选值范围:1~1440分钟。
    根据自身需要进行配置APP确认升级
    • 是:升级固件时,在App上推送消息,提醒用户本次的升级
    • 否:升级固件时,不提醒App端用户,即静默升级
  3. 单击确定完成。
    • 进行验证固件操作后,固件的状态会从未验证变为已验证。该状态与设备的实际升级结果无关。
    • 验证固件的操作可反复进行,目的是指定少量设备进行升级。

批量升级

固件验证后,请确认固件各项功能正常,验证通过即可开始进入固件批量升级流程,此固件可以在大批设备上投入使用。批量升级的本质也是对大批设备定向推送升级通知。

批量升级操作前的说明如下。

  • 测试设备不能进行批量升级。
  • 禁止使用未验证的固件进行批量升级操作。
  • 设备从收到升级通知开始直至升级完成是一个渐进的过程,请耐心等待升级结果。
  • 批量升级所覆盖的设备可能会因为设备上一次的升级动作没有结束(设备处于待升级或者升级中),而导致本次升级中该部分设备升级失败。
  • 设备在实际升级过程中出现错误(如下载失败、校验失败、解压失败等),并且通知OTA系统后,系统会将本次升级动作置为完成(而实际升级操作结果为失败)。
  • 可以在固件详情页,看到批量升级对应设备的升级情况,升级失败列表选项卡会显示简要的升级失败原因。
说明 由于设备端存在的差异化,即使固件验证升级成功,也无法完全体现设备升级后各项功能是否正常可用,建议您在设备固件升级后自行检查设备是否正常使用,避免批量升级后引起大批量的设备故障。
  1. 选择要进行批量升级的固件,单击操作中的批量升级
  2. 配置批量升级的参数。
    批量升级
    根据自身需要进行配置APP确认升级
    • 是:升级固件时,在App上推送消息,提醒用户本次的升级
    • 否:升级固件时,不提醒App端用户,即静默升级
    参数 描述
    待升级版本号 下拉选项框中,展示当前产品下所有设备的当前固件版本号,从中选择待升级的固件版本。

    整包升级时,需设置该参数。

    升级策略
    • 静态升级:仅升级满足指定条件,且已激活的设备。
    • 动态升级:动态升级将持续维护需升级的设备,包括当前已经上报固件版本号的设备和新激活的设备。
      说明 一个固件下只能有一个动态升级批次。如果固件下已有一个动态升级批次,将不能创建新的动态升级,需先取消原有动态升级批次。
    升级范围
    • 全部设备:升级该产品下的全部设备。
    • 定向升级:选择为定向升级后,下方出现设备范围选项框。单击选项框,在右侧弹出的对话框中,选择要升级的设备。仅升级被选中的设备。
      说明 定向升级的待升级版本为多选。默认选中您之前已输入的待升级版本号。
    • 灰度升级:即局部升级。升级策略选择为静态升级时出现的可选项。

      选择为灰度升级后,下方出现灰度范围输入框,需针对已选择的设备,设置灰度百分比。物联网平台根据设置的灰度百分进行计算,计算结果向下取整。灰度升级的设备至少为1个。

    升级时间 指定设备固件升级的时间。
    • 立即升级:立即进行固件升级。
    • 定时升级:需设定升级时间。定时时间范围是5分钟~7天。
      说明 仅当升级策略为静态升级时,支持定时升级。
    固件推送速率 设置每分钟向多少个设备推送固件下载URL。取值范围:10~1000。
    升级失败重试间隔 如果升级失败,在什么时候进行重试升级。可选:
    • 不重试
    • 立即重试
    • 10分钟后重试
    • 30分钟后重试
    • 1小时候重试
    • 24小时候重试
    升级重试上限次数 选择升级失败后,最多可重试几次。可选:
    • 1次
    • 2次
    • 5次
    设备升级超时时间 设置单个设备的升级超时时间,即多长时间之后,升级未完成则为超时。从设备第一次上报升级进度开始计算时间。可选值范围:1~1440分钟。
  3. 批量升级提交后,单击该固件的查看,然后在批次管理页签下的设备列表页签中,查看升级状态。
    升级详情
    • 待升级:已设置设备固件升级,但固件升级未开始。两种待升级状态:待升级(设备离线)和待升级(排队中)。
    • 升级中:设备收到升级通知,并已上传升级进度。
    • 升级成功:本次升级成功的设备。
    • 升级失败:本次升级失败的设备及升级失败原因简述。

      以下原因可能造成设备升级失败:

      • 若设备未结束上一次升级动作,又推送新的升级,会升级失败。可以等设备完成上一次升级动作后,再次尝试。
      • 设备在实际升级过程中,出现如下载失败、校验失败、解压失败等错误,可以尝试再次升级。