CN114356386A - 一种分块差分升级方法、终端设备和计算机可读存储介质 - Google Patents

一种分块差分升级方法、终端设备和计算机可读存储介质 Download PDF

Info

Publication number
CN114356386A
CN114356386A CN202111628899.8A CN202111628899A CN114356386A CN 114356386 A CN114356386 A CN 114356386A CN 202111628899 A CN202111628899 A CN 202111628899A CN 114356386 A CN114356386 A CN 114356386A
Authority
CN
China
Prior art keywords
block
file
blocks
differential
upgrading
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111628899.8A
Other languages
English (en)
Inventor
周瑞鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Tuya Information Technology Co Ltd
Original Assignee
Hangzhou Tuya Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Tuya Information Technology Co Ltd filed Critical Hangzhou Tuya Information Technology Co Ltd
Priority to CN202111628899.8A priority Critical patent/CN114356386A/zh
Publication of CN114356386A publication Critical patent/CN114356386A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种分块差分升级方法、终端设备和计算机可读存储介质。该分块差分升级方法包括以下步骤:计算原文件和新文件的全量差分包,对原文件和新文件进行预设分块,得到多个原文件的分块和多个新文件的分块;基于全量差分包得到分块权重表,基于分块权重表得到分块移动表;将分块移动表插入二叉树,并遍历所有二叉树,得到分块交换表;基于分块交换表的顺序,依次求出每个新文件的分块的差分内容,得到差分升级文件;基于差分升级文件和分块交换表的顺序,以将原文件升级为新文件。本申请基于分块交换表的顺序进行差分升级,提高升级速度和稳定性。

Description

