CN106547651A - 一种软件版本还原的方法和装置 - Google Patents

一种软件版本还原的方法和装置 Download PDF

Info

Publication number
CN106547651A
CN106547651A CN201610957507.5A CN201610957507A CN106547651A CN 106547651 A CN106547651 A CN 106547651A CN 201610957507 A CN201610957507 A CN 201610957507A CN 106547651 A CN106547651 A CN 106547651A
Authority
CN
China
Prior art keywords
file
installation file
installation
software
binary data
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.)
Pending
Application number
CN201610957507.5A
Other languages
English (en)
Inventor
李江海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Shiyuan Electronics Thecnology Co Ltd
Original Assignee
Guangzhou Shiyuan Electronics Thecnology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Shiyuan Electronics Thecnology Co Ltd filed Critical Guangzhou Shiyuan Electronics Thecnology Co Ltd
Priority to CN201610957507.5A priority Critical patent/CN106547651A/zh
Publication of CN106547651A publication Critical patent/CN106547651A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种软件版本还原的方法和装置。该方法包括:获取软件的已安装版本对应的第一安装文件和待更新版本对应的第二安装文件;比对出所述第一安装文件相对于所述第二安装文件的差异部分并保存为备份文件;当检测到软件还原激活事件时,将所述备份文件替换所述第二安装文件相对于所述第一安装文件的差异部分。通过对安装前后的两个版本的安装文件进行比对,保存两个安装文件的差异部分,需要软件还原时直接将差异部分替换到已安装版本的对应位置,实现软件版本的快速还原,保证用户对软件的继续使用。

Description

