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算法难以获得令人满意的效果。
技术实现思路
为解决现有技术中的问题,本专利技术提供一种差分文件生成方法,还提供一种基于所述差分文件的 ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。