WO2013110233A1 - 系统差分升级方法和装置、移动终端 - Google Patents

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

Info

Publication number
WO2013110233A1
WO2013110233A1 PCT/CN2013/070747 CN2013070747W WO2013110233A1 WO 2013110233 A1 WO2013110233 A1 WO 2013110233A1 CN 2013070747 W CN2013070747 W CN 2013070747W WO 2013110233 A1 WO2013110233 A1 WO 2013110233A1
Authority
WO
WIPO (PCT)
Prior art keywords
file
command
upgrade
script
rollback
Prior art date
Application number
PCT/CN2013/070747
Other languages
English (en)
French (fr)
Inventor
韦钟辉
Original Assignee
华为终端有限公司
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 华为终端有限公司 filed Critical 华为终端有限公司
Priority to EP13740816.7A priority Critical patent/EP2799993A1/en
Publication of WO2013110233A1 publication Critical patent/WO2013110233A1/zh
Priority to US14/445,282 priority patent/US9804933B2/en

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

系统差分升级方法和装置、 移动终端 本申请要求于 2012年 1月 29日提交中国专利局、 申请号为 CN 201210020390. X、 发明名称为 "系 统差分升级方法和装置、 移动终端" 的中国专利申请的优先权, 其全部内容通过引用结合在本申请中。 技术领域 本发明涉及通信技术领域, 特别涉及一种系统差分升级方法和装置、 移动终端。 背景技术 OTA ( Over The Air, 空中下载) 升级是方便用户更新设备固件以修复系统 BUG的一种方式, 它通 常通过 GSM (Global System of Mobile communication, 全球通讯系统)、 CDMA (Code Division Multiple Access, 码分多址)、 WCDMA (Wideband Code Division Multiple Access, 宽带码分多址) 等网络来搭 载数据流对目标设备进行更新或数据传输。由于 0TA升级不需要下载完整的数据包并且是在现有系统软 件的基础上进行升级, 大大节省了用户升级的时间, 所以应用日益广泛。
现有技术中的 0TA升级方法通常包括: 启动升级线程; 从升级包中读取升级脚本中的内容, 其中, 升级脚本中标明进度条显示、删除哪个文件或给哪个文件打补丁或新增哪个文件;升级程序根据脚本的 内容逐句运行。
在实现本发明的过程中, 发明人发现现有技术至少存在以下问题:
在现有的 0TA升级过程中, 一旦用户取消升级或者升级意外失败, 可能会导致系统运行不正常, 甚 至系统无法启动, 造成致命的事故。 发明内容 为了解决现有技术存在由于 0TA升级失败、系统无法恢复而导致的系统无法启动、甚至造成事故的 问题, 本发明实施例提供了一种系统差分升级方法和装置、 移动终端。
—方面, 本发明实施例提供了一种系统差分升级方法, 该方法包括:
获取升级脚本和升级数据,所述升级脚本包括文件处理命令,所述文件处理命令包括被升级文件的 标识;
根据所述升级脚本和升级数据,对被升级文件进行升级,所述被升级文件与所述文件处理命令中的 被升级文件的标识相对应;
根据所述升级脚本中当前执行的文件处理命令和所述当前执行的文件处理命令对应的被升级文件, 生成与所述被升级文件相对应的回滚数据和回滚脚本; 当升级失败时, 根据所述回滚数据执行所述回滚脚本。
另一方面, 本发明实施例还提供了一种系统差分升级装置, 该装置包括:
获取模块, 用于获取升级脚本和升级数据, 所述升级脚本包括文件处理命令, 所述文件处理命令包 括被升级文件的标识;
升级模块, 用于根据所述获取模块获取的升级脚本和升级数据, 对被升级文件进行升级, 所述被升 级文件与所述文件处理命令中的被升级文件的标识相对应;
生成模块,用于根据所述升级脚本中所述升级模块当前执行的文件处理命令和所述当前执行的文件 处理命令对应的被升级文件, 生成与所述被升级文件相对应的回滚数据和回滚脚本;
执行模块, 用于当所述升级模块升级失败时, 根据所述回滚数据执行所述回滚脚本。
再一方面, 本发明实施例还提供了一种移动终端, 该移动终端包括上述系统差分升级装置。
通过根据升级脚本中当前执行的文件处理命令和与所述当前执行的文件处理命令对应的被升级文 件, 生成与当前被升级文件相对应的回滚数据和回滚脚本, 当升级失败时, 根据该回滚数据执行该回滚 脚本, 可以恢复到升级前的系统, 从而可以避免升级失败时, 系统运行不正常和无法启动的情况。 附图说明 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地 介绍, 显而易见地, 下面描述中的附图仅仅是本发明的一些实施例, 对于本领域普通技术人员来讲, 在 不付出创造性劳动的前提下, 还可以根据这些附图获得其他的附图。
图 1是本发明实施例 1中提供的系统差分升级方法的流程图;
图 2是本发明实施例 2中提供的系统差分升级方法的流程图;
图 3是本发明实施例 3中提供的系统差分升级方法的流程图;
图 4是本发明实施例 4中提供的系统差分升级方法的流程图;
图 5是本发明实施例 5中提供的系统差分升级装置的结构框图;
图 6是本发明实施例 6中提供的系统差分升级装置的结构框图。 具体实施方式 下面将结合本发明实施例中的附图, 对本发明实施例中的技术方案进行清楚、 完整地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而不是全部的实施例。基于本发明中的实施例, 本领域普 通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例, 都属于本发明保护的范围。
实施例 1
如图 1所示, 本发明实施例提供了一种系统差分升级方法, 该方法包括: 步骤 101 : 获取升级脚本和升级数据, 该升级脚本包括文件处理命令, 该文件处理命令包括被升级 文件的标识。
具体地,该升级脚本中可以包括删除文件、为文件打补丁、增加文件中的一个或多个文件处理命令。 步骤 102 : 根据升级脚本和升级数据, 对被升级文件进行升级, 该被升级文件与文件处理命令中的 被升级文件的标识相对应。
具体地, 该步骤包括:
读取升级脚本中的文件处理命令;
根据读取到的文件处理命令和对应的升级数据, 对被升级文件进行升级。
步骤 103:根据升级脚本中当前执行的文件处理命令和该当前执行的文件处理命令对应的被升级文 件, 生成与该被升级文件相对应的回滚数据和回滚脚本。
步骤 104: 当升级失败时, 根据生成的回滚数据执行回滚脚本。
优选的, 若当前升级失败, 升级程序会返回一个表示升级失败的值。 当收到该值时, 即执行生成的 回滚脚本, 从而恢复到升级前的系统。
需要说明的是, 在实际应用中, 步骤 102和步骤 103并没有先后顺序, 是同时进行的。 比如, 若当 前读取的文件处理命令是删除文件命令,则步骤 103在步骤 102读取了文件处理命令但在执行删除操作 以前进行;若当前读取的文件处理命令是打补丁命令,则步骤 103在步骤 102中执行对文件打补丁的过 程中进行。
进一步地, 该系统差分升级方法优选用于 0TA升级。
本发明实施例通过根据升级脚本中当前执行的文件处理命令和与所述当前执行的文件处理命令对 应的被升级文件, 生成与当前被升级文件相对应的回滚数据和回滚脚本, 当升级失败时, 根据该回滚数 据执行该回滚脚本, 可以恢复到升级前的系统, 从而可以避免升级失败时, 系统运行不正常和无法启动 的情况。 实施例 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可取两个值: al和 a2, 其中 al代表正常升级, a2代表升级回滚, 默认情况下 A取 al值, 当升级出错时, 将 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执行操作, 即为 某一文件打补丁。
也就是说, 为某一文件打补丁的操作具体包括:
检验当前被升级文件, 即需要打补丁的文件 (原始文件) 是否符合要求, 如是否为规定的版本; 若当前被升级文件符合要求, 则为该文件打补丁, 即根据当前被升级文件 fi le 生成补丁文件 fi le, patch, 然后将该补丁文件 fi le, patch重命名为 f i le。
步骤 303 :根据升级脚本中当前执行的文件处理命令和该当前执行的文件处理命令对应的被升级文 件, 生成与该被升级文件相对应的回滚数据和回滚脚本。
具体地, 该步骤包括: 在生成新文件之前, 将从步骤 302b中的新文件还原到打补丁命令对应的被 升级文件的第二补丁文件保存为回滚数据,在回滚脚本中设置打补丁命令,该打补丁命令包括与升级脚 本中的打补丁命令对应的被升级文件的标识。 也就是说, 该第二补丁文件为从重命名前的 fi le, patch 到原始文件 fi le的补丁文件 fi le. p。
优选地, 该步骤还可以包括: 在回滚脚本中设置校验命令 apply— patch— check, 用于检验新文件是 否符合要求, 比如是否为规定的版本; 若新文件符合要求, 则应用该第二补丁文件。
优选地, 该步骤还可以包括: 在回滚脚本中设置显示回滚进度命令。 具体地, 可以通过显示进度条 的方式显示回滚进度, 也可以通过百分比的方式显示回滚进度。
进一步地, 该步骤包括:
步骤 303a: 运行 bsdiff工具生成第二补丁文件, 即由重命名前的 fi le, patch到原始文件 fi le的 补丁文件 fi le. P, 并将其复制到一备份目录中;
步骤 303b : 生成打补丁命令 apply— patch, 并将其添加到回滚脚本的第一句;
步骤 303c : 生成文件校验命令 apply— patch— check, 并将其添加到回滚脚本的第一句; 步骤 303d: 将显示进度 show— progress的命令复制为回滚脚本的第一句。
需要说明的是, 该步骤需要在步骤 302b中的将该补丁文件 fi le, patch重命名为 fi le之前执行。 步骤 304 : 判断升级是否失败, 若失败, 则执行步骤 305, 若成功, 则执行步骤 306。
具体地,可以通过升级程序返回的值来判断当前升级是否失败,若升级程序返回的值表示升级失败, 则执行步骤 305。
进一步地, 可以新增一个全局变量 A, 该全局变量 A可取两个值: al和 a2, 其中 al代表正常升级, a2代表升级回滚, 默认情况下 A取 al值, 当升级出错时, 将 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可取两个值: al和 a2, 其中 al代表正常升级, a2代表升级回滚, 默认情况下 A取 al值, 当升级出错时, 将 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

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

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP13740816.7A EP2799993A1 (en) 2012-01-29 2013-01-21 Method and device for system differential upgrade and mobile terminal
US14/445,282 US9804933B2 (en) 2012-01-29 2014-07-29 System differential upgrade method, apparatus, and mobile terminal