一种软件版本还原的方法和装置
技术领域
本发明涉及软件技术领域,尤其涉及一种软件版本还原的方法和装置。
背景技术
大多数软件都是运行在特定系统上的,随着时间推移,系统会进行版本迭代,为了更好的适应系统的更新,软件也需要随着系统的更新进行适配,这种软件与系统更新的适配造成软件应该是兼容特定区间的系统版本。所以当系统升级或者软件版本升级之后,有可能会出现软件闪退、报错等无法正常使用的情况。
而在软件出现问题之后,软件的提供者从接收到反馈到解决问题,可能需要较长的一段时间,那么在这段时间内如果用户无法使用此软件,将会对用户造成不便。
发明内容
本发明提供了一种软件版本还原的方法和装置,以解决现有技术中软件升级后不可用给用户带来的不便。
为实现上述设计,本发明采用以下技术方案:
一方面采用一种软件版本还原的方法,包括:
获取软件的已安装版本对应的第一安装文件和待更新版本对应的第二安装文件;
比对出所述第一安装文件相对于所述第二安装文件的差异部分并保存为备份文件;
当检测到软件还原激活事件时,将所述备份文件替换所述第二安装文件相对于所述第一安装文件的差异部分。
其中,所述比对出所述第一安装文件相对于所述第二安装文件的差异部分并保存为备份文件,包括:
将所述第一安装文件和第二安装文件进行二进制比对;
比对出所述第一安装文件的二进制数据相对于所述第二安装文件的二进制数据的差异部分;
将所述差异部分的二进制数据保存为备份文件。
其中,所述备份文件包括定位戳和二进制数据;
所述比对出所述第一安装文件的二进制数据相对于所述第二安装文件的二进制数据的差异部分,具体为:
比对所述第一安装文件的二进制数据与所述第二安装文件的二进制数据发现差异数据段时,记录所述第二安装文件的二进制数据中差异数据段的起点和终点,以及所述第一安装文件的二进制数据中的差异数据段;
所述将所述差异部分的二进制数据保存为备份文件,具体为:
所述第二安装文件的二进制中差异数据段的起点和终点作为定位戳与所述第一安装文件的二进制数据中的差异数据段对应关联保存为备份文件。
其中,所述当检测到软件还原激活事件时,将所述备份文件替换所述第二安装文件相对于所述第一安装文件的差异部分,包括:
当检测到所述软件运行报错达到预设次数或检测到软件还原指令时,软件还原激活;
读取所述备份文件中的定位戳,根据所述定位戳定位出所述软件当前的安装文件的二进制数据中的二进制数据段;
将所述定位戳对应关联保存的二进制数据替换定位出的二进制数据段。
其中,所述备份文件保存于独立的存储分区,所述备份文件的名称包括软件名和版本号;
所述将所述差异部分的二进制数据保存为备份文件之前,还包括:
判断所述存储分区的剩余存储空间是否能保存所述备份文件;
若所述剩余存储空间不能保存所述备份文件,则删除所述软件名对应的版本号最早的备份文件。
另一方面采用一种软件版本还原的装置,包括:
安装文件获取单元,用于获取软件的已安装版本对应的第一安装文件和待更新版本对应的第二安装文件;
备份文件生成单元,用于比对出所述第一安装文件相对于所述第二安装文件的差异部分并保存为备份文件;
版本还原执行单元,用于当检测到软件还原激活事件时,将所述备份文件替换所述第二安装文件相对于所述第一安装文件的差异部分。
其中,所述备份文件生成单元,包括:
二进制比对模块,用于将所述第一安装文件和第二安装文件进行二进制比对;
差异部分确认模块,用于比对出所述第一安装文件的二进制数据相对于所述第二安装文件的二进制数据的差异部分;
差异部分保存模块,用于将所述差异部分的二进制数据保存为备份文件。
其中,所述备份文件包括定位戳和二进制数据;
所述差异部分确认模块,具体用于:
比对所述第一安装文件的二进制数据与所述第二安装文件的二进制数据发现差异数据段时,记录所述第二安装文件的二进制数据中差异数据段的起点和终点,以及所述第一安装文件的二进制数据中的差异数据段;
所述差异部分保存模块,具体用于:
所述第二安装文件的二进制中差异数据段的起点和终点作为定位戳与所述第一安装文件的二进制数据中的差异数据段对应关联保存为备份文件。
其中,所述版本还原执行单元,包括:
指令激活模块,用于当检测到所述软件运行报错达到预设次数或检测到软件还原指令时,软件还原激活;
数据定位模块,用于读取所述备份文件中的定位戳,根据所述定位戳定位出所述软件当前的安装文件的二进制数据中的二进制数据段;
数据替换模块,用于将所述定位戳对应关联保存的二进制数据替换定位出的二进制数据段。
其中,所述备份文件保存于独立的存储分区,所述备份文件的名称包括软件名和版本号;
所述装置,还包括:
存储空间判断单元,用于判断所述存储分区的剩余存储空间是否能保存所述备份文件;
备份文件删除单元,用于若所述剩余存储空间不能保存所述备份文件,则删除所述软件名对应的版本号最早的备份文件。
本发明的有益效果为:在软件更新时获取软件的已安装版本对应的第一安装文件和待更新版本对应的第二安装文件;比对出所述第一安装文件相对于所述第二安装文件的差异部分并保存为备份文件;当检测到软件还原激活事件时,将所述备份文件替换所述第二安装文件相对于所述第一安装文件的差异部分。通过对安装前后的两个版本的安装文件进行比对,保存两个安装文件的差异部分,需要软件还原时直接将差异部分替换到已安装版本的对应位置,实现软件版本的快速还原,保证用户对软件的继续使用。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据本发明实施例的内容和这些附图获得其它的附图。
图1是本发明具体实施方式中提供的一种软件版本还原的方法的第一实施例的方法流程图。
图2是本发明具体实施方式中提供的一种软件版本还原的方法的第二实施例的方法流程图。
图3是本发明具体实施方式中提供的一种软件版本还原的装置的第一实施例的结构方框图。
图4是本发明具体实施方式中提供的一种软件版本还原的装置的第二实施例的结构方框图。
具体实施方式
为使本发明解决的技术问题、采用的技术方案和达到的技术效果更加清楚,下面将结合附图对本发明实施例的技术方案作进一步的详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参考图1,其是本发明具体实施方式中提供的一种软件版本还原的方法的第一实施例的方法流程图,如图所示,该方法包括:
步骤S11:获取软件的已安装版本对应的第一安装文件和待更新版本对应的第二安装文件。
在实际使用中,软件版本升级后并不一定能够正常使用,产生这种不可使用的原因有多种,例如系统版本高于或者低于应用使用的接口对应的系统版本、软件本身的设计缺陷、软件数据被异常损坏等。软件更新前的版本经常是可用的,如果软件更新后的版本不可用,可以考虑将版本还原到原有的安装版本,一般而言,已安装的原有的版本低于待更新的新的版本。为实现软件版本的还原,本方案重新设计了版本还原策略。
软件安装和运行的基础是安装文件,不同版本的软件对应有不同的安装文件,一般而言,软件新版本的安装会覆盖替换原有的安装文件,如果原有版本的安装文件被覆盖替换不做留存,还原到原有版本的操作则无法快速执行,需要重新获得对应的安装文件,本方案中并不是将软件新版本的安装文件直接安装,而是需要对二者做一定处理以供快速还原。
需要说明的是,本方案中所说的软件并不限定计算机设备中安装的软件,同时也可用于移动终端中安装的软件,移动终端中安装的软件俗称为应用,在针对移动终端中的应用升级和版本还原实施本方案时,实施过程并无差别,不影响实施效果。
步骤S12:比对出第一安装文件相对于第二安装文件的差异部分并保存为备份文件。
在软件升级过程中,对于软件开发者而言,新的版本并不是在原有版本之外进行重新开发,而是在原有版本的基础上进行不断优化和功能扩充,甚至可以说原有版本的整体框架基本不做大的变动,仅在原有版本的整体框架上做细节的调整和功能的丰富,这也意味着软件的新版本的安装文件相比于旧版本的安装文件具备很大比例的相同。基于软件开发的前后的延续性,在本方案中进行软件版本更新时,并不是一开始就直接用新版本的安装文件替换旧版本的安装文件,而是在安装时比对出已安装版本对应的第一安装文件相对于待更新版本对应的第二安装文件二者的差异部分,并将二者的差异部分作为备份文件以供软件版本还原。
一般而言,要实现软件某个版本的安装,不管是否已有过安装,都需要该版本对应的安装文件,也基于此,要实现软件版本的还原,必需预存有或者临时获取目标版本对应的安装文件。如果是预存安装文件,需要完全保存整个安装文件;如果是临时获取目标版本,需要接入网络或从其它终端拷贝安装文件。前者占用较大空间,后者有实施条件的要求。在本方案中,相当于将需要备份的安装文件,也就是已安装版本对应的第一安装文件分为两部分,第一部分是与待更新版本对应的第二安装文件相同的部分,第二部分是与待更新版本对应的第二安装文件不同的部分。对于第一部分,直接借用第二安装文件作为保存载体;对于第二部分,单独保存。这种备份方式能够大幅降低备份文件对存储空间的要求。
步骤S13:当检测到软件还原激活事件时,将备份文件替换第二安装文件相对于第一安装文件的差异部分。
软件更新结束后,待更新版本替代已安装版本,该软件后续在第二安装文件的基础上运行。当检测到软件还原激活事件时,开启对该软件的还原。基于前述的软件备份的保存机制,保留第二安装文件中与第一安装文件相同的部分,并将备份文件中记录的差异部分替换到对应的位置,综合第二安装文件和备份文件得到最初的第一安装文件,完成软件版本的还原,在第一安装文件的基础上运行软件更新前的版本。
综上所述,在软件更新时获取软件的已安装版本对应的第一安装文件和待更新版本对应的第二安装文件;比对出第一安装文件相对于第二安装文件的差异部分并保存为备份文件;当检测到软件还原激活事件时,将备份文件替换第二安装文件相对于第一安装文件的差异部分。通过对安装前后的两个版本的安装文件进行比对,保存两个安装文件的差异部分,需要软件还原时直接将差异部分替换到已安装版本的对应位置,实现软件版本的快速还原,保证用户对软件的继续使用。
请参考图2,其是本发明具体实施方式中提供的一种软件版本还原的方法的第二实施例的方法流程图,如图所示,该方法包括:
步骤S21:获取软件的已安装版本对应的第一安装文件和待更新版本对应的第二安装文件。
在软件的待更新版本安装前,肯定需要获得该版本对应的第二安装文件,同时,已安装版本对应的第一安装文件已经存在,读取上述两个文件即可。具体而言,第一安装文件和第二安装文件可以以作为一个整体的镜像文件作为对比单位,比较二者的不同;另外,第一安装文件和第二安装文件也可以以其包含的单个文件作为对比单位,例如第一安装文件和第二安装文件中分别有70个文件和80个文件,可以就70个文件与80个文件作比对。
步骤S22:将第一安装文件和第二安装文件进行二进制比对。
在电子设备中,数据存储的基础是二进制数,在第一安装文件与第二安装文件进行比对时,优先选用二进制数据进行比对。更具体的,二进制数据以ASCII(AmericanStandard Code for Information Interchange,美国信息交换标准代码)码的形式存在,ASCII码用七位二进制数进行编码,可以表示128个字符。但是不论二进制数据的存在形式如何,比对的基础都是1和0的比较。
步骤S23:比对出第一安装文件的二进制数据相对于第二安装文件的二进制数据的差异部分。
在本方案中,差异部分并不仅仅用于确认第一安装文件相对于第二安装文件的区别,还需要根据差异部分在第二安装文件的基础上得到第一安装文件,所以需要明确差异部分的存在位置,也就是说备份文件中除了保存差异部分的二进制数据,还包括定位戳。
在本方案中,为实现对差异部分的定位,比对第一安装文件的二进制数据与第二安装文件的二进制数据发现差异数据段时,记录第二安装文件的二进制数据中差异数据段的起点和终点,以及第一安装文件的二进制数据中的差异数据段。第一安装文件和第二安装文件作为完整的文件,其中的二进制数据的内容是确定的,在该确定的结构内可以实现差异数据段的定位,差异数据段用于描述第一安装文件和第二安装文件中差异部分,应该说第一安装文件中的差异数据段与第二安装文件中的差异数据段的个数相同且一一对应,但是对应的差异数据段并不一定等长,甚至第一安装文件中的某一段差异数据段记录为空,其对应于第二安装文件中的某一段有意义的二进制数据。
对于第一安装文件和第二安装文件的二进制数据的比对过程,可以结合实际数据进行说明,例如第一安装文件中的某段二进制数据为1011101101001,第二安装文件中的某段二进制数据为1010110100011001;可以发现前一段二进制数据中的前三位以及后四位与后一段二进制数据中前三位及后四位相同,中间下划线部分对应不同,在此需要记录前一段二进制数据中的下划线部分,以及后一段二进制数据中下划线部分的起点和终点。如果第一安装文件和第二安装文件以镜像文件作比对,起点和终点的定位在同一数据中定位即可;如果第一安装文件和第二安装文件以其各自包含的文件作比对,起点和终点还需要定位至具体哪个文件。另外需要说明的是,为降低技术复杂度以及数据存储量,相邻两个差异数据段之间的相同数据的长度一般设置有最低要求,例如前述的两端二进制数据,前三位对应相同,第四位不同,第五位相同,第六位不同,在此并不会把第四位单独作为差异数据段,而是和后面的多个二进制数据一起作为差异数据段。多个差异数据段的集合即为第一安装文件相对于第二安装文件的差异部分。当然第一安装文件和第二安装文件比对时的数据复杂度肯定要高很多,相同的二进制数据的长度和不同的二进制数据的长度也比前文举例的长度要常,但是整体的数据处理过程是相似的。
步骤S24:将差异部分的二进制数据保存为备份文件。
第二安装文件的二进制中差异数据段的起点和终点作为定位戳与第一安装文件的二进制数据中的差异数据段对应关联保存为备份文件。
如果差异部分保存为表格格式,那么定位戳与二进制数据直接对应保存即可;如果差异部分保存为文本格式,那么定位戳与二进制数据作为一个单位保存,并且定位戳与二进制数据之间以及各个单位之间需要设置分隔标识,以保证后续操作的准确性。另外,可以将所有的备份文件保存到数据库中,此时数据库中除了保存定位戳和二进制数据,还需要记录各自对应的软件名和版本号。
为了避免备份文件的存储安全和识别方便,备份文件保存于独立的存储分区,备份文件的名称包括软件名和版本号。
因为独立存储的分区不必提供太大,随着备份数据的增加,可能导致分区的存储空间不够,将差异部分的二进制数据保存为备份文件之前,还包括:
判断存储分区的剩余存储空间是否能保存备份文件;
若剩余存储空间不能保存备份文件,则删除软件名对应的版本号最早的备份文件。当然,如果剩余存储空间能保存备份文件,直接保存即可。
另外,如果备份文件保存于数据库中,没有多个独立的备份文件,则直接从数据库中根据相关信息删除对应的备份记录。
步骤S25:当检测到软件运行报错达到预设次数或检测到软件还原指令时,软件还原激活。
如果软件运行连续多次出错,或者检测到用户输入的软件还原指令,则表明需要对软件进行还原,软件还原的流程激活。
步骤S26:读取备份文件中的定位戳,根据定位戳定位出软件当前的安装文件的二进制数据中的二进制数据段。
步骤S27:将定位戳对应关联保存的二进制数据替换定位出的二进制数据段。
步骤S26与步骤S27是前述差异部分比对的逆操作,在此不做详细阐述,需要单独说明的是在步骤S27中,定位戳对应关联保存的二进制数据实际为空,也就是说定位戳定位到的二进制数据段是在原有版本上新增的,在该二进制数据段没有有真实意义的数据进行替换,这里的替换实际上就是将该二进制数据段删除。
综上所述,在软件更新时获取软件的已安装版本对应的第一安装文件和待更新版本对应的第二安装文件;比对出第一安装文件相对于第二安装文件的差异部分并保存为备份文件;当检测到软件还原激活事件时,将备份文件替换第二安装文件相对于第一安装文件的差异部分。通过对安装前后的两个版本的安装文件进行比对,保存两个安装文件的差异部分,需要软件还原时直接将差异部分替换到已安装版本的对应位置,实现软件版本的快速还原,保证用户对软件的继续使用。同时,对数据的精确定位和保存实现了软件版本还原时的精确无误,保证软件版本还原后的正常运行。
以下为本发明具体实施方式中的提供的一种软件版本还原的装置的实施例,装置的实施例基于前述的方法的实施例实现,在装置的实施例中未尽的描述,请参考前述的方法的实施例。
请参考图3,其是本发明具体实施方式中提供的一种软件版本还原的装置的第一实施例的结构方框图,如图所示,该装置包括:
安装文件获取单元10,用于获取软件的已安装版本对应的第一安装文件和待更新版本对应的第二安装文件;
备份文件生成单元40,用于比对出第一安装文件相对于第二安装文件的差异部分并保存为备份文件;
版本还原执行单元50,用于当检测到软件还原激活事件时,将备份文件替换第二安装文件相对于第一安装文件的差异部分。
综上所述,上述各单元的协同运转,在软件更新时获取软件的已安装版本对应的第一安装文件和待更新版本对应的第二安装文件;比对出第一安装文件相对于第二安装文件的差异部分并保存为备份文件;当检测到软件还原激活事件时,将备份文件替换第二安装文件相对于第一安装文件的差异部分。通过对安装前后的两个版本的安装文件进行比对,保存两个安装文件的差异部分,需要软件还原时直接将差异部分替换到已安装版本的对应位置,实现软件版本的快速还原,保证用户对软件的继续使用。
请参考图4,其是本发明具体实施方式中提供的一种软件版本还原的装置的第二实施例的结构方框图,如图所示,该装置包括:
安装文件获取单元10,用于获取软件的已安装版本对应的第一安装文件和待更新版本对应的第二安装文件;
备份文件生成单元40,用于比对出第一安装文件相对于第二安装文件的差异部分并保存为备份文件;
版本还原执行单元50,用于当检测到软件还原激活事件时,将备份文件替换第二安装文件相对于第一安装文件的差异部分。
其中,备份文件生成单元40,包括:
二进制比对模块41,用于将第一安装文件和第二安装文件进行二进制比对;
差异部分确认模块42,用于比对出第一安装文件的二进制数据相对于第二安装文件的二进制数据的差异部分;
差异部分保存模块43,用于将差异部分的二进制数据保存为备份文件。
其中,备份文件包括定位戳和二进制数据;
差异部分确认模块42,具体用于:
比对第一安装文件的二进制数据与第二安装文件的二进制数据发现差异数据段时,记录第二安装文件的二进制数据中差异数据段的起点和终点,以及第一安装文件的二进制数据中的差异数据段;
差异部分保存模块43,具体用于:
第二安装文件的二进制中差异数据段的起点和终点作为定位戳与第一安装文件的二进制数据中的差异数据段对应关联保存为备份文件。
其中,版本还原执行单元50,包括:
指令激活模块51,用于当检测到软件运行报错达到预设次数或检测到软件还原指令时,软件还原激活;
数据定位模块52,用于读取备份文件中的定位戳,根据定位戳定位出软件当前的安装文件的二进制数据中的二进制数据段;
数据替换模块53,用于将定位戳对应关联保存的二进制数据替换定位出的二进制数据段。
其中,备份文件保存于独立的存储分区,备份文件的名称包括软件名和版本号;
该装置,还包括:
存储空间判断单元20,用于判断存储分区的剩余存储空间是否能保存备份文件;
备份文件删除单元30,用于若剩余存储空间不能保存备份文件,则删除软件名对应的版本号最早的备份文件。
综上所述,上述各单元的协同运转,在软件更新时获取软件的已安装版本对应的第一安装文件和待更新版本对应的第二安装文件;比对出第一安装文件相对于第二安装文件的差异部分并保存为备份文件;当检测到软件还原激活事件时,将备份文件替换第二安装文件相对于第一安装文件的差异部分。通过对安装前后的两个版本的安装文件进行比对,保存两个安装文件的差异部分,需要软件还原时直接将差异部分替换到已安装版本的对应位置,实现软件版本的快速还原,保证用户对软件的继续使用。同时,对数据的精确定位和保存实现了软件版本还原时的精确无误,保证软件版本还原后的正常运行。
以上结合具体实施例描述了本发明的技术原理。这些描述只是为了解释本发明的原理,而不能以任何方式解释为对本发明保护范围的限制。基于此处的解释,本领域的技术人员不需要付出创造性的劳动即可联想到本发明的其它具体实施方式,这些方式都将落入本发明的保护范围之内。

