CN102609328B - ***差分升级方法和装置、移动终端 - Google Patents

***差分升级方法和装置、移动终端 Download PDF

Info

Publication number
CN102609328B
CN102609328B CN201210020390.XA CN201210020390A CN102609328B CN 102609328 B CN102609328 B CN 102609328B CN 201210020390 A CN201210020390 A CN 201210020390A CN 102609328 B CN102609328 B CN 102609328B
Authority
CN
China
Prior art keywords
file
upgraded
script
rollback
upgrade
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
Application number
CN201210020390.XA
Other languages
English (en)
Other versions
CN102609328A (zh
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.)
Honor Device Co Ltd
Original Assignee
Huawei Device 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 Huawei Device Co Ltd filed Critical Huawei Device Co Ltd
Priority to CN201210020390.XA priority Critical patent/CN102609328B/zh
Publication of CN102609328A publication Critical patent/CN102609328A/zh
Priority to EP13740816.7A priority patent/EP2799993A1/en
Priority to PCT/CN2013/070747 priority patent/WO2013110233A1/zh
Priority to US14/445,282 priority patent/US9804933B2/en
Application granted granted Critical
Publication of CN102609328B publication Critical patent/CN102609328B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例公开了一种***差分升级方法和装置、移动终端,属于通信技术领域。所述方法包括:获取升级脚本和升级数据;根据升级脚本和升级数据,对被升级文件进行升级;根据升级脚本中当前执行的文件处理命令和该当前执行的文件处理命令对应的被升级文件,生成与该被升级文件相对应的回滚数据和回滚脚本;当升级失败时,根据回滚数据执行所述回滚脚本。所述装置包括:获取模块、升级模块、生成模块和执行模块。本发明实施例通过根据升级脚本中当前执行的文件处理命令和与该文件处理命令对应的被升级文件,生成回滚数据和回滚脚本,升级失败时,根据该回滚数据执行该回滚脚本,可以恢复到升级前的***。

Description

