软件修复包处理方法、装置、计算机设备和存储介质与流程

文档序号:15850254发布日期:2018-11-07 09:44阅读:259来源:国知局
软件修复包处理方法、装置、计算机设备和存储介质与流程

本申请涉及计算机技术领域,特别是涉及一种软件修复包处理方法、装置、计算机设备和存储介质。

背景技术

随着计算机技术的发展,越来越多的行业都需要使用计算机,所以软件开发也需要越来越快的更新迭代,进而需要不停的迭代开发相应的软件版本来满足用户的使用需求。

传统地,当发布的软件的新版本出现问题时,则会上线修复包对新版本中的代码进行替换,因此当进行修复完成时,若再次出现问题,仍需要重新更改代码对软件进行修复,修复周期长从而导致修复效率低。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够的节约修复时间的软件修复包处理方法、装置、计算机设备和存储介质。

一种软件修复包处理方法,所述方法包括:

接收服务器发送的修复包禁用的禁用指令,所述禁用指令携带有禁用的所述修复包的修复包标识;

查找与所述修复包标识对应的待回退修复包;

查询与所述待回退修复包所对应的跳转代码段,所述跳转代码段用于指示跳转至所述修复包标识对应的待回退修复包,执行所述待回退热修复包中的修改的代码段;

获取所述跳转代码段所对应的执行开关代码段,将所述执行开关代码段更改为跳过所述跳转代码段;

当所述执行开关代码段更改为跳过所述跳转代码段时,则删除所述待回退热修复包。

在其中一个实施例中,所述删除所述待回退热修复包之后,包括:

根据预设查询时间,向服务器发送用于检测是否存在更新修复包的检测请求;

当接收到服务器返回的与所述检测请求对应的更新信息时,则查询所述更新信息是否有效;

当所述更新信息有效时,则向所述服务器发送与所述更新信息对应的所述更新修复包的获取请求。

在其中一个实施例中,所述向所述服务器发送与所述更新信息对应的所述更新修复包的获取请求,包括:

接收所述服务器发送的查询用户身份标识的查询指令,所述查询指令是所述服务器根据所述获取请求生成的;

获取与所述查询指令对应的用户身份标识;

向所述服务器发送与所述查询指令对应的所述用户身份标识;

当接收到所述服务器返回的允许下载指令时,则向所述服务器发送与所述更新信息对应的所述更新修复包的获取请求,所述允许下载指令是在所述服务器查询到所述用户身份标识所对应的终端具有下载所述更新修复包的权限时所生成的;

接收所述服务器根据所述获取请求发送的所述更新修复包。

在其中一个实施例中,接收所述服务器根据所述获取请求发送的所述更新修复包之后,包括:

当接收到更新修复包时,查询是否有待运行热修复包;

当存在待运行修复包时,则查询所待运行修复包的第一版本号与所述更新修复包的第二版本号;

当所述第一版本号与所述第二版本号不同时,则获取所述待运行修复包的第一加密标识与所述更新修复包的第二加密标识;

当所述第一加密标识与所述第二加密标识不同时,则删除所述待运行修复包。

在其中一个实施例中,所述当所述第一加密标识与所述第二加密标识不同时,则删除所述待运行修复包,包括:

比较所述第一加密标识与所述第二加密标识,当所述第一加密标识与所述第二加密标识不同时,则卸载所述待运行热修复包;

当所述待运行热修复包卸载完成时,则加载所述更新热修复包;

当所述更新热修复包加载成功时,则完成所述待运行修复包的删除。

在其中一个实施例中,所述待回退修复包是所述服务器在检测到原代码中存在修改的代码段时,根据所述修改的代码段生成的。

在其中一个实施例中,所述修改的代码段是所述原代码段上添加了加密标识变化的代码段。

一种软件修复包处理装置,其特征在于,所述装置包括:

禁用执行接收模块,用于接收服务器发送的修复包禁用的禁用指令,所述禁用指令携带有禁用的所述修复包的修复包标识;

查找模块,用于查找与所述修复包标识对应的待回退修复包;

查询模块,用于查询与所述待回退修复包所对应的跳转代码段,所述跳转代码段用于指示跳转至所述修复包标识对应的待回退修复包,执行所述待回退热修复包中的修改的代码段;

获取模块,用于获取所述跳转代码段所对应的执行开关代码段,将所述执行开关代码段更改为跳过所述跳转代码段;

删除模块,用于当所述执行开关代码段更改为跳过所述跳转代码段时,则删除所述待回退热修复包。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述方法的步骤。

一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述的方法的步骤。

