一种差分文件的生成方法、装置及计算机设备制造方法及图纸

技术编号:38641287 阅读:12 留言:0更新日期:2023-08-31 18:34
本发明专利技术公开了一种差分文件的生成方法、装置及计算机设备,包括:以预设字节数为单位分别对源固件和升级固件进行分块,生成源固件块和升级固件块;按照预设匹配规则和预设差异字节阈值,从多个源固件块中确定出与第一升级固件块存在关联关系的目标字节段;确定目标字节段与第一升级固件块之间的差分信息;基于差分信息中携带的依赖信息构建有向图;当有向图为有环图时,按照预设调节规则调节差异字节阈值,重新确定目标字节段,并重新确定的目标字节段生成新的差分信息;直至生成的有向图为无环图时,基于无环图和所有差分信息,生成源固件和升级固件之间的差分文件;通过上述方式减小了存储空间的占用,提高了升级效率。提高了升级效率。提高了升级效率。

【技术实现步骤摘要】
一种差分文件的生成方法、装置及计算机设备


[0001]本专利技术涉及固件升级
,具体涉及一种差分文件的生成方法、装置及计算机设备。

技术介绍

[0002]固件升级,通常是在平台或上位机中制作差分文件,然后,设备侧从平台或上位机中下载差分文件,最后由设备侧基于旧固件以及差分文件完成旧固件的升级操作。
[0003]若旧固件占用空间为A,新固件占用空间为B,差分文件占用空间为C。那么,在上述升级过程中,当设备侧将差分文件下载下来后,设备侧的空间占用情况为A+C,当根据旧固件A和差分文件C形成升级后的新固件B后,设备侧的空间占用情况为A+B+C。
[0004]当设备侧的存储空间较小时,固件升级过程中空间占用的问题就显得尤为急迫。那么,如何减小固件升级过程对存储空间的占用,成为了目前需要解决的问题。

技术实现思路

