差分文件生成方法、基于该差分文件的升级方法及系统技术方案

技术编号:18444562 阅读:16 留言:0更新日期:2018-07-14 10:14
本发明专利技术提供一种差分文件生成方法、基于该差分文件的升级方法及系统,属于终端升级技术领域。本发明专利技术差分文件生成方法包括:对旧升级文件建立索引,用于搜索可重用的数据段;分析新升级文件和旧升级文件,获取新旧升级文件的完全匹配区;以完全匹配区为间隔,以设定的差异为基准,向左右各扩展一定比例内容相近的区域,并与完全匹配区一起,合并计入DIFF区,其他的部分计入EXTRA区;生成差分文件:所述差分文件包括文件描述头和压缩后的三个数据段。本发明专利技术还提供一种基于所述差分文件的升级方法及系统。本发明专利技术的有益效果为:采用高度压缩的差分算法,只需下载差异部分,即可完成固件升级,降低了升级流量消耗,大大加快了升级速度。

Differential file generation method, upgrading method and system based on the differential file

The invention provides a differential file generation method, a upgrading method and a system based on the differential file, and belongs to the terminal upgrading technical field. The differential file generation method of the invention includes: indexing the old upgrade file to search for reusable data segments, analyzing the new upgrade file and old upgrade file, obtaining the complete matching area of the old and new upgrade files; taking the complete matching area as the interval, taking the set difference as the datum, extending a certain proportion of the content to the left and right sides The near area, together with the fully matched area, is merged into the DIFF area, and the other parts are included in the EXTRA area; the difference file is generated: the differential file includes the file description head and the three data segments after the compression. The invention also provides a upgrading method and system based on the differential file. The beneficial effect of the invention is as follows: using the differential algorithm of high compression, only the difference part is downloaded, the firmware upgrade can be completed, the upgrade flow consumption is reduced, and the upgrade speed is greatly accelerated.