上述软件修复包处理方法、装置、计算机设备和存储介质,当上线修复包对相应的问题进行修复的过程中出现问题时,无需重新更改代码,只需查找禁用指令指示的待回退热修复包所对应的跳转代码段,进而将跳转代码段所对应的执行开关代码段进行更改,更改为跳过跳转代码段,从而根据更改的执行开关代码段,则可以跳过相应的跳转代码段,进而跳过待回退热修复包中的修改的代码段执行原代码,将待回退热修复包删除,则无需大量的代码更改,提高修复效率。

附图说明

图1为一个实施例中软件修复包处理方法的应用场景图;

图2为一个实施例中软件修复包处理方法的流程示意图;

图3为一个实施例中检测更新修复包步骤的流程示意图;

图4为一个实施例中软件修复包处理装置的结构框图;

图5为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的软件修复包处理方法,可以应用于如图1所示的应用环境中。其中,终端通过网络与服务器进行通信。终端接收服务器发送的修复包禁用的禁用指令,该指令上携带有对应的急用的修复包的修复包标识,根据修复包标识,可以查找到与修复包标识对应的待回退修复包,查询与待回退包对应的跳转代码段,终端获取跳转代码段对应的执行开关代码段,将执行开关代码段更改为跳过跳转代码段,当执行开关代码段更改为跳过执行开关代码段时,则终端将待回退热修复包删除。其中,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

在一个实施例中,如图2所示,提供了一种软件修复包处理方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:

s202:接收服务器发送的修复包禁用的禁用指令,禁用指令携带有禁用的修复包的修复包标识。

具体地,禁用指令是指终端接收到的对于禁用指令对应的修复包停止使用的命令,禁用指令是由服务器接收到终端进行的执行反馈日志,查询到执行反馈日志中包含有新增执行问题时生成的,且禁用指令上携带有停止使用的热修复包标识,进而终端根据该标识可以查询到需要停止使用的热修复包。修复包标识是指与停止使用的热修复包对应的标记,终端可以根据禁用指令上携带的修复包标识,查找到需要停止使用的修复包。具体地,服务器定时接收终端执行对应的原代码段以及修复包中的包含的修改代码段的执行反馈日志,查询到执行反馈日志中包含的终端对修复包的执行情况,获取到执行情况中包含的修复包执行问题,将执行问题与执行原代码段的执行情况中包含的原代码执行问题进行比对,当修复包执行问题与原代码执行问题比对为出现了新增执行问题,则使用该修复包会造成新的问题,从而该热修复包需要停止使用,则服务器生成停止使用该修复包的禁用指令,并将该禁用指令发送至终端,禁用指令上对应有需要停止使用的修复包标记。需要说明的是,执行反馈日志是指记录终端执行原代码段以及相应的热修复中包含的修改代码段的执行情况,可以是执行原代码段以及修改代码段的执行结果,当对原代码段以及修改代码段未执行成功时出现的漏洞。

s204:查找与修复包标识对应的待回退修复包。

具体地,修复包是指终端从服务器获取到的,可以对安装在终端中的应用程序出现的漏洞进行修复的程序包,修复包中存在有修改代码段,通常地,终端执行相应的修改代码段从而替换出现漏洞的原代码段完成漏洞的修复。待回退热修复包是指终端从服务器获取到,在对安装在终端中的应用程序中出现的漏洞进行修复时会引发新增问题的程序包。具体地,终端接收到服务器发送的修复包禁用的禁用指令时,则提取禁用指令上携带的禁用的修复包的修复包标识,根据修复包标识,终端查询已从服务器获取到的所有修复包,将禁用指令上携带的修复包标识逐一与所有的修复包对应的待匹配修复包标识进行匹配,当匹配成功时,则匹配成功的待匹配修复包标识所对应的热修复包为需要停止使用的热修复包,也即作为待回退热修复包。

s206:查询与待回退修复包所对应的跳转代码段,跳转代码段用于指示跳转至修复包标识对应的待回退修复包,执行待回退热修复包中的修改的代码段。

具体地,跳转代码段是指服务器在原代码段之前插入的代码段,且执行跳转代码段时会跳转至获取的待回退修复包中的修改代码段,也即终端会先执行跳转代码段,从而跳转至获取到的待回退修复包执行对应的修改代码段。进一步地,服务器可以根据代码段标识进行查找,进而将查找到的代码段标识之前插入跳转代码段,当终端查询到相应的修复包时,则查询与修复包中修改代码段所对应的原代码段,从而可以查询到相应的跳转代码段,终端获取到相应的跳转代码段时,则对应将跳转代码段所对应的执行开关代码段进行更改,使得终端在运行应用程序的过程中,直接执行获取到的跳转代码段,从而根据执行的跳转代码段,当待回退修复包未停止使用时,则跳转至待回退修复包,从而执行待回退修复包中的修改代码段,完成相应的软件修复。具体地,终端根据禁用指令查询到修复包标识,根据修复包标识,查询到已从服务器获取到的与修复包标识对应的修复包作为待回退修复包,根据待回退热修复包,查询与待回退热修复包所对应的跳转代码段,也即可以根据待回退热修复包的修复包标识,查询对应的跳转代码段,当待回退热修复包无需停止使用时,则终端可以执行该跳转代码段,根据跳转代码段执行待回退热修复包中的修改代码段。

