升级非系统固件的方法、电子设备和存储介质技术方案

技术编号:37154863 阅读:16 留言:0更新日期:2023-04-06 22:15
升级非系统固件的方法、电子设备和存储介质,其中方法包括:从版本号区域获取当前非系统固件版本号;根据所述当前非系统固件版本号获取待升级的非系统固件升级包;根据所述非系统固件升级包中的版本号二进制镜像文件的非系统固件版本号,在引导通信分区的预设位置写入针对非系统固件升级的特殊升级指令和非系统固件升级包路径。提供了一种单独更新非系统固件的执行逻辑,使得非系统固件能够单独更新,并不需要与系统固件一起更新,降低了非系统固件升级的风险,提升了非系统固件的更新效率。率。率。

【技术实现步骤摘要】
升级非系统固件的方法、电子设备和存储介质


[0001]本专利技术涉及固件升级领域,尤其涉及升级非系统固件的方法、电子设备和存储介质。

技术介绍

[0002]一个设备中的固件通常可以分为系统固件和非系统固件。通常将启动过程中引导顺序在最后一级启动引导程序之后的固件称为系统固件,包括启动固件和启动固件进一步加载引导的固件,如boot/recovery,system,vendor,odm,oem等。除系统固件之外的其他固件,称为非系统固件,如各个级别的启动引导程序(如loader,uboot等)。
[0003]现有的针对非系统固件的升级,本质上都是将非系统固件和系统固件放在同一个OTA升级包中,升级客户端通过系统固件的版本号到服务器上查询是否有新固件需要升级。这种方法在整包升级的情况下,会同时对系统固件和非系统固件进行升级,一方面增加了升级包的大小,另外一方面也增加了升级失败时设备变砖的风险,因为非系统固件通常都是关系设备启动引导的核心固件(如各个级别的启动引导程序)。同时在设备出厂后,通常只需要更新系统固件(包括各类应用程序和库),而对非系统固件很多时候都不需要更新。因此迫切需要有一种对非系统固件生成独立的升级包并且进行独立升级的方法。

技术实现思路