一种分块差分升级方法、终端设备和计算机可读存储介质
技术领域
本申请涉及差分升级技术领域,特别是涉及一种分块差分升级方法、终端设备和计算机可读存储介质。
背景技术
目前,通过差分升级算法进行升级,能够减少升级包大小、加快升级速度、减少能耗。现有技术的差分升级算法,需要对原数据的信息进行直接擦除;在擦除原数据后,会使得新数据在引用原数据时丢失参考信息,导致差异信息占比变小,额外信息占比变大,导致差分升级文件变大。因此,现有技术的差分升级算法会导致差分升级文件的大小不稳定,影响升级速度。
发明内容
为解决上述问题,本申请提供一种分块差分升级方法,包括以下步骤:计算原文件和新文件的全量差分包,对原文件和新文件进行预设分块,得到多个原文件的分块和多个新文件的分块;基于全量差分包得到分块权重表,基于分块权重表得到分块移动表;将分块移动表插入二叉树,并遍历所有二叉树,得到分块交换表;基于分块交换表的顺序,依次求出每个新文件的分块的差分内容,得到差分升级文件;基于差分升级文件和分块交换表的顺序,以将原文件升级为新文件。
其中,基于全量差分包得到分块权重表的步骤包括:获取每个新文件的分块引用对应的原文件的分块的字符串;计算字符串占对应的原文件的分块的比值,基于所有新文件的分块对应的比值,得到分块权重表;基于分块权重表得到分块移动表的步骤包括:在分块权重表中每个原文件的分块向对应的新文件的分块的移动,得到分块移动表。
其中,将分块移动表插入二叉树的步骤包括:将分块移动表中的每个原文件的分块作为二叉树的父结点;将分块移动表中的每个新文件的分块作为二叉树的子结点;在分块移动表中具有两个相同的分块时,两个相同的分块不插入二叉树;在分块移动表中具有两个相互引用的分块时,将两个相互引用的分块中比值高的分块作为二叉树的父结点。
其中,遍历所有二叉树,得到分块交换表的步骤包括:对每棵二叉树进行后续遍历,得到分块交换表。
其中,基于分块交换表的顺序,依次求出每个新文件的分块的差分内容,得到差分升级文件的步骤包括:基于分块交换表的顺序,将每个新文件的分块与原文件的后缀数组求差分,得到每个新文件的分块对应的第一信息和第二信息;基于第一信息和第二信息得到差分升级文件包,其中第一信息和第二信息分别作为差分升级文件包的第一区和第二区;将新文件的分块覆盖对应的原文件的分块,重新计算原文件的后缀数组。
其中,得到差分升级文件的步骤包括:将分块交换表插入差分升级文件包的文件头;将差分升级文件包进行压缩,得到差分升级文件。
其中,基于差分升级文件和分块交换表的顺序,以将原文件升级为新文件的步骤包括:获取差分升级文件的第一结构体和第二结构体;从第一结构体获取第一地址信息,从第二结构体获取第二地址信息;基于差分升级文件的分块交换表的顺序,以将原文件升级为新文件。
其中,基于差分升级文件的分块交换表的顺序,以将原文件升级为新文件的步骤包括:将新文件的分块写入到备份区域;擦除与新文件的分块对应的原文件的分块的内容;复制备份区域的内容到对应的原文件的分块;擦除备份区域的内容;基于分块交换表的顺序重复执行上述步骤,以将原文件升级为新文件。
其中,基于差分升级文件和分块交换表的顺序,以将原文件升级为新文件的步骤还包括:在接收到断电信号时,保存当前的步骤;在接收到恢复信号时,继续执行当前的步骤。
为了解决上述技术问题,本申请还提供了一种终端设备,终端设备包括处理器和存储器;存储器中存储有计算机程序,处理器用于执行计算机程序以实现上述分块差分升级方法。
为了解决上述技术问题,本申请还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被执行时实现上述分块差分升级方法。
本申请的有益效果在于:区别于现有技术,本申请的技术方案通过计算原文件和新文件的全量差分包,基于全量差分包得到分块权重表,基于分块权重表得到分块移动表,将分块移动表插入二叉树进行处理,得到了分块交换表。基于分块交换表的顺序,依次求出每个新文件的分块的差分内容,得到差分升级文件;基于差分升级文件和分块交换表的顺序,以将原文件升级为新文件,即根据分块交换表的顺序依次对多个原文件的分块进行擦除,并将原文件升级为新文件,避免差分升级文件出现不稳定的情况,提高升级速度和稳定性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:
图1是本申请提供的分块差分升级方法第一实施例的流程示意图;
图2是图1中对原文件和新文件进行预设分块的一实施例示意图;
图3是本申请提供的分块差分升级方法第二实施例的流程示意图;
图4是图1中分块交换表的一实施例示意图;
图5是本申请提供的分块差分升级方法第三实施例的流程示意图;
图6是差分升级文件包的结构示意图;
图7是本申请提供的分块差分升级方法第四实施例的流程示意图;
图8是本申请提供的分块差分升级方法第五实施例的流程示意图;
图9是本申请终端设备的一实施例的结构示意图;
图10是本申请计算机可读存储介质的一实施例的结构示意图。
其中,100、终端设备;101、处理器;102、存储器;103、总线;110、计算机可读存储介质;111、程序指令。
具体实施方式
为使本申请的上述目的、特征和优点能够更为明显易懂,下面结合附图,对本申请的具体实施方式做详细的说明。可以理解的是,此处所描述的具体实施例仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
本申请中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“设置有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
差分升级方法通常使用Bsdiff算法为代码模板,以使尽可能少地加入新内容来构建新文件。以Bsdiff算法举例说明,Bsdiff算法所对应的差分升级文件包括:控制信息、包含概率匹配中不同字节差异信息(diff info)、不属于概率匹配内容的额外信息(extrainfo)。在通过Bsdiff方法生成差分升级文件时,首先对原文件进行后缀排序,然后将新文件中的字符串与原文件的字符串进行比较,生成相应的差异信息和额外信息;将差异信息、额外信息及相应的控制信息压缩成差分升级文件。
为了解决现有技术中差分升级文件不稳定、升级效率低的问题,本申请提出了一种分块差分升级方法,该分块差分升级方法可以在物联网模组固件的OTA升级中运行,具体可以应用于一种终端设备、一种计算机可读存储介质;该终端设备可以为手机、电脑等具有处理器和存储器的终端设备;该计算机可读存储介质可以为U盘、SD卡、PD光驱等计算机可读存储介质。
请参阅图1、图2,图1是本申请提供的分块差分升级方法一实施例的流程示意图,图2是图1中对原文件和新文件进行预设分块的一实施例示意图。
分块差分升级方法包括以下步骤:
S10:计算原文件和新文件的全量差分包,对原文件和新文件进行预设分块,得到多个原文件的分块和多个新文件的分块。
利用差分算法,将原文件和新文件进行差分计算,获得原文件和新文件的全量差分包。预先设置有预设分块,基于预设分块对原文件和新文件进行分块,得到多个原文件的分块和多个新文件的分块,其中预设分块可以为32k字节,基于每个32k字节对原文件和新文件进行分块。例如,利用块状数组基于预设分块对原文件和新文件进行32k分块,得到多个原文件的分块和多个新文件的分块,如图2所示。其中,多个原文件的分块分别为原文件的分块0、分块1、……、分块n;多个新文件的分块分别为新文件的分块0、分块1、……、分块n。
S20:基于全量差分包得到分块权重表,基于分块权重表得到分块移动表。
基于全量差分包,得到新文件各个分块引用对应原文件分块的占比权重表,即分块权重表;基于分块权重表,得到表示原文件的各个分块往新文件分块移动的移动顺序表,即分块移动表。
S30:将分块移动表插入二叉树,并遍历所有二叉树,得到分块交换表。
由于分块移动表表示的是原文件的各个分块要往新文件的各个分块移动的先后顺序,如果原文件的一个分块的数据被擦除了,会导致新文件的另一个分块引用不到相关的参考信息。为此,基于分块移动表的顺序,将分块移动表插入二叉树,并遍历所有二叉树,可以得到分块交换表,得出擦除原数据的顺序。
S40:基于分块交换表的顺序,依次求出每个新文件的分块的差分内容,得到差分升级文件。
基于分块交换表的顺序,将每个新文件的分块与原文件求差分,依次求出每个新文件分块的差分内容。基于每个新文件分块的差分内容,得到差分升级文件。
S50:基于差分升级文件和分块交换表的顺序,以将原文件升级为新文件。
基于差分升级文件和分块交换表的顺序,依次将原文件的分块内容替换成新文件的分块内容,完成将原文件升级为新文件的步骤。
区别于现有技术,本申请的技术方案通过先基于全量差分包得到分块权重表,基于分块权重表得到分块移动表,将分块移动表插入二叉树进行处理,得到分块交换表,之后基于分块交换表的顺序,求出每个新文件的分块的差分内容,得到差分升级文件,最后基于差分升级文件和分块交换表的顺序将原文件升级为新文件。分块交换表表示分块差分的升级顺序,能避免新文件在引用原文件时丢失重要参考信息,避免差分升级文件出现不稳定的情况,提高升级速度和稳定性。
请参阅图3,图3是本申请提供的分块差分升级方法第二实施例的流程示意图。步骤S20进一步包括以下步骤:
S210:获取每个新文件的分块引用对应的原文件的分块的第一字符串。
基于上述步骤S10得到的全量差分包,从全量差分包获取每个新文件的分块引用对应的原文件的分块的字符串,其中字符串可以为diff字符串。
例如,新文件的分块0中的diff字符串有11754字节引用了原文件的分块0;新文件的分块2中的diff字符串有32768字节引用了原文件的分块2。
S220:计算字符串占对应的原文件的分块的比值,基于所有新文件的分块对应的比值,得到分块权重表。
基于上述步骤S10得到的预设分块为32k字节时,每个原文件分块的大小为32768字节,则可计算每个新文件的分块引用对应的原文件的分块的字符串与原文件分块的字符串的比值。例如,新文件的分块0中的diff字符串有11754字节引用了原文件的分块0,则diff字符串占对应的原文件分块的字符串的比值为11754与32768的比值,即新文件的分块0引用原文件的分块0的占比为35%;新文件的分块2中的diff字符串有32768字节引用了原文件的分块1,则新文件的分块2引用原文件的分块1的占比为100%。
基于所有新文件的分块与对应原文件分块的比值,得到分块权重表。分块权重表为新文件各个分块引用对应原文件分块的占比权重表。
S230:在分块权重表中每个原文件的分块向对应的新文件的分块移动,得到分块移动表。
基于分块权重表,可以看出,在新文件的各个分块引用对应原文件的分块内容时,需要将原文件的分块移动至新文件的分块。可以记为原文件分块a->新文件分块b,其中,a和b为0~n的整数。例如,原文件的分块0往新文件的分块0移动,记为0->0;原文件的分块1往新文件的分块2移动,记为1->2;原文件的分块2往新文件的分块3移动,记为2->3。
因此,在分块权重表中每个原文件的分块向对应的新文件的分块移动,得到分块移动表。
可选地,步骤S30中包括以下步骤:将分块移动表中的每个原文件的分块作为二叉树的父结点;将分块移动表中的每个新文件的分块作为二叉树的子结点;在分块移动表中具有两个相同的分块时,两个相同的分块不插入二叉树;在分块移动表中具有两个相互引用的分块时,将两个相互引用的分块中比值高的分块作为二叉树的父结点。
本实施例使用二叉树对分块移动表进行处理。二叉树是一种计算机数据结构,由一个父结点和父结点的子树组成。将分块移动表中的原文件的分块作为父结点,新文件的分块作为子结点;若原文件分块与新文件分块相同,即原文件和新文件分块间不存在引用关系,不做插入处理;原文件和新文件分块间相互引用,则将两个相互引用的字节占比高的分块作为二叉树的父结点,占比低的分块作为子结点。其中,原文件和新文件相互引用指的是新文件分块包含原文件分块的一个引用关系,且该新文件分块引用了原文件分块的部分字符串。
进一步地,步骤S30中包括以下步骤:对每棵二叉树进行后续遍历,得到分块交换表。
遍历二叉树,就是按一定的规则和顺序走遍二叉树的所有结点,使每一个结点都被访问一次,将二叉树的各个结点转换为一个线性序列。后续遍历是先遍历子结点,最后再访问父结点的一种遍历方法。由于子结点是最不重要的部分,被引用的优先级最低,在此使用的是后续遍历。遍历结束后,得到分块交换表。例如,将分块移动表插入二叉树,并遍历所有二叉树,得到结果为:0;5,4,3,2,1;21,20,19,……,7,6;60,59,58,……,24,23。
如图4所示,图4是图1中分块交换表的一实施例示意图。在该实施例中,分块交换表表示的是原文件分块的交换顺序表。例如,图4所表示的含义是,先对原文件的分块0进行擦除,再擦除分块5、分块4、分块3……直至分块23擦除完成。
区别于现有技术,本实施例的技术方案通过将分块移动表插入二叉树,将分块移动表中的每个原文件的分块作为二叉树的父结点,将分块移动表中的每个新文件的分块作为二叉树的子结点,对所有二叉树进行后续遍历,得到分块交换表。分块交换表是原文件分块的交换顺序表,基于分块交换表的顺序,可以规划分块升级顺序,避免差分升级文件出现不稳定的情况,提高升级速度和稳定性。
如图5所示,图5是本申请提供的分块差分升级方法第三实施例的流程示意图。步骤S40中包括以下步骤:
S410:基于分块交换表的顺序,将每个新文件的分块与原文件的后缀数组求差分,得到每个新文件的分块对应的第一信息和第二信息。
基于分块交换表的顺序,将每个新文件的分块与原文件的后缀数组求差分,依次得到分块的差分内容。其中,差分内容包括第一信息和第二信息,第一信息为差异信息(diff info),第二信息为额外信息(extra info)。
S420:基于第一信息和第二信息得到差分升级文件包,其中第一信息和第二信息分别作为差分升级文件包的第一区和第二区。
第一信息和第二信息分别作为差分升级文件包的第一区和第二区,其中,第一区为差异信息区(diff区),第二区为额外信息区(extra区)。
S430:将新文件的分块覆盖对应的原文件的分块,重新计算原文件的后缀数组。
由于原文件的分块内容被新文件的分块所覆盖,需对修改后的数组进行更新排序,即重新计算原文件的后缀数组,并在下一分块计算差分时用该新文件的分块与更新后的原文件后缀数组进行差分计算。
基于分块交换表的顺序,重复S410-S430步骤,直至求出最后一个新文件的分块与原文件的第一信息和第二信息。例如,分块交换表的第一项是0,将新文件的分块0和原文件的后缀数组求差分,得到新文件分块0的差异信息和额外信息,将新文件的分块0覆盖原文件的分块0,重新计算原文件的后缀数组;分块交换表的第二项是5,将新文件的分块5和原文件的后缀数组求差分,得到新文件分块5的差异信息和额外信息,将新文件的分块5覆盖原文件的分块5,重新计算原文件的后缀数组。
进一步地,步骤S40中还包括以下步骤:将分块交换表插入差分升级文件包的文件头;将差分升级文件包进行压缩,得到差分升级文件。
在可选的实施方式中,将差分升级文件包进行压缩时可使用xz压缩。xz压缩是一种压缩文件格式,能使用多线程进行压缩,其压缩耗时更短,文件压缩后的大小也更小。使用xz压缩耗时短,得到的差分升级文件小,能够有效的提高差分升级的效率。压缩方式也可以为7z、gzip等其他现有的压缩方式,在此不做限定。
如图6所示,图6是差分升级文件包的结构示意图。差分升级文件包包括文件头、差异信息区和额外信息区。差异信息区和额外信息区分别储存根据分块交换表的顺序进行差分计算得到的差异信息和额外信息;文件头包括控制信息和分块交换表,差分升级的过程中,可调用控制信息和分块交换表以获取差分升级文件的地址信息,进行相应的升级步骤。
区别于现有技术,本申请的技术方案基于分块交换表的顺序,通过将每个新文件的分块与原文件求差分,依次求出新文件的分块的差分内容,差分内容包括差异信息和额外信息,分别作为差分升级文件的差异信息区和额外信息区。基于差异信息和额外信息,得到差分升级文件。基于分块交换表的顺序得到的差分升级文件进行差分升级,能够避免差分升级文件出现不稳定的情况,提高升级速度和稳定性。
如图7、图8所示。图7是本申请提供的分块差分升级方法第四实施例的流程示意图;图8是本申请提供的分块差分升级方法第五实施例的流程示意图。
可选地,步骤S50中包括以下步骤:
S510:获取差分升级文件的第一结构体和第二结构体。
S520:从第一结构体获取第一地址信息,从第二结构体获取第二地址信息。
S530:基于差分升级文件的分块交换表的顺序,以将原文件升级为新文件。
在一实施方式中,将差分升级文件包进行xz压缩,得到差分升级文件。在对差分升级文件进行解压缩时,使用第一结构体(diff_xz)和第二结构体(extra_xz)快速定位到第一地址信息和第二地址信息,基于第一地址信息和第二地址信息确定第一信息(diffinfo)和第二信息(extra info)的位置。同时,将差分升级文件的分块交换表取出,基于分块交换表的分块升级顺序,将原文件升级为新文件。
进一步地,步骤S50中还包括以下步骤:
S540:将新文件的分块写入到备份区域。
S550:擦除与新文件的分块对应的原文件的分块的内容。
S560:复制备份区域的内容到对应的原文件的分块。
S570:擦除备份区域的内容。
基于分块交换表的顺序重复执行上述S540-S570的步骤,以将原文件升级为新文件。
基于分块交换表的顺序,将原文件的每个分块升级为新文件的内容。例如,分块交换表的第一项是0,先恢复新文件的分块0,将其写入到备份区域,直至写满32k为止;将原文件的分块0擦除;将备份区域的内容复制至原文件的分块0;擦除备份区域的内容;分块交换表的第二项是5,重复上述步骤,将原文件的分块5升级为新文件的分块5;基于分块交换表的顺序,重复上述步骤,直至将原文件的最后一个分块升级为新文件的最后一个分块。
区别于现有技术,本申请的技术方案基于分块交换表的顺序将原文件分块替换成新文件分块,将原文件升级为新文件,优化分块升级顺序,避免差分升级文件出现不稳定的情况,提高升级速度和稳定性。
可选地,步骤S105中基于差分升级文件和分块交换表的顺序,以将原文件升级为新文件的步骤还包括:在接收到断电信号时,保存当前的步骤;在接收到恢复信号时,继续执行当前的步骤。
在差分升级过程中,为了防止突然断电使得升级过程中断,使用断电控制块用来保存每一次升级完成的步骤。当接收到断电信号时,能保存当前升级完成的步骤,使得下一次上电时,可以恢复到上一次完成的步骤继续进行升级,避免下一次上电时需重新升级,影响用户的升级体验。
本申请还提出一种终端设备,如图9所示,图9是本申请终端设备的一实施例的结构示意图,终端设备100包括:处理器101、存储器102以及总线103。该处理器101、存储器102分别与总线103相连,该存储器102中存储有程序指令,处理器101用于执行程序指令以实现上述实施例中的差分升级方法。
在本实施例中,处理器101还可以称为CPU(Central Processing Unit,中央处理单元)。处理器101可能是一种集成电路芯片,具有信号的处理能力。处理器101还可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器101也可以是任何常规的处理器等。
本申请还提出一种计算机可读存储介质,如图10所示,图10是本申请计算机可读存储介质的一实施例的结构示意图,计算机可读存储介质110其上存储有程序指令111,程序指令111被处理器(图未示)执行时实现上述实施例中的差分升级方法。
本实施例计算机可读存储介质110可以是但不局限于U盘、SD卡、PD光驱、移动硬盘、大容量软驱、闪存、多媒体记忆卡、服务器、FPGA或ASIC中的存储单元等。
区别于现有技术,本申请的技术方案通过计算新文件分块与对应的原文件分块的引用占比,得到分块权重表,基于分块权重表得到分块移动表,通过将分块移动表插入二叉树中进行后续遍历,得到分块交换表,基于分块交换表得到分块差分升级顺序,基于分块交换表的顺序,依次求出每个新文件的分块的差分内容,得到差分升级文件,基于差分升级文件和分块交换表的顺序,将原文件升级为新文件。本申请对分块差分升级顺序进行优化,避免在擦除原数据时丢失重要参考信息,避免差分升级文件出现不稳定的情况,提高升级速度和稳定性。
以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (11)

