一种差分文件生成方法、升级方法、升级系统及电子设备技术方案

技术编号:33615535 阅读:75 留言:0更新日期:2022-06-02 00:29
本申请涉及物联网领域,尤其涉一种差分文件生成方法、升级方法、升级系统、电子设备、NB

【技术实现步骤摘要】
一种差分文件生成方法、升级方法、升级系统及电子设备


[0001]本申请涉及物联网领域,尤其涉及一种差分文件生成方法、升级方法、升级系统、电子设备、NB-IOT设备、芯片以及计算机存储介质。

技术介绍

[0002]物联网领域中,空中下载固件(Firmware Over-the-air,FOTA)升级是一项关键技术。它是指通过云端升级技术为具有连网功能的设备提供固件升级服务。FOTA升级通常有整包升级与差分升级两种方式,其中整包升级是指升级所使用的文件为目标版本的完整固件二进制文件。差分升级是指升级使用目标版本固件(Target bin file)与当前版本固件(Base bin file)作差分并且压缩后形成一份新的补丁文件(Patch file),该新的补丁文件用于升级。其中差分升级相较于整包升级,具有固件升级包容量小、节约下载时间、减小流量消耗、加快升级流程等优点。目前物联网设备升级大部分都是采用差分升级,差分升级的关键在于差分包的生成,差分包生成可分为两个步骤:差分计算得到差分后数据以及差分后数据的压缩。如果直接对原文件和升级文件进行差分计算,在原文件中全局搜索升级文件中的字符串,则存在计算复杂度高的问题,因此耗时较长,需要较长时间才可以获取到差分文件。

技术实现思路

[0003]针对现有技术中差分文件的获取耗时较长的问题,本申请实施例提供了一种差分文件生成方法、升级方法、升级系统、电子设备、NB-IOT设备、芯片以及计算机存储介质。
[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]使用升级文件替换存储的原文件以实现升级。
[0031]根据第二方面,在一种可能的实现方式中,差分后数据包括差分控制信息、差分子串、附加控制信息和附加子串,差分控制信息之后为差分子串,附加控制信息之后为附加子串;
...

【技术保护点】

【技术特征摘要】
1.一种差分文件生成方法,所述差分文件用于升级原文件,所述原文件包括多个函数,升级文件包括多个函数,其特征在于,包括:对函数名相同的所述原文件中的函数与所述升级文件中的函数做差分处理得到差分后数据;压缩所述差分后数据得到差分文件。2.根据权利要求1所述的差分文件生成方法,其特征在于,所述原文件包括多个第一函数,所述升级文件包括多个第二函数;所述对函数名相同的所述原文件中的函数与所述升级文件中的函数做差分处理之前还包括:判断所述原文件中是否存在与所述升级文件中函数名相同的函数;若所述原文件中的所述第一函数与所述升级文件中的所述第二函数的函数名相同,则对所述第一函数和所述第二函数做差分处理得到所述第二函数对应的差分后数据。3.根据权利要求2所述的差分文件生成方法,其特征在于,所述升级文件还包括一个或多个第三函数,若所述原文件中不存在与所述升级文件中的所述第三函数的函数名称相同的函数,则所述升级文件中的所述第三函数对应的差分后数据包括所述第三函数。4.根据权利要求2或3所述的差分文件生成方法,其特征在于,根据最长公共子序列算法,对函数名相同的所述原文件中的函数与所述升级文件中的函数做差分处理得到所述差分后数据。5.根据权利要求4所述的差分文件生成方法,其特征在于,所述根据最长公共子序列算法,对函数名相同的所述原文件中的函数与所述升级文件中的函数做差分处理得到所述差分后数据包括:在所述原文件的所述第一函数中查找与所述升级文件的所述第二函数相似的最长的第一子串;所述第一函数的数据中的所述最长的第一子串与所述第二函数的数据中的第二子串的相似度大于或者等于预设相似度;在所述第一函数的数据中查找与所述第二子串的前向子串和/或后向子串相似度大于或者等于所述预设相似度的第一子串;对所述第一子串和所述第二子串做差分处理得到所述第二子串对应的差分子串;所述第二函数对应的差分后数据包括差分控制信息和所述第二子串对应的差分子串,所述差分控制信息包括所述第一子串的长度信息和所述第一子串在所述第一函数的数据中的地址信息。6.根据权利要求5所述的差分文件生成方法,其特征在于,若所述第二函数的数据中的第四子串与所述第一函数的数据的相似度小于所述预设相似度,附加子串等于所述第四子串,附加控制信息包括所述附加子串的长度信息;所述第二函数对应的差分后数据还包括所述附加控制信息和所述附加子串。7.根据权利要求6所述的差分文件生成方法,其特征在于,所述压缩所述差分后数据包括:压缩所述升级文件中的所述第二函数对应的差分后数据得到所述差分文件;在所述第二函数对应的差分后数据中,所述差分控制信息之后为所述差分子串,所述附加控制信息之后为所述附加子串。8.根据权利要求2至7中任一项所述的差分文件生成方法,其特征在于,所述第一函数
的数据中的第一子串与所述第二函数的数据中的第二子串的相似度大于或者等于预设相似度,若相邻两个所述第一子串之间的字符的个数等于相邻两个所述第二子串之间的字符的个数,对所述相邻两个所述第一子串之间的字符与所述相邻两个所述第二子串之间的字符做差分处理得到相邻两个所述第二子串之间的字符对应的差分子串,所述相邻两个所述第二子串中前一个第二子串对应的差分控制信息中的长度信息等于所述相邻两个第二子串的差分控制信息中的长度信息加上所述相邻两个第二子串之间的字符对应的差分子串的长度信息,删除后一个第二子串对应的差分控制信息以及相邻两个第二子串之间的字符对应的差分子串的差分控制信息。9.根据权利要求2至8中任一项所述的差分文件生成方法,其特征在于,所述对所述第一函数和所述第二函数做差分处理得到所述第二函数对应的差分后数据后,拼接多个所述第二函数对应的差分后数据并对拼接后的差分后数据进行压缩得到所述差分文件。10.根据权利要求9所述的差分文件生成方法,其特征在于,所述拼接多个所述第二函数对应的差分后数据包括:若前一个第二函数对应的差分后数据的尾部和后一个第二函数对应的差分后数据的头部都包括差分控制信息,则判断所述后一个第二函数对应的差分后数据的头部的差分控制信息中的地址信息与所述前一个第二函数对应的差分后数据的尾部的差分控制信息中的...

【专利技术属性】
技术研发人员:杨德培
申请(专利权)人:深圳市汇顶科技股份有限公司
类型:发明
国别省市:

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

1