一种分块差分升级包生成和分块差分升级方法及装置制造方法及图纸

技术编号:36708847 阅读:13 留言:0更新日期:2023-03-01 09:33
本发明专利技术公开了一种分块差分升级包生成和分块差分升级方法及装置,分块差分升级包生成方法通过对待升级源固件和目标升级的固件全量差分包中的控制信息进行分解,确定每一个目标升级固件的分块在进行升级时对应的第三控制信息和第四控制信息,根据第三控制信息以及第四控制信息生成每一个目标升级固件的分块对应的差分升级包,根据第三控制信息确定每一个目标升级固件分块对应的升级顺序,对每一个目标升级固件的分块对应的差分升级包以及升级顺序进行打包,得到目标升级固件对应的差分升级包,后续在根据目标升级固件对应的差分升级包对源固件进行升级时,可以在源固件的基础上进行覆盖,需要的全部内存只取决于分块大小。小。小。

【技术实现步骤摘要】
一种分块差分升级包生成和分块差分升级方法及装置


[0001]本专利技术涉及固件升级
,具体涉及一种分块差分升级包生成和分块差分升级方法及装置。

技术介绍

[0002]当前固件升级的主要方法有两大类,称之为A类和B类。其中:A类升级的方法是在设备侧从上位机或平台下载目标升级固件到设备侧,设备侧直接把目标升级固件启动运行,称为copy升级;B类升级的方法是在平台或上位机先制作升级补丁,设备侧从上位机或平台侧下载升级补丁,下载完成后,根据升级补丁和原始文件还原出目标升级固件,称为差分升级。
[0003]A类升级方法的缺点包括:下载过程时间长,需要全部下载完目标文件,网络覆盖不好或带宽受限时,下载时间长,单次全部下载完的稳定性差;升级过程对硬件资源需求大,要求设备侧flash空间至少具备2倍的固件存储空间。B类升级方法目前已公开的方案可以部分克服A类方法中“下载过程时间长”的不足,但没有解决“对硬件资源需求大”的不足,通过特殊的压缩方法可以降低对ram空间大小依赖,但没有解决对flash空间的要求较高的问题。

技术实现思路