【技术实现步骤摘要】
差分文件生成方法、基于该差分文件的升级方法及系统
本专利技术涉及终端升级技术,尤其涉及一种差分文件生成方法,还涉及一种基于所述差分文件的升级方法及系统。
技术介绍
在嵌入式项目开发过程中,往往无法一次达到最终设计目标,需要在运行过程中不断修复BUG或增加一些新的功能,因此不可避免要进行在线的升级。然而,受限于成本考虑,嵌入式软硬件环境不可能很强大,传统的升级方案需要对固件做完整备份,需要的程序存储空间往往超出了系统容量限制,不得不选择更加高端的CPU,大大增加了硬件成本;大多数应用环境下网速较慢,流量费用较高,执行完整升级时下载固件耗费时间较久,对业务本身会造成比较大的影响。现有技术中,软件新老版本间的差异主要是代码或数据的变化,差异信息的大小通常远小于新版本软件的大小,但是由于编译器的优化因素,代码或数据段可能会发生移位或有着极小但大量且分散的差异,因此差分算法需要解决2个主要问题:一是如何高效的在老版本文件中寻找尽可能多的可用于构造新文件版本文件的数据段,二是如何尽可能缩减描述由老版本文件转换为新版本文件需要的字节数。目前市面上主流的差分算法大致分为三类:从上表可以看出,DicDiff在压缩率方面有较大的优势,使用后缀排序算法进行数据匹配,能够高效的找出尽可能多的旧数据重用,然而在实际的嵌入式应用中,代码的升级改动往往会引入大量不连续的微小变化,如图1所示,使之难以产生大断连续的可重用数据段,因此,基于完全匹配的DicDiff算法难以获得令人满意的效果。
技术实现思路
为解决现有技术中的问题,本专利技术提供一种差分文件生成方法,还提供一种基于所述差分文件的升级方法及系统,最大限度利用原有固件内容,只需要下载新老升级文件的差异部分,即可执行差异更新,生成正确的新固件,达到升级的目的。本专利技术差分文件生成方法如下步骤:A:对旧升级文件建立索引,用于搜索可重用的数据段;B:分析新升级文件和旧升级文件:从头扫描新升级文件,并在老升级文件中搜索可重用的数据段,获取新旧升级文件的完全匹配区;C:对新旧升级文件分区:以完全匹配区为间隔,以设定差异为基准,向左右各扩展一定比例内容相近的区域,并与完全匹配区一起,合并计入DIFF区,其他的部分计入EXTRA区;D:生成差分文件:所述差分文件包括文件描述头和压缩后的三个数据段,所述三个数据段分别为:CTRL区:存储差分及插入操作的起始地址与长度的命令字;DIFF区:存储差分串,所述差分串由新旧升级文件的DIFF区相减所得;EXTRA区:步骤C中新升级文件的EXTRA区。本专利技术作进一步改进,在步骤A中,采用快速后缀排序算法,快速构造旧升级文件数据段的后缀数组和名次数组,通过这两个数组可以快速匹配出新老升级文件可以共用的部分。本专利技术作进一步改进,在步骤B中,完全匹配区的可重用的数据段需要满足以下条件:(1)可重用的数据段要达到一定长度;(2)可重用的的数据段之间需达到设定的差异。本专利技术作进一步改进,在第(1)个条件中,所述可重用的数据段的长度至少为8个字节。本专利技术作进一步改进,在第(2)个条件中,可重用的数据段之间有8个字节以上的差异。本专利技术作进一步改进,在步骤C中,所述内容相近的区域的相似比例为50%。目前市面上的通用作法是必须完全相同才能重用。本例采用内容相近的好处是,可以重用只有个别字节差异的大段匹配区,大大提升老文件数据重用概率。本专利技术还提供一种基于所述差分文件的升级方法,包括如下步骤:S1:终端开机,Bootloader启动;S2:读取升级区标记位,判读是否存在差分文件,如果是,执行差分升级步骤S3;如果否,执行步骤S4;S3:所述差分升级步骤包括:S31:读取升级进度标记,如果为0则执行全新升级过程,反之则继续前一次升级过程;S32:按块对差分文件进行反差分解压,生成新升级文件,写入FLASH;S33:更新升级进度标记位,直至升级完成;S34:清除OTA区标记位。S4:启动内核,执行正常开机流程,上传版本号到OTA管理平台。本专利技术作进一步改进,在步骤S2中,如果存在差分文件,对差分文件进行完整性校验,如果差分文件是完整合法的,则进入差分升级步骤,否则,执行步骤S4。本专利技术作进一步改进,步骤S32中,反差分解压的处理步骤为:将差分文件解压缩,提取其中CTRL区,针对DIFF区,将差分串与旧升级文件执行加法运算;针对EXTRA区,执行插入运算,即可正确还原新升级文件。本专利技术作进一步改进,还包括步骤:S5:连接OTA服务器,判断是否有新版本,如果是,下载差分数据,如果否,等待下一次连接;S6:判断是否下载成功,如果否,继续下载,如果是,重启终端。本专利技术还提供一种实现所述升级方法的系统,包括OTA服务器、OTA管理平台和OTA终端,所述OTA服务器分别与OTA管理平台和OTA终端相连,其中,所述OTA云服务器用于生成差分文件,对OTA管理平台和OTA终端进行配置、管理及升级;所述OTA管理平台用于实现对OTA终端升级进行设置与监控、数据统计、查询OTA终端实时状态及各类参数配置,远程控制OTA终端;所述OTA终端用于从OTA服务器获取升级文件,对自身进行升级,并将自身升级情况通过OTA服务器上报给OTA管理平台。与现有技术相比,本专利技术的有益效果是:采用了快速遍历的方式寻找最长匹配字串,可以尽最大限度的找出老文件中可以重用的部分,差异匹配过程,容许存在一定的误差,又大大增加了字串匹配的命中率,具有极好的压缩效率;采用高度压缩的差分算法,只需下载差异部分,即可完成固件升级,降低了升级流量消耗,大大加快了升级速度;核心算法占用代码及程序空间小于20K,对系统资源占用极少,不增加方案成本;差分文件下载过程支持断点续传,支持多次下载。附图说明图1为常见的一实施例代码改动示意图;图2为本专利技术差分文件生成方法流程图;图3为本专利技术差分文件生成示意图;图4为升级系统整体架构图;图5为升级方法流程图。具体实施方式下面结合附图和实施例对本专利技术做进一步详细说明。如图2所示,本专利技术差分文件生成方法采用了一种全新的算法,算法的核心思想是采用模糊匹配代替完全匹配。允许数据段有少量差异的重用,通过将新老升级文件进行相减,然后将差异部分进行高度压缩,降低整体差分文件包体积。具体地,本例差分文件生成方法如下步骤:A:对旧升级文件建立索引,便于后续快速搜寻可重用的数据段。本例采用的是快速后缀排序算法,快速构造旧升级文件(简称旧文件)数据流的后缀数组和名次数组,通过这两个数组可以快速匹配出新升级文件(简称新文件)和老升级文件可以共用的部分。B:分析新旧文件:从头扫描新升级文件,并在老升级文件中搜索可重用的数据段,获取新旧升级文件的完全匹配区。此处将新旧文件的差异归类为DIFF区(内容相近)和EXTRA(内容相差较大)区。从头开始扫描新文件,并每次调用查找函数,在老文件中搜索可重用的数据段,当可重用的数据段满足以下两个条件时,称之为完全匹配区:(1)可重用的数据必须达到一定长度,因为太短的话,不足以覆盖用于差分记录消耗的字节数。本例采用最少8个字节,大至相当于一条差分记录压缩后的长度;(2)可重用的数据段之间必须有足够大的差异,因为差异太小,完全可以合并为一条差分记录。本例设定至少有8个字节以上的差异,可以根本文档来自技高网...