s208:获取跳转代码段所对应的执行开关代码段,将执行开关代码段更改为跳过跳转代码段。

具体地,执行开关代码段是指是指与跳转代码段对应的、且可以指示终端是否执行相应的跳转代码段的代码段,也即执行开关代码段可以表征相关的执行条件,当终端检测到执行开关代码段表征的为第一执行条件时,则跳过跳转代码段,进而跳过修复包中的修改代码段执行相应的原代码段,当终端检测到执行开关代码段表征的为第二执行条件时,则直接执行跳转代码段,进而跳过原代码段,从而执行跳转代码段,根据跳转代码段,跳转至修复包中的修改代码段,从而不执行原代码段,也即当待回退热修复包无需停止使用时,则当执行开关代码段表征的为第二执行条件时,则直接执行跳转代码段跳转至待回退修复包中的修改代码段。具体地,当终端获取到待回退修复包所对应的跳转代码段时,则查询跳转代码段所对应的预设执行开关代码段,当终端查询到执行开关代码段时,则查询执行开关代码段所表示的执行条件,当为第一执行条件时,则终端会跳过跳转代码段从而执行原代码段,也即当前的执行开关代码段表示为跳过跳转代码段,则无需的执行开关代码段进行更改;当查询执行开关代码段所表示的执行条件为第二执行条件时,则终端会跳过原代码段,执行跳转代码段,进而执行与跳转代码段所对应的待回退修复包中的修改代码段,而此时待回退修复包为需要停止使用的修复包,则将第二执行条件进行更改为第一执行条件,则终端可以将查询到的第二执行条件直接进行更改,也可以是在终端对应的显示界面上显示相应的提示信息,从而用户根据提示信息选取对第二执行条件进行更改的选项,根据用户的选取,生成执行开关代码段更改指令,终端根据执行开关代码段更改指令对执行代码段进行更改,也即将执行代码段更改为跳过跳转代码段。

s210:当执行开关代码段更改为跳过跳转代码段时,则删除待回退热修复包。

具体地,当终端将执行开关代码段所表示的执行条件更改为跳过跳转代码段的执行条件时,则终端根据对执行开关代码段的更改,直接跳过跳转代码段,也即不执行与跳转代码段所对应的待回退修复包中的修改代码段,则继续执行原代码段,从而该待回退热修复包完成了停止使用的过程,则终端查询到已停止使用的待回退热修复包,从而将待回退热修复包删除。

本实施例中,终端从服务器获取到修复包时,服务器查询到修复包为停止使用的修复包,则向终端发送禁用指令,终端接收到禁用指令,查找到对应的热修复包作为待回退热修复包,终端查找待回退热修复包的跳转代码段,以及跳转代码段所对应的执行开关代码段,将执行开关代码段进行更改为跳过跳转代码段,当更改为跳过跳转代码段时,则终端继续执行原代码段而不执行待回退热修复包中的修改代码段,则可以将出现问题的待回退热修复包直接删除,无需当终端在获取到热修复包进行修复完成当出现问题再次整体开发代码对软件进行修复,直接跳过执行待回退热修复包中的修改代码段,节约修复时间从而提高修复效率

在其中一个实施例中,可参见图3,提供一检测更新修复包步骤的流程图,检测更新修复包步骤,也即删除待回退热修复包之后,可以包括:根据预设查询时间,向服务器发送用于检测是否存在更新修复包的检测请求;当接收到服务器返回的与检测请求对应的更新信息时,则查询更新信息是否有效;当更新信息有效时,则向服务器发送与更新信息对应的更新修复包的获取请求。