1.一种分块差分升级方法,其特征在于,包括以下步骤:
计算原文件和新文件的全量差分包,对所述原文件和所述新文件进行预设分块,得到多个所述原文件的分块和多个所述新文件的分块;
基于所述全量差分包得到分块权重表,基于所述分块权重表得到分块移动表;
将所述分块移动表插入二叉树,并遍历所有所述二叉树,得到分块交换表;
基于所述分块交换表的顺序,依次求出每个所述新文件的分块的差分内容,得到差分升级文件;
基于所述差分升级文件和所述分块交换表的顺序,以将所述原文件升级为所述新文件。
2.根据权利要求1所述的分块差分升级方法,其特征在于,
所述基于所述全量差分包得到分块权重表的步骤包括:
获取每个所述新文件的分块引用对应的所述原文件的分块的字符串;
计算所述字符串占对应的所述原文件的分块的比值,基于所有所述新文件的分块对应的比值,得到所述分块权重表;
所述基于所述分块权重表得到分块移动表的步骤包括:
在所述分块权重表中每个所述原文件的分块向对应的所述新文件的分块移动,得到所述分块移动表。
3.根据权利要求1所述的分块差分升级方法,其特征在于,所述将所述分块移动表插入二叉树的步骤包括:
将所述分块移动表中的每个所述原文件的分块作为所述二叉树的父结点;
将所述分块移动表中的每个所述新文件的分块作为所述二叉树的子结点;
在所述分块移动表中具有两个相同的分块时,所述两个相同的分块不插入所述二叉树;
在所述分块移动表中具有两个相互引用的分块时,将所述两个相互引用的分块中比值高的分块作为所述二叉树的父结点。
4.根据权利要求3所述的分块差分升级方法,其特征在于,
所述遍历所有所述二叉树,得到分块交换表的步骤包括:
对每棵所述二叉树进行后续遍历,得到所述分块交换表。
5.根据权利要求1或4所述的分块差分升级方法,其特征在于,所述基于所述分块交换表的顺序,依次求出每个所述新文件的分块的差分内容,得到差分升级文件的步骤包括:
基于所述分块交换表的顺序,将每个所述新文件的分块与所述原文件的后缀数组求差分,得到每个所述新文件的分块对应的第一信息和第二信息;
基于所述第一信息和所述第二信息得到差分升级文件包,其中所述第一信息和所述第二信息分别作为所述差分升级文件包的第一区和第二区;
将所述新文件的分块覆盖对应的所述原文件的分块,重新计算所述原文件的后缀数组。
6.根据权利要求5所述的分块差分升级方法,其特征在于,所述得到差分升级文件的步骤包括:
将所述分块交换表插入所述差分升级文件包的文件头;
将所述差分升级文件包进行压缩,得到所述差分升级文件。
7.根据权利要求6所述的分块差分升级方法,其特征在于,
所述基于所述差分升级文件和所述分块交换表的顺序,以将所述原文件升级为所述新文件的步骤包括:
获取所述差分升级文件的第一结构体和第二结构体;
从所述第一结构体获取第一地址信息,从所述第二结构体获取第二地址信息;
基于所述差分升级文件的分块交换表的顺序,以将所述原文件升级为所述新文件。
8.根据权利要求7所述的分块差分升级方法,其特征在于,
所述基于所述差分升级文件的分块交换表的顺序,以将所述原文件升级为所述新文件的步骤包括:
将所述新文件的分块写入到备份区域;
擦除与所述新文件的分块对应的所述原文件的分块的内容;
复制所述备份区域的内容到对应的所述原文件的分块;
擦除所述备份区域的内容;
基于所述分块交换表的顺序重复执行上述步骤,以将所述原文件升级为所述新文件。
9.根据权利要求7所述的分块差分升级方法,其特征在于,
所述基于所述差分升级文件和所述分块交换表的顺序,以将所述原文件升级为所述新文件的步骤还包括:
在接收到断电信号时,保存当前的步骤;
在接收到恢复信号时,继续执行所述当前的步骤。
10.一种终端设备,其特征在于,所述终端设备包括处理器和存储器;所述存储器中存储有计算机程序,所述处理器用于执行所述计算机程序以实现如权利要求1~9中任一项所述的分块差分升级方法的步骤。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被执行时实现如权利要求1~9中任一项所述的分块差分升级方法的步骤。
CN202111628899.8A 2021-12-28 2021-12-28 一种分块差分升级方法、终端设备和计算机可读存储介质 Pending CN114356386A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111628899.8A CN114356386A (zh) 2021-12-28 2021-12-28 一种分块差分升级方法、终端设备和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111628899.8A CN114356386A (zh) 2021-12-28 2021-12-28 一种分块差分升级方法、终端设备和计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN114356386A true CN114356386A (zh) 2022-04-15