Claims (10)

1.一种软件版本还原的方法,其特征在于,包括:
获取软件的已安装版本对应的第一安装文件和待更新版本对应的第二安装文件;
比对出所述第一安装文件相对于所述第二安装文件的差异部分并保存为备份文件;
当检测到软件还原激活事件时,将所述备份文件替换所述第二安装文件相对于所述第一安装文件的差异部分。
2.根据权利要求1所述的方法,其特征在于,所述比对出所述第一安装文件相对于所述第二安装文件的差异部分并保存为备份文件,包括:
将所述第一安装文件和第二安装文件进行二进制比对;
比对出所述第一安装文件的二进制数据相对于所述第二安装文件的二进制数据的差异部分;
将所述差异部分的二进制数据保存为备份文件。
3.根据权利要求2所述的方法,其特征在于,所述备份文件包括定位戳和二进制数据;
所述比对出所述第一安装文件的二进制数据相对于所述第二安装文件的二进制数据的差异部分,具体为:
比对所述第一安装文件的二进制数据与所述第二安装文件的二进制数据发现差异数据段时,记录所述第二安装文件的二进制数据中差异数据段的起点和终点,以及所述第一安装文件的二进制数据中的差异数据段;
所述将所述差异部分的二进制数据保存为备份文件,具体为:
所述第二安装文件的二进制中差异数据段的起点和终点作为定位戳与所述第一安装文件的二进制数据中的差异数据段对应关联保存为备份文件。
4.根据权利要求3所述的方法,其特征在于,所述当检测到软件还原激活事件时,将所述备份文件替换所述第二安装文件相对于所述第一安装文件的差异部分,包括:
当检测到所述软件运行报错达到预设次数或检测到软件还原指令时,软件还原激活;
读取所述备份文件中的定位戳,根据所述定位戳定位出所述软件当前的安装文件的二进制数据中的二进制数据段;
将所述定位戳对应关联保存的二进制数据替换定位出的二进制数据段。
5.根据权利要求1所述的方法,其特征在于,所述备份文件保存于独立的存储分区,所述备份文件的名称包括软件名和版本号;
所述将所述差异部分的二进制数据保存为备份文件之前,还包括:
判断所述存储分区的剩余存储空间是否能保存所述备份文件;
若所述剩余存储空间不能保存所述备份文件,则删除所述软件名对应的版本号最早的备份文件。
6.一种软件版本还原的装置,其特征在于,包括:
安装文件获取单元,用于获取软件的已安装版本对应的第一安装文件和待更新版本对应的第二安装文件;
备份文件生成单元,用于比对出所述第一安装文件相对于所述第二安装文件的差异部分并保存为备份文件;
版本还原执行单元,用于当检测到软件还原激活事件时,将所述备份文件替换所述第二安装文件相对于所述第一安装文件的差异部分。
7.根据权利要求6所述的装置,其特征在于,所述备份文件生成单元,包括:
二进制比对模块,用于将所述第一安装文件和第二安装文件进行二进制比对;
差异部分确认模块,用于比对出所述第一安装文件的二进制数据相对于所述第二安装文件的二进制数据的差异部分;
差异部分保存模块,用于将所述差异部分的二进制数据保存为备份文件。
8.根据权利要求7所述的装置,其特征在于,所述备份文件包括定位戳和二进制数据;
所述差异部分确认模块,具体用于:
比对所述第一安装文件的二进制数据与所述第二安装文件的二进制数据发现差异数据段时,记录所述第二安装文件的二进制数据中差异数据段的起点和终点,以及所述第一安装文件的二进制数据中的差异数据段;
所述差异部分保存模块,具体用于:
所述第二安装文件的二进制中差异数据段的起点和终点作为定位戳与所述第一安装文件的二进制数据中的差异数据段对应关联保存为备份文件。
9.根据权利要求8所述的装置,其特征在于,所述版本还原执行单元,包括:
指令激活模块,用于当检测到所述软件运行报错达到预设次数或检测到软件还原指令时,软件还原激活;
数据定位模块,用于读取所述备份文件中的定位戳,根据所述定位戳定位出所述软件当前的安装文件的二进制数据中的二进制数据段;
数据替换模块,用于将所述定位戳对应关联保存的二进制数据替换定位出的二进制数据段。
10.根据权利要求6所述的装置,其特征在于,所述备份文件保存于独立的存储分区,所述备份文件的名称包括软件名和版本号;
所述装置,还包括:
存储空间判断单元,用于判断所述存储分区的剩余存储空间是否能保存所述备份文件;
备份文件删除单元,用于若所述剩余存储空间不能保存所述备份文件,则删除所述软件名对应的版本号最早的备份文件。
CN201610957507.5A 2016-10-27 2016-10-27 一种软件版本还原的方法和装置 Pending CN106547651A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610957507.5A CN106547651A (zh) 2016-10-27 2016-10-27 一种软件版本还原的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610957507.5A CN106547651A (zh) 2016-10-27 2016-10-27 一种软件版本还原的方法和装置