【技术保护点】
1.差分文件生成方法,其特征在于包括如下步骤:A:对旧升级文件建立索引,用于搜索可重用的数据段;B:分析新升级文件和旧升级文件:从头扫描新升级文件,并在老升级文件中搜索可重用的数据段,获取新旧升级文件的完全匹配区;C:对新旧升级文件分区:以完全匹配区为间隔,以设定差异为基准,向左右各扩展一定比例内容相近的区域,并与完全匹配区一起,合并计入DIFF区,其他的部分计入EXTRA区;D:生成差分文件:所述差分文件包括文件描述头和压缩后的三个数据段,所述三个数据段分别为:CTRL区:存储差分及插入操作的起始地址与长度的命令字;DIFF区:存储差分串,所述差分串由新旧升级文件的DIFF区相减所得;EXTRA区:步骤C中新升级文件的EXTRA区。

【技术特征摘要】
1.差分文件生成方法,其特征在于包括如下步骤:A:对旧升级文件建立索引,用于搜索可重用的数据段;B:分析新升级文件和旧升级文件:从头扫描新升级文件,并在老升级文件中搜索可重用的数据段,获取新旧升级文件的完全匹配区;C:对新旧升级文件分区:以完全匹配区为间隔,以设定差异为基准,向左右各扩展一定比例内容相近的区域,并与完全匹配区一起,合并计入DIFF区,其他的部分计入EXTRA区;D:生成差分文件:所述差分文件包括文件描述头和压缩后的三个数据段,所述三个数据段分别为:CTRL区:存储差分及插入操作的起始地址与长度的命令字;DIFF区:存储差分串,所述差分串由新旧升级文件的DIFF区相减所得;EXTRA区:步骤C中新升级文件的EXTRA区。2.根据权利要求1所述的差分文件生成方法,其特征在于:在步骤A中,采用快速后缀排序算法,快速构造旧升级文件数据段的后缀数组和名次数组,通过这两个数组可以快速匹配出新老升级文件可以共用的部分。3.根据权利要求1所述的差分文件生成方法,其特征在于:在步骤B中,完全匹配区的可重用的数据段需要满足以下条件:(1)可重用的数据段要达到一定长度;(2)可重用的的数据段之间需达到设定的差异。4.根据权利要求3所述的差分文件生成方法,其特征在于:在第(1)个条件中,所述可重用的数据段的长度至少为8个字节;在第(2)个条件中,可重用的数据段之间有8个字节以上的差异。5.根据权利要求1-4任一项所述的差分文件生成方法,其特征在于:在步骤C中,所述内容相近的区域的相似比例为50%。6.基于权利要求1-5任一项所述差分文件的升级方法,其特征在于,包括如下步骤:S1:终端开机,Bootloader启动;S2:读取升级区标记位,判读是否存在差分文件,...

【专利技术属性】
技术研发人员:葛文韬李小禄
申请(专利权)人:深圳市泰比特科技有限公司
类型:发明
国别省市:广东,44

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

1