FOTA升级简介

1、FOTA升级简介

FOTA(Firmware Over-The-Air)移动终端的空中下载软件升级,指通过云端升级技术,为具有连网功能的设备提供固件升级服务。在物联网通讯模块领域,FOTA主要应用于更新升级芯片内部软件模块,进行功能优化和需求定制升级等功能。

FOTA(Over-the-Air Technology)升级有两种类型,分别是:Increment OTA(增量/差分)和Full OTA(整包),每一种类型都有对应的用途和优势。

本文采用的是Increment OTA(增量/差分)升级方式。使用Increment OTA(增量/差分)升级方式,需要对源版本及目标版本进行差分操作,生成两个版本的patch差分进行升级。其优势在于生成的差分包可以很小,甚至只有几KB,非常有利于通过网络进行下载。

简单来说,FOTA升级有以下3个步骤:第一,连接服务器,查询是否有新的升级包;第二,从服务器下载升级包,同时对下载到的升级包进行校验;第三,对模块软件版本进行升级操作。

Linux FOTA升级方案的流程简述如下:
在这里插入图片描述
从图可知,整个流程可分为三大步,第一步制作OTA升级包,第二步上传升级包到云端服务器,第三步fota升级。其中第三步又分为检查是否有新的升级包、下载升级包、版本升级以及上报升级结果。接下来的文档将会详细讲解这三大步骤。

2、FOTA升级包制作

FOTA升级包制作工具在我的主页下载,拿到制包工具后才开始制包。制包工具是以广升的mkotapackage工具为核心制包,部分内容如下图2.1所示:
在这里插入图片描述
图里各个文件的作用如下:

  1. maketarget.sh文件,它的主要作用是删除源文件夹里的whitelist.txt(白名单)里的文件,防止升级失败,还有重新打包源文件夹和目标文件夹的data.zip、modem.zip、system.zip。

  2. mkotapackage是广发的OTA升级包制作工具,是我们用来制作升级包的工具。

  3. otamake_le1.1.sh、otamake_le2.0.sh、otamake_le2.1.sh是我司写的shell脚本,是制作升级包最后执行的shell脚本。这些脚本的功能就是利用mkotapackage、updater等制作升级包。如果是其它平台要使用,那肯定要写自己的脚本。

  4. partition.xml记录着boot、system、modem、data的存储路径以及其需要挂载的分区。

  5. qnx_fstab这个是自动挂载分区的文件。

  6. unzip.sh是解压我们底包用的的shell脚本。

  7. updater包含了升级核心算法,由OTA服务商根据目标平台交叉编译产生。

  8. whitelist.txt是白名单,我们在执行maketarget.sh时需要用到的白名单,最终是在我们下载完升级包后需要校验时,不校验这些白名单里的文件。

2.1、FOTA升级包制作流程

FOTA升级包制作流程图如下图2.2所示。
在这里插入图片描述

第一步,使用modem侧的generate_ota.sh脚本制作FOTA升级所需要的源和目标底包。当然我们也可以在版本流转里的具体项目里寻找。这个脚本需要带参数,一般带项目名,例如./ generate_ota.sh A70_E。

第二步就是把我们找好的或者制作好的底包拷贝到我们制包工具文件夹下。

第三步,使用unzip.sh脚本解压我们的两个底包。当然我们也可以使用tar命令来解压,但是需要自己在解压之前创建新的底包文件夹,而我们unzip.sh脚本一步到位。这个脚本不带参数,直接运行脚本就好。

第四步,使用maketarget.sh脚本删除底包里的白名单文件,防止升级包校验时报错,导致升级失败。maketarget.sh脚本的使用方法是

./ maketarget.sh <SourceFromFolder> <TargetFromFolder>。

第五步,使用otamake_le2.0.sh(根据高通基线来选择)脚本来最终制作生成FOTA升级包。otamake_le2.0.sh脚本的使用方法是

./ otamake_le2.0.sh <SourceFromFolder> <TargetFromFolder> <TargetOtaName> <Updatetype>

其中Updatetype 0 == adups fota 1 == we fota

2.2、otamake_lexxx.sh脚本讲解

这个脚本是最终用来制作升级包的,具体内容如下:
在这里插入图片描述
这部分是将<<EOF与EOF之间的内容cat到partion.xml文件里,是根据脚本的第一个和第二个参数来填充partion.xml里的内容。因为每个项目的partion.xml都不一样,所以需要使用这个脚本来生成partion.xml文件。

生成完partion.xml文件,就开始制作升级包了。见脚本76行。在这里插入图片描述
在脚本76行,使用的是mkotapackage工具,这个工具的具体使用见文档《OTA包制作工具操作手册-V3.0-20180104.pdf》。这篇文档只讲解76行的命令。

我们使用的mkotapackage工具用到的参数如下