***差分升级方法和装置、移动终端
技术领域
本发明涉及通信技术领域,特别涉及一种***差分升级方法和装置、移动终端。
背景技术
OTA(Over The Air,空中下载)升级是方便用户更新设备固件以修复***BUG的一种方式,它通常通过GSM(Global System of Mobile communication,全球通讯***)、CDMA(Code Division Multiple Access,码分多址)、WCDMA(Wideband Code Division MultipleAccess,宽带码分多址)等网络来搭载数据流对目标设备进行更新或数据传输。由于OTA升级不需要下载完整的数据包并且是在现有***软件的基础上进行升级,大大节省了用户升级的时间,所以应用日益广泛。
现有技术中的OTA升级方法通常包括:启动升级线程;从升级包中读取升级脚本中的内容,其中,升级脚本中标明进度条显示、删除哪个文件或给哪个文件打补丁或新增哪个文件;升级程序根据脚本的内容逐句运行。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
在现有的OTA升级过程中,一旦用户取消升级或者升级意外失败,可能会导致***运行不正常,甚至***无法启动,造成致命的事故。
发明内容
为了解决现有技术存在由于OTA升级失败、***无法恢复而导致的***无法启动、甚至造成事故的问题,本发明实施例提供了一种***差分升级方法和装置、移动终端。
一方面,本发明实施例提供了一种***差分升级方法,该方法包括:
获取升级脚本和升级数据,所述升级脚本包括文件处理命令,所述文件处理命令包括被升级文件的标识;
根据所述升级脚本和升级数据,对被升级文件进行升级,所述被升级文件与所述文件处理命令中的被升级文件的标识相对应;
根据所述升级脚本中当前执行的文件处理命令和所述当前执行的文件处理命令对应的被升级文件,生成与所述被升级文件相对应的回滚数据和回滚脚本;
当升级失败时,根据所述回滚数据执行所述回滚脚本;
其中,所述文件处理命令包括打补丁命令,所述升级数据包括从与所述打补丁命令对应的被升级文件升级到新文件的第一补丁文件;
则所述根据所述升级脚本中当前执行的文件处理命令和所述当前执行的文件处理命令对应的被升级文件,生成与所述被升级文件相对应的回滚数据和回滚脚本,具体包括:
在生成所述新文件之前,将从所述新文件还原到所述打补丁命令对应的被升级文件的第二补丁文件保存为回滚数据;在所述回滚脚本中设置打补丁命令,所述打补丁命令包括与所述升级脚本中的打补丁命令对应的被升级文件的标识。
另一方面,本发明实施例还提供了一种***差分升级装置,该装置包括:
获取模块,用于获取升级脚本和升级数据,所述升级脚本包括文件处理命令,所述文件处理命令包括被升级文件的标识;
升级模块,用于根据所述获取模块获取的升级脚本和升级数据,对被升级文件进行升级,所述被升级文件与所述文件处理命令中的被升级文件的标识相对应;
生成模块,用于根据所述升级脚本中所述升级模块当前执行的文件处理命令和所述当前执行的文件处理命令对应的被升级文件,生成与所述被升级文件相对应的回滚数据和回滚脚本;
执行模块,用于当所述升级模块升级失败时,根据所述回滚数据执行所述回滚脚本;
其中,所述获取模块获取的升级脚本中的文件处理命令包括打补丁命令,所述升级数据包括从与所述打补丁命令对应的被升级文件升级到新文件的第一补丁文件;
则所述生成模块具体用于在所述升级模块生成所述新文件之前,将从所述新文件还原到所述打补丁命令对应的被升级文件的第二补丁文件保存为回滚数据;在所述回滚脚本中设置打补丁命令,所述打补丁命令包括与所述升级脚本中的打补丁命令对应的被升级文件的标识。
再一方面,本发明实施例还提供了一种移动终端,该移动终端包括上述***差分升级装置。
通过根据升级脚本中当前执行的文件处理命令和与所述当前执行的文件处理命令对应的被升级文件,生成与当前被升级文件相对应的回滚数据和回滚脚本,当升级失败时,根据该回滚数据执行该回滚脚本,可以恢复到升级前的***,从而可以避免升级失败时,***运行不正常和无法启动的情况。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例1中提供的***差分升级方法的流程图;
图2是本发明实施例2中提供的***差分升级方法的流程图;
图3是本发明实施例3中提供的***差分升级方法的流程图;
图4是本发明实施例4中提供的***差分升级方法的流程图;
图5是本发明实施例5中提供的***差分升级装置的结构框图;
图6是本发明实施例6中提供的***差分升级装置的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
如图1所示,本发明实施例提供了一种***差分升级方法,该方法包括:
步骤101:获取升级脚本和升级数据,该升级脚本包括文件处理命令,该文件处理命令包括被升级文件的标识。
具体地,该升级脚本中可以包括删除文件、为文件打补丁、增加文件中的一个或多个文件处理命令。
步骤102:根据升级脚本和升级数据,对被升级文件进行升级,该被升级文件与文件处理命令中的被升级文件的标识相对应。
具体地,该步骤包括:
读取升级脚本中的文件处理命令;
根据读取到的文件处理命令和对应的升级数据,对被升级文件进行升级。
步骤103:根据升级脚本中当前执行的文件处理命令和该当前执行的文件处理命令对应的被升级文件,生成与该被升级文件相对应的回滚数据和回滚脚本。
步骤104:当升级失败时,根据生成的回滚数据执行回滚脚本。
优选的,若当前升级失败,升级程序会返回一个表示升级失败的值。当收到该值时,即执行生成的回滚脚本,从而恢复到升级前的***。
需要说明的是,在实际应用中,步骤102和步骤103并没有先后顺序,是同时进行的。比如,若当前读取的文件处理命令是删除文件命令,则步骤103在步骤102读取了文件处理命令但在执行删除操作以前进行;若当前读取的文件处理命令是打补丁命令,则步骤103在步骤102中执行对文件打补丁的过程中进行。
进一步地,该***差分升级方法优选用于OTA升级。
本发明实施例通过根据升级脚本中当前执行的文件处理命令和与所述当前执行的文件处理命令对应的被升级文件,生成与当前被升级文件相对应的回滚数据和回滚脚本,当升级失败时,根据该回滚数据执行该回滚脚本,可以恢复到升级前的***,从而可以避免升级失败时,***运行不正常和无法启动的情况。
实施例2
本实施例以当前升级为删除某一文件为例,详细说明本发明实施例的***差分升级方法。如图2所示,该方法包括:
步骤201:获取升级脚本和升级数据,该升级脚本包括文件处理命令,该文件处理命令包括被升级文件的标识。
具体地,该文件处理命令包括删除文件命令,升级数据为空。
步骤202:根据获取到的升级脚本和升级数据,对被升级文件进行升级。
进一步地,该步骤包括:根据升级脚本中的删除文件命令执行删除文件。
具体地,该步骤包括:
步骤202a:启动更新线程update-binary;
步骤202b:读取升级脚本update-script中的删除文件命令delete,并根据升级脚本的删除文件命令delete执行操作,如删除文件。
步骤203:根据升级脚本中当前执行的文件处理命令和该当前执行的文件处理命令对应的被升级文件,生成与该被升级文件相对应的回滚数据和回滚脚本。
进一步地,该步骤包括:在执行该删除文件命令前,将与该删除文件命令对应的被升级文件的文件内容、路径和文件属性保存为回滚数据,该文件属性通常包括UID(User ID,用户标识)、GID(Group ID,组ID)和操作权限等。并在该回滚脚本中设置增加文件命令和设置文件属性命令,该增加文件命令和设置文件属性命令中包括与该删除文件命令对应的被升级文件的标识。
优选地,该步骤还包括:在该回滚脚本中设置显示回滚进度命令。具体地,可以通过显示进度条的方式显示回滚进度,也可以通过百分比的方式显示回滚进度。
具体地,该步骤包括:
步骤203a:获取被升级文件,即当前待删除的文件的文件属性,并将设置文件属性命令作为回滚脚本的第一句;
步骤203b:将被升级文件复制到一备份目录下,并将增加文件命令添加为回滚脚本的第一句;
步骤203c:将显示进度show_progress命令复制为回滚脚本的第一句。
需要说明的是,该步骤203通常与步骤202同时进行。在本实施例中,步骤203通常在步骤202b执行删除操作之前进行。
步骤204:判断升级是否失败,若失败,则执行步骤205,若成功,则执行步骤206。
具体地,可以通过升级程序返回的值来判断当前升级是否失败,若升级程序返回的值表示升级失败,则执行步骤205。
进一步地,可以新增一个全局变量A,该全局变量A可取两个值:a1和a2,其中a1代表正常升级,a2代表升级回滚,默认情况下A取a1值,当升级出错时,将A的值设为a2。
步骤205:根据回滚数据执行该回滚脚本。
在该步骤完成后,执行步骤206。
步骤206:删除升级过程中生成的回滚数据和回滚脚本。
本发明实施例通过根据升级脚本中当前执行的文件处理命令和与当前执行的文件处理命令对应的被升级文件,生成与当前被升级文件相对应的回滚数据和回滚脚本,当升级失败时,根据该回滚数据执行该回滚脚本,可以恢复到升级前的***,从而可以避免升级失败时,***运行不正常和无法启动的情况。进一步地,当升级失败时,可以根据回滚脚本中的增加文件命令,将被删除的文件恢复,从而回复到升级前的***。
实施例3
本实施例以当前升级为为某一文件打补丁为例,详细说明本发明实施例的***差分升级方法。如图3所示,该方法包括:
步骤301:获取升级脚本和升级数据,该升级脚本包括文件处理命令,该文件处理命令包括被升级文件的标识。
具体地,该文件处理命令包括打补丁命令,升级数据包括从与该打补丁命令对应的被升级文件升级到新文件的第一补丁文件。
进一步地,该升级脚本还包括文件检验命令,用于对与该打补丁命令对应的被升级文件进行检验。
步骤302:根据升级脚本和升级数据,对被升级文件进行升级。
进一步地,该步骤包括:根据升级脚本中的打补丁命令、采用升级数据中的第一补丁文件执行为文件打补丁的操作。
具体地,该步骤包括:
步骤302a:启动更新线程update-binary;
步骤302b:读取升级脚本update-script中的文件检验命令apply_patch_check和打补丁命令apply_patch,并根据该文件检验命令apply_patch_check和打补丁命令apply_patch执行操作,即为某一文件打补丁。
也就是说,为某一文件打补丁的操作具体包括:
检验当前被升级文件,即需要打补丁的文件(原始文件)是否符合要求,如是否为规定的版本;
若当前被升级文件符合要求,则为该文件打补丁,即根据当前被升级文件file生成补丁文件file.patch,然后将该补丁文件file.patch重命名为file。
步骤303:根据升级脚本中当前执行的文件处理命令和该当前执行的文件处理命令对应的被升级文件,生成与该被升级文件相对应的回滚数据和回滚脚本。
具体地,该步骤包括:在生成新文件之前,将从步骤302b中的新文件还原到打补丁命令对应的被升级文件的第二补丁文件保存为回滚数据,在回滚脚本中设置打补丁命令,该打补丁命令包括与升级脚本中的打补丁命令对应的被升级文件的标识。也就是说,该第二补丁文件为从重命名前的file.patch到原始文件file的补丁文件file.p。
优选地,该步骤还可以包括:在回滚脚本中设置校验命令apply_patch_check,用于检验新文件是否符合要求,比如是否为规定的版本;若新文件符合要求,则应用该第二补丁文件。
优选地,该步骤还可以包括:在回滚脚本中设置显示回滚进度命令。具体地,可以通过显示进度条的方式显示回滚进度,也可以通过百分比的方式显示回滚进度。
进一步地,该步骤包括:
步骤303a:运行bsdiff工具生成第二补丁文件,即由重命名前的file.patch到原始文件file的补丁文件file.p,并将其复制到一备份目录中;
步骤303b:生成打补丁命令apply_patch,并将其添加到回滚脚本的第一句;
步骤303c:生成文件校验命令apply_patch_check,并将其添加到回滚脚本的第一句;
步骤303d:将显示进度show_progress的命令复制为回滚脚本的第一句。
需要说明的是,该步骤需要在步骤302b中的将该补丁文件file.patch重命名为file之前执行。
步骤304:判断升级是否失败,若失败,则执行步骤305,若成功,则执行步骤306。
具体地,可以通过升级程序返回的值来判断当前升级是否失败,若升级程序返回的值表示升级失败,则执行步骤305。
进一步地,可以新增一个全局变量A,该全局变量A可取两个值:a1和a2,其中a1代表正常升级,a2代表升级回滚,默认情况下A取a1值,当升级出错时,将A的值设为a2。
步骤305:根据该回滚数据执行该回滚脚本。
在该步骤完成后,执行步骤306。
步骤306:删除升级过程中生成的回滚数据和回滚脚本。
本发明实施例通过根据升级脚本中当前执行的文件处理命令和与所述当前执行的文件处理命令对应的被升级文件,生成与当前被升级文件相对应的回滚数据和回滚脚本,当升级失败时,根据该回滚数据执行该回滚脚本,可以恢复到升级前的***,从而可以避免升级失败时,***运行不正常和无法启动的情况。进一步地,当升级失败时,可以根据回滚脚本中的打补丁命令,将打补丁的文件恢复成打补丁以前的被升级文件,从而回复到升级前的***。
实施例4
本实施例以当前升级为增加某一文件为例,详细说明本发明实施例的***差分升级方法。如图4所示,该方法包括:
步骤401:获取升级脚本和升级数据,该升级脚本包括文件处理命令,该文件处理命令包括被升级文件的标识。
具体地,该文件处理命令包括增加文件命令,升级数据包括与该增加文件命令对应的被升级文件的文件内容、路径和文件属性。
步骤402:根据获取到的升级脚本和升级数据,对被升级文件进行升级。
具体地,该步骤包括:
步骤402a:启动更新线程update-binary;
步骤402b:读取升级脚本update-script中的增加文件命令package_extract_file,并根据该增加文件命令package_extract_file执行操作,即增加某一文件。
步骤403:根据升级脚本中当前执行的文件处理命令和该当前执行的文件处理命令对应的被升级文件,生成与该被升级文件相对应的回滚数据和回滚脚本。
具体地,该步骤包括:在回滚脚本中设置删除文件命令,该删除文件命令包括增加文件命令对应的被升级文件的标识。该回滚数据为空,即执行新增某一文件的升级操作时,不生成回滚数据。
优选地,该步骤还包括:在回滚脚本中设置显示回滚进度命令。具体地,可以通过显示进度条的方式显示回滚进度,也可以通过百分比的方式显示回滚进度。
进一步地,该步骤包括:
步骤403a:生成删除文件命令,该删除文件命令中包括当前被升级文件,即当前增加的文件的标识,并将删除文件命令添加为回滚脚本的第一句;
步骤403b:将显示进度命令show_progress复制为回滚脚本的第一句。
需要说明的是,该步骤通常与步骤402b同时进行。
步骤404:判断升级是否失败,若失败,则执行步骤405,若成功,则执行步骤406。
具体地,可以通过升级程序返回的值来判断当前升级是否失败,若升级程序返回的值表示升级失败,则执行步骤405。
进一步地,可以新增一个全局变量A,该全局变量A可取两个值:a1和a2,其中a1代表正常升级,a2代表升级回滚,默认情况下A取a1值,当升级出错时,将A的值设为a2。
步骤405:根据回滚数据执行该回滚脚本。
在该步骤完成后,执行步骤406。
步骤406:删除升级过程中生成的回滚数据和回滚脚本。
本发明实施例通过根据升级脚本中当前执行的文件处理命令和与所述当前执行的文件处理命令对应的被升级文件,生成与当前被升级文件相对应的回滚数据和回滚脚本,当升级失败时,根据该回滚数据执行该回滚脚本,可以恢复到升级前的***,从而可以避免升级失败时,***运行不正常和无法启动的情况。进一步地,当升级失败时,可以根据回滚脚本中的删除文件命令,将新增的文件删除,从而回复到升级前的***。
实施例5
如图5所示,本发明实施例提供了一种***差分升级装置,该装置包括:
获取模块501,用于获取升级脚本和升级数据,该升级脚本包括文件处理命令,该文件处理命令包括被升级文件的标识;
升级模块502,用于根据获取模块501获取的升级脚本和升级数据,对被升级文件进行升级,该被升级文件与文件处理命令中的被升级文件的标识相对应;
生成模块503,用于根据升级脚本中升级模块502当前执行的文件处理命令和该当前执行的文件处理命令对应的被升级文件,生成与被升级文件相对应的回滚数据和回滚脚本;
执行模块504,用于当升级模块502升级失败时,根据生成模块503生成的回滚数据执行回滚脚本。
进一步地,获取模块501获取的升级脚本中的文件处理命令包括删除文件命令,升级数据为空;则生成模块503具体用于在升级模块502执行升级脚本中的删除文件命令前,将与该删除文件命令对应的被升级文件的文件内容、路径和文件属性保存为回滚数据;在回滚脚本中设置增加文件命令和设置文件属性命令,该增加文件命令和设置文件属性命令中包括该删除文件命令对应的被升级文件的标识。
更进一步地,获取模块501获取的升级脚本中的文件处理命令包括打补丁命令,升级数据包括从与打补丁命令对应的被升级文件升级到新文件的第一补丁文件;则生成模块503具体用于在升级模块502生成新文件之前,将从该新文件还原到升级脚本中的打补丁命令对应的被升级文件的第二补丁文件保存为回滚数据;在回滚脚本中设置打补丁命令,该打补丁命令包括与升级脚本中的打补丁命令对应的被升级文件的标识。
更进一步地,获取模块501获取的升级脚本中的文件处理命令包括增加文件命令和设置文件属性命令,升级数据包括与该增加文件命令对应的被升级文件的文件内容、路径和文件属性;则生成模块503具体用于在回滚脚本中设置删除文件命令,该删除文件命令包括升级脚本中的增加文件命令对应的被升级文件的标识。此时,回滚数据为空。
优选地,生成模块503还用于在回滚脚本中设置显示回滚进度命令。
本发明实施例通过根据升级脚本中当前执行的文件处理命令和与所述当前执行的文件处理命令对应的被升级文件,生成与当前被升级文件相对应的回滚数据和回滚脚本,当升级失败时,根据该回滚数据执行该回滚脚本,可以恢复到升级前的***,从而可以避免升级失败时,***运行不正常和无法启动的情况。
实施例6
如图6所示,本发明实施例提供了一种***差分升级装置,与实施例5的装置不同的是,该装置还包括:
删除模块605,用于在升级模块502升级成功后、或执行模块504完成根据回滚数据执行回滚脚本后,删除生成模块503生成的回滚脚本和回滚数据。
本发明实施例通过根据升级脚本中当前执行的文件处理命令和与所述当前执行的文件处理命令对应的被升级文件,生成与当前被升级文件相对应的回滚数据和回滚脚本,当升级失败时,根据该回滚数据执行该回滚脚本,可以恢复到升级前的***,从而可以避免升级失败时,***运行不正常和无法启动的情况。
实施例5和6中的空中升级下载装置通常安装在移动终端中。
实施例7
本发明实施例提供了一种移动终端,该移动终端包括实施例5或6提供的***差分升级装置。
具体地,该移动终端可以为手机、笔记本电脑、PDA(Personal Digital Assistant,掌上电脑)等。
本发明实施例通过根据升级脚本中当前执行的文件处理命令和与所述当前执行的文件处理命令对应的被升级文件,生成与当前被升级文件相对应的回滚数据和回滚脚本,当升级失败时,根据该回滚数据执行该回滚脚本,可以恢复到升级前的***,从而可以避免升级失败时,***运行不正常和无法启动的情况。
需要说明的是:上述实施例提供的***差分升级装置、移动终端在进行升级时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的***差分升级装置、移动终端与***差分升级方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种***差分升级方法,其特征在于,所述方法包括:
获取升级脚本和升级数据,所述升级脚本包括文件处理命令,所述文件处理命令包括被升级文件的标识;
根据所述升级脚本和升级数据,对被升级文件进行升级,所述被升级文件与所述文件处理命令中的被升级文件的标识相对应;
根据所述升级脚本中当前执行的文件处理命令和所述当前执行的文件处理命令对应的被升级文件,生成与所述被升级文件相对应的回滚数据和回滚脚本;
当升级失败时,根据所述回滚数据执行所述回滚脚本;
其中,所述文件处理命令包括打补丁命令,所述升级数据包括从与所述打补丁命令对应的被升级文件升级到新文件的第一补丁文件;
则所述根据所述升级脚本中当前执行的文件处理命令和所述当前执行的文件处理命令对应的被升级文件,生成与所述被升级文件相对应的回滚数据和回滚脚本,具体包括:
在生成所述新文件之前,将从所述新文件还原到所述打补丁命令对应的被升级文件的第二补丁文件保存为回滚数据;在所述回滚脚本中设置打补丁命令,所述打补丁命令包括与所述升级脚本中的打补丁命令对应的被升级文件的标识。
2.根据权利要求1所述的方法,其特征在于,所述文件处理命令还包括删除文件命令,所述升级数据为空;
则所述根据所述升级脚本中当前执行的文件处理命令和所述当前执行的文件处理命令对应的被升级文件,生成与所述被升级文件相对应的回滚数据和回滚脚本,还包括:
在执行所述删除文件命令前,将与所述删除文件命令对应的被升级文件的文件内容、路径和文件属性保存为回滚数据;在所述回滚脚本中设置增加文件命令和设置文件属性命令,所述增加文件命令和设置文件属性命令中包括所述删除文件命令对应的被升级文件的标识。
3.根据权利要求1所述的方法,其特征在于,所述文件处理命令还包括增加文件命令和设置文件属性命令,所述升级数据还包括与所述增加文件命令对应的被升级文件的文件内容、路径和文件属性;
则所述根据所述升级脚本中当前执行的文件处理命令和所述当前执行的文件处理命令对应的被升级文件,生成与所述被升级文件相对应的回滚数据和回滚脚本,还包括:
在所述回滚脚本中设置删除文件命令,所述删除文件命令包括所述增加文件命令对应的被升级文件的标识。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述根据所述升级脚本中当前执行的文件处理命令和所述当前执行的文件处理命令对应的被升级文件,生成与所述被升级文件相对应的回滚数据和回滚脚本,还包括:
在所述回滚脚本中设置显示回滚进度命令。
5.根据权利要求1所述的方法,其特征在于,在升级成功后、或所述回滚脚本执行完成后,所述方法还包括:
删除所述回滚数据和回滚脚本。
6.一种***差分升级装置,其特征在于,所述装置包括:
获取模块,用于获取升级脚本和升级数据,所述升级脚本包括文件处理命令,所述文件处理命令包括被升级文件的标识;
升级模块,用于根据所述获取模块获取的升级脚本和升级数据,对被升级文件进行升级,所述被升级文件与所述文件处理命令中的被升级文件的标识相对应;
生成模块,用于根据所述升级脚本中所述升级模块当前执行的文件处理命令和所述当前执行的文件处理命令对应的被升级文件,生成与所述被升级文件相对应的回滚数据和回滚脚本;
执行模块,用于当所述升级模块升级失败时,根据所述回滚数据执行所述回滚脚本;
其中,所述获取模块获取的升级脚本中的文件处理命令包括打补丁命令,所述升级数据包括从与所述打补丁命令对应的被升级文件升级到新文件的第一补丁文件;
则所述生成模块具体用于在所述升级模块生成所述新文件之前,将从所述新文件还原到所述打补丁命令对应的被升级文件的第二补丁文件保存为回滚数据;在所述回滚脚本中设置打补丁命令,所述打补丁命令包括与所述升级脚本中的打补丁命令对应的被升级文件的标识。
7.根据权利要求6所述的装置,其特征在于,所述获取模块获取的升级脚本中的文件处理命令还包括删除文件命令,所述升级数据为空;
则所述生成模块具体用于在所述升级模块执行所述删除文件命令前,将与所述删除文件命令对应的被升级文件的文件内容、路径和文件属性保存为回滚数据;在所述回滚脚本中设置增加文件命令和设置文件属性命令,所述增加文件命令和设置文件属性命令中包括所述删除文件命令对应的被升级文件的标识。
8.根据权利要求6所述的装置,其特征在于,所述获取模块获取的升级脚本中的文件处理命令还包括增加文件命令和设置文件属性命令,所述升级数据还包括与所述增加文件命令对应的被升级文件的文件内容、路径和文件属性;
则所述生成模块具体用于在所述回滚脚本中设置删除文件命令,所述删除文件命令包括所述增加文件命令对应的被升级文件的标识。
9.根据权利要求6-8任一项所述的装置,其特征在于,所述生成模块还用于在所述回滚脚本中设置显示回滚进度命令。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
删除模块,用于在所述升级模块升级成功后、或所述执行模块完成根据回滚数据执行回滚脚本后,删除所述生成模块生成的所述回滚脚本和回滚数据。
11.一种移动终端,其特征在于,所述移动终端包括如权利要求6-10任一项所述的装置。
12.根据权利要求11所述的移动终端,其特征在于,所述移动终端为手机。
CN201210020390.XA 2012-01-29 2012-01-29 ***差分升级方法和装置、移动终端 Active CN102609328B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201210020390.XA CN102609328B (zh) 2012-01-29 2012-01-29 ***差分升级方法和装置、移动终端
EP13740816.7A EP2799993A1 (en) 2012-01-29 2013-01-21 Method and device for system differential upgrade and mobile terminal
PCT/CN2013/070747 WO2013110233A1 (zh) 2012-01-29 2013-01-21 ***差分升级方法和装置、移动终端
US14/445,282 US9804933B2 (en) 2012-01-29 2014-07-29 System differential upgrade method, apparatus, and mobile terminal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210020390.XA CN102609328B (zh) 2012-01-29 2012-01-29 ***差分升级方法和装置、移动终端