Applications Claiming Priority (2)

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

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/445,282 Continuation US9804933B2 (en) 2012-01-29 2014-07-29 System differential upgrade method, apparatus, and mobile terminal

Publications (1)

Publication Number Publication Date
WO2013110233A1 true WO2013110233A1 (zh) 2013-08-01

Family

ID=46526720

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2013/070747 WO2013110233A1 (zh) 2012-01-29 2013-01-21 系统差分升级方法和装置、移动终端

Country Status (4)

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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112416386A (zh) * 2020-10-26 2021-02-26 北京一亩田新农网络科技有限公司 软件升级的方法、装置、系统以及介质
CN112631637A (zh) * 2020-12-30 2021-04-09 重庆芯讯通无线科技有限公司 基于rtos的ota升级方法、系统、设备及存储介质

Families Citing this family (26)

* 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
US10496398B2 (en) 2017-07-25 2019-12-03 Aurora Labs Ltd. Hot updates to ECU software using tool chain
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
CN113574839B (zh) * 2020-02-28 2024-04-09 华为技术有限公司 一种软件版本回滚方法、装置及系统
CN113407377B (zh) * 2021-06-21 2023-09-08 英博超算(南京)科技有限公司 一种ota升级失败回退版本方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101038549A (zh) * 2007-03-28 2007-09-19 北京启明星辰信息技术有限公司 一种可跨系统的软件升级方法
US20090271779A1 (en) * 2008-04-25 2009-10-29 Vmware, Inc. Updating a file using differences and file format therefor
CN101702730A (zh) * 2009-11-10 2010-05-05 中兴通讯股份有限公司 内置数据卡的升级方法、设备及系统
CN102193805A (zh) * 2010-03-11 2011-09-21 华为技术有限公司 一种软件补丁升级装置及方法
CN102231671A (zh) * 2011-06-01 2011-11-02 上海聚力传媒技术有限公司 用于对待升级对象进行升级的方法、装置、设备和系统
CN102609328A (zh) * 2012-01-29 2012-07-25 华为终端有限公司 系统差分升级方法和装置、移动终端