具体地,查询时间是指终端中的向服务器发送获取检测是否有更新修复包的预设时间,查询时间可以是预设的时间段,可以是具体的系统时间,例如,查询时间可以是每隔半小时,也即终端检测当前系统时间,根据预设查询时间计算发送系统时间,监控当前系统时间,当系统时间到达发送系统时间时,则向服务器发送获取更新修复包的检测请求;查询时间还可以是具体地系统时间,例如为晚上20点,终端监控当前系统时间,当到达查询时间晚上20点整时,则向服务器发送获取更新修复包的检测请求。检测请求是指终端向服务器发送的检测是否存在有更新修复包的请求检测的信息,当服务器收到终端发送的检测请求时,则根据检测请求查询当前是否有更新热修复包,其中,服务器根据检测请求,可以查询存储的修复包对应的更新时间以及更新版本,当更新时间为在预设时间段,且更新版本为最新的软件版本,则该修复包为更新修复包,例如,服务器查询存储的修复包对应的更新时间以及更新版本,当更新时间为3天内,在预设时间段的5天内,且更新版本为最新的软件版本,也即采用更新修复包可以对最新的软件版本进行修复。更新信息是当服务器检测到有更新的修复包时,则记录的更新的修复包对应的相应的修复包信息,更新信息可以是更新热修复包适用的待修复的软件版本,更新信息可以是热修复包携带的加密标识,更新信息可以是热修复包的来源等任意一项或几项。

具体地,终端获取到预设的查询时间,终端检测系统时间,当到达预设的查询时间时,则向服务器发送用于检测在服务器上是否存储有更新修复包的检测请求,且该检测请求上携带有当前待修复软件的软件版本号,服务器接收到该检测请求,根据软件版本号查询是否与软件版本号对应的修复包,当存在有对应的修复包时,则查询存储的修复包对应的更新时间以及更新版本,当更新时间为在预设时间段,且更新版本为最新的软件版本的修复包作为更新修复包,进而根据该更新修复包,可以查询到与该更新修复包所关联的更新信息,服务器将更新信息发送至终端,终端接收到相应的更新信息时,则从更新信息中查询到更新热修复包的修复包信息,进而终端验证更新信息是否有效,也即验证更新修复包是否可用,可以是,终端提取到更新信息中包含的修复包对应的软件版本号,将软件版本号与检测请求上携带的软件版本号进行比对,当比对成功时,则进行下一级查询,终端从更新信息中将包含的更新修复包的加密标识进行提取,获取预存储的待匹配加密标识,当更新修复包的加密标识与预存储的待匹配加密标识一致时,则更新热修复包的加密标识为合法标识,进而进行下一级查询,终端从更新信息中提取到服务器对应的接口信息,查询该接口信息所对应的接口是否与接收检测请求的接口一致,当一致时,则终端对更新信息验证完成,也即上述对更新信息的查询结果都为查询通过时,则更新信息为有效,终端根据有效的更新信息,则再次向服务器发送获取到与更新信息所对应的更新修复包的获取请求,从而获取到更新修复包。

需要说明的是,终端根据预设查询时间,向服务器发送用户检测是否存在更新修复包的检测请求,且从服务器获取到目标查询时间,目标查询时间为服务器设置的查询时间,终端将查询时间与目标查询时间进行比对,当比对不成功时,则将预设查询时间更改为目标查询时间,保证可以及时从服务器获取到更新修复包。加密标识可以是由服务器生成的,也即服务器生成修复包时,提取到进行修改的代码段,从而将进行修改的代码段,采用加密算法,得到与修改的代码段所对应的唯一的加密值,该加密值即为加密标识,进一步地,服务器采用的加密算法可以是md5(message-digestalgorithm5,信息-摘要算法第五版)算法,得到的加密标识可以是哈希值。

本实施例中,终端删除了待回退热修复包时,则根据预设的查询时间,向服务器发送用于检测是否存在更新热修复包的检测请求,终端根据接收到的服务器返回的与检测请求所对应的更新信息时,则查询更新信息是否有效,当更新信息又消失,则向服务器发送与更新信息对应的更新修复包的获取请求,避免终端直接从服务器获取到更新修复包而发送更新修复包不可用,节省修复时间从而提高修复效率。

在其中一个实施例中,所述向所述服务器发送与所述更新信息对应的所述更新修复包的获取请求,包括:接收服务器发送的查询用户身份标识的查询指令,查询指令是服务器根据获取请求生成的;获取与查询指令对应的用户身份标识;向服务器发送与查询指令对应的用户身份标识;当接收到服务器返回的允许下载指令时,则向服务器发送与更新信息对应的更新修复包的获取请求,允许下载指令是在服务器查询到用户身份标识所对应的终端具有下载更新修复包的权限时所生成的;接收服务器根据获取请求发送的更新修复包。

具体地,用户身份标识是指使用终端中嵌入的软件的用户的身份信息,例如,身份信息可以是用户名、真实姓名、身份证号码等。查询指令是指服务器向终端发送查询使用嵌入终端的软件的用户的身份信息的查询命令,终端根据该查询指令,可以将查询指令所对应的用户身份标识发送至服务器。允许下载指令是服务器接收到用户身份标识,查询到使用用户身份标识的软件嵌入的终端具有下载权限时生成的命令。