Publications (2)

Publication Number Publication Date
CN102609328A CN102609328A (zh) 2012-07-25
CN102609328B true CN102609328B (zh) 2015-04-15

Family

ID=46526720

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210020390.XA Active CN102609328B (zh) 2012-01-29 2012-01-29 ***差分升级方法和装置、移动终端

Country Status (4)

Country Link
US (1) US9804933B2 (zh)
EP (1) EP2799993A1 (zh)
CN (1) CN102609328B (zh)
WO (1) WO2013110233A1 (zh)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609328B (zh) * 2012-01-29 2015-04-15 华为终端有限公司 ***差分升级方法和装置、移动终端
CN103544033B (zh) * 2013-09-30 2017-02-08 小米科技有限责任公司 应用程序回退方法、装置及相关设备
US9483248B2 (en) * 2014-07-15 2016-11-01 Oracle International Corporation Automatic generation and execution of server update processes
CN106325892A (zh) * 2015-06-15 2017-01-11 中兴通讯股份有限公司 差分回退升级方法及装置
CN104951348B (zh) * 2015-07-16 2018-12-11 广东欧珀移动通信有限公司 一种可中断的recovery升级方法及装置
DE102015216265A1 (de) * 2015-08-26 2017-03-02 Robert Bosch Gmbh Verfahren und Teilsystem zum Installieren eines Softwareupdates in einem Fahrzeug
CN105530130A (zh) * 2015-12-17 2016-04-27 青岛海信电器股份有限公司 一种空中下载技术的升级方法及装置
US10002082B2 (en) * 2016-02-19 2018-06-19 Ford Global Technologies, Llc Method and apparatus for cyclical key-off file replacement
CN105897863A (zh) * 2016-03-28 2016-08-24 努比亚技术有限公司 移动终端版本升级回退方法及装置
CN105872778A (zh) * 2016-03-31 2016-08-17 乐视控股(北京)有限公司 升级控制方法及装置
JP6649510B2 (ja) * 2016-04-27 2020-02-19 華為技術有限公司Huawei Technologies Co.,Ltd. パッチアップグレードに基づくファイル処理方法及び機器、端末、並びに記憶媒体
CN107666495B (zh) * 2016-07-27 2020-11-10 平安科技(深圳)有限公司 一种应用的容灾方法及终端
CN108574588B (zh) * 2017-03-10 2023-09-15 中兴通讯股份有限公司 客户端、服务端及差异化升级方法
US10365910B2 (en) * 2017-07-06 2019-07-30 Citrix Systems, Inc. Systems and methods for uninstalling or upgrading software if package cache is removed or corrupted
US10303460B2 (en) 2017-07-25 2019-05-28 Aurora Labs Ltd. Self-healing learning system for one or more vehicles
CN107656747B (zh) * 2017-09-07 2021-01-08 维沃移动通信有限公司 一种数据升级方法及移动终端
JP6915500B2 (ja) * 2017-11-06 2021-08-04 トヨタ自動車株式会社 更新システム、電子制御装置、更新管理装置、及び更新管理方法
CN109474454A (zh) * 2017-12-29 2019-03-15 北京安天网络安全技术有限公司 一种设备管理方法及***
EP3764224B1 (en) * 2018-03-27 2023-08-30 Huawei Technologies Co., Ltd. Resource permission processing method and apparatus, and storage medium and chip
US20190324858A1 (en) * 2018-04-24 2019-10-24 GM Global Technology Operations LLC Rollback recovery from partial failure in multiple electronic control unit over-the-air updates
CN109358879A (zh) * 2018-10-15 2019-02-19 广东宝莱特医用科技股份有限公司 一种更新监护仪***部件程序的方法
CN111104149A (zh) * 2018-10-25 2020-05-05 华为技术有限公司 一种固件升级方法、装置及终端
CN109491697A (zh) * 2018-11-27 2019-03-19 北京车和家信息技术有限公司 一种差分包生成方法和装置
US11281522B2 (en) * 2019-08-30 2022-03-22 Microsoft Technology Licensing, Llc Automated detection and classification of dynamic service outages
WO2021168840A1 (zh) * 2020-02-28 2021-09-02 华为技术有限公司 一种软件版本回滚方法、装置及***
CN112416386A (zh) * 2020-10-26 2021-02-26 北京一亩田新农网络科技有限公司 软件升级的方法、装置、***以及介质
CN112631637B (zh) * 2020-12-30 2024-04-02 重庆芯讯通无线科技有限公司 基于rtos的ota升级方法、***、设备及存储介质
CN113407377B (zh) * 2021-06-21 2023-09-08 英博超算(南京)科技有限公司 一种ota升级失败回退版本方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6438749B1 (en) * 1999-03-03 2002-08-20 Microsoft Corporation Method and system for restoring a computer to its original state after an unsuccessful patch installation attempt
US6681389B1 (en) * 2000-02-28 2004-01-20 Lucent Technologies Inc. Method for providing scaleable restart and backout of software upgrades for clustered computing
CN101038549A (zh) * 2007-03-28 2007-09-19 北京启明星辰信息技术有限公司 一种可跨***的软件升级方法
CN101697133A (zh) * 2009-10-26 2010-04-21 中兴通讯股份有限公司 软件升级方法、软件升级***以及客户端
CN101710288A (zh) * 2009-11-27 2010-05-19 成都市华为赛门铁克科技有限公司 升级处理方法和***、升级服务器以及升级设备

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6237144B1 (en) * 1998-09-21 2001-05-22 Microsoft Corporation Use of relational databases for software installation
US20020124245A1 (en) * 2000-08-14 2002-09-05 Alvin Maddux Method and apparatus for advanced software deployment
US6993760B2 (en) * 2001-12-05 2006-01-31 Microsoft Corporation Installing software on a mobile computing device using the rollback and security features of a configuration manager
CA2409788A1 (en) * 2002-10-25 2004-04-25 Ibm Canada Limited-Ibm Canada Limitee Architecture for dynamically monitoring computer application data
US7735078B1 (en) * 2003-10-30 2010-06-08 Oracle America, Inc. System and method for software patching for cross-platform products
WO2005119432A2 (en) * 2004-06-01 2005-12-15 Red Bend Ltd Method and system for in-place updating content stored in a storage device
US7529779B2 (en) * 2004-06-10 2009-05-05 Samsung Electronics Co., Ltd. Apparatus and method for efficient generation of delta files for over-the-air upgrades in a wireless network
US7908600B2 (en) * 2005-06-30 2011-03-15 Oracle International Corporation Fault-tolerant patching system
US8245216B2 (en) * 2005-10-11 2012-08-14 Oracle International Corporation Patch management system
GB2432020A (en) * 2005-11-04 2007-05-09 Matsushita Electric Ind Co Ltd Update package format and method for grouping and sequencing update payloads
US8769127B2 (en) * 2006-02-10 2014-07-01 Northrop Grumman Systems Corporation Cross-domain solution (CDS) collaborate-access-browse (CAB) and assured file transfer (AFT)
JP5112787B2 (ja) * 2006-09-01 2013-01-09 株式会社リコー 情報処理装置、プログラム更新方法及びプログラム
JP5097134B2 (ja) * 2007-02-07 2012-12-12 東京エレクトロン株式会社 サーバ装置、情報処理方法、及びプログラム
US20080201705A1 (en) * 2007-02-15 2008-08-21 Sun Microsystems, Inc. Apparatus and method for generating a software dependency map
US8122211B2 (en) * 2007-04-27 2012-02-21 Core Mobility, Inc. User interface indicator for mobile device backup status
JP2009163348A (ja) * 2007-12-28 2009-07-23 Hitachi Ltd 情報記録再生装置及びバックアップコピー方法
US8423993B2 (en) * 2008-02-29 2013-04-16 Red Hat, Inc. Systems and methods for managing software patches
US8661428B2 (en) * 2008-04-25 2014-02-25 Vmware, Inc. Updating a file using differences and file format therefor
CN101702730A (zh) * 2009-11-10 2010-05-05 中兴通讯股份有限公司 内置数据卡的升级方法、设备及***
JP2011170793A (ja) * 2010-02-22 2011-09-01 Ricoh Co Ltd 情報処理装置
CN102193805B (zh) * 2010-03-11 2014-05-07 华为技术有限公司 一种软件补丁升级装置及方法
CN102231671B (zh) * 2011-06-01 2014-12-31 上海聚力传媒技术有限公司 用于对待升级对象进行升级的方法、装置、设备和***
CN102609328B (zh) * 2012-01-29 2015-04-15 华为终端有限公司 ***差分升级方法和装置、移动终端

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6438749B1 (en) * 1999-03-03 2002-08-20 Microsoft Corporation Method and system for restoring a computer to its original state after an unsuccessful patch installation attempt
US6681389B1 (en) * 2000-02-28 2004-01-20 Lucent Technologies Inc. Method for providing scaleable restart and backout of software upgrades for clustered computing
CN101038549A (zh) * 2007-03-28 2007-09-19 北京启明星辰信息技术有限公司 一种可跨***的软件升级方法
CN101697133A (zh) * 2009-10-26 2010-04-21 中兴通讯股份有限公司 软件升级方法、软件升级***以及客户端
CN101710288A (zh) * 2009-11-27 2010-05-19 成都市华为赛门铁克科技有限公司 升级处理方法和***、升级服务器以及升级设备