Family

ID=81102806

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111628899.8A Pending CN114356386A (zh) 2021-12-28 2021-12-28 一种分块差分升级方法、终端设备和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN114356386A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114518897A (zh) * 2022-04-20 2022-05-20 北京智芯微电子科技有限公司 通信模块远程升级方法及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114518897A (zh) * 2022-04-20 2022-05-20 北京智芯微电子科技有限公司 通信模块远程升级方法及系统

Similar Documents

Publication Publication Date Title
US10901949B2 (en) Method and apparatus for compressing metadata in a file system
EP3252605A1 (en) Vehicle-mounted control device, program writing device, program generating device and program
US10802923B2 (en) Method and apparatus for incremental backup based on file paths and a prefix tree
US9977598B2 (en) Electronic device and a method for managing memory space thereof
CN111177043B (zh) 加快读取现场可更换单元信息的方法、系统、设备及介质
CN112732321B (zh) 一种固件修改方法、装置、计算机可读存储介质和设备
US20120011166A1 (en) Skip list generation
CN114780128A (zh) 嵌入式设备固件更新方法、嵌入式设备及开发端设备
CN114356386A (zh) 一种分块差分升级方法、终端设备和计算机可读存储介质
JP2014520318A (ja) 圧縮一致列挙
CN111930923A (zh) 布隆过滤器系统及过滤方法
CN113746487B (zh) 一种数据压缩方法、装置及电子设备和存储介质
CN106293542B (zh) 一种文件解压缩的方法及装置
WO2024124843A1 (zh) 一种数据处理方法、装置、设备及可读存储介质
CN117349291A (zh) 一种数据库主键短id生成方法、电子设备和介质
CN112416388A (zh) 智能移动终端软件升级方法及其升级控制系统
CN112579141A (zh) 一种嵌入式系统的固件更新方法、装置、设备及存储介质
CN108829872B (zh) 无损压缩文件的快速处理方法、设备、系统及存储介质
CN116865766A (zh) 一种波形数据压缩方法、系统、设备及介质
CN115982310A (zh) 一种自带验证功能的链表生成方法及电子设备
CN115408547A (zh) 一种字典树构建方法、装置、设备及存储介质
CN112732649A (zh) Ofd文档签章方法、电子设备及介质
CN109840080B (zh) 字符属性比较方法、装置、存储介质及电子设备
CN112579003B (zh) 键值对的调整方法、装置、存储介质以及电子装置
CN117270902B (zh) Ota升级包生成方法和装置、ota升级方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination