差分升级包的制作方法及装置制造方法

文档序号:6512393阅读:156来源:国知局
差分升级包的制作方法及装置制造方法
【专利摘要】本发明公开了一种差分升级包的制作方法及其装置,所述方法包括:获取源版本的二进制数据,并对此进行数学变换和排序获得元一数据集合,所述元数据是指设定的最小的基础单位的属性数据;将所述元数据集合中的数据序列化进一中间文件;在需要制作差分升级包时,依据所述中间文件对源版本和目标版本进行差异化分析,以构建差分升级包。本发明利用中间文件来制作差分升级包,提高了差分包的制作效率,缩短了差分包制作时间,另外,因为本发明引入了缓存优化机制,缩短了差分包工具制作差分包耗时最长的那一步的处理过程,进一步提升了工作效率,节约了人力成本,使得差分升级技术可以得到进一步推广和应用。
【专利说明】差分升级包的制作方法及装置

【技术领域】
[0001] 本发明涉及差分升级【技术领域】,具体而言,涉及一种差分升级包的制作方法及其 装直。

【背景技术】
[0002] 通常,终端设备在经过一段时间之后需要进行相应的固件升级,但是由于设备存 储空间的限制导致不能容纳一个完整的新版本数据以进行升级,因此需要根据两个新旧版 本固件之间的差异性,制作差分升级包,并依据该差分升级包来对旧版本的固件进行升级, 以减少存储空间的开销。
[0003] 通过现有技术制作一个差分包所需要的时间开销主要取决于两个新旧版本固件 的大小以及具体差异程度,其产分包的制作效率较低。另外,目前在一些公开文献中提出了 一些差分技术,此类差分技术会由自身算法计算出来一个中间临时的转换文件,但是现有 技术中并没有提出任何的利用这一类中间文件来制作差分升级包以提高差分包的制作效 率的技术。


【发明内容】

[0004] 为了提高差分升级包的制作效率,本发明实施例的目的在于提供一种差分升级包 的制作方法及其装置。
[0005] 为了达到本发明的目的,本发明采用以下技术方案实现:
[0006] 一种差分升级包的制作方法,其包括:
[0007] 获取源版本的二进制数据,并对此进行数学变换和排序获得元一数据集合,所述 元数据是指设定的最小的基础单位的属性数据;
[0008] 将所述元数据集合中的数据序列化进一中间文件;
[0009] 在需要制作差分升级包时,依据所述中间文件对源版本和目标版本进行差异化分 析,以构建差分升级包。
[0010] 优选地,所述中间文件的头文件中被封入了元数据集合中所有元数据的一个整体 信息。
[0011] 优选地,在将所述元数据集合中的数据序列化进中间文件之后,所述方法还包 括:
[0012] 对中间文件进行完整性校验,如果校验成功,则以得到的校验值作为该中间文件 的文件名。
[0013] 优选地,在需要制作差分升级包时,首先计算源版本的文件完整性校验值,并根据 算出的文件完整性校验值搜索与之对应的中间文件,如果搜索不到,则执行一次中间文件 的制作步骤;否则,依据所述中间文件对源版本和目标版本进行差异化分析,以构建差分升 级包。
[0014] 优选地,依据所述中间文件对源版本和目标版本进行差异化分析以构建差分升级 包的步骤包括:
[0015] 反序列化该中间文件,并将得到的数据读入设备的内存;
[0016] 使用得到的这些数据分析源版本与目标版本之间的二进制数据的差异性信息,并 根据这些差异性信息构建差分升级包。
[0017] 一种差分升级包的制作装置,其包括:
[0018] 元数据处理模块,用于获取源版本的二进制数据,并对此进行数学变换和排序获 得一元数据集合,所述元数据是指设定的最小的基础单位的属性数据;
[0019] 中间文件构建模块,用于将所述元数据集合中的数据序列化进一中间文件;
[0020] 差分模块,用于在需要制作差分升级包时,依据所述中间文件对源版本和目标版 本进行差异化分析,以构建差分升级包。
[0021] 优选地,所述中间文件的头文件中被中间文件构建模块封入了元数据集合中所有 元数据的一个整体信息。
[0022] 优选地,所述差分升级包的制作装置还包括:
[0023] 校验模块,用于对中间文件进行完整性校验,如果校验成功,则以得到的校验值作 为该中间文件的文件名。
[0024] 优选地,所述差分模块包括
[0025] 匹配模块,用于在需要制作差分升级包时,计算源版本的文件完整性校验值,并根 据算出的文件完整性校验值搜索与之对应的中间文件,如果搜索不到,则向元数据处理模 块发送制作中间文件的命令。
[0026] 优选地,所述差分模块还包括:
[0027] 反序列化模块,用于反序列化中间文件,并将得到的数据读入设备的内存;
[0028] 差异化分析模块,用于使用得到的这些数据分析源版本与目标版本之间的二进制 数据的差异性信息,并根据这些差异性信息构建差分升级包。
[0029] 通过上述本发明的技术方案可以看出,本发明利用中间文件来制作差分升级包, 提高了差分包的制作效率,缩短了差分包制作时间,另外,因为本发明引入了缓存优化机 制,缩短了差分包工具制作差分包耗时最长的那一步的处理过程,进一步提升了工作效率, 节约了人力成本,使得差分升级技术可以得到进一步推广和应用。

【专利附图】

【附图说明】
[0030] 图1是本发明实施例提供的差分升级包的制作方法流程示意图;
[0031] 图2是本发明实施例提供的中间文件的生成过程示意图;
[0032] 图3是本发明实施例提供的差分包效率优化示意图;
[0033] 图4是本发明实施例提供的差分升级包的制作装置结构示意图;
[0034] 图5是本发明优选实施例提供的差分升级包的制作装置结构示意图;
[0035] 图6是本发明优选实施例提供的差分模块结构示意图。
[0036] 本发明目的的实现、功能特点及优异效果,下面将结合具体实施例以及附图做进 一步的说明。

【具体实施方式】
[0037] 下面结合附图和具体实施例对本发明所述技术方案作进一步的详细描述,以使本 领域的技术人员可以更好的理解本发明并能予以实施,但所举实施例不作为对本发明的限 定。
[0038] 如图1所示,本发明实施例提供了一种差分升级包的制作方法,简单而言,其首先 获取两个版本(源版本以及目标版本)的二进制文件,然后对源版本的二进制数据进行处 理,产生一个中间临时数据,用于分析原版本和目标版本的差异性信息,最后生成差分升级 包,具体地,其包括如下步骤:
[0039] S10、获取源版本的二进制数据,并对此进行数学变换和排序获得元一数据集合, 所述元数据是指设定的最小的基础单位的属性数据;
[0040] S20、将所述元数据集合中的数据序列化进一中间文件;
[0041] S30、在需要制作差分升级包时,依据所述中间文件对源版本和目标版本进行差异 化分析,以构建差分升级包。
[0042] 例如,在制作源版本A到目标版本B的差分升级包的过程中,如图2所示,对源版 本数据A进行处理,也就是通过源版本的二进制数据,经过数学变换和排序计算出一个元 数据(meta datai)的集合,其中,所谓元数据,就是指在做包过程中,设定的最小的基础单 位的属性数据。这一元数据的集合称之为临时数据(temporary data),本发明实施例中,会 将这一临时数据序列化到一个中间文件(IntermediateFile A)中,然后根据这个"中间文 件"中的数据(A')对源版本A和目标版本B进行差异性分析,构建差分升级包。
[0043] 参考图2,其详细描述了中间文件的生成过程,具体地:
[0044] 步骤1 :从源版本A中读取N个二进制数据,二进制数据I (binarydatal),二进制数 据 2 (binarydata2),......,二进制数据 N(binarydataN)。
[0045] 步骤2 :设定最小处理单元,获取每个单元i的相关属性信息,其中包括该单元在 版本文件中的偏移位置(Posk),具体数据(Val k)等等,经过算法的处理将其封装进一个元 数据(metadatai)对象中,可以表示为:
[0046] F (binary_data) =F1(Mnarydatal)十…? Fk (binarydataK)十…十 Fn (binarydataN);
[0047] 其中,每一项式子有:
[0048] Fk (binarydataK) =f (posk,valk) =f (posk)十 f (valk) ·
[0049] 其中,十表示某种运算,可以是加、减、乘、除,上式表示了原版本数据整体的变换 结果是各属性变换结果的叠加。
[0050] 如果处理失败,转入步骤5 ;
[0051] 步骤3 :将所得元数据的集合meta_data_Set经过自研算法排序,得到一个调整后 的元数据组合meta_data_set'。如果处理失败,转入步骤5。
[0052] 步骤4 :将内存数据meta_data_set'序列化入文件,并在文件头部封入所有元数 据的一个整体信息,该文件我们称之为中间文件。
[0053] 步骤5 :对中间文件做完整性校验,如果校验成功,则以校验值作为文件名保存文 件,。如果校验失败,说明中间步骤出错,不予保留所得数据,异常处理后退出。
[0054] 上述5步骤描述了如何从源版本A的数据出发得到A版本的中间文件。
[0055] 经过这样序列化的操作以后,在下一次制作A到C、D、E、F目标版本的差分包时, 都可以通过直接反序列化中间文件IntermediateFileA获取所需的中间数据(A'),从而直 接进行源版本A到目标版本的差异性分析,如图3所示,从而提升差分包制作效率,大大节 省差分包制作时间。
[0056] 下面详细描述本发明实施例所涉及的带有缓存优化机制的差分升级包制作方法 的流程:
[0057] 步骤1 :从源版本和目标版本中,选取文件名相同但是二进制数据不同的两个文 件成对放入差分集合中,如果两个版本中存在文件名相同但是二进制数据相同的一对文 件,那么对这一对的两个文件不进行差分,需要将它们放入共同文件的集合中。
[0058] 步骤2 :选取差分集合中的其中一对文件进行差分,首先计算出源版本中的文件 完整性校验值,根据算出的校验值寻找对应的序列化文件。如果检查到不存在以该签名值 命名的序列化文件,进入步骤3。如果检查到存在对应的序列化文件,那么进入步骤4。
[0059] 步骤3 :如果检查到不存在以该签名值命名的序列化文件,那么证明从没有对该 源版本的源文件进行过差分包的制作,所以需要对这个文件进行一次数据处理,并且还要 将产生的临时数据结果序列化入一个文件中,也就是在这里,我们引入了一个差分包制作 的缓存优化机制。而这一序列化的文件,我们也称之为"中间文件",该文件以版本的完整性 校验值来命名,要保证文件名称的唯一性。进入步骤5。
[0060] 步骤4 :检查到存在对应源版本的这一源文件的中间序列化文件,直接读取该序 列化文件的数据内容,进入步骤5。
[0061] 步骤5 :将中间文件的数据读入到做包设备的内存中,使用得到的这些数据分析 源版本和目标版本的二进制数据的差异性信息,生成从源版本到目标版本的这一文件名的 文件的差分升级包。
[0062] 上述5步骤描述了如何利用缓存中间处理结果数据来进行差分升级包的制作,使 差分包制作流程得以优化,提高了差分包制作效率。
[0063] 本实施例中,所述中间文件的头文件中被封入了元数据集合中所有元数据的一个 整体信息。
[0064] 优选地,在将所述元数据集合中的数据序列化进中间文件之后,所述方法还包 括:
[0065] 对中间文件进行完整性校验,如果校验成功,则以得到的校验值作为该中间文件 的文件名。
[0066] 在本实施例中,会将差分包制作过程中,中间所产生的"中间临时"数据存储到文 件中,文件名要具有唯一性,也就是说本发明实施例会将这些数据序列化,以便于下次进行 差分包制作时,如果是相同的源版本,那么就可以直接从这些唯一的文件中反序列化出来 这些数据加以使用,从而略过产生中间临时数据这一过程以减少差分包制作所需的时间, 提高差分升级包的制作效率。
[0067] 在本实施例中,在需要制作差分升级包时,首先计算源版本的文件完整性校验值, 并根据算出的文件完整性校验值搜索与之对应的中间文件,如果搜索不到,则执行一次中 间文件的制作步骤;否则,依据所述中间文件对源版本和目标版本进行差异化分析,以构建 差分升级包。
[0068] 例如,一种实施方式中,首先获取两个版本(源版本和目标版本)的二进制数据。制 作差分包时,首先根据源版本的数据计算出版本的完整性校验值,并以此作为其签名,并利 用该签名值检查该版本有无序列化的中间文件可以使用,如果检查到存在中间文件,那么 直接反序列化该匹配到的中间文件,将它的数据内容读入做包设备的内存中,并开始构建 差分信息,从而生成差分升级包;如果没有检查到该中间文件,那么证明该源版本从未对其 进行过差分升级包的制作,需要对其进行一次中间文件的制作处理,并将处理结果序列化 入一个文件中,因为要保证文件名称的唯一性,所以该文件使用完整性校验得出的签名来 命名,然后再利用这一文件中的数据分析这两个版本的差异性信息,最终生成差分升级包。
[0069] 在本实施例中,依据所述中间文件对源版本和目标版本进行差异化分析以构建差 分升级包的步骤包括:
[0070] 反序列化该中间文件,并将得到的数据读入设备的内存;
[0071] 使用得到的这些数据分析源版本与目标版本之间的二进制数据的差异性信息,并 根据这些差异性信息构建差分升级包。
[0072] 相应地,如图4所示,本发明实施例还提供了一种差分升级包的制作装置,其包 括:
[0073] 元数据处理模块10,用于获取源版本的二进制数据,并对此进行数学变换和排序 获得一元数据集合,所述元数据是指设定的最小的基础单位的属性数据;
[0074] 中间文件构建模块20,用于将所述元数据集合中的数据序列化进一中间文件;
[0075] 差分模块30,用于在需要制作差分升级包时,依据所述中间文件对源版本和目标 版本进行差异化分析,以构建差分升级包。
[0076] 本发明实施例中,所述中间文件的头文件中被中间文件构建模块封入了元数据集 合中所有元数据的一个整体信息。
[0077] 本发明的优选实施例中,如图5所示,所述差分升级包的制作装置还包括:
[0078] 校验模块40,用于对中间文件进行完整性校验,如果校验成功,则以得到的校验值 作为该中间文件的文件名。
[0079] 本发明实施例中,如图6所示,所述差分模块30包括:
[0080] 匹配模块301,用于在需要制作差分升级包时,计算源版本的文件完整性校验值, 并根据算出的文件完整性校验值搜索与之对应的中间文件,如果搜索不到,则向元数据处 理模块发送制作中间文件的命令。
[0081] 本发明实施例中,继续参考图6,所述差分模块30还包括:
[0082] 反序列化模块302,用于反序列化中间文件,并将得到的数据读入设备的内存;
[0083] 差异化分析模块303,用于使用得到的这些数据分析源版本与目标版本之间的二 进制数据的差异性信息,并根据这些差异性信息构建差分升级包。
[0084] 以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用 本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关 的【技术领域】,均同理包括在本发明的专利保护范围内。
【权利要求】
1. 一种差分升级包的制作方法,其特征在于,包括: 获取源版本的二进制数据,并对此进行数学变换和排序获得元一数据集合,所述元数 据是指设定的最小的基础单位的属性数据; 将所述元数据集合中的数据序列化进一中间文件; 在需要制作差分升级包时,依据所述中间文件对源版本和目标版本进行差异化分析,W构建差分升级包。
2. 如权利要求1所述的差分升级包的制作方法,其特征在于,所述中间文件的头文件 中被封入了元数据集合中所有元数据的一个整体信息。
3. 如权利要求1所述的差分升级包的制作方法,其特征在于,在将所述元数据集合中 的数据序列化进中间文件之后,所述方法还包括: 对中间文件进行完整性校验,如果校验成功,则W得到的校验值作为该中间文件的文 件名。
4. 如权利要求1所述的差分升级包的制作方法,其特征在于,在需要制作差分升级包 时,首先计算源版本的文件完整性校验值,并根据算出的文件完整性校验值搜索与之对应 的中间文件,如果搜索不到,则执行一次中间文件的制作步骤;否则,依据所述中间文件对 源版本和目标版本进行差异化分析,W构建差分升级包。
5. 如权利要求1或4所述的差分升级包的制作方法,其特征在于,依据所述中间文件对 源版本和目标版本进行差异化分析W构建差分升级包的步骤包括: 反序列化该中间文件,并将得到的数据读入设备的内存; 使用得到的该些数据分析源版本与目标版本之间的二进制数据的差异性信息,并根据 该些差异性信息构建差分升级包。
6. -种差分升级包的制作装置,其特征在于,包括: 元数据处理模块,用于获取源版本的二进制数据,并对此进行数学变换和排序获得一 元数据集合,所述元数据是指设定的最小的基础单位的属性数据; 中间文件构建模块,用于将所述元数据集合中的数据序列化进一中间文件; 差分模块,用于在需要制作差分升级包时,依据所述中间文件对源版本和目标版本进 行差异化分析,W构建差分升级包。
7. 如权利要求6所述的差分升级包的制作装置,其特征在于,所述中间文件的头文件 中被中间文件构建模块封入了元数据集合中所有元数据的一个整体信息。
8. 如权利要求6所述的差分升级包的制作装置,其特征在于,还包括: 校验模块,用于对中间文件进行完整性校验,如果校验成功,则W得到的校验值作为该 中间文件的文件名。
9. 如权利要求6所述的差分升级包的制作装置,其特征在于,所述差分模块包括: 匹配模块,用于在需要制作差分升级包时,计算源版本的文件完整性校验值,并根据算 出的文件完整性校验值搜索与之对应的中间文件,如果搜索不到,则向元数据处理模块发 送制作中间文件的命令。
10. 如权利要求6所述的差分升级包的制作装置,其特征在于,所述差分模块还包括: 反序列化模块,用于反序列化中间文件,并将得到的数据读入设备的内存; 差异化分析模块,用于使用得到的该些数据分析源版本与目标版本之间的二进制数据 的差异性信息,并根据该些差异性信息构建差分升级包。
【文档编号】G06F9/445GK104461593SQ201310430797
【公开日】2015年3月25日 申请日期:2013年9月18日 优先权日:2013年9月18日
【发明者】张翀, 双建平, 陈禧, 唐沁洋 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1