CN102402438B - 一种补丁文件的自动合并方法、装置及通信终端 - Google Patents
一种补丁文件的自动合并方法、装置及通信终端 Download PDFInfo
- Publication number
- CN102402438B CN102402438B CN201010283649.0A CN201010283649A CN102402438B CN 102402438 B CN102402438 B CN 102402438B CN 201010283649 A CN201010283649 A CN 201010283649A CN 102402438 B CN102402438 B CN 102402438B
- Authority
- CN
- China
- Prior art keywords
- patch
- file
- patch file
- files
- type
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明适用于计算机领域,提供了一种补丁文件的自动合并方法、装置及通信终端,所述方法包括步骤:判断待合并的多个补丁文件的类型;根据所述待合并的多个补丁文件的类型,采用相应的比较算法,获取保留的补丁文件;将所述获取的保留的补丁文件重新打包为一个新的补丁。本发明对多个补丁中的补丁文件执行操作,仅保留相同补丁文件中的一个补丁文件,并将所有保留下来的补丁文件重新打包为一个新的补丁,有效减少补丁的文件数量,节省了用户下载、安装补丁的时间。
Description
技术领域
本发明属于计算机领域,尤其涉及一种补丁文件的自动合并方法、装置及通信终端。
背景技术
补丁是指在原有软件的基础上,以解决软件在使用过程中暴露出来的问题为目标的修补程序。大型软件在发行之后仍会存在很多缺陷,而每一个缺陷都需要安装一个相对应的补丁以使软件更加完美。
现有技术中,当发现软件的缺陷时,按照补丁出现的时间顺序逐个安装。如果需要安装的补丁很多,而安装的补丁中可能存在多个相同的文件,一个一个安装使得安装时间过长,整个安装的时间可能会超过几个小时。
发明内容
本发明实施例的目的在于提供一种补丁文件自动合并的方法,旨在解决安装多个具有相同补丁文件的补丁时,导致的用户下载、安装补丁时间过长的问题。
本发明实施例是这样实现的,一种补丁文件自动合并的方法,所述方法包括:
判断待合并的多个补丁文件的类型;
根据所述待合并的多个补丁文件的类型,采用相应的比较算法,获取保留的补丁文件;
将所述获取的保留的补丁文件重新打包为一个新的补丁,所述新的补丁用于修补相应的应用程序。
本发明实施例的另一目的在于提供一种补丁文件的自动合并装置,所述装置包括:
判断文件类型单元,用于判断待合并的多个补丁文件的类型;
获取保留补丁文件单元,用于根据所述待合并的多个补丁文件的类型,采用相应的比较算法,获取保留的补丁文件;
打包补丁单元,用于将所述获取的保留的补丁文件重新打包为一个新的补丁,所述新的补丁用于修补相应的应用程序。
本发明实施例的另一目的在于提供包含上述补丁文件的自动合并装置的通信终端。
本发明实施例中,对多个补丁中的补丁文件执行操作,仅保留其中的一个补丁文件,并将所有保留下来的补丁文件重新打包为一个新的补丁,有效减少补丁的文件数量,节省了用户下载、安装补丁的时间。
附图说明
图1是本发明实施例提供的自动合并补丁的方法流程;
图2是本发明实施例提供的自动合并补丁装置的结构;
图3是本发明实施例提供的自动合并补丁装置的结构。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明通过获取多个补丁中的文件类型,并根据文件类型采用相应的比较算法,选择需要保留的补丁文件,并将保留下来的所有补丁文件重新打包为一个新的补丁。
本发明提供了一种补丁文件的自动合并方法、装置及通信终端:
所述方法包括:判断待合并的多个补丁文件的类型;
根据所述待合并的多个补丁文件的类型,采用相应的比较算法,获取保留的补丁文件;
将所述获取的保留的补丁文件重新打包为一个新的补丁。
所述装置包括:判断文件类型单元,用于判断待合并的多个补丁文件的类型;
获取保留补丁文件单元,用于根据所述待合并的多个补丁文件的类型,采用相应的比较算法,获取保留的补丁文件;
打包补丁单元,用于将所述获取的保留的补丁文件重新打包为一个新的补丁。
所述通信终端包括:包含上述补丁文件的自动合并装置的通信终端。
本发明实施例中,对多个补丁中的补丁文件执行操作,多个相同补丁文件仅保留一个补丁文件,并将所有保留下来的补丁文件重新打包为一个新的补丁,有效减少补丁的文件数量,节省了用户下载、安装补丁的时间。
实施例一:
图1示出了本发明实施例提供的补丁文件的自动合并方法流程,详述如下:
在步骤S11中,判断待合并的多个补丁文件的类型;
通常每个类型的补丁文件在文件名称、文件格式、文件内容均有相应的规范,如:动态链接库(Dynamic Link Library,DLL)是一个包含可由多个程序同时使用的代码和数据的库,使用后缀名dll进行标记,标记为dll的文件不是一个可执行的文件;而按照Java Achieve格式的Java Achieve文件使用后缀名jar标记为jar文件,标记为jar的文件是一个压缩文件,是许多信息封装后形成的捆绑体。
根据补丁文件的文件名称、文件格式、文件内容等属性判断该补丁文件的类型。判断补丁文件的名称与哪个文件类型的名称要求相符,并将与文件名称要求相符的补丁文件,记录为该类型的补丁文件。进一步地,继续判断符合文件名称要求的补丁文件是否与该类型的文件格式要求相符,并将相符的补丁文件,记录为该类型的补丁文件。进一步地,继续判断符合上述要求的补丁文件是否与该类型的文件内容要求相符,并将相符的补丁文件,记录为同一类型的补丁文件。
进一步地,也可以按照平台判断补丁文件所属的类型,如将基于Java平台的补丁文件记录为jar文件。
此外,也可以根据某一文件类型所具有的特点,预设条件判断补丁文件是否属于该类文件,并将符合预设条件的补丁文件记录为该类型。以微软发布的Hotfix系统补丁为例,Hotfix是微软专门针对某一个具体的系统漏洞或安全问题而发布的解决程序,其文件名称的格式一般为“产品名-KBXXXXXX-处理器平台-语言版本.exe”。其中,程序名为Win2K-KB835732-X86-CH.exe的Hotfix文件是专门针对震荡波病毒而发布的。由此可知,当一个补丁文件的命名格式与Hotfix文件的命名格式相同时,可以判断该补丁文件为Hotfix文件。
在步骤S12中,根据待合并的多个补丁文件的类型,采用相应的比较算法,获取保留的补丁文件;
每个补丁包含有多个补丁文件,而同一个补丁文件可能存在于多个补丁中,判断补丁中是否存在相同的补丁文件,可以通过补丁文件的信息摘要值(Message-Digest Algorithm5,MD5)判断,如果两个补丁文件的MD5值相同,说明这两个补丁文件是相同的补丁文件。其中,补丁文件的MD5值是根据该补丁文件的二进制数据计算得到。为了避免对同一个补丁文件都执行相同的操作,可以去掉多余的补丁文件,仅保留多个相同补丁文件中的一个补丁文件。
对相同的补丁文件,根据它们文件类型的不同,采用不同的算法决定是否保留该补丁文件。该算法可以为,按照补丁文件修改时间的先后决定是否保留该补丁文件,比如,保留最后一次修改的补丁文件,删掉修改时间在该文件之前的补丁文件。
也可以先从补丁文件中获取信息,再根据该信息决定是否应该保留该补丁文件,比如windows系统在生成dll文件时会加上一些信息,如所属的版本、公司、时间等,此方法还适用于基于Java平台的补丁文件,jar文件。由于在日常的使用过程中,附加的版本信息等一般是不改变的,针对这类补丁文件,可以通过比较补丁文件的版本、时间等信息决定该补丁文件是否需要保留。除此之外,如果附加的信息是自己定义的,则根据附加信息的内容选择比较的算法,决定该补丁文件的去留。
也可以按照指定的逻辑优先顺序决定补丁文件是否保留,比如,保留优先级最高的补丁文件,去掉优先级低的补丁文件。
进一步地,比较各个补丁文件之后,得到所有需要保留的补丁文件列表,该补丁文件列表保存了需要保留的补丁文件信息,根据补丁文件列表中存储的保留的补丁文件信息,从各个补丁中将需要保留的补丁文件复制到一个临时目录中。进一步地,对该临时目录进行打包处理,为将保留下来的补丁文件打包成一个新的补丁做准备。
在步骤S13中,将获取的保留的补丁文件重新打包为一个新的补丁。
去掉多余的补丁文件之后,将各个补丁中保留下来的补丁文件一起打包成一个新的补丁。打包过程中应注意使各个补丁文件的格式与合并补丁前,其存在于原补丁中的格式相同。
本发明实施例中,对多个补丁中的补丁文件执行操作,同一个补丁文件中仅保留一个补丁文件,并将保留下来的补丁文件重新打包为一个新的补丁,有效减少补丁文件的数量,节省了用户下载、安装补丁的时间。
作为本发明的一个实施例,在获取补丁文件类型前,应该先获取将要合并的多个补丁,再根据相应的解压规则解压获取的补丁,解压补丁后得到相应的补丁文件,最后判断补丁文件的类型。这是因为公司为了更方便用户从网络上下载补丁,通常会将补丁中多个不同类型的文件压缩为一个补丁。公司不同,采用的压缩方式也不同,常见的压缩方式有zip,gz,exe等,如微软公司操作系统的补丁为exe文件。
本发明实施例中,获取将要合并的多个补丁,并解压,解压后便于获取补丁文件的类型。
作为本发明的一个实施例,将保留的补丁文件打包为新的补丁前,应针对补丁中不同的辅助文件类型,定义不同的处理方法接口,处理补丁中的辅助文件。
保留下来的补丁文件中除了最常见的修复功能文件,还有一些辅助文件,如配置文件、数据库脚本、参数控制文件、说明书等。其中,修复功能文件和辅助文件都属于补丁文件,补丁中的文件需要共同使用才能正常生效。具体的实现过程由提交辅助文件的人负责实现,这样,每当增加一些辅助文件时,都可以得到快速的处理。
实施例二:
图2示出了本发明实施例提供的补丁文件的自动合并装置的结构,为了便于说明,仅示出了与本发明实施例中相关的部分。
该自动合并补丁装置可以用于各种具备补丁文件的自动合并功能的通信终端,例如可视电话、移动电话、口袋计算机(Pocket Personal Computer,PPC)、个人数字助理(Personal Digital Assistant,PDA)等中,可以是运行于这些通信终端内的软件单元,也可以作为独立的挂件集成到这些通信终端中或者运行于这些通信终端的应用系统中,其中:
判断文件类型单元201,用于判断待合并的多个补丁文件的类型;
获取保留补丁文件单元202用于根据判断文件类型单元201判断的待合并的多个补丁文件的类型,采用相应的比较算法,获取保留的补丁文件;
打包补丁单元203,用于将获取保留补丁文件单元202获取的保留的补丁文件重新打包为一个新的补丁。
本发明实施例中,如果合并的补丁中存在多个相同的补丁文件,则根据补丁文件类型的不同,采用不同的比较算法,仅保留其中的一个补丁文件,并将所有保留下来的补丁文件打包为一个新的补丁,有效减少补丁的文件数量,节省了用户下载、安装补丁的时间。
实施例三:
图3示出了本发明实施例提供的补丁文件的自动合并装置的结构,为了便于说明,仅示出了与本发明实施例中相关的部分。
解压补丁单元301,用于获取待合并的多个补丁,并根据所述获取的多个补丁的压缩规则,解压所述补丁;
判断文件类型单元302用于从解压补丁单元301解压补丁后的补丁文件中,判断待合并的多个补丁文件的类型;
获取保留补丁文件单元303用于根据判断文件类型单元302判断的待合并的多个补丁文件的类型,采用相应的比较算法,获取保留的补丁文件;
打包补丁单元304,用于将获取保留补丁文件单元303获取的保留的补丁文件重新打包为一个新的补丁。
本发明实施例中,将压缩的补丁根据压缩规则进行解压,便于获取补丁文件的类型。
作为本发明的一个实施例,打包补丁单元304还包括存储补丁单元3041、打包目录单元3042。其中,存储补丁单元3041用于将获取的保留的补丁文件存储在一个目录中,打包目录单元3042,用于重新打包目录下的补丁文件。
作为本发明的一个实施例,打包补丁单元304将获取的保留的补丁文件重新打包为一个新的补丁前,根据补丁中辅助文件类型的不同,使用配置接口单元305配置不同的处理方法接口。
在所有的辅助文件处理完毕后,将所有保留下来的补丁文件按照其所处的原补丁的格式重新打包为一个新的补丁。
本发明实施例,通过判断各个补丁文件的类型,并根据相应的补丁文件类型,采用不同的比较算法,选择需要保留的补丁文件,最后将所有保留下来的补丁文件重新打包为一个新的补丁,有效减少补丁的文件数量,节省了用户下载、安装补丁的时间。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种补丁文件的自动合并方法,其特征在于,所述方法包括步骤:
判断待合并的多个补丁文件的类型;
根据所述待合并的多个补丁文件的类型,采用相应的比较算法,获取保留的补丁文件;所述比较算法为:根据补丁文件的信息摘要值MD5判断补丁文件是否相同,在补丁文件相同时,根据补丁文件的修改时间,保留被最后修改的补丁文件,或,根据补丁文件的版本,保留最新版本的补丁文件,或,根据预置的逻辑优先顺序,保留优先级最高的补丁文件;
将所述获取的保留的补丁文件重新打包为一个新的补丁,所述新的补丁用于修补相应的应用程序。
2.如权利要求1所述的方法,其特征在于,在所述判断待合并的多个补丁文件的类型的步骤之前,所述方法还包括如下步骤:
获取待合并的多个补丁,并根据所述获取的多个补丁的压缩规则,解压所述补丁。
3.如权利要求1所述的方法,其特征在于,所述将所述获取的保留的补丁文件重新打包为一个新的补丁的步骤具体为:
将获取的保留的补丁文件存储在一个目录中;
重新打包所述目录下的补丁文件。
4.如权利要求1所述的方法,其特征在于,在将所述获取的保留的补丁文件重新打包为一个新的补丁的步骤之前,所述方法还包括下述步骤:
根据补丁中辅助文件类型的不同,配置不同的处理方法接口。
5.一种补丁文件的自动合并装置,其特征在于,所述装置包括:
判断文件类型单元,用于判断待合并的多个补丁文件的类型;
获取保留补丁文件单元,用于根据所述待合并的多个补丁文件的类型,采用相应的比较算法,获取保留的补丁文件;所述比较算法为:根据补丁文件的信息摘要值MD5判断补丁文件是否相同,在补丁文件相同时,根据补丁文件的修改时间,保留被最后修改的补丁文件,或,根据补丁文件的版本,保留最新版本的补丁文件,或,根据预置的逻辑优先顺序,保留优先级最高的补丁文件;
打包补丁单元,用于将所述获取的保留的补丁文件重新打包为一个新的补丁,所述新的补丁用于修补相应的应用程序。
6.如权利要求5所述的装置,其特征在于,所述装置还包括:
解压补丁单元,用于获取待合并的多个补丁,并根据所述获取的多个补丁的压缩规则,解压所述补丁。
7.如权利要求5所述的装置,其特征在于,所述打包补丁单元还包括:
存储补丁单元,用于将获取的保留的补丁文件存储在一个目录中;
打包目录单元,用于重新打包所述目录下的补丁文件。
8.如权利要求5所述的装置,其特征在于,所述装置还包括:
配置接口单元,用于根据补丁中辅助文件类型的不同,配置不同的处理方法接口。
9.一种包含权利要求5至8任一项补丁文件的自动合并装置的通信终端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010283649.0A CN102402438B (zh) | 2010-09-16 | 2010-09-16 | 一种补丁文件的自动合并方法、装置及通信终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010283649.0A CN102402438B (zh) | 2010-09-16 | 2010-09-16 | 一种补丁文件的自动合并方法、装置及通信终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102402438A CN102402438A (zh) | 2012-04-04 |
CN102402438B true CN102402438B (zh) | 2014-07-09 |
Family
ID=45884672
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010283649.0A Active CN102402438B (zh) | 2010-09-16 | 2010-09-16 | 一种补丁文件的自动合并方法、装置及通信终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102402438B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103513998B (zh) * | 2012-06-25 | 2018-05-04 | 中兴通讯股份有限公司 | 升级包生成方法和装置、动态文件差分升级的方法和终端 |
CN102902564B (zh) * | 2012-09-26 | 2016-06-01 | 北京奇虎科技有限公司 | 安装补丁的方法及装置 |
CN106484447A (zh) * | 2015-08-28 | 2017-03-08 | 中兴通讯股份有限公司 | 一种更新数据包的制作方法及装置 |
CN105404653B (zh) * | 2015-10-30 | 2019-03-26 | 无锡清华信息科学与技术国家实验室物联网技术中心 | 一种全分布式文件索引及协作编辑机制的实现方法 |
CN106339239A (zh) * | 2016-08-26 | 2017-01-18 | 广西小草信息产业有限责任公司 | 一种补丁安装方法及安装系统 |
CN106412128B (zh) * | 2016-12-07 | 2019-06-04 | 北京奇虎科技有限公司 | 补丁下载的方法、装置、文件打包服务器以及客户端 |
CN106951279A (zh) * | 2017-02-27 | 2017-07-14 | 努比亚技术有限公司 | 应用的热修复装置及方法 |
CN107239309B (zh) * | 2017-06-06 | 2021-03-02 | 网易(杭州)网络有限公司 | 补丁生成方法及装置、更新方法、电子设备、存储介质 |
CN107861736A (zh) * | 2017-11-01 | 2018-03-30 | 网易(杭州)网络有限公司 | 补丁生成和更新方法及装置、电子设备、存储介质 |
CN113157305B (zh) * | 2020-01-23 | 2022-04-05 | 华为技术有限公司 | 一种软件升级方法及设备 |
US11436004B2 (en) | 2020-04-23 | 2022-09-06 | Red Hat, Inc. | Calculating a patch target on an application server |
CN114443109B (zh) * | 2021-07-19 | 2023-08-22 | 荣耀终端有限公司 | 补丁修复方法、电子设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1735862A (zh) * | 2003-12-15 | 2006-02-15 | 微软公司 | 用于更新网络化环境中的安装组件的系统和方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009146200A (ja) * | 2007-12-14 | 2009-07-02 | Nec Corp | パッチ管理装置、パッチ管理方法及びパッチ管理プログラム |
US20090271768A1 (en) * | 2008-04-24 | 2009-10-29 | International Business Machines Corporation | Discriminating program code updates after merging for live review |
-
2010
- 2010-09-16 CN CN201010283649.0A patent/CN102402438B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1735862A (zh) * | 2003-12-15 | 2006-02-15 | 微软公司 | 用于更新网络化环境中的安装组件的系统和方法 |
Non-Patent Citations (1)
Title |
---|
JP特开2009-146200A 2009.07.02 |
Also Published As
Publication number | Publication date |
---|---|
CN102402438A (zh) | 2012-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102402438B (zh) | 一种补丁文件的自动合并方法、装置及通信终端 | |
US10423585B2 (en) | Method and device for making differential upgrade package, and method and device for system differential upgrading | |
CN101110788B (zh) | 升级客户端软件的方法及系统 | |
CN106528086A (zh) | 一种安卓软件升级的方法及系统 | |
US20160378458A1 (en) | Method and device for system application installation package, and terminal | |
CN105138333B (zh) | 基于安卓系统的apk文件压缩的方法及系统 | |
CN103425468B (zh) | 插件式软件集成方法及装置 | |
CN102567053A (zh) | 一种软件版本回退的方法及装置 | |
CN103177077B (zh) | 一种apk文件的存储及输出方法 | |
US11775288B2 (en) | Method and apparatus for generating difference between old and new versions of data for updating software | |
CN111008034B (zh) | 一种补丁生成方法及装置 | |
US20210349710A1 (en) | Software update agent device and software patching method through the same | |
US7216344B2 (en) | Side-by-side drivers | |
CN104077161A (zh) | 一种客户端应用的升级方法及装置 | |
CN111158715A (zh) | 灰度发布控制方法及系统 | |
US9720669B2 (en) | Deployment of software across an enterprise system | |
CN107203379A (zh) | 一种安卓定制应用app的预置、安装方法 | |
CN110502264A (zh) | 系统升级方法、终端及可读存储介质 | |
CN102541593A (zh) | 一种远程文件的版本快速比对方法 | |
CN115543429A (zh) | 项目环境的搭建方法、电子设备及计算机可读存储介质 | |
CN106325896A (zh) | 安装包的共享函数库文件处理方法及装置 | |
US10318262B2 (en) | Smart hashing to reduce server memory usage in a distributed system | |
CN103761126A (zh) | 应用程序的升级方法和装置 | |
CN104572212A (zh) | 一种终端更新系统及其更新方法 | |
CN112328284A (zh) | 应用程序升级方法、系统、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210305 Address after: 266000 201a, 2nd floor, international ocean Sensor Research Institute, Qingdao Blue Valley technology road, aoshanwei street, Jimo District, Qingdao City, Shandong Province Patentee after: Qingdao Kingdee Software Technology Co.,Ltd. Address before: 518000 hi tech Industrial Village, Shennan Avenue, Shenzhen, Guangdong, Nanshan District W1-B4 Patentee before: Kingdee software (China) Co.,Ltd. |