一种软件升级方法和装置制造方法及图纸

技术编号:27420853 阅读:15 留言:0更新日期:2021-02-21 14:39
本发明专利技术公开了一种软件升级方法和装置。所述方法包括:获取软件的当前安装包;编译得到当前安装包的可执行文件;根据所述可执行文件中不包括头部的固定段计算第一MD5值;比较所述第一MD5值和第二MD5值,所述第二MD5值是根据前次安装包的可执行文件中不包括头部的固定段计算得到的;若不一致,则根据所述当前安装包和前次安装包生成增量差异包;利用所述增量差异包对所述软件进行升级。本发明专利技术显著减少了升级包的大小,提高了升级效率。提高了升级效率。提高了升级效率。

【技术实现步骤摘要】
一种软件升级方法和装置


[0001]本专利技术涉及软件
,尤其涉及一种软件升级方法和装置。

技术介绍

[0002]目前,远程会议系统得到广泛的使用,不同地点的用户通过会议终端登录进入会议。随着功能的更新,会议终端上安装的软件产品也需要不断地迭代升级。在升级时,若用户本地软件的版本号与服务器上的版本号不一致,则比较服务器上文件的MD5值与本地文件的MD5值,若二者不同,则基于增量差异进行更新。MD5全称是报文摘要算法(Message-Digest Algorithm 5),此算法对任意长度的信息逐位进行计算,产生一个二进制长度为128位(十六进制长度就是32位)的“指纹”(或称“报文摘要”),称为MD5值。
[0003]然而,若前后两次软件包中程序代码没有更新,但编译时间、文件签名等不同,计算的MD5值也会不一样,即使在代码没有改变的情况下,也会认定存在差异,从而生成增量差异包,导致升级操作消耗更多时间和流量,升级效率低下。

技术实现思路