具体地,终端从服务器获取修复包时,服务器可以进行相应的下载权限设置,也即可以先选中有权限的用户,有权限的用户对应的终端发送更新修复包获取请求,则终端可以获取到更新热修复包,从而可以实现分流操作。当服务器接收到终端发送的更新修复包获取指令时,则将相应的用户身份标识的查询指令发送至与获取指令对应的终端,当终端接收到查询指令时,则查询终端中嵌入的软件正在使用的用户身份标识,也即可以是查询登录嵌入的软件的用户名等,从而将查询到的用户身份标识发送至服务器,如将查询到的用户名发送至服务器,服务器查询用户名是否有获取更新修复包的权限,也即服务器将查询到的用户身份标识与预存储的具有获取权限的待匹配用户身份标识逐一进行匹配,当匹配成功时,则查询到的用户身份标识具有获取更新修复包的权限,则服务器将允许下载指令发送至终端,终端接收到服务器发送的允许下载指令时,则使用有权限的用户身份标识的软件的安装的终端有下载更新热修复包的权限,则该终端向服务器发送更新修复包的获取请求而获取更新修复包。

需要说明的是,当服务器接收到用户身份标识时,将用户身份标识与待匹配用户身份标识逐一进行匹配,当匹配成功时,则查询该匹配成功的用户身份标识的接收次数,也即服务器从系统操作日志中查询接收到该匹配成功的用户身份标识的次数,当接收次数小于预设值时,则嵌入使用用户身份标识的软件的终端具有获取更新修复包的权限,也即可以进行第二级判断,避免有权限的用户身份标识在多个终端中的软件进行登录获取更新修复包,导致分流效果差。

本实施例中,服务器根据可以使用嵌入终端用户身份标识,查询用户标识所对应的终端是否有下载权限,当有下载权限时,则终端可以获取更新修复包,从而实现对软件修复的分流。

在其中一个实施例中,接收所述服务器根据所述获取请求发送的所述更新修复包之后,包括:当接收到更新修复包时,查询是否有待运行热修复包;当存在待运行修复包时,则查询所待运行修复包的第一版本号与更新修复包的第二版本号;当第一版本号与第二版本号不同时,则获取待运行修复包的第一加密标识与更新修复包的第二加密标识;当第一加密标识与第二加密标识不同时,则删除待运行修复包。

具体地,待运行修复包是指终端已获取到的、且待安装的修复包,且该待安装的修复包为获取到更新修复包之前,已从服务器获取到的修复包。第一版本号是指与待运行修复包对应的待修复的软件版本号,根据第一版本号可以查询到相应的待修复软件。第二版本号是指终端从服务器获取到的更新修复包对应的待修复的软件版本号,也即根据第二版本号可以查询到相应的待修复软件。第一加密标识是指待运行修复包对应的加密的修复代码标识,也即根据第一加密标识可以查询到相应的待修复的出现漏洞的原代码段,第一加密标识可以是由服务器生成的,也即服务器在生成待运行修复包时,则提取到进行修改的代码段,从而将进行修改的代码段,采用相应的加密算法,得到与修改的代码段所对应的唯一的加密值,该加密值即为第一加密标识,进一步地,服务器采用的加密算法可以是md5(message-digestalgorithm5,信息-摘要算法第五版)算法,得到的第一加密标识可以是第一哈希值。第二加密标识是指更新修复包对应的加密的修复代码标识,也即根据第二加密标识可以查询到所有的原代码段中包含的出现漏洞的代码段,同样地,第二加密标识可以是由服务器生成的,也即服务器生成更新修复包时,提取到进行修改的代码段,从而将进行修改的代码段,采用加密算法,得到与修改的代码段所对应的唯一的加密值,该加密值即为第二加密标识,进一步地,服务器采用的加密算法可以是md5(message-digestalgorithm5,信息-摘要算法第五版)算法,得到的第二加密标识可以是第二哈希值。