Also Published As

Publication number Publication date
US20140372799A1 (en) 2014-12-18
EP2799993A4 (en) 2014-11-05
CN102609328A (zh) 2012-07-25
US9804933B2 (en) 2017-10-31
WO2013110233A1 (zh) 2013-08-01
EP2799993A1 (en) 2014-11-05

Similar Documents

Publication Publication Date Title
CN102609328B (zh) ***差分升级方法和装置、移动终端
CN102722386B (zh) 生成无线固件升级包的方法和装置
CN106775723B (zh) 基于Android平台的***固件定制的方法和Android设备
CN102736978B (zh) 一种检测应用程序的安装状态的方法及装置
CN105511911B (zh) ***固件升级包的生成方法及装置
CN105573780B (zh) 一种基于容器的移动终端操作***升级方法和装置
CN103514023B (zh) 一种虚拟机离线自动软件安装的方法及***
CN102193805B (zh) 一种软件补丁升级装置及方法
CN107391104A (zh) 一种客户端与react native代码的更新依赖管理方法、装置及***
CN104866391A (zh) 一种基于增量信息***的终端信息备份方法和装置
CN106055334A (zh) 代码管理***及方法
CN110209420A (zh) 一种更新引导加载程序的方法及装置
CN101800840B (zh) 一种机顶盒升级方法
CN103761107A (zh) 软件包定制的装置及方法
CN104111843A (zh) 一种基于沙箱的脚本更新方法及***
CN102331920B (zh) 一种数据处理方法及装置
CN104572140B (zh) 一种操作***移植的方法、装置及***
CN105700903A (zh) 一种用户终端的升级方法和用户终端
CN104731626A (zh) 应用的安装方法及装置
CN103761126A (zh) 应用程序的升级方法和装置
CN102243587A (zh) 嵌入式***中对rom程序的升级方法
CN108664255B (zh) 一种软件升级方法及装置
CN105045595A (zh) 一种集成插件的方法和装置
CN111367512B (zh) 一种应用程序开发中创建Android库模块依赖关系的方法及装置
CN105700900A (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: 20171106

Address after: Metro Songshan Lake high tech Industrial Development Zone, Guangdong Province, Dongguan City Road 523808 No. 2 South Factory (1) project B2 -5 production workshop

Patentee after: Huawei terminal (Dongguan) Co.,Ltd.

Address before: 518129 Longgang District, Guangdong, Bantian HUAWEI base B District, building 2, building No.

Patentee before: HUAWEI DEVICE Co.,Ltd.

CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 523808 Southern Factory Building (Phase I) Project B2 Production Plant-5, New Town Avenue, Songshan Lake High-tech Industrial Development Zone, Dongguan City, Guangdong Province

Patentee after: HUAWEI DEVICE Co.,Ltd.

Address before: 523808 Southern Factory Building (Phase I) Project B2 Production Plant-5, New Town Avenue, Songshan Lake High-tech Industrial Development Zone, Dongguan City, Guangdong Province

Patentee before: Huawei terminal (Dongguan) Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210425

Address after: Unit 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong 518040

Patentee after: Honor Device Co.,Ltd.

Address before: Metro Songshan Lake high tech Industrial Development Zone, Guangdong Province, Dongguan City Road 523808 No. 2 South Factory (1) project B2 -5 production workshop

Patentee before: HUAWEI DEVICE Co.,Ltd.