[0004]为了解决上述问题,本专利技术提供了一种软件升级方法和装置。
[0005]本专利技术的第一方面涉及一种软件升级方法,包括:获取软件的当前安装包;编译得到当前安装包的可执行文件;根据所述可执行文件中不包括头部的固定段计算第一MD5值;比较所述第一MD5值和第二MD5值,所述第二MD5值是根据前次安装包的可执行文件中不包括头部的固定段计算得到的;若不一致,则根据所述当前安装包和前次安装包生成增量差异包;利用所述增量差异包对所述软件进行升级。
[0006]进一步地,所述可执行文件中不包括头部的固定段是指节表部分。
[0007]进一步地,所述根据所述可执行文件中不包括头部的固定段计算第一MD5值包括:去除所述可执行文件的Dos头和NT头,取出节表内容;遍历整个节表,添加到一个内存数组中;对内存数组中的数据进行计算得到MD5值。
[0008]进一步地,使用md5sum算法计算得到所述第一MD5值和第二MD5值。
[0009]进一步地,若所述第一MD5值和第二MD5值一致,则将前次安装包的文件拷贝至当前安装包中。
[0010]进一步地,该方法应用于远程会议的客户端。
[0011]本专利技术的第二方面涉及一种软件升级装置,包括:获取模块,用于获取软件的当前安装包;编译模块,用于编译得到当前安装包的可执行文件;
计算模块,用于根据所述可执行文件中不包括头部的固定段计算第一MD5值;比较模块,用于比较所述第一MD5值和第二MD5值,所述第二MD5值是根据前次安装包的可执行文件中不包括头部的固定段计算得到的;生成模块,用于在所述第一MD5值和第二MD5值不一致时,根据所述当前安装包和前次安装包生成增量差异包;升级模块,用于利用所述增量差异包对所述软件进行升级。
[0012]进一步地,所述获取模块还用于获取软件的前次安装包的可执行文件;所述计算模块还用于根据前次安装包的可执行文件中不包括头部的固定段计算得到所述第二MD5值。
[0013]本专利技术的第三方面涉及一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如第一方面所述的方法。
[0014]本专利技术的第四方面涉及一种电子设备,包括存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现如第一方面所述的方法。
[0015]本专利技术通过仅针对可执行文件中头部之外的固定段计算MD5值,避免了编译时间、文件签名等信息的影响,更加准确地反映软件代码的变动情况,显著减少了增量差异包的大小,提升了升级效率,降低了升级成本。对于存在大量客户终端的远程会议系统,效果尤其明显。
[0016]附图说明
[0017]图1为根据本专利技术实施例一的软件升级方法的流程图;图2为根据本专利技术实施例二的软件升级方法的流程图;图3为根据本专利技术实施例三的软件升级装置的结构图;图4为能够实施本专利技术实施例的示例性电子设备的方框图。
[0018]具体实施方式
[0019]为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案做详细的说明。
[0020]实施例一如图1所示,本专利技术实施例提供了一种软件升级方法,包括:S101、获取软件的当前安装包;S102、编译得到当前安装包的可执行文件;所述当前安装包可包括多个可执行文件。所述可执行文件(PE文件)是Windows下可执行文件的总称,常见的有DLL,EXE,OCX,SYS等。其结构从起始位置开始依次是Dos头、NT头、节表以及节。DOS头是用来兼容MS-DOS操作系统,以及指明NT头在文件中的位置。NT头包含windows PE文件的主要信息。节表是PE文件后续节的描述,windows根据节表的描述加载每个节。每个节实际上是一个容器,可以包含代码、数据等等,每个节可以有独立的内存权限,比如代码节默认有读/执行权限,节的名字和数量可以自己定义。
[0021]S103、根据所述可执行文件中不包括头部的固定段计算第一MD5值;其中,所述可执行文件中不包括头部的固定段是指节表部分或者节表及之后的部分。所述头部是指Dos头和NT头。
[0022]该步骤具体包括:去除所述可执行文件的Dos头和NT头,取出节表内容;遍历整个节表,添加到一个内存数组中;对内存数组中的数据进行计算得到所述第一MD5值。
[0023]可选地,使用md5sum算法计算得到所述MD5值。
[0024]S104、比较所述第一MD5值和第二MD5值,所述第二MD5值是根据前次安装包的可执行文件中不包括头部的固定段计算得到的;可选地,所述第二MD5值是按照与第一MD5值相同的方式计算得到的。所述第二MD5值可以是在前次升级时计算并保存,也可以是在本次升级时根据前次安装包的可执行文件计算得到。
[0025]S105、若不一致,则根据所述当前安装包和前次安装包生成增量差异包;具体地,将第一MD5值不一样的可执行文件S106、利用所述增量差异包对所述软件进行升级。
[0026]可选地,若所述第一MD5值和第二MD5值一致,则将前次安装包的可执行文件拷贝至当前安装包中。由此,保留了上次编译的全部信息。
[0027]本实施例的方法仅针对可执行文件中头部之外的固定段计算MD5值,避免了编译时间、文件签名等信息的影响,更加准确地反映软件代码的变动情况,显著减少了增量差异包的大小,提升了升级效率,降低了升级成本。
[0028]实施例二如图2所示,以应用于远程会议的客户端为例,示出了软件升级方法的具体流程如下:S201、获取软件的当前安装包。
[0029]具体地,当远程会议的客户端登录时,从服务器获取软件版本号,与客户端当前的软件版本号相比较。若当前的软件版本号较低,则从服务器获取软件的当前安装包。
[0030]S202、编译得到当前安装包的可执行文件,例如dll、exe文件等。
[0031]S203、获取前次安装包的可执行文件。
[0本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种软件升级方法,其特征在于,包括:获取软件的当前安装包;编译得到当前安装包的可执行文件;根据所述可执行文件中不包括头部的固定段计算第一MD5值;比较所述第一MD5值和第二MD5值,所述第二MD5值是根据前次安装包的可执行文件中不包括头部的固定段计算得到的;若不一致,则根据所述当前安装包和前次安装包生成增量差异包;利用所述增量差异包对所述软件进行升级。2.根据权利要求1所述的方法,其特征在于,所述可执行文件中不包括头部的固定段是指节表部分。3.根据权利要求2所述的方法,其特征在于,所述根据所述可执行文件中不包括头部的固定段计算第一MD5值包括:去除所述可执行文件的Dos头和NT头,取出节表内容;遍历整个节表,添加到一个内存数组中;对内存数组中的数据进行计算得到所述第一MD5值。4.根据权利要求3所述的方法,其特征在于,使用md5sum算法计算得到所述第一MD5值和第二MD5值。5.根据权利要求1所述的方法,其特征在于,若所述第一MD5值和第二MD5值一致,则将所述前次安装包的可执行文件拷贝至当前安装包中。6.根据权利要求1-5任一所述的方法,其特征在于...

【专利技术属性】
技术研发人员:沈洁
申请(专利权)人:全时云商务服务股份有限公司
类型:发明
国别省市:

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

1