./mkotapackage [-u] [–updater ] [–configure <configure_file>] [–out_fstab ] [–output ]

而脚本里的第76行–u是指定updater文件的路径,-c是用来设置xml配置文件的路径,-t指定输出分区表文件的路径,-o用来设置输出得到升级包文件路径。

接下来就是根据此脚本的第四个参数来执行的MD5校验命令。
在这里插入图片描述
见第81行,如果第四个参数为0就不进行md5校验,为1就进行md5校验。

第86-87行,利用md5sum命令对TargetOtaName里的内容进行md5校验,并且将md5校验产生的“报文摘要”输出到TargetOtaName。

进行md5校验是我们公司自己添加的命令,目的为了保证文件的准确性。

3、上传升级包

在我们制作完fota升级包后,我们需要将升级包上传到云端服务器。目前我们公司用的云端是艾拉比物联网云平台,因此接下的文档将会讲解怎么上传升级包到云平台。

一般来讲,我们现在都已创建好了项目。如果没用创建好项目,可以参照文档《艾拉比物联网云平台使用手册V5.0.pdf》。

在找到相关的项目后,进入版本管理。版本管理主要负责管理(增、删、改)版本信息,配置版本的差分关系(上传差分包、配置策略等)。
在这里插入图片描述
备注:

  1. 初始版本没有源版本,因此无差分关系可配置。 如需进行上传差分包,配置升级策略等操作,必须添加至少 2 个版本。

  2. 配置差分关系,可查看该版本的所有源版本和后置版本。

3.1添加版本

添加版本时必填信息有:版本号、发布说明和描述。 如果要进行升级,必须添加至少 2 个版本。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LDBiscAk-1625041176067)(file:///C:\Users\202007~1\AppData\Local\Temp\msohtmlclip1\01\clip_image016.jpg)]
各项参数说明,如下:

  1. 版本号:填写实际的设备固件版本号,保存版本后不可修改版本号。

  2. 增加语言:可选择多种国家语言进行发布。

  3. 发布说明:包括时间、 说明内容及语言。 时间将在 Release Notes 里显示给终端用户,默认当天。 说明语言可多选。

  4. 版本名称:非必填项。填写后,设备检测到新版本的提示信息显示填写的版本名称,并且设备升级后设备的设置中也显示该版本名称。

  5. 描述:用户可自定义版本的提示性描述,将在版本管理首页显示。

3.2编辑版本

已添加版本的版本号不可修改,仅可修改“发布说明” 和“描述”。

3.3配置差分

可对非初始版本的所有版本,进行差分配置。 差分管理页面可上传差分包,配置升级策略,控制差分关系的测试状态、发布状态,冻结版本。

可以查看该版本的源版本、后置版本。后置版本即该版本可以升级到的版本。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LVPBUTNj-1625041176068)(file:///C:\Users\202007~1\AppData\Local\Temp\msohtmlclip1\01\clip_image018.jpg)]
点击里面的上传按钮,上 传 OTA 差 分 包 文 件
( 支持.zip/.rar/.bin/.7z/.apk/.dec/.delta/.diff/.enc/.exe/.gz/.package/.sh/.update/.txt/.html/.temp 文件),上传五分钟后生效。 策略定制状态由“不可配置”变为“可配置”,操作状态由“待上传” 变为“待测试”。

  • 15
    点赞
  • 147
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
FOTA(Firmware Over-The-Air)升级测试设计是指针对设备固件的远程升级功能进行测试的设计方案。FOTA升级是一种通过无线网络远程更新设备固件的技术,可以实现对设备的功能增强、漏洞修复等操作。 在进行FOTA升级测试设计时,可以考虑以下几个方面: 1. 测试环境准备:搭建适合FOTA升级测试的环境,包括设备、服务器、网络等。 2. 测试用例设计:根据FOTA升级的功能和需求,设计相应的测试用例。测试用例应包括正常升级、异常升级、回滚升级等场景。 3. 测试覆盖范围:确定需要测试的固件版本、设备型号等信息,并制定相应的测试策略。 4. 测试流程设计:设计FOTA升级测试的执行流程,包括测试前准备、测试步骤、测试数据准备、测试结果记录等。 5. 测试工具选择:选择适合FOTA升级测试的工具,如模拟器、调试器、网络模拟器等。 6. 安全性测试:对FOTA升级过程中的安全性进行测试,包括数据传输的加密与解密、身份验证等。 7. 兼容性测试:验证FOTA升级对不同设备型号、不同固件版本的兼容性。 8. 性能测试:测试FOTA升级的性能指标,如升级时间、升级成功率等。 9. 异常处理测试:测试FOTA升级过程中的异常情况处理,如网络中断、升级失败等。 10. 回归测试:在每次FOTA升级后,进行回归测试以验证升级后的设备功能是否正常。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值