[0004]本专利技术实施例提供升级非系统固件的方法、电子设备和存储介质,其能够对系统中的非系统固件进行单独升级。
[0005]在本专利技术的第一方面,提供了一种升级非系统固件的方法。该方法包括:从版本号区域获取当前非系统固件版本号;根据所述当前非系统固件版本号获取待升级的非系统固件升级包;根据所述非系统固件升级包中的版本号二进制镜像文件的非系统固件版本号,在引导通信分区的预设位置写入针对非系统固件升级的特殊升级指令和非系统固件升级包路径;根据所述引导通信分区的预设位置中的所述特殊升级指令,通过所述非系统固件升级包路径下的非系统固件升级包升级非系统固件;以及将所述非系统固件升级包中的所述版本号二进制镜像文件写入所述版本号区域。
[0006]在一些实施例中,根据所述当前非系统固件版本号获取待升级的非系统固件升级包包括:使用所述当前非系统固件版本号在固件升级服务器中查询是否有新版本非系统固件需要升级;以及若有新版本非系统固件需要升级,获取作为非系统固件独立升级包的所述非系统固件升级包,所述非系统固件升级包包括要独立升级的非系统固件和加密后的版本号二进制镜像文件,所述版本号二进制镜像文件中的非系统固件版本号作为所述非系统固件升级包的版本号。
[0007]在一些实施例中,根据所述非系统固件升级包中的版本号二进制镜像文件的非系统固件版本号、在引导通信分区的预设位置写入针对非系统固件升级的特殊升级指令和非系统固件升级包路径包括:从所述非系统固件升级包获取所述版本号二进制镜像文件;从
所述版本号二进制镜像文件中读取所述非系统固件版本号,并将所述非系统固件版本号与所述当前非系统固件版本号进行比较;基于所述比较的结果,在引导通信分区的预设位置写入所述特殊升级指令和所述非系统固件升级包路径;以及使设备重启,以引导所述设备进入固件升级模式。
[0008]在一些实施例中,根据所述引导通信分区的预设位置中的所述特殊升级指令、通过所述非系统固件升级包路径下的非系统固件升级包的内容升级非系统固件包括:通过启动引导程序固件检查在所述引导通信分区的预设位置中是否存在所述特殊升级指令;若存在,引导设备进入固件升级模式,从所述引导通信分区的预设位置中读取所述非系统固件升级包路径;以及根据所述非系统固件升级包的内容完成非系统固件的升级。
[0009]在一些实施例中,将所述非系统固件升级包中的所述版本号二进制镜像文件写入所述版本号区域包括:若升级成功,从所述非系统固件升级包中读取加密后的版本号二进制镜像文件,并将该加密后的版本号二进制镜像文件写入所述版本号区域;以及设置升级结果为成功。
[0010]在一些实施例中,该方法还包括:将升级结果和所述非系统固件升级包路径写入预设路径下的升级结果标记文件;清除所述引导通信分区的预设位置中的所述特殊升级指令和所述非系统固件升级包路径;以及使设备重启,引导所述设备再次进入系统。
[0011]在一些实施例中,所述非系统固件升级包中的版本号二进制镜像文件包括预设的固定长度魔幻数和固定长度的非系统固件版本号;对所述版本号二进制镜像文件进行加密获得的加密后的版本号二进制镜像文件和待烧录的非系统固件被打包为所述非系统固件升级包;使用第一数字签名算法生成一对公钥和私钥,使用私钥对所述非系统固件升级包进行签名,将签名后的非系统固件升级包录入固件升级服务器以供下载,将对应的公钥同时预置到系统固件预设路径和升级模式固件预设路径。
[0012]在一些实施例中,从版本号区域获取当前非系统固件版本号包括:在设备启动时,从所述版本号区域读取加密后的当前非系统固件版本号文件;对加密后的当前非系统固件版本号文件进行解密,并判断解密后的当前非系统固件版本号文件中的起始固定长度的内容是否与预设的版本号二进制镜像文件的魔幻数是否相同:以及若相同,则从解密后的当前非系统固件版本号文件中得到所述当前非系统固件版本号。
[0013]在一些实施例中,该方法还包括:若所述解密后的当前非系统固件版本号文件中的起始固定长度的内容与预设的版本号二进制镜像文件的魔幻数不相同,则创建临时缓冲区,并在所述临时缓冲区的开始位置写入所述魔幻数和固定长度的预设的默认非系统固件版本号;以及对所述临时缓冲区使用预设的加密算法和密钥进行加密,将加密后的内容写入所述版本号区域。
[0014]在一些实施例中,在获取待升级的非系统固件升级包之后,还包括:读取所述非系统固件升级包中的加密后的版本号二进制镜像文件,并使用对称加密算法和密钥进行解密;判断解密后的版本号二进制镜像文件中固定长度的魔幻数是否和预设值相同;若不相同,则提示出错,退出固件升级流程;若相同,则获取解密后的版本号二进制镜像文件中的非系统固件版本号,并将所述非系统固件版本号和所述当前非系统固件版本号进行对比;以及,若所述非系统固件版本号不大于所述当前非系统固件版本号,则提示版本号过低,退出固件升级流程。
或者其他类似的表述,意在涵盖非排他性的包含,这些表述并不排除在包括所述要素的过程、方法或者产品中还可以存在另外的要素,从而使得包括一系列要素的过程、方法或者产品中不仅可以包括那些限定的要素,而且还可以包括没有明确列出的其他要素,或者还包括为这种过程、方法或者产品所固有的要素。
[0031]与《审查指南》中的理解相同,在本申请中,“大于”、“小于”、“超过”等表述理解为不包括本数;“以上”、“以下”、“以内”等表述理解为包括本数。此外,在本申请实施例的描述中“多个”的含义是两个以上(包括两个),与之类似的与“多”相关的表述亦做此类理解,例如“多组”、“多次”等,除非另有明确具体的限定。
[0032]在本申请实施例的描述中,所使用的与空间相关的表述,诸如“中心”“纵向”“横向”“长度”“宽度”“厚度”“本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种升级非系统固件的方法,其特征在于,包括:从版本号区域获取当前非系统固件版本号;根据所述当前非系统固件版本号获取待升级的非系统固件升级包;根据所述非系统固件升级包中的版本号二进制镜像文件的非系统固件版本号,在引导通信分区的预设位置写入针对非系统固件升级的特殊升级指令和非系统固件升级包路径;根据所述引导通信分区的预设位置中的所述特殊升级指令,通过所述非系统固件升级包路径下的非系统固件升级包升级非系统固件;以及将所述非系统固件升级包中的所述版本号二进制镜像文件写入所述版本号区域。2.根据权利要求1所述的方法,其特征在于,根据所述当前非系统固件版本号获取待升级的非系统固件升级包包括:使用所述当前非系统固件版本号在固件升级服务器中查询是否有新版本非系统固件需要升级;以及若有新版本非系统固件需要升级,获取作为非系统固件独立升级包的所述非系统固件升级包,所述非系统固件升级包包括要独立升级的非系统固件和加密后的版本号二进制镜像文件,所述版本号二进制镜像文件中的非系统固件版本号作为所述非系统固件升级包的版本号。3.根据权利要求1所述的方法,其特征在于,根据所述非系统固件升级包中的版本号二进制镜像文件的非系统固件版本号、在引导通信分区的预设位置写入针对非系统固件升级的特殊升级指令和非系统固件升级包路径包括:从所述非系统固件升级包获取所述版本号二进制镜像文件;从所述版本号二进制镜像文件中读取所述非系统固件版本号,并将所述非系统固件版本号与所述当前非系统固件版本号进行比较;基于所述比较的结果,在引导通信分区的预设位置写入所述特殊升级指令和所述非系统固件升级包路径;以及使设备重启,以引导所述设备进入固件升级模式。4.根据权利要求1所述的方法,其特征在于,根据所述引导通信分区的预设位置中的所述特殊升级指令、通过所述非系统固件升级包路径下的非系统固件升级包的内容升级非系统固件包括:通过启动引导程序固件检查在所述引导通信分区的预设位置中是否存在所述特殊升级指令;若存在,引导设备进入固件升级模式,从所述引导通信分区的预设位置中读取所述非系统固件升级包路径;以及根据所述非系统固件升级包的内容完成非系统固件的升级。5.根据权利要求1所述的方法,其特征在于,将所述非系统固件升级包中的所述版本号二进制镜像文件写入所述版本号区域包括:若升级成功,从所述非系统固件升级包中读取加密后的版本号二进制镜像文件,并将该加密后的版本号二进制镜像文件写入所述版本号区域;以及设置升级结果为成功。6.根据权利要求1所述的方法,其特征在于,还包括:
将升级结果和所述非系统...

【专利技术属性】
技术研发人员:纪大峣
申请(专利权)人:瑞芯微电子股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1