Publications (1)

Publication Number Publication Date
CN106547651A true CN106547651A (zh) 2017-03-29

Family

ID=58393241

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610957507.5A Pending CN106547651A (zh) 2016-10-27 2016-10-27 一种软件版本还原的方法和装置

Country Status (1)

Country Link
CN (1) CN106547651A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107943511A (zh) * 2017-11-08 2018-04-20 上海青橙实业有限公司 升级方法及移动终端

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567053A (zh) * 2011-12-20 2012-07-11 云海创想信息技术(无锡)有限公司 一种软件版本回退的方法及装置
CN103973475A (zh) * 2013-02-05 2014-08-06 腾讯科技(深圳)有限公司 差异补丁包生成方法及下载方法、服务器、客户端
CN105045631A (zh) * 2015-07-30 2015-11-11 北京奇虎科技有限公司 一种升级客户端侧应用程序的方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567053A (zh) * 2011-12-20 2012-07-11 云海创想信息技术(无锡)有限公司 一种软件版本回退的方法及装置
CN103973475A (zh) * 2013-02-05 2014-08-06 腾讯科技(深圳)有限公司 差异补丁包生成方法及下载方法、服务器、客户端
CN105045631A (zh) * 2015-07-30 2015-11-11 北京奇虎科技有限公司 一种升级客户端侧应用程序的方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107943511A (zh) * 2017-11-08 2018-04-20 上海青橙实业有限公司 升级方法及移动终端