[0004]因此,本专利技术要解决的技术问题在于克服现有差分升级方法对硬件存储资源需求大的缺陷,从而提供一种分块差分升级包生成和分块差分升级方法及装置。
[0005]根据第一方面,本专利技术实施例公开了一种分块差分升级包生成方法,包括:获取待升级固件的源固件和目标升级固件;计算所述源固件和所述目标升级固件的全量差分包,所述全量差分包包括控制信息、差分信息以及独有信息;根据目标分块大小对源固件数据以及目标升级固件数据进行分块处理,得到多个源固件的分块数据和多个目标升级固件的分块数据,每一个源固件的分块数据包括对应的分块标识,每一个目标升级固件的分块数据包括对应的分块标识;获取所述控制信息中的多个控制三元组命令,每一个控制三元组命令包括第一控制信息以及第二控制信息,所述第一控制信息表征所述源固件与所述目标升级固件的相同信息和差分信息,所述第二控制信息表征所述目标升级固件的独有信息;根据所述每一个目标升级固件分块对应的标识、所述每一个源固件分块对应的标识、所述目标分块大小以及操作步长,对所述每一个第一控制信息进行分解,得到每一个目标升级固件的分块对应的第三控制信息,所述第三控制信息表征每一个目标升级固件的分块中与对应源固件分块中的相同信息和差分信息;根据所述每一个目标升级固件的分块数据对应的分块标识、所述目标分块大小以及操作步长,对所述每一个第二控制信息进行分解,得到每一个目标升级固件的分块对应的第四控制信息,所述第四控制信息用于表征每一个目标升级固件的分块中与对应源固件分块中的相同信息和差分信息;根据所述第三控制信息、所述第四控制信息、所述差分信息以及独有信息,确定所述每一个目标升级固件的分块对
应的差分信息和独有信息;根据所述第三控制信息、第四控制信息以及所述每一个目标升级固件的分块对应的差分信息和独有信息,生成所述每一个目标升级固件的分块对应的差分升级包;根据所述第三控制信息确定每一个目标升级固件分块的升级顺序;对所述每一个目标升级固件的分块对应的差分升级包以及所述升级顺序进行打包,得到所述目标升级固件对应的差分升级包。
[0006]可选地,所述根据目标分块大小对源固件数据以及目标升级固件数据进行分块处理,得到多个源固件的分块数据和多个目标升级固件的分块数据之前,所述方法还包括:获取设备侧的目标处理器的内存大小以及设备侧的目标flash存储器的最小擦除单位;根据所述目标处理器的内存大小以及目标flash存储器的最小擦除单位确定所述目标分块大小。
[0007]可选地,根据所述每一个目标升级固件分块对应的标识、所述每一个源固件分块对应的标识、所述目标分块大小以及操作步长,对所述每一个第一控制信息进行分解,得到每一个目标升级固件的分块对应的第三控制信息,包括:根据所述第一控制信息的当前可操作字节数、当前操作的源固件分块内的剩余字节数以及当前操作的目标升级固件分块内的剩余字节数,确定所述第一控制信息对应的当前分解步长;根据所述第一控制信息对应的当前分解步长,对所述第一控制信息进行分解得到第一分解结果,并记录在对所述第一控制信息的分解过程中每一步分解操作对应源固件的分块标识、对应目标升级固件的分块标识、在所述源固件中的当前第一位置偏移指针、在所述目标升级固件中的当前第二位置偏移指针以及在所述全量差分包中差分信息中的当前第三位置偏移指针;根据第一分解结果、所述第一位置偏移指针、所述对应源固件的分块标识、对应目标升级固件的分块标识、所述第一位置偏移指针、所述第二位置偏移指针以及所述第三位置偏移指针确定所述第三控制信息;
[0008]根据所述每一个目标升级固件的分块数据对应的分块标识、所述目标分块大小以及操作步长,对所述每一个第二控制信息进行分解,得到每一个目标升级固件的分块对应的第四控制信息,包括:根据所述第二控制信息的当前可操作字节数以及当前操作的目标升级固件分块内的剩余字节数,确定所述第二控制信息对应的当前分解步长;根据所述第二控制信息对应的当前分解步长对所述第二控制信息进行分解得到第二分解结果,并记录在对所述第二控制信息的分解过程中每一步分解操作对应目标升级固件的分块标识、在所述目标升级固件中的当前第四位置偏移指针以及在所述全量差分包中独有信息中的当前第五位置偏移指针;根据第二分解结果、所述第四位置偏移指针、第五位置偏移指针以及目标升级固件的分块标识确定所述第四控制信息。
[0009]可选地,所述根据所述第三控制信息确定每一个目标升级固件分块的升级顺序,包括:确定第三控制信息对应的目标升级固件的分块标识以及源固件的分块标识;根据所述第三控制信息对应的目标升级固件的分块标识以及源固件的分块标识,确定每一个目标升级固件的分块标识与源固件的分块标识之间的对应关系;根据所述目标升级固件的分块标识和源固件的分块标识之间的对应关系对所述目标升级固件的分块标识和源固件的分块标识进行拓扑排序;根据拓扑排序结果,确定每一个目标升级固件分块的升级顺序。
[0010]可选地,所述方法还包括:利用预设模拟程序对所述目标升级固件对应的差分升级包对所述源固件进行升级模拟操作。
[0011]根据第二方面,本专利技术实施例还公开了一种分块差分升级方法,包括:获取目标差分升级包,所述目标差分升级包通过如第一方面或第一方面任一可选实施方式所述的分块差分升级包生成方法得到;读取所述目标差分升级包中的每一个目标升级固件分块的升级顺序信息;根据所述每一个目标升级固件分块的升级顺序信息,在待升级固件中执行每一个目标升级固件分块对应的升级命令,对待升级固件进行升级。
[0012]根据第三方面,本专利技术实施例还公开了一种分块差分升级包生成装置,包括:第一获取模块,用于获取待升级固件的源固件和目标升级固件;计算模块,用于计算所述源固件和所述目标升级固件的全量差分包,所述全量差分包包括控制信息、差分信息以及独有信息;分块处理模块,用于根据目标分块大小对源固件数据以及目标升级固件数据进行分块处理,得到多个源固件的分本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分块差分升级包生成方法,其特征在于,包括:获取待升级固件的源固件和目标升级固件;计算所述源固件和所述目标升级固件的全量差分包,所述全量差分包包括控制信息、差分信息以及独有信息;根据目标分块大小对源固件数据以及目标升级固件数据进行分块处理,得到多个源固件的分块数据和多个目标升级固件的分块数据,每一个源固件的分块数据包括对应的分块标识,每一个目标升级固件的分块数据包括对应的分块标识;获取所述控制信息中的多个控制三元组命令,每一个控制三元组命令包括第一控制信息以及第二控制信息,所述第一控制信息表征所述源固件与所述目标升级固件的相同信息和差分信息,所述第二控制信息表征所述目标升级固件的独有信息;根据所述每一个目标升级固件分块对应的标识、所述每一个源固件分块对应的标识、所述目标分块大小以及操作步长,对所述每一个第一控制信息进行分解,得到每一个目标升级固件的分块对应的第三控制信息,所述第三控制信息表征每一个目标升级固件的分块中与对应源固件分块中的相同信息和差分信息;根据所述每一个目标升级固件的分块数据对应的分块标识、所述目标分块大小以及操作步长,对所述每一个第二控制信息进行分解,得到每一个目标升级固件的分块对应的第四控制信息,所述第四控制信息用于表征每一个目标升级固件的分块中与对应源固件分块中的相同信息和差分信息;根据所述第三控制信息、所述第四控制信息、所述差分信息以及独有信息,确定所述每一个目标升级固件的分块对应的差分信息和独有信息;根据所述第三控制信息、第四控制信息以及所述每一个目标升级固件的分块对应的差分信息和独有信息,生成所述每一个目标升级固件的分块对应的差分升级包;根据所述第三控制信息确定每一个目标升级固件分块的升级顺序;对所述每一个目标升级固件的分块对应的差分升级包以及所述升级顺序进行打包,得到所述目标升级固件对应的差分升级包。2.根据权利要求1所述的方法,其特征在于,所述根据目标分块大小对源固件数据以及目标升级固件数据进行分块处理,得到多个源固件的分块数据和多个目标升级固件的分块数据之前,所述方法还包括:获取设备侧的目标处理器的内存大小以及设备侧的目标flash存储器的最小擦除单位;根据所述目标处理器的内存大小以及目标flash存储器的最小擦除单位确定所述目标分块大小。3.根据权利要求1所述的方法,其特征在于,根据所述每一个目标升级固件分块对应的标识、所述每一个源固件分块对应的标识、所述目标分块大小以及操作步长,对所述每一个第一控制信息进行分解,得到每一个目标升级固件的分块对应的第三控制信息,包括:根据所述第一控制信息的当前可操作字节数、当前操作的源固件分块内的剩余字节数以及当前操作的目标升级固件分块内的剩余字节数,确定所述第一控制信息对应的当前分解步长;根据所述第一控制信息对应的当前分解步长,对所述第一控制信息进行分解得到第一
分解结果,并记录在对所述第一控制信息的分解过程中每一步分解操作对应源固件的分块标识、对应目标升级固件的分块标识、在所述源固件中的当前第一位置偏移指针、在所述目标升级固件中的当前第二位置偏移指针以及在所述全量差分包中差分信息中的当前第三位置偏移指针;根据第一分解结果、所述第一位置偏移指针、所述对应源固件的分块标识、对应目标升级固件的分块标识、所述第一位置偏移指针、所述第二位置偏移指针以及所述第三位置偏移指针确定所述第三控制信息;根据所述每一个目标升级固件的分块数据对应的分块标识、所述目标分块大小以及操作步长,对所述每一个第二控制信息进行分解,得到每一个目标升级固件的分块对应的第四控制信息,包括:根据所述第二控制信息的当前可操作字节数以及当前操作的目标升级固件分块内的剩余字节数,确定所述第二控制信息对应的当前分解步长;根据所述第二控制信息对应的当前分解步长对所述第二控制信息进行分解得到第二分解结果,并记录在对所述第二控制信息的分解过程中每一步分解操作对应目标升级固件的分块标识、在所述目标升级固件中的当前第四位置偏移指针以及在所述全量差分包中独有信息中的当前第五位置偏移指针;根据第二分解结果、所述第四位置偏移指针、第五位置偏移指针以及目标升级固件的分块标识确定所述第四控制信息。4.根据权利要求3所述的方法,其特征在于,所述根据所述第三控制信息确定每一个目标升级固件分块的升级顺序,包括:确定第三控...

【专利技术属性】
技术研发人员:李海龙
申请(专利权)人:北京亚华物联科技发展有限公司
类型:发明
国别省市:

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

1