具体地,当终端从服务器获取到更新修复包时,则需要查询是否已经下载有其他修复包,也即查询是否有待运行修复包,且需要判断获取到的更新修复包与已存在的待运行修复包是否为相同的修复包。当终端从服务器获取到更新修复包时,则查询是否已获取其他的修复包,也即查询是否终端中已存在有其他的修复包作为待运行修复包,当查询到已存在有待运行修复包时,则查询待运行修复包所对应的第一版本号,进而终端再获取更新修复包所对应的第二版本号,将第一版本号与第二版本号进行比对,当第一版本号与第二版本号不同时,则完成第一级判断,也即更新修复包与待运行修复包所可以修复的软件版本初步判断为不同的版本,但有时由于服务器生成修复包时添加的待修复软件版本号虽不同,可能仅仅由于在先生成的修复包添加了错误的待修复软件版本号,从而待运行修复包与更新修复包实际仅仅为添加的待修复软件版本号不同,但实际修复的软件中出现漏洞的原代码是相同的,进而由于每个修复包都有唯一且不同的加密标识,则采用加密标识进行第二级判断,则终端获取到待运行修复包所对应的第一加密标识,再获取更新修复包的第二加密标识,终端比较第一加密标识与第二加密标识,当第一加密标识与第二加密标识不同时,则更新修复包与待运行修复包为完全不同的修复包,也即终端中已存在的修复包已出现了更新,则终端获取到的更新修复包为最新的修复包,则终端删除待运行修复包,后续可以直接执行更新修复包中的修改代码段从而完成修复;当第一加密标识与第二加密标识相同时,则更新修复包与待运行修复包的所对应的待修复软件的软件版本号虽然不同,但是可以进行相同的修复,则可以在终端对应的显示界面上显示相应的删除提示信息,用户根据删除提示信息,选择需要进行删除的修复包,根据用户的选择生成删除指令,终端接收到删除指令将用户所选择的修复包进行删除。

本实施例中,当终端获取到更新修复包时,则可以查询是否有已存在的待运行修复包,当存在待运行修复包时,则判断更新修复包与待运行修复包是否为相同的修复包,且需要进行第一级判断也即版本号的判断,以及进行第二级判断也即为加密标识的判断,提高判断的准确度,且当判断更新修复包与待运行修复包为不同的修复包时,则删除待运行修复包,从而避免存在不同的修复包导致对软件修复失败再进行排查,提高修复效率以及准确率,且可以删除无需使用的修复包,节省运行空间。

在其中一个实施例中,当第一加密标识与第二加密标识不同时,则删除待运行修复包,包括:比较第一加密标识与第二加密标识,当第一加密标识与第二加密标识不同时,则卸载待运行热修复包;当待运行热修复包卸载完成时,则加载更新热修复包;当更新热修复包加载成功时,则完成待运行修复包删除。

具体地,终端获取到更新修复包时,则需要查询更新修复包与存在待运行修复包是否相同,进而当比较待运行修复包的第一版本号与更新修复包的第二版本号不同时,则比较更新修复包的第一加密标识与第二加密标识,也即采用上述方法,将更新修复包所对应的唯一的加密值与待运行修复包对应的唯一的加密值进行比较,当比较结果不同时,也即第一加密标识与第二加密标识不同时,则待运行修复包与更新修复包相同,进而卸载待运行修复包,也即可以是将待运行修复包所占用的终端的资源,如相应的内存空间进行释放,以及相应的待运行修复包所对应的运行文件进行删除,进而当卸载待运行修复包时,则加载获取到的更新修复包,也即将更新修复包分配相应的运行空间,将相关的运行文件进行保存等,当更新修复包加载完成,则对待运行修复包的删除完成。

本实施例中,通过对待运行修复包的卸载与更新修复包的加载,完成待运行修复包的删除,保证后续可以准确执行更新修复包中的修改代码段,从而完成软件的修复,保证软件修复的准确性。

在其中一个实施例中,待回退修复包是服务器在检测到原代码段中存在修改的代码段时,根据修改的代码段生成的。

在其中一个实施例中,修改的代码段是原代码段上添加了加密标识变化的代码段。

在其中一个实施例中,待回退修复包是服务器在检测到原代码段中存在修改的代码段时,根据修改的代码段生成的;修改的代码段是原代码段上添加了加密标识变化的代码段。

具体地,当服务器检测到存在有修改的代码段时,则将修改的代码段进行提取生成更新修复包,且检测存在有修改的代码段是检测代码段添加的加密标识,当加密标识发生变化时,则代码段存在修改,则服务器将存在修改的代码段进行提取生成更新修复包,终端可以获取服务器生成的更新修复包从而完成软件的修复。进一步地,服务器中存储的开发的每个代码段均携带有对应的代码段标识,服务器根据代码段标识查询到不同的原代码段,进而根据查询到不同的原代码段,按照相应的加密算法对每段原代码段生成对应的加密标识,服务器预设有查询时间,按照预设的查询时间,分别获取每段原代码段生成对应的加密标识,将获取到的每段原代码段的加密标识与上一次获取到的对应代码段的加密标识进行比对,当比对结果为不相同时,则未比对成功的加密标识所对应的原代码段有更改,从而查询当前获取到的加密标识所对应的代码段,并将查询到的代码段进行提取,该代码段也即是修改的代码段,从而将修改的代码段进行提取生成修复包,需要说明的时,服务器采用的加密算法可以是md5

(message-digestalgorithm5,信息-摘要算法第五版)算法,得到的加密标识可以是哈希值。

