本发明涉及车辆,尤其涉及一种ota差分升级包生成方法、装置、电子设备和计算机存储介质。
背景技术:
1、相关技术中,现有ota差分包计算方式是对整包进行处理,对于包含较多文件内容的较大升级包,会存在差分过程中占用系统资源过大,导致处理失败,且差分过程时间较长。因此如何更好地实现ota差分包计算成为亟待解决的问题。
技术实现思路
1、本发明的目的旨在至少在一定程度上解决上述的技术问题之一。
2、为此,本发明的第一个目的在于提出一种ota差分升级包生成方法,该方法实现了较大升级包可进行单文件处理,降低了处理文件的大小门槛,且在非解压情况下可直接内存比对进行文件差分计算,避免了差分过程时间长的技术问题。
3、本发明的第二个目的在于提出一种ota差分升级包生成装置。
4、本发明的第三个目的在于提出一种电子设备。
5、本发明的第四个目的在于提出一种计算机可读存储介质。
6、为达到上述目的,本发明第一方面实施例提出的ota差分升级包生成方法,包括:获取基础升级包和目标升级包,并对所述基础升级包和所述目标升级包进行解析,得到第一基础升级文件和第一目标升级文件;判断所述第一基础升级文件和所述第一目标升级文件关联时,且判断所述第一基础升级文件和所述第一目标升级文件的文件内容的md5信息和文件头的md5信息至少一个不一致时,基于开源算法对所述第一基础升级文件和所述第一目标升级文件进行差分计算;按照预设协议格式,将所述差分计算的结果写至目标文件,以生成差分包。
7、根据本发明实施例的ota差分升级包生成方法,通过获取基础升级包和目标升级包,并对基础升级包和目标升级包进行解析,得到第一基础升级文件和第一目标升级文件,然后判断第一基础升级文件和第一目标升级文件关联时,且判断第一基础升级文件和第一目标升级文件的文件内容的md5信息和文件头的md5信息至少一个不一致时,基于开源算法对第一基础升级文件和第一目标升级文件进行差分计算,之后按照预设协议格式,将差分计算的结果写至目标文件,以生成差分包。该方法实现了较大升级包可进行单文件处理,降低了处理文件的大小门槛,且在非解压情况下可直接内存比对进行文件差分计算,避免了差分过程时间长的技术问题。
8、根据本发明的一个实施例,所述对所述基础升级包和所述目标升级包进行解析,得到第一基础升级文件和第一目标升级文件,包括:获取所述基础升级包和所述目标升级包的文件格式,所述文件格式包括数据区、中央目录记录区和中央目录记录尾部区;依次解析所述中央目录记录尾部区、所述中央目录记录区和所述数据区,得到所述第一基础升级文件和所述第一目标升级文件。
9、根据本发明的一个实施例,所述判断所述第一基础升级文件和所述第一目标升级文件关联,包括:获取所述第一基础升级文件和所述第一目标升级文件的文件名全路径和文件名称;对所述第一基础升级文件和所述第一目标升级文件中对应的所述文件名全路径和所述文件名称进行匹配;若匹配成功,则确定所述第一基础升级文件和所述第一目标升级文件关联。
10、根据本发明的一个实施例,所述判断所述第一基础升级文件和所述第一目标升级文件的文件内容的md5信息和文件头的md5信息至少一个不一致时,基于开源算法对所述第一基础升级文件和所述第一目标升级文件进行差分计算,包括:判断所述第一基础升级文件和所述第一目标升级文件的文件内容的md5信息不一致时,基于开源算法对所述第一基础升级文件和所述第一目标升级文件进行第一差分计算,获得第一差分计算的结果文件;判断所述第一基础升级文件和所述第一目标升级文件的文件内容的md5信息一致时,进一步判断所述文件头的md5信息是否一致;若否,则基于开源算法对所述第一基础升级文件和所述第一目标升级文件进行第二差分计算,获得第二差分计算的结果文件。
11、根据本发明的一个实施例,还包括:进行所述第一差分计算或进行所述第二差分计算时,若所述第一差分计算的结果或所述第二差分计算的结果大于预设占比值,按照所述预设协议格式,将所述第一目标升级文件中参与差分计算的文件写至所述目标文件。
12、根据本发明的一个实施例,若所述第一差分计算的结果或所述第二差分计算的结果不大于所述预设占比值,按照所述预设协议格式,将所述第一差分计算的结果文件或所述第二差分计算的结果文件写至所述目标文件。
13、根据本发明的一个实施例,判断所述文件头的md5信息一致时,则将所述第一基础升级文件中参与差分计算的文件写至所述目标文件。
14、根据本发明的一个实施例,判断所述第一基础升级文件和所述第一目标升级文件未关联时,将所述第一基础升级文件或所述第一目标升级文件写至所述目标文件。
15、根据本发明的一个实施例,所述预设协议格式,包括:字节固定值、标记文件处理方式、文件在所述基础升级包起始偏移地址、文件在所述基础升级包长度、所述第一基础升级文件内容起始地址、差分计算的文件内容区域和计算得到的文件长度。
16、为达到上述目的,本发明第二方面实施例提出的ota差分升级包生成装置,所述装置包括:获取模块,用于获取基础升级包和目标升级包,并对所述基础升级包和所述目标升级包进行解析,得到第一基础升级文件和第一目标升级文件;计算模块,用于判断所述第一基础升级文件和所述第一目标升级文件关联时,且判断第一基础升级文件和所述第一目标升级文件的文件内容的md5信息和文件头的md5信息至少一个不一致时,基于开源算法对所述第一基础升级文件和所述第一目标升级文件进行差分计算;生成模块,用于按照预设协议格式,将所述差分计算的结果写至目标文件,以生成差分包。
17、为达到上述目的,本发明第三方面实施例提出的电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现本发明第一方面实施例所述的ota差分升级包生成方法。
18、为达到上述目的,本发明第四方面实施例提出的计算机可读存储介质,所述计算机程序被处理器执行时实现本发明第一方面实施例所述的ota差分升级包生成方法。
19、本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
1.一种ota差分升级包生成方法,其特征在于,所述方法包括:
2.根据权利要求1所述的ota差分升级包生成方法,其特征在于,所述对所述基础升级包和所述目标升级包进行解析,得到第一基础升级文件和第一目标升级文件,包括:
3.根据权利要求1所述的ota差分升级包生成方法,其特征在于,所述判断所述第一基础升级文件和所述第一目标升级文件关联,包括:
4.根据权利要求1所述的ota差分升级包生成方法,其特征在于,所述判断所述第一基础升级文件和所述第一目标升级文件的文件内容的md5信息和文件头的md5信息至少一个不一致时,基于开源算法对所述第一基础升级文件和所述第一目标升级文件进行差分计算,包括:
5.根据权利要求4所述的ota差分升级包生成方法,其特征在于,还包括:进行所述第一差分计算或进行所述第二差分计算时,若所述第一差分计算的结果或所述第二差分计算的结果大于预设占比值,按照所述预设协议格式,将所述第一目标升级文件中参与差分计算的文件写至所述目标文件。
6.根据权利要求5所述的ota差分升级包生成方法,其特征在于,若所述第一差分计算的结果或所述第二差分计算的结果不大于所述预设占比值,按照所述预设协议格式,将所述第一差分计算的结果文件或所述第二差分计算的结果文件写至所述目标文件。
7.根据权利要求4所述的ota差分升级包生成方法,其特征在于,判断所述文件头的md5信息一致时,则将所述第一基础升级文件中参与差分计算的文件写至所述目标文件。
8.根据权利要求1所述的ota差分升级包生成方法,其特征在于,判断所述第一基础升级文件和所述第一目标升级文件未关联时,将所述第一基础升级文件或所述第一目标升级文件写至所述目标文件。
9.根据权利要求1所述的ota差分升级包生成方法,其特征在于,所述预设协议格式,包括:字节固定值、标记文件处理方式、文件在所述基础升级包起始偏移地址、文件在所述基础升级包长度、所述第一基础升级文件内容起始地址、差分计算的文件内容区域和计算得到的文件长度。
10.一种ota差分升级包生成装置,其特征在于,所述装置包括:
11.一种电子设备,包括:
12.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-9中任一项所述的ota差分升级包生成方法。