固件升级方法、装置、设备、存储介质及程序产品与流程
本公开属于通信设备升级,尤其涉及一种固件升级方法、装置、设备、存储介质及程序产品。
背景技术:
1、现有技术中,通信设备内固件的升级严格依赖于固件镜像文件头中预定义的分区偏移地址和大小信息。如果待升级固件镜像的分区布局与设备当前运行固件的分区布局不一致,直接升级会导致数据被写入错误的flash地址,可能覆盖关键的用户配置分区,造成用户数据永久丢失。
技术实现思路
1、本公开实施例提供一种固件升级方法、装置、设备及计算机存储介质,能够在固件升级的过程中减少用户数据丢失的情况。
2、第一方面,本公开实施例提供一种固件升级方法,方法包括:
3、响应于升级指令,解析升级指令对应的升级包,得到升级镜像文件和目标分区布局信息;其中,目标分区布局信息包括待升级固件所在芯片的存储介质上的多个目标分区,每一目标分区携带有用于确定目标分区在存储介质上存储位置的位置信息,多个目标分区包括系统分区和用户数据分区;
4、获取待升级固件的当前分区布局信息;其中,当前分区布局信息包括存储介质上的多个当前分区,每一当前分区携带有用于确定当前分区在存储介质上存储位置的位置信息,多个当前分区包括系统分区和用户数据分区;
5、在目标分区布局信息与当前分区布局信息不一致的情况下,根据当前分区布局信息中用户数据分区的位置信息,从存储介质中读取用户配置数据,并将用户配置数据备份至芯片的临时存储区;
6、根据目标分区布局信息中各目标分区的位置信息,确定待擦除区域,并擦除待擦除区域中的存储数据;
7、将升级镜像文件写入目标分区布局信息中系统分区的位置信息所指示的地址范围,并将临时存储区中备份的用户配置数据写入目标分区布局信息中用户数据分区的位置信息所指示的地址范围。
8、在一个可以实现的实施方式中,在获取待升级固件的当前分区布局信息之后,方法还包括:
9、在目标分区布局信息与当前分区布局信息不一致的情况下,在存储介质上多个当前分区的位置范围之外的第一存储区生成升级标志;其中,升级标志用于指示待升级固件处于跨分区的升级状态中;
10、将升级镜像文件写入目标分区布局信息中系统分区的位置信息所指示的地址范围,并将临时存储区中备份的用户配置数据写入目标分区布局信息中用户数据分区的位置信息所指示的地址范围之后,方法还包括:
11、删除升级标志。
12、在一个可以实现的实施方式中,在目标分区布局信息与当前分区布局信息不一致的情况下,在存储介质上多个当前分区的位置范围之外的第一存储区生成升级标志之后,方法还包括:
13、响应于重启指令,在存储介质上读取到升级标志的情况下,禁止启动待升级固件;
14、根据待升级固件的当前分区布局信息和目标分区布局信息,确定待升级固件未完成的升级步骤;
15、执行待升级固件未完成的升级步骤以及后续升级步骤。
16、在一个可以实现的实施方式中,在响应于升级指令,解析升级指令对应的升级包,得到升级镜像文件和目标分区布局信息之前,方法还包括:
17、将待升级固件在运行中涉及的用户配置数据划分为自定义配置数据、网络配置数据和功能配置数据;
18、为自定义配置数据、网络配置数据和功能配置数据分别建立对应的用户数据分区,并为每个用户数据分区设置用于确定目标分区在存储介质上存储位置的位置信息;其中,位置信息至少包括数据标签、存储起始地址和存储长度;
19、将多个用户数据分区、用户数据分区对应的位置信息和升级镜像文件进行封装,得到升级包。
20、在一个可以实现的实施方式中,在获取待升级固件的当前分区布局信息之后,方法还包括:
21、在目标分区布局信息与当前分区布局信息一致的情况下,将升级镜像文件写入目标分区布局信息中系统分区的位置信息所指示的地址范围。
22、在一个可以实现的实施方式中,在根据目标分区布局信息中各目标分区的位置信息,确定待擦除区域,并擦除待擦除区域中的存储数据之前,方法还包括:
23、在目标分区布局信息与当前分区布局信息不一致的情况下,根据当前分区布局信息中用户数据分区的位置信息,从存储介质中读取用户配置数据;
24、将用户配置数据加密后,上传至云端或备份至芯片的闲置存储区。
25、在一个可以实现的实施方式中,将升级镜像文件写入目标分区布局信息中系统分区的位置信息所指示的地址范围,并将临时存储区中备份的用户配置数据写入目标分区布局信息中用户数据分区的位置信息所指示的地址范围之后,方法还包括:
26、响应于初始化指令,建立待升级固件的各目标分区和块设备节点之间的映射关系;
27、基于各目标分区与块设备节点之间的映射关系,将目标分区内的升级镜像文件或备份的用户配置数据挂载到与目标分区对应的块设备节点中。
28、在一个可以实现的实施方式中,建立待升级固件的各目标分区和块设备节点之间的映射关系,包括:
29、响应于初始化指令,获取待升级固件的各目标分区对应的数据标签;
30、根据各目标分区对应的数据标签,从预设分区信息表中查找与数据标签对应的块设备节点,建立各目标分区和块设备节点之间的映射关系。
31、第二方面,本公开实施例提供了一种固件升级装置,装置包括:
32、升级信息获取模块,用于响应于升级指令,解析升级指令对应的升级包,得到升级镜像文件和目标分区布局信息;其中,目标分区布局信息包括待升级固件所在芯片的存储介质上的多个目标分区,每一目标分区携带有用于确定目标分区在存储介质上存储位置的位置信息,多个目标分区包括系统分区和用户数据分区;
33、当前信息获取模块,用于获取待升级固件的当前分区布局信息;其中,当前分区布局信息包括存储介质上的多个当前分区,每一当前分区携带有用于确定当前分区在存储介质上存储位置的位置信息,多个当前分区包括系统分区和用户数据分区;
34、数据备份模块,用于在目标分区布局信息与当前分区布局信息不一致的情况下,根据当前分区布局信息中用户数据分区的位置信息,从存储介质中读取用户配置数据,并将用户配置数据备份至芯片的临时存储区;
35、数据擦除模块,用于根据目标分区布局信息中各目标分区的位置信息,确定待擦除区域,并擦除待擦除区域中的存储数据;
36、数据写入模块,用于将升级镜像文件写入目标分区布局信息中系统分区的位置信息所指示的地址范围,并将临时存储区中备份的用户配置数据写入目标分区布局信息中用户数据分区的位置信息所指示的地址范围。
37、第三方面,本公开实施例提供了一种固件升级设备,设备包括:处理器,以及存储有计算机程序指令的存储器;所述处理器读取并执行所述计算机程序指令,以实现上述实施例中的任意一种固件升级方法。
38、第四方面,本公开实施例提供了一种计算机存储介质,计算机存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述实施例中的任意一种固件升级方法。
39、第五方面,本公开实施例提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现上述实施例中的任意一种固件升级方法。
40、本公开实施例的一种固件升级方法、装置、设备及计算机存储介质,能够在固件升级的过程中减少用户数据丢失或者设备变砖的情况。本技术在升级包中为待升级固件的升级镜像文件设置分区布局信息。根据目标分区和当前分区不一致确定发生布局变化时,现有分区不足以存放升级镜像文件或用户数据,将用户数据备份后直接利用分区布局信息将升级镜像文件和备份后的用户数据分别分区存储,使得待升级固件可以在分区发生改变后依然正常升级,不再受限于固化分区,在升级过程中不仅实现了不同布局的灵活写入,还保证了用户数据的无损迁移。此外,在升级时多个目标分区的设置便于逐步写入,即使当前目标分区写入数据时出现异常,之前已经完成数据写入的目标分区也可以保留,很好地减少了设备变砖的情况。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com