本实施例中,相应的跳转代码段为服务器预先设置,则安装在终端的软件修复时无需对整体的应用程序进行重新开发,只需根据跳转代码段执行相应的热修复包中的修改的代码段,从而提高软件修复的效率。且服务器会预设有相应的跳转代码段,当终端获取到热修复包时,则查询热修复包所对应的跳转代码段,进而将执行开关代码段对应更改,使得终端直接执行跳转代码段,进而跳转至热修复包中的修改代码段,则预先设置有跳转代码段,可以快速跳转至热修复包中的修改代码段完成软件的修复,提高软件修复的效率。

应该理解的是,虽然图2-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图4所示,提供了一种软件修复包处理装置400,包括:禁用指令接收模块410、查找模块420、查询模块430、获取模块440和删除模块450,其中:

禁用指令接收模块410,用于接收服务器发送的修复包禁用的禁用指令,所述禁用指令携带有禁用的所述修复包的修复包标识;

查找模块420,用于查找与所述修复包标识对应的待回退修复包;

查询模块430,用于查询与所述待回退修复包所对应的跳转代码段,所述跳转代码段用于指示跳转至所述修复包标识对应的待回退修复包,执行所述待回退热修复包中的修改的代码段;

获取模块440,用于获取所述跳转代码段所对应的执行开关代码段,将所述执行开关代码段更改为跳过所述跳转代码段;

删除模块450,用于当所述执行开关代码段更改为跳过所述跳转代码段时,则删除所述待回退热修复包。

在其中一个实施例中,软件修复包处理装置,可以包括:

检测请求发送模块,用于根据预设查询时间,向服务器发送用于检测是否存在更新修复包的检测请求;

更新信息查询模块,用于当接收到服务器返回的与所述检测请求对应的更新信息时,则查询所述更新信息是否有效;

发送模块,用于当所述更新信息有效时,则向所述服务器发送与所述更新信息对应的所述更新修复包的获取请求。

在其中一个实施例中,发送模块,可以包括:

查询指令接收单元,用于接收所述服务器发送的查询用户身份标识的查询指令,所述查询指令是所述服务器根据所述获取请求生成的;

用户身份标识获取单元,用于获取与所述查询指令对应的用户身份标识;

用户身份标识发送单元,用于向所述服务器发送与所述查询指令对应的所述用户身份标识;

获取请求发送单元,用于当接收到所述服务器返回的允许下载指令时,则向所述服务器发送与所述更新信息对应的所述更新修复包的获取请求,所述允许下载指令是在所述服务器查询到所述用户身份标识所对应的终端具有下载所述更新修复包的权限时所生成的;

接收单元,用于接收所述服务器根据所述获取请求发送的所述更新修复包。

在其中一个实施例中,发送模块,还可以包括:

待运行热修复包查询单元,用于当接收到更新修复包时,查询是否有待运行热修复包;

版本号查询单元,用于当存在待运行修复包时,则查询所待运行修复包的第一版本号与所述更新修复包的第二版本号;

加密标识获取单元,用于当所述第一版本号与所述第二版本号不同时,则获取所述待运行修复包的第一加密标识与所述更新修复包的第二加密标识;

删除单元,用于当所述第一加密标识与所述第二加密标识不同时,则删除所述待运行修复包。

在其中一个实施例中,删除单元,可以包括:

卸载子单元,用于比较所述第一加密标识与所述第二加密标识,当所述第一加密标识与所述第二加密标识不同时,则卸载所述待运行热修复包;

加载子单元,用于当所述待运行热修复包卸载完成时,则加载所述更新热修复包;

删除子单元,用于当所述更新热修复包加载成功时,则完成所述待运行修复包的删除。

在其中一个实施例中,查找模块420,用于查找与所述修复包标识对应的待回退修复包,所述待回退修复包是所述服务器在检测到原代码中存在修改的代码段时,根据所述修改的代码段生成的。所述修改的代码段是所述原代码段上添加了加密标识变化的代码段。

关于软件修复包处理装置的具体限定可以参见上文中对于软件修复包处理方法的限定,在此不再赘述。上述软件修复包处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种软件修复包处理方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:接收服务器发送的修复包禁用的禁用指令,禁用指令携带有禁用的修复包的修复包标识。查找与修复包标识对应的待回退修复包。查询与待回退修复包所对应的跳转代码段,跳转代码段用于指示跳转至修复包标识对应的待回退修复包,执行待回退热修复包中的修改的代码段。获取跳转代码段所对应的执行开关代码段,将执行开关代码段更改为跳过跳转代码段。当执行开关代码段更改为跳过跳转代码段时,则删除待回退热修复包。