Family Cites Families (22)

* 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
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
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
CN101697133A (zh) 2009-10-26 2010-04-21 中兴通讯股份有限公司 软件升级方法、软件升级系统以及客户端
CN101710288A (zh) * 2009-11-27 2010-05-19 成都市华为赛门铁克科技有限公司 升级处理方法和系统、升级服务器以及升级设备
JP2011170793A (ja) * 2010-02-22 2011-09-01 Ricoh Co Ltd 情報処理装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101038549A (zh) * 2007-03-28 2007-09-19 北京启明星辰信息技术有限公司 一种可跨系统的软件升级方法
US20090271779A1 (en) * 2008-04-25 2009-10-29 Vmware, Inc. Updating a file using differences and file format therefor
CN101702730A (zh) * 2009-11-10 2010-05-05 中兴通讯股份有限公司 内置数据卡的升级方法、设备及系统
CN102193805A (zh) * 2010-03-11 2011-09-21 华为技术有限公司 一种软件补丁升级装置及方法
CN102231671A (zh) * 2011-06-01 2011-11-02 上海聚力传媒技术有限公司 用于对待升级对象进行升级的方法、装置、设备和系统
CN102609328A (zh) * 2012-01-29 2012-07-25 华为终端有限公司 系统差分升级方法和装置、移动终端

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2799993A4 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112416386A (zh) * 2020-10-26 2021-02-26 北京一亩田新农网络科技有限公司 软件升级的方法、装置、系统以及介质
CN112631637A (zh) * 2020-12-30 2021-04-09 重庆芯讯通无线科技有限公司 基于rtos的ota升级方法、系统、设备及存储介质
CN112631637B (zh) * 2020-12-30 2024-04-02 重庆芯讯通无线科技有限公司 基于rtos的ota升级方法、系统、设备及存储介质

