1.主题
在Tina Linux中,如何使用脚本完成定制化升级
2.问题背景
硬件:全平台
软件:Tina
其他:支持OTA升级的平台,可实现脚本定制化升级
3.具体表现
在OTA升级过程中,添加定制化需求,实现控制变量升级。
4.问题分析
利用swupdate升级满足定制化脚本需求
5.解决办法
因为swupdate支持脚本,所以在升级过程中,添加能够实现定制升级的脚本即可,将带有定制升级的脚本编入策略描述文件(sw-descrition)OTA升级配置文件中(sw-subimgs),在打包ota升级包时,将脚本一起打包进ota包中。在进行下面的配置后,输入升级命令时,首先开始执行脚本中的内容,满足升级条件后,再进行升级流程。下面进行详细的步骤介绍:
1.swupdate支持shellscript脚本,需要以下功能配置(默认选中)
2.在swupdate文件夹下创建脚本,名字随意,在脚本中写入要实现的功能。例如:目前有一个方案需要升级,但是分为A,B两种产品,对应做了不同的功能,为了防止升级混淆,可以利用脚本去控制变量升级,比如A产品方案中的env,可以添加一个变量project=a,B产品方案中的env添加一个变量project=b,那么脚本中的内容就可以判断project=a或b时,继续完成升级。env中添加内容和脚本内容举例如下:
env中:
脚本内容如下:
3.在描述文件中添加脚本功能,在sw-description中添加以下代码:
4.将脚本打包进ota包中,脚本名字可以任意起,我这里是preinstall_checkAB.sh。
5.重新编译主系统和recovery系统,烧录固件,打包ota包,再进行验证。
6.验证:当校验失败时,返回值为1,会看到如下打印,不能升级。
校验成功时,返回值为0,看到如下打印,升级成功。