[0005]因此,本专利技术要解决的技术问题在于克服现有技术中固件升级过程中空间占用大的缺陷,从而提供一种差分文件的生成方法、装置及计算机设备。
[0006]第一方面,本专利技术提供了一种差分文件的生成方法,包括:
[0007]以预设字节数为单位对源固件进行分块,生成多个源固件块,以预设字节数为单位对升级固件进行分块,生成多个升级固件块;按照预设匹配规则和预设差异字节阈值,从多个源固件块中确定出与第一升级固件块存在关联关系的目标字节段,第一升级固件块为升级固件中包含的多个升级固件块中的任一个;基于目标字节段和第一升级固件块确定目标字节段与第一升级固件块之间的差分信息,差分信息中包括第一升级固件块与源固件块之间的依赖信息;基于每一个升级固件块分别对应的依赖信息构建有向图;当有向图为有环图时,按照预设调节规则调节差异字节阈值,重新确定目标字节段,并基于第一升级固件块和重新确定的目标字节段生成新的差分信息;直至基于依赖信息生成的有向图为无环图时,基于无环图和所有差分信息,生成源固件和升级固件之间的差分文件。
[0008]结合第一方面,在第一方面的第一实施例中,从多个源固件块中确定出与第一升级固件块存在关联关系的目标字节段,包括:
[0009]从源固件块中筛选出与第一升级固件块连续匹配字节数最多的第一源固件块;按照预设匹配规则和预设差异字节阈值,提取出第一源固件块中与第一升级固件块存在关联关系的关联字节段;当关联字节段的字节数等于预设字节数时,直接将关联字节段作为目标字节段。
[0010]结合第一方面,在第一方面的第二实施例中,从多个源固件块中确定出与第一升级固件块存在关联关系的目标字节段,还包括:
[0011]当关联字节段的字节数小于预设字节数时,从第一升级固件块中筛选出关联字节段的前项字节段和/或从第一升级固件块中筛选出关联字节段的后向字节段;从除第一源
固件块之外的其它源固件块中确定出与前向字节段存在关联关系的关联字节段;和/或,从除第一源固件块之外的其它源固件块中确定出与后向字节段存在关联关系的关联字节段;将所有的关联字节段合并,生成目标字节段。
[0012]结合第一方面,在第一方面的第三实施例中,按照预设匹配规则和预设差异字节阈值,提取出第一源固件块中与第一升级固件块存在关联关系的关联字节段,包括:
[0013]将第一源固件块与第一升级固件中,块连续匹配字节数最多的字节段确定为匹配字节段;获取匹配字节段的字节数、匹配字节段的位置,位置包括匹配字节段在第一源固件块中的位置和匹配字节段在第一升级固件块中的位置;当匹配字节段的字节数满足第一预设条件,或者,匹配字节段的位置满足第二预设条件,或者匹配字节段的位置满足第三预设条件时,直接将匹配字节段确定为关联字节段。
[0014]结合第一方面,在第一方面的第四实施例中,所述第一预设条件为所述匹配字节段的字节数与预设倍数的所述预设差异字节阈值之和等于所述预设字节数;所述第二预设条件为,在所述第一源固件块中,所述匹配字节段的尾字节与所述第一源固件块的尾字节对应,且在所述第一升级固件块中,所述匹配字节段的首字节与所述第一升级固件块的首字节对应;所述第三预设条件为,在所述第一源固件块中,所述匹配字节段的首字节与所述第一源固件块的首字节对应,且在所述第一升级固件块中,所述匹配字节段的尾字节与所述第一升级固件块的尾字节对应。
[0015]结合第一方面,在第一方面的第五实施例中,从第一源固件块中与确定出与第一升级固件块存在关联关系的关联字节段,还包括:
[0016]当匹配字节段的字节数不满足第一预设条件,和/或匹配字节段的位置不满足第二预设条件,和/或匹配字节段的位置不满足第三预设条件时,在第一源固件块中,获取匹配字节段的首字节对应的第一位置和尾字节对应的第二位置,在第一升级固件块中,获取匹配字节段的首字节对应的第三位置和尾字节对应的第四位置;在第一位置设置第一指针,在第二位置设置第二指针,在第三位置设置第三指针,在第四位置设置第四指针,其中,第一指针和第三指针属于第一类指针,第二位置和第四位置属于第二类指针;获取同类型指针中包含的每一个指针分别对应的字节,并判断字节的一致性;基于同类型指针对应的字节的一致性,从第一源固件块中确定关联字节段。
[0017]结合第一方面,在第一方面的第六实施例中,基于同类型指针对应的字节的一致性,从第一源固件块中确定关联字节段,包括:
[0018]当同类型指针对应的字节一致时,将指针类型对应的预设的累计差异字节数恢复至初始差异值,并按照与指针类型对应的预设偏移方向和预设偏移量移动同类型指针中的每一个指针,并继续判断同类型指针对应的字节的一致性;直至同类型指针对应的字节不一致时,更新累计差异字节数,并将累计差异字节数与预设差异字节阈值进行比较;当累计差异字节数未达到预设差异字节阈值时,按照与指针类型对应的预设偏移方向和预设偏移量移动同类型指针中的每一个指针,并继续判断同类型指针对应的字节的一致性;直至每一个指针类型对应的累计差异字节数均达到预设差异字节阈值时,获取第一类指针在第一源固件块中对应的第五位置和第二类指针在第一源固件块中对应的第六位置;将第一源固件块中,从第五位置至第六位置包含的字节段确定为关联字节段。
[0019]结合第一方面,在第一方面的第七实施例中,基于无环图和所有差分信息,生成源
固件和升级固件之间的差分文件,包括:
[0020]基于升级固件块对应的差分信息,生成与升级固件块对应的差分包;基于无环图确定升级固件块对应的升级顺序;将差分包按照升级顺序生成差分文件。
[0021]第二方面,本专利技术提供了一种差分文件的生成装置,包括:
[0022]第一生成模块,用于以预设字节数为单位对源固件进行分块,生成多个源固件块,以预设字节数为单位对升级固件进行分块,生成多个升级固件块;第一确定模块,用于按照预设匹配规则和预设差异字节阈值,从多个源固件块中确定出与第一升级固件块存在关联关系的目标字节段,第一升级固件块为升级固件中包含的多个升级固件块中的任一个;第二确定模块,用于基于目标字节段和第一升级固件块确定目标字节本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种差分文件的生成方法,其特征在于,包括:以预设字节数为单位对源固件进行分块,生成多个源固件块,以所述预设字节数为单位对升级固件进行分块,生成多个升级固件块;按照预设匹配规则和预设差异字节阈值,从多个所述源固件块中确定出与第一升级固件块存在关联关系的目标字节段,所述第一升级固件块为所述升级固件中包含的多个所述升级固件块中的任一个;基于所述目标字节段和所述第一升级固件块确定所述目标字节段与所述第一升级固件块之间的差分信息,所述差分信息中包括所述第一升级固件块与所述源固件块之间的依赖信息;基于每一个所述升级固件块分别对应的所述依赖信息构建有向图;当所述有向图为有环图时,按照预设调节规则调节所述差异字节阈值,重新确定所述目标字节段,并基于所述第一升级固件块和重新确定的所述目标字节段生成新的差分信息;直至基于所述依赖信息生成的所述有向图为无环图时,基于所述无环图和所有所述差分信息,生成所述源固件和所述升级固件之间的差分文件。2.根据权利要求1所述的差分文件的生成方法,其特征在于,所述从多个所述源固件块中确定出与第一升级固件块存在关联关系的目标字节段,包括:从所述源固件块中筛选出与所述第一升级固件块连续匹配字节数最多的第一源固件块;按照所述预设匹配规则和所述预设差异字节阈值,提取出所述第一源固件块中与所述第一升级固件块存在关联关系的关联字节段;当所述关联字节段的字节数等于所述预设字节数时,直接将所述关联字节段作为所述目标字节段。3.根据权利要求2所述的差分文件的生成方法,其特征在于,所述从多个所述源固件块中确定出与第一升级固件块存在关联关系的目标字节段,还包括:当所述关联字节段的字节数小于所述预设字节数时,从所述第一升级固件块中筛选出所述关联字节段的前项字节段和/或从所述第一升级固件块中筛选出所述关联字节段的后向字节段;从除所述第一源固件块之外的其它所述源固件块中确定出与所述前向字节段存在关联关系的关联字节段;和/或,从除所述第一源固件块之外的其它所述源固件块中确定出与所述后向字节段存在关联关系的关联字节段;将所有的所述关联字节段合并,生成所述目标字节段。4.根据权利要求2或3所述的差分文件的生成方法,其特征在于,所述按照所述预设匹配规则和所述预设差异字节阈值,提取出所述第一源固件块中与所述第一升级固件块存在关联关系的关联字节段,包括:将所述第一源固件块中,与所述第一升级固件块连续匹配字节数最多的字节段确定为匹配字节段;获取所述匹配字节段的字节数、所述匹配字节段的位置,所述位置包括所述匹配字节
段在所述第一源固件块中的位置和所述匹配字节段在所述第一升级固件块中的位置;当所述匹配字节段的字节数满足第一预设条件,或者,所述匹配字节段的位置满足第二预设条件,或者所述匹配字节段的位置满足第三预设条件时,直接将所述匹配字节段确定为所述关联字节段。5.根据权利要求4所述的差分文件的生成方法,其特征在于,所述第一预设条件为所述匹配字节段的字节数与预设倍数的所述预设差异字节阈值之和等于所述预设字节数;所述第二预设条件为,在所述第一源固件块中,所述匹配字节段的尾字节与所述第一源固件块的尾字节对应,且在所述第一升级固件块中,所述匹配字节段的首字节与所述第一升级固件块的首字节对应;所述第三预设条件为,在所述第一源固件块中,所述匹配字节段的首字节与所述第一源固件块的首字节对应,且在所述第一升级固件块中,所述匹配字节段的尾字节与所述第一升级固件块的尾字节对应。6.根据权利要求4所述的差分文件的生成方法,其特征在于,所述从所述第一源固件块中与确定出与所述第一升级固件块存在关联关系的关联字节段,还包括:当所述匹配字节段的字节数不满足...

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

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

1