在其中一个实施例中,处理器执行计算机程序时实现删除待回退热修复包之后,包括:根据预设查询时间,向服务器发送用于检测是否存在更新修复包的检测请求。当接收到服务器返回的与检测请求对应的更新信息时,则查询更新信息是否有效。当更新信息有效时,则向服务器发送与更新信息对应的更新修复包的获取请求。

在其中一个实施例中,处理器执行计算机程序时实现向服务器发送与更新信息对应的更新修复包的获取请求,包括:接收服务器发送的查询用户身份标识的查询指令,查询指令是服务器根据获取请求生成的。获取与查询指令对应的用户身份标识。向服务器发送与查询指令对应的用户身份标识。当接收到服务器返回的允许下载指令时,则向服务器发送与更新信息对应的更新修复包的获取请求,允许下载指令是在服务器查询到用户身份标识所对应的终端具有下载更新修复包的权限时所生成的。接收服务器根据获取请求发送的更新修复包。

在其中一个实施例中,处理器执行计算机程序时实现接收服务器根据获取请求发送的更新修复包之后,包括:当接收到更新修复包时,查询是否有待运行热修复包。当存在待运行修复包时,则查询所待运行修复包的第一版本号与更新修复包的第二版本号。当第一版本号与第二版本号不同时,则获取待运行修复包的第一加密标识与更新修复包的第二加密标识。当第一加密标识与第二加密标识不同时,则删除待运行修复包。

在其中一个实施例中,处理器执行计算机程序时实现当第一加密标识与第二加密标识不同时,则删除待运行修复包,包括:比较第一加密标识与第二加密标识,当第一加密标识与第二加密标识不同时,则卸载待运行热修复包。当待运行热修复包卸载完成时,则加载更新热修复包。当更新热修复包加载成功时,则完成待运行修复包的删除。

在其中一个实施例中,处理器执行计算机程序时实现查找与修复包标识对应的待回退修复包,待回退修复包是服务器在检测到原代码中存在修改的代码段时,根据修改的代码段生成的。修改的代码段是原代码段上添加了加密标识变化的代码段。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收服务器发送的修复包禁用的禁用指令,禁用指令携带有禁用的修复包的修复包标识。查找与修复包标识对应的待回退修复包。查询与待回退修复包所对应的跳转代码段,跳转代码段用于指示跳转至修复包标识对应的待回退修复包,执行待回退热修复包中的修改的代码段。获取跳转代码段所对应的执行开关代码段,将执行开关代码段更改为跳过跳转代码段。当执行开关代码段更改为跳过跳转代码段时,则删除待回退热修复包。

在其中一个实施例中,计算机程序被处理器执行时实现删除待回退热修复包之后,包括:根据预设查询时间,向服务器发送用于检测是否存在更新修复包的检测请求。当接收到服务器返回的与检测请求对应的更新信息时,则查询更新信息是否有效。当更新信息有效时,则向服务器发送与更新信息对应的更新修复包的获取请求。

在其中一个实施例中,计算机程序被处理器执行时实现向服务器发送与更新信息对应的更新修复包的获取请求,包括:接收服务器发送的查询用户身份标识的查询指令,查询指令是服务器根据获取请求生成的。获取与查询指令对应的用户身份标识。向服务器发送与查询指令对应的用户身份标识。当接收到服务器返回的允许下载指令时,则向服务器发送与更新信息对应的更新修复包的获取请求,允许下载指令是在服务器查询到用户身份标识所对应的终端具有下载更新修复包的权限时所生成的。接收服务器根据获取请求发送的更新修复包。

在其中一个实施例中,计算机程序被处理器执行时实现接收服务器根据获取请求发送的更新修复包之后,包括:当接收到更新修复包时,查询是否有待运行热修复包。当存在待运行修复包时,则查询所待运行修复包的第一版本号与更新修复包的第二版本号。当第一版本号与第二版本号不同时,则获取待运行修复包的第一加密标识与更新修复包的第二加密标识。当第一加密标识与第二加密标识不同时,则删除待运行修复包。

在其中一个实施例中,计算机程序被处理器执行时时实现当第一加密标识与第二加密标识不同时,则删除待运行修复包,包括:比较第一加密标识与第二加密标识,当第一加密标识与第二加密标识不同时,则卸载待运行热修复包。当待运行热修复包卸载完成时,则加载更新热修复包。当更新热修复包加载成功时,则完成待运行修复包的删除。

在其中一个实施例中,计算机程序被处理器执行时实现查找与修复包标识对应的待回退修复包,待回退修复包是服务器在检测到原代码中存在修改的代码段时,根据修改的代码段生成的。修改的代码段是原代码段上添加了加密标识变化的代码段。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1