Also Published As

Publication number Publication date
EP2799993A4 (en) 2014-11-05
EP2799993A1 (en) 2014-11-05
CN102609328A (zh) 2012-07-25
US20140372799A1 (en) 2014-12-18
CN102609328B (zh) 2015-04-15
US9804933B2 (en) 2017-10-31

Similar Documents

Publication Publication Date Title
WO2013110233A1 (zh) 系统差分升级方法和装置、移动终端
JP6649510B2 (ja) パッチアップグレードに基づくファイル処理方法及び機器、端末、並びに記憶媒体
WO2017067448A1 (zh) 一种无线固件升级方法、系统及计算机存储介质
US9367403B2 (en) Terminal and application restoring method
US20160378458A1 (en) Method and device for system application installation package, and terminal
US10740184B2 (en) Journal-less recovery for nested crash-consistent storage systems
US9955413B2 (en) Roaming network access method and apparatus
US20180089206A1 (en) Performing live updates to file system volumes
WO2019062635A1 (zh) 升级方法和装置
WO2019019668A1 (zh) 应用程序启动方法、装置、计算机设备和存储介质
WO2018039875A1 (zh) 应用升级包获取方法及装置
CN109908585B (zh) 一种文件处理方法及系统、计算设备及存储介质
US9218249B2 (en) Electronic apparatus, method of restoring guid partition table (GPT) and computer-readable recording medium
CN110659491B (zh) 一种计算机系统恢复方法、装置、设备及可读存储介质
CN108664255B (zh) 一种软件升级方法及装置
US20110107395A1 (en) Method and apparatus for providing a fast and secure boot process
CN109144948B (zh) 应用文件定位的方法、装置、电子设备和存储器
CN103294573A (zh) 一种智能终端及其数据备份方法
CN112540799A (zh) 启动数据的管理方法、系统、终端设备及存储介质
US11762756B2 (en) System and method for startup data verification
CN110321132B (zh) 一种代码发布方法和装置
US20230074216A1 (en) System and method for preserving access control lists in storage devices
CN114003260A (zh) 应用热更新方法及装置
CN116305151A (zh) 一种dll劫持漏洞测试方法和系统
CN117270902A (zh) Ota升级包生成方法和装置、ota升级方法和装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13740816

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2013740816

Country of ref document: EP