Similar Documents

Publication Publication Date Title
US10423585B2 (en) Method and device for making differential upgrade package, and method and device for system differential upgrading
CN103473067B (zh) 嵌入式Linux分区与数据还原方法、系统及系统开发方法
CN105404536B (zh) 终端软件升级方法及终端软件升级装置
CN102736978A (zh) 一种检测应用程序的安装状态的方法及装置
CN102831035A (zh) 备份信息的方法及装置
CN102591745A (zh) 基于安卓系统的系统恢复方法、装置及智能设备
KR20190050993A (ko) 이관 시스템 및 방법 업데이트
CN103064752A (zh) 一种文件修复方法及装置
CN112506616B (zh) 一种基于云平台卷实现虚拟机跨云快速恢复的系统及方法
CN105550071B (zh) 系统文件升级及检测方法、通信设备
CN110502264A (zh) 系统升级方法、终端及可读存储介质
CN105700903A (zh) 一种用户终端的升级方法和用户终端
CN106055372A (zh) 一种卸载应用程序的方法和装置
CN106547651A (zh) 一种软件版本还原的方法和装置
CN107391312B (zh) 数据云备份方法及系统
CN109992492A (zh) 功能模块的日志记录方法、装置、设备及可读存储介质
CN107818026A (zh) 一种缓存分区重构的方法和装置
CN103823701B (zh) 一种移动终端产品版本自动升级控制方法
CN105760242B (zh) 自助设备的驱动程序自适应方法及装置
CN103530154A (zh) 产品升级的方法和设备
CN105827739B (zh) 联系人信息同步方法、装置、服务器及系统
EP1683028A4 (en) EMULATED STORAGE SYSTEM FOR SUPPORTING A INSTANT VOLUME RESTORATION
US20120005664A1 (en) Storage device and configuration-information storing method
CN110362324A (zh) 一种网卡升级方法及装置
CN109491679B (zh) 一种cpld在线升级方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20170329

RJ01 Rejection of invention patent application after publication