CN107656747B - 一种数据升级方法及移动终端 - Google Patents

一种数据升级方法及移动终端 Download PDF

Info

Publication number
CN107656747B
CN107656747B CN201710802259.1A CN201710802259A CN107656747B CN 107656747 B CN107656747 B CN 107656747B CN 201710802259 A CN201710802259 A CN 201710802259A CN 107656747 B CN107656747 B CN 107656747B
Authority
CN
China
Prior art keywords
upgrading
data
upgrade
instruction
reverse
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
CN201710802259.1A
Other languages
English (en)
Other versions
CN107656747A (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.)
Vivo Mobile Communication Co Ltd
Original Assignee
Vivo Mobile Communication 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 Vivo Mobile Communication Co Ltd filed Critical Vivo Mobile Communication Co Ltd
Priority to CN201710802259.1A priority Critical patent/CN107656747B/zh
Publication of CN107656747A publication Critical patent/CN107656747A/zh
Application granted granted Critical
Publication of CN107656747B publication Critical patent/CN107656747B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/22Processing or transfer of terminal data, e.g. status or physical capabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明实施例公开了一种数据升级方法和移动终端。所述方法包括:从所述N个升级指令中获取至少一个升级指令,以及至少一个反向升级指令;针对第一数据升级包执行至少一个升级指令,得到第二数据升级包,并对第二数据升级包进行校验;若校验失败,确定N个升级指令中已经执行的M个升级指令,并从获取的反向升级指令中提取M个反向升级指令;针对执行M个升级指令得到的第二数据升级包,依次执行M个反向升级指令,以将执行M个升级指令得到的第二数据升级包,恢复为执行M个升级指令前的第一数据升级包。根据本发明实施例,避免了固件数据不完整、移动终端无法继续正常运作的问题。

Description

一种数据升级方法及移动终端
技术领域
本发明实施例涉及通信领域,尤其涉及一种数据升级方法及移动终端。
背景技术
目前,移动终端采用OTA(Over-the-Air Technology,空中下载技术)升级功能对移动终端固件进行数据升级。在利用OTA进行数据升级时,通常是升级服务器向移动终端推送升级包,升级包内有升级指令集和中间数据。按序执行升级指令集中各个升级指令后,则逐一采用升级数据升级固件原有的数据;同时,采用中间数据升级了某个原有数据后,会针对升级后的数据进行校验,若校验成功则执行下一个升级指令。
然而,如果OTA升级过程中,移动终端发生硬件故障,则会导致校验失败,从而整个OTA升级过程会被强制中断。如果OTA升级过程被强制中断,由于升级过程未完成,固件数据不完整,移动终端则无法继续正常运作。而且,对于用户而言,移动终端无法正常使用,会降低用户的使用体验。
因此,现有技术的数据升级方法存在着导致移动终端无法正常运作的问题。而且,如果数据升级后的移动终端无法正常运作,还存在着影响用户体验的问题。
发明内容
本发明提供了一种数据升级方法和移动终端,以解决现有数据升级方法导致移动终端无法正常运作的问题。
第一方面,本发明实施例提供了一种数据升级方法,应用于移动终端,所述移动终端包括第一数据升级包以及用于升级所述第一数据升级包的N个升级指令,其中,N≥1,所述方法包括:
从所述N个升级指令中获取至少一个升级指令,以及至少一个反向升级指令;
针对所述第一数据升级包执行所述至少一个升级指令,得到第二数据升级包,并对所述第二数据升级包进行校验;
若校验失败,确定所述N个升级指令中已经执行的M个升级指令,并从获取的反向升级指令中提取M个反向升级指令;其中,N≥M≥1;
针对执行所述M个升级指令得到的所述第二数据升级包,依次执行所述M个反向升级指令,以将执行所述M个升级指令得到的第二数据升级包,恢复为执行所述M个升级指令前的第一数据升级包。
第二方面,本发明实施例还提供了一种移动终端,所述移动终端包括第一数据升级包以及用于升级所述第一数据升级包的N个升级指令,其中,N≥1,所述移动终端包括:
指令获取模块,用于从所述N个升级指令中获取至少一个升级指令,以及至少一个反向升级指令;
指令执行及校验模块,用于对所述第一数据升级包执行所述至少一个升级指令,得到第二数据升级包,并对所述第二数据升级包进行校验;
反向升级指令提取模块,用于若校验失败,确定所述N个升级指令中已经执行的M个升级指令,并从获取的反向升级指令中提取M个反向升级指令;其中,N≥M≥1;
反向升级指令执行模块,用于针对执行所述M个升级指令得到的所述第二数据升级包,依次执行所述M个反向升级指令,以将执行所述M个升级指令得到的第二数据升级包,恢复为执行所述M个升级指令前的第一数据升级包。
第三方面,另一方面,本发明实施例还提供了一种移动终端,包括处理器,存储器,存储在所述存储器上并可在所述处理器上运行的数据升级程序,所述数据升级程序被所述处理器执行时实现上述的数据升级方法的步骤。
第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有数据升级程序,所述数据升级程序被处理器执行时实现上述的数据升级方法的步骤。
这样,根据本发明实施例,通过在执行升级指令前获取反向升级指令,在移动终端硬件异常、执行多个升级指令后出现校验失败的情况下,依次执行多个反向升级指令,从而可以将移动终端的数据恢复,避免了固件数据不完整、移动终端无法继续正常运作的问题。
而且,在移动终端硬件异常、执行多个升级指令后出现校验失败的情况下,移动终端仍然可以正常运作,提升了用户体验。
附图说明
图1是本发明实施例一的一种数据升级方法的步骤流程图;
图2是本发明实施例二的一种数据升级方法的步骤流程图;
图3是本发明实施例的一种移动终端升级流程示意图;
图4是本发明实施例三的一种移动终端的结构框图;
图5是本发明实施例四的一种移动终端的结构框图;
图6是本发明实施例五的一种移动终端的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
实施例一
图1是本发明实施例一的一种数据升级方法的步骤流程图,该方法应用于移动终端,所述移动终端包括第一数据升级包以及用于升级所述第一数据升级包的N个升级指令,其中,N≥1,该方法具体可以包括如下步骤:
步骤S10,从所述N个升级指令中获取至少一个升级指令,以及至少一个反向升级指令。
首先需要说明的是,上述的移动终端可以包括移动终端、平板电脑等终端。上述的第一数据升级包可以为移动终端中待升级的固件数据。其中,第一数据升级包可以包括多个第一升级数据。升级服务器可以将一个升级包通过OTA技术推送至移动终端。该升级包可以包括升级指令集。其中,升级指令集中,包括有用于升级第一数据升级包的N个升级指令。
移动终端在接收到升级包后,可以从升级包中提取出升级指令集,然后从升级指令集中提取出N个升级指令。
升级包中还包括有用于写入至第一数据升级包以得到第二数据升级包的中间数据。
具体实现中,可以从N个升级指令中依次获取升级指令。
例如,按照指令序号1、2、3...N的正向顺序,依次提取一个升级指令。
在依次获取到升级指令之后,可以相应地获取与该升级指令对应的反向升级指令。
例如,当前获取到第i个升级指令,第i个升级指令是采用指定的中间数据,将第一数据升级包中的某个第一升级数据更新为第二升级数据,得到第二数据升级包,得到第二数据升级包。因此,第i个升级指令对应的第i个反向升级指令,则是删除该第二升级数据,并写入原来的第一升级数据,从而将第二数据升级包恢复为第一数据升级包。
又例如,当前获取到第i+1个升级指令,第i+1个升级指令是将第一数据升级包的某个第一升级数据删除,得到第二数据升级包。因此,第i+1个升级指令对应的第i+1个反向升级指令,则是将被删除的第一升级数据写入至原来的位置,从而将第二数据升级包恢复为第一数据升级包。
实际应用中,由于执行升级指令是一个不可逆的升级过程,将第一数据升级包升级为第二数据升级包后,无法再还原为第一数据升级包。因此,可以在执行升级指令之前,将要执行的升级指令所指向的第一升级数据进行备份,从而,在校验失败、执行反向升级指令时,反向升级指令可以调用备份的第一升级数据进行数据恢复。
步骤S11,针对所述第一数据升级包执行所述至少一个升级指令,得到第二数据升级包,并对所述第二数据升级包进行校验。
具体实现中,所提取的升级指令可以指向第一数据升级包中的某个第一升级数据,执行该升级指令,则会采用某个中间数据,将该第一升级数据更新为第二升级数据,从而得到第二数据升级包。可以针对得到的第二数据升级包进行校验。
校验的方式可以有多种。例如,针对某个第一升级数据执行第i个升级指令得到第二升级数据后,可以计算该第二升级数据的SHA码(Secure Hash Algorithm,安全哈希算法),将计算得到的SHA码,与第i个升级指令中预设的标准SHA码进行匹配,若匹配,则判定校验成功,若不匹配,则判定校验失败。由此,可以校验写入数据是否完整和正确。其中,该标准的SHA码,可以由升级服务器针对第二升级数据预先计算SHA码得到。
实际应用中,本领域技术人员可以采用其他多种校验方式,以校验所写入数据是否完整和正确,以上示例供参考,本发明实施例对此不作限制。
若校验成功,则可以继续从N个升级指令中,依次获取下一个升级指令,以及下一个反向升级指令,并继续执行下一个升级指令,直至N个升级指令执行完毕,或者,直至出现校验失败的情况为止。
若校验失败,则执行步骤S12。
步骤S12,若校验失败,确定所述N个升级指令中已经执行的M个升级指令,并从获取的反向升级指令中提取M个反向升级指令;其中,N≥M≥1。
首先需要说明的是,在针对第二数据升级包进行校验,会出现校验成功或校验失败的情况。而移动终端的DDR(Double Data Rate SDRAM,双倍速率内存)、EMMC((EmbeddedMulti Media Card,嵌入式多媒体卡)、CPU(Central Processing Unit,中央处理器)等硬件的内部运行不稳定时,会导致校验失败。更具体地,移动终端硬件内部运行不稳定导致校验失败的原因有方面。
一方面,是在执行升级指令、写入数据的过程中,移动终端的DDR、EMMC、CPU等硬件的内部运行不稳定,导致写入数据失败,因此,在执行某个升级指令后,所得到的第二升级数据不正确或不完整,针对该不正确或不完整的第二升级数据计算所得的校验值,与预先针对正确或完整的第二升级数据计算所得的标准校验值并不匹配,因此会校验失败。另一方面,是在进行校验过程中,移动终端的DDR、EMMC、CPU等硬件的内部运行不稳定,即使正确和完整的第二升级数据计算校验值,所得到的校验值可能会出错,而错误校验值与预先针对正确和完整的第二升级数据计算所得的标准校验值并不匹配,因此会校验失败。
在本发明实施例中,若在M个升级指令后,所得到的第二数据升级包校验失败,可以将升级流程中断,并确定当前已经执行的M个升级指令,以及,M个反向升级指令。由于本发明实施例中,在依次获取升级指令时,则会相应获取反向升级指令,因此,当已经获取并执行M个升级指令,当前则相应地获取到M个反向升级指令。
步骤S13,针对执行所述M个升级指令得到的所述第二数据升级包,依次执行所述M个反向升级指令,以将执行所述M个升级指令得到的第二数据升级包,恢复为执行所述M个升级指令前的第一数据升级包。
具体实现中,由于执行一个或多个升级指令后,一个或多个第一升级数据会被更新为第二升级数据,即第二数据升级包中可能包含有一个或多个的第二升级数据。针对于第二数据升级包中的、已经执行M个升级指令所得到的多个第二升级数据,可以按照与执行M个升级指令时所依据的正向顺序相反的反向顺序,依次执行M个反向升级指令,从而将第二数据升级包恢复为第一数据升级包。在M个反向升级指令执行完毕后,可以退出升级流程。移动终端已经恢复至升级前的初始状态,并基于完整的固件数据正常运作。
根据本发明实施例,通过在执行升级指令前获取反向升级指令,在移动终端硬件异常、执行多个升级指令后出现校验失败的情况下,依次执行多个反向升级指令,从而可以将移动终端的数据恢复,避免了固件数据不完整、移动终端无法继续正常运作的问题。
而且,在移动终端硬件异常、执行多个升级指令后出现校验失败的情况下,移动终端仍然可以正常运作,提升了用户体验。
实施例二
图2是本发明实施例二的一种数据升级方法的步骤流程图,该方法应用于移动终端,所述移动终端包括第一数据升级包以及用于升级所述第一数据升级包的N个升级指令,其中,N≥1,该方法具体可以包括如下步骤:
步骤S20,从所述N个升级指令中获取至少一个升级指令,以及至少一个反向升级指令。
实际应用中,在接收到升级服务器通过OTA技术推送的OTA升级包后,移动终端可以获取该OTA升级包的数据量。然后获取移动终端中的/data分区空间的存储量,判断/data分区空间的存储量是否足够满足升级包的数据量。若满足,则将升级包存储至/data分区空间,若不满足,则可以将升级包存储至移动终端的内存空间中。
可选地,所述第一数据升级包包括多个第一升级数据,在所述从所述N个升级指令中获取至少一个升级指令的步骤之后,所述方法还包括:
确定所述至少一个升级指令指向的第一升级数据;
获取所述至少一个升级指令指向的第一升级数据的第一存储路径;
将所述至少一个升级指令指向的第一升级数据备份至第二存储路径。
具体实现中,可以针对获取到的升级指令进行解析,确定该升级指令指向的第一升级数据以及该第一升级数据当前在移动终端中的第一存储路径。
例如,升级指令中包含有字段“apply_patch(/system/app/CalendarImporter/CalendarImporter.apk)”,根据该字段可以获取到将要升级的第一升级数据“CalendarImporter.apk”及其第一存储路径“/system/app/CalendarImporter/”。
在获取到升级指令指向的第一升级数据及其第一存储路径后,可以将第一升级数据从第一存储路径备份至移动终端另一存储空间,将在所备份存储空间的路径作为第二存储路径。实际应用中,可以计算出将要备份的第一升级数据的数据量,根据该数据量在分配对应大小的存储空间。
可选地,所述方法可以还包括:
获取所述移动终端的处理能力信息;
根据所述移动终端的处理能力信息配置多个处理线程;
针对所述多个处理线程分配线程任务;所述线程任务包括将所述至少一个升级指令指向的第一升级数据备份至第二存储路径,以及,针对所述第一数据升级包执行所述至少一个升级指令,得到第二数据升级包;
根据所述多个处理线程所分配的线程任务,建立所述多个处理线程的关联关系;
针对所述多个处理线程的关联关系,确定所述多个处理线程的优先级别;
按照所述多个处理线程的优先级别,依次启动所述多个处理线程。
实际应用中,在原有的升级流程中增加读取并备份数据的操作,可能会增加升级所耗费的时间。因此,在本发明实施例中,可以首先确定移动终端的处理能力信息,根据该处理能力信息配置多个处理线程,并针对该多个处理线程分配线程任务,以由多个处理线程分别单独执行升级指令或执行备份操作。例如,获取移动终端的CPU核数, 根据CPU核数配置若干个线程,由该若干个线程分别处理执行升级指令的操作和备份操作。从而,降低了读取、备份数据所耗费的时间。
实际应用中,多个处理线程所分配的线程任务,可能会针对同一数据进行操作。因此,可以设置处理线程之间的关联关系,根据该关联关系确定各个处理线程的优先级别,并启动优先级别较高的处理线程,由其优先执行分配的线程任务,再启动优先级别较低的处理线程,执行其分配的线程任务。
可选地,所述获取至少一个反向升级指令的步骤,包括:
步骤a,提取所述至少一个升级指令的正向操作命令;
步骤b,针对所述正向操作命令,生成反向操作命令;
步骤c,采用所述反向操作命令、所述第一存储路径和所述第二存储路径,生成所述至少一个反向升级指令。
首先需要说明的是,升级指令包括有正向操作命令。实际应用中,可以具有不同操作类型的正向操作命令。通常,正向操作命令的操作类型,可以包括有:写入操作命令、删除操作命令、移动操作命令和重命名操作命令。所执行升级指令的正向操作命令因操作类型不同,则会相应执行不同的升级操作。
例如,所执行升级指令中包括写入操作命令,则指示采用指定的中间数据更新指定的第一存储路径的第一升级数据,得到第二升级数据。
又例如,所执行升级指令中包括删除操作命令,则指示在指定的第一存储路径删除第一升级数据。
又例如,所执行升级指令中包括移动操作命令,则指示将第一升级数据从当前的第一存储路径移动至其他的指定存储路径。
又例如,所执行升级指令中包括重命名操作命令,则指示将指定的存储路径的第一升级数据重命名为指定的数据名。
针对于不同操作类型的正向操作命令,可以生成对应的反向操作命令。其中,针对写入操作命令、删除操作命令、移动操作命令和重命名等正向操作命令,可以分别生成反向写入操作命令、反删除操作命令、反向移动操作命令和反向命名操作命令等反向操作命令。
例如,反向写入操作命令,则指示从第一存储路径中删除第二升级数据,并从第二存储路径提取预先备份的第一升级数据,并将第一升级数据写入至第一存储路径中。
又例如,反删除操作命令,则指示从第二存储路径提取预先备份的第一升级数据,并将第一升级数据写入至第一存储路径。
又例如,反向移动操作命令,则指示在其他的指定存储路径删除第一升级数据,从第二存储路径提取预先备份的第一升级数据,并将第一升级数据写入至第一存储路径。
又例如,反向命名操作命令,则指示对第一存储路径中的第一升级数据,将其重新命名为原来的数据名。
在针对正向操作命令生成反向操作命令后,可以采用反向操作命令、第一升级数据当前的第一存储路径,第一升级数据备份的第二存储路径,生成反向升级指令。实际应用中,如包含反向命名操作命令等的反向升级指令中,由于不涉及到将备份的第一升级数据恢复,因此在该反向升级指令中,可以不涉及第一升级数据备份的第二存储路径,而仅仅包括反向操作命令和第一存储路径,从而可以针对第一存储路径上的第一升级数据进行反向命名。
步骤S21,针对所述第一数据升级包执行所述至少一个升级指令,得到第二数据升级包,并对所述第二数据升级包进行校验。
可选地,所述N个升级指令分别指向多个预设的中间数据,所述针对所述第一数据升级包执行所述至少一个升级指令,得到第二数据升级包的步骤,包括:
步骤d,获取所述至少一个升级指令指向的中间数据;
步骤e,采用所述中间数据更新所述第一升级数据中,得到第二升级数据,并采用所述第二升级数据形成所述第二数据升级包。
具体实现中,在执行升级指令时,可以获取该升级指令指向的中间数据,然后采用该中间数据更新第一升级数据,得到第二升级数据,从而得到包含有第二升级数据的第二数据升级包。
例如,升级指令中包含有字段“apply_patch(/system/app/CalendarImporter/CalendarImporter.apk)”和“package_extract_file("patch/system/app/CalendarImporter/CalendarImporter.apk.p")”,根据该字段指示,执行写入操作命令,将升级包中的中间数据“patch/system/app/CalendarImporter/CalendarImporter.apk.p”写入至第一数据升级包中的第一升级数据“/system/app/CalendarImporter/CalendarImporter.apk”中,将其更新为第二升级数据,从而得到第二数据升级包。
可选地,所述至少一个升级指令包括预设的第一校验值,所述对所述第二数据升级包进行校验的步骤,包括:
步骤f,计算所述第二数据升级包的第二升级数据的第二校验值;
步骤g,判断所述第二校验值是否与所述第一校验值匹配,若是,则执行步骤h,若否,则执行步骤i;
步骤h,判定校验成功;
步骤i,判定校验失败。
具体实现中,在执行升级指令后,可以获取针对该升级指令预设的第一校验值,并计算执行该升级指令后所得到的第二升级数据的第二校验值,将第一校验值与第二校验值进行比较,若匹配,则判定校验成功,表明该升级指令执行成功,所得到的第二升级数据正确和完整。若不匹配,则判定校验失败,表明该升级指令执行失败,所得到的第二升级数据不正确或不完整。
例如,升级指令中包含有字段“apply_patch("/system/app/CalendarImporter/CalendarImporter.apk","-", 32693,c7cd0965c006af60c9c3caaa36d16879170280ae,package_extract_file("patch/system/app/CalendarImporter/CalendarImporter.apk.p"))”,其中,“c7cd0965c006af60c9c3caaa36d16879170280ae”是针对第二升级数据预先计算得到的标准SHA码;在将升级包中的中间数据“patch/system/app/CalendarImporter/CalendarImporter.apk.p”更新第一升级数据“/system/app/CalendarImporter/CalendarImporter.apk”,得到第二升级数据之后,计算第二升级数据的SHA码,将得到的SHA码与标准SHA码比较,若匹配,则判定校验成功,若不匹配,则判定校验失败。
步骤S22,若校验成功,返回所述从所述N个升级指令中获取至少一个升级指令,以及至少一个反向升级指令、针对所述第一数据升级包执行所述至少一个升级指令得到第二数据升级包、并对所述第二数据升级包进行校验的步骤,直至所述N个升级指令执行完毕或判定所述第二数据升级包校验失败。
具体实现中,在针对某个第一升级数据执行升级指令,所得到的第二升级数据校验成功时,可以继续从N个升级指令中,依次获取下一个升级指令,并获取对应的下一个反向升级指令,继续执行获取到的升级指令,并针对执行升级指令后所得到的第二升级数据进行校验,直至N个升级指令执行完毕,或者,出现校验失败的情况。
实际应用中,针对于没有生成第二升级数据的升级指令,在该部分升级指令执行之后,可以无须进行校验,而是继续执行下一个升级指令,直到产生有第二升级数据,再针对所产生的第二升级数据进行校验。
步骤S23,若校验失败,确定所述N个升级指令中已经执行的M个升级指令,并从获取的反向升级指令中提取M个反向升级指令;其中,N≥M≥1。
可选地,所述移动终端还包括反向升级指令集,在所述从所述N个升级指令中获取至少一个升级指令,以及至少一个反向升级指令的步骤之后,所述方法还包括:
将获取的所述至少一个反向升级指令添加至所述反向升级指令集;
当已经执行所述M个升级指令,所述反向升级指令集包括有M个反向升级指令,所述从获取的反向升级指令中提取M个反向升级指令的步骤,包括:
步骤j,提取所述反向升级指令集中的M个反向升级指令。
具体实现中,在获取到与一个或多个升级指令对应的反向升级指令时,可以将其添加至反向升级指令集。从而,在获取并执行M个升级指令时,将获取到M个反向升级指令,并有M个反向升级指令添加至反向升级指令集中。在校验失败时,则可以从反向升级指令集中,提取到M个反向升级指令。
步骤S24,针对执行所述M个升级指令得到的所述第二数据升级包,依次执行所述M个反向升级指令,以将执行所述M个升级指令得到的第二数据升级包,恢复为执行所述M个升级指令前的第一数据升级包。
具体实现中,可以按照与执行M个升级指令时所依据的正向顺序相反的反向顺序,依次执行M个反向升级指令。
例如,在执行M个升级指令时,是按照指令序号1、2、3...M的正向顺序依次执行,在执行M个反向升级指令时,则可以按照反向指令序号M、M-1、M-2...3、2、1的反向顺序依次执行M个反向升级指令。在执行M个反向升级指令后,则可以将已经备份的第一升级数据全部写入至原来的存储路径,从而,将执行M个升级指令后所得到的第二数据升级包,恢复为执行M升级指令前的第一数据升级包。
在M个反向升级指令执行完毕后,可以退出升级流程。此外,可以将备份的第一升级数据,从第二存储路径中删除。还可以将反向升级指令集中的M个反向升级指令删除。
根据本发明实施例,通过从N个升级指令中依次获取至少一个升级指令,并获取对应的反向升级指令,避免一次性获取全部的、在校验失败时并不用于恢复数据的反向升级指令,从而避免浪费移动终端的处理资源。
为了便于本领域技术人员深入理解本发明实施例,以下将结合图3的具体示例进行说明。
图3是本发明实施例的一种移动终端升级流程示意图。从图中可见,在接收到OTA升级包后,启动OTA升级流程。
首先,当移动终端的/data分区空间足够存储OTA升级包,将OTA升级包存储在/data分区空间。
然后,从OTA升级包中的N个升级指令中,提取第M个升级指令,并根据第M个升级指令,从第一数据升级包中提取第M个升级指令所指向的、将要升级的第一升级数据。其中,N为正整数,N表示当前OTA升级中所要执行的升级指令的总个数;M=1、2、3...N。可以备份第一升级数据,并对应于第M个升级指令,生成第M个反向升级指令。
在备份第一升级数据和生成第M个反向升级指令之后,可以第M个升级指令。在执行第M个升级指令之后,针对生成的第二升级数据进行校验。
若校验成功,进一步判断N个升级指令是否执行完毕,若是,则升级流程结束,若否,则继续从N个升级指令中,提取第M+1个升级指令,并备份第M+1个升级指令所指向的、将要升级的第一升级数据,并根据第M+1个升级指令,生成第M+1个反向升级指令,直至N个升级指令执行完毕。
若校验失败,则开始执行反向升级指令。具体地,按照反向升级指令M、反向升级指令M-1、反向升级指令M-2...反向升级指令1的反向顺序,依次执行M个反向升级指令,直至M个反向升级指令执行完毕。
实施例三
图4是本发明实施例三的一种移动终端的结构框图,所述移动终端300包括第一数据升级包以及用于升级所述第一数据升级包的N个升级指令,其中,N≥,所述移动终端300具体可以包括如下模块:
指令获取模块301,用于从所述N个升级指令中获取至少一个升级指令,以及至少一个反向升级指令;
指令执行及校验模块302,用于对所述第一数据升级包执行所述至少一个升级指令,得到第二数据升级包,并对所述第二数据升级包进行校验;
反向升级指令提取模块303,用于若校验失败,确定所述N个升级指令中已经执行的M个升级指令,并从获取的反向升级指令中提取M个反向升级指令;其中,N≥M≥1;
反向升级指令执行模块304,用于针对执行所述M个升级指令得到的所述第二数据升级包,依次执行所述M个反向升级指令,以将执行所述M个升级指令得到的第二数据升级包,恢复为执行所述M个升级指令前的第一数据升级包。
根据本发明实施例,通过在执行升级指令前获取反向升级指令,在移动终端硬件异常、执行多个升级指令后出现校验失败的情况下,依次执行多个反向升级指令,从而可以将移动终端的数据恢复,避免了固件数据不完整、移动终端无法继续正常运作的问题。
而且,在移动终端硬件异常、执行多个升级指令后出现校验失败的情况下,移动终端仍然可以正常运作,提升了用户体验。
实施例四
图5是本发明实施例四的一种移动终端的结构框图,所述移动终端400包括第一数据升级包以及用于升级所述第一数据升级包的N个升级指令,其中,N≥,所述移动终端400具体可以包括如下模块:
指令获取模块401,用于从所述N个升级指令中获取至少一个升级指令,以及至少一个反向升级指令。
指令执行及校验模块402,用于对所述第一数据升级包执行所述至少一个升级指令,得到第二数据升级包,并对所述第二数据升级包进行校验。
返回模块403,用于若校验成功,返回所述从所述N个升级指令中获取至少一个升级指令,以及至少一个反向升级指令、针对所述第一数据升级包执行所述至少一个升级指令得到第二数据升级包、并对所述第二数据升级包进行校验的步骤,直至所述N个升级指令执行完毕或判定所述第二数据升级包校验失败。
反向升级指令提取模块404,用于若校验失败,确定所述N个升级指令中已经执行的M个升级指令,并从获取的反向升级指令中提取M个反向升级指令;其中,N≥M≥1。
反向升级指令执行模块405,用于针对执行所述M个升级指令得到的所述第二数据升级包,依次执行所述M个反向升级指令,以将执行所述M个升级指令得到的第二数据升级包,恢复为执行所述M个升级指令前的第一数据升级包。
可选地,所述移动终端400还包括反向升级指令集,所述移动终端400可以还包括:
反向指令添加模块,用于将获取的所述至少一个反向升级指令添加至所述反向升级指令集;
当已经执行所述M个升级指令,所述反向升级指令集包括有M个反向升级指令,所述反向升级指令提取模块,包括:
反向升级指令提取子模块,用于提取所述反向升级指令集中的M个反向升级指令。
可选地,所述第一数据升级包包括多个第一升级数据,所述移动终端400可以还包括:
数据确定模块,用于确定所述至少一个升级指令指向的第一升级数据;
存储路径获取模块,用于获取所述至少一个升级指令指向的第一升级数据的第一存储路径;
备份模块,用于将所述至少一个升级指令指向的第一升级数据备份至第二存储路径。
可选地,所述指令获取模块401,可以具体包括:
正向操作命令提取子模块,用于提取所述至少一个升级指令的正向操作命令;
反向操作命令生成子模块,用于针对所述正向操作命令,生成反向操作命令;
反向升级指令生成子模块,用于采用所述反向操作命令、所述第一存储路径和所述第二存储路径,生成所述至少一个反向升级指令。
可选地,所述N个升级指令分别指向多个预设的中间数据,所述指令执行及校验模块402,可以具体包括:
中间数据获取子模块,用于获取所述至少一个升级指令指向的中间数据;
中间数据处理子模块,用于采用所述中间数据更新所述第一升级数据,得到第二升级数据,并采用所述第二升级数据形成所述第二数据升级包。
可选地,所述至少一个升级指令包括预设的第一校验值,所述指令执行及校验模块402,可以具体包括:
校验值计算子模块,用于计算所述第二数据升级包中的第二升级数据的第二校验值;
校验值判断子模块,用于判断所述第二校验值是否与所述第一校验值匹配;
校验判断子模块,用于判定校验成功或判定校验失败。
可选地,所述移动终端400可以还包括:
信息获取模块,用于获取所述移动终端的处理能力信息;
线程配置模块,用于根据所述移动终端的处理能力信息配置多个处理线程;
任务分配模块,用于针对所述多个处理线程分配线程任务;所述线程任务包括将所述至少一个升级指令指向的第一升级数据备份至第二存储路径,以及,针对所述第一数据升级包执行所述至少一个升级指令,得到第二数据升级包;
关联关系建立模块,用于根据所述多个处理线程所分配的线程任务,建立所述多个处理线程的关联关系;
优先级别确定模块,用于针对所述多个处理线程的关联关系,确定所述多个处理线程的优先级别;
线程启动模块,用于按照所述多个处理线程的优先级别,依次启动所述多个处理线程。
根据本发明实施例,通过从N个升级指令中依次获取至少一个升级指令,并获取对应的反向升级指令,避免一次性获取全部的反向升级指令,节省了移动终端的处理资源。
实施例五
图6是本发明实施例五的一种移动终端的结构框图。图6所示的移动终端500包括:至少一个处理器501、存储器502、至少一个网络接口504和其他用户接口503。移动终端500中的各个组件通过总线***505耦合在一起。可理解,总线***505用于实现这些组件之间的连接通信。总线***505除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图6中将各种总线都标为总线***505。
其中,用户接口503可以包括显示器、键盘或者点击设备(例如,鼠标, 轨迹球(trackball)、触感板或者触摸屏等。
可以理解,本发明实施例中的存储器502可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-OnlyMemory,ROM)、可编程只读存储器 (ProgrammableROM,PROM)、可擦除可编程只读存储器(ErasablePROM,EPROM)、电可擦除可编程只读存储器(ElectricallyEPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(RandomAccessMemory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(StaticRAM,SRAM)、动态随机存取存储器 (DynamicRAM,DRAM)、同步动态随机存取存储器(SynchronousDRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(DoubleDataRateSDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(SynchlinkDRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambusRAM,DRRAM)。 本发明实施例描述的***和方法的存储器502旨在包括但不限于这些和任意其它适合类型的存储器。
在一些实施方式中,存储器502存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:操作***5021和应用程序 5022。
其中,操作***5021,包含各种***程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序5022,包含各种应用程序,例如媒体播放器(MediaPlayer)、浏览器(Browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序5022中。
在本发明实施例中,所述移动终端500包括第一数据升级包以及用于升级所述第一数据升级包的N个升级指令,其中,N≥1,移动终端500还包括:存储在所述存储器501上并可在所述处理器501上运行的数据升级程序,所述数据升级程序被所述处理器501执行时,实现如下步骤:
从所述N个升级指令中获取至少一个升级指令,以及至少一个反向升级指令;
针对所述第一数据升级包执行所述至少一个升级指令,得到第二数据升级包,并对所述第二数据升级包进行校验;
若校验失败,确定所述N个升级指令中已经执行的M个升级指令,并从获取的反向升级指令中提取M个反向升级指令;其中,N≥M≥1;
针对执行所述M个升级指令得到的所述第二数据升级包,依次执行所述M个反向升级指令,以将执行所述M个升级指令得到的第二数据升级包,恢复为执行所述M个升级指令前的第一数据升级包。
上述本发明实施例揭示的方法可以应用于处理器501中,或者由处理器 501实现。处理器501可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器501中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器501可以是通用处理器、数字信号处理器(DigitalSignalProcessor,DSP)、专用集成电路(ApplicationSpecific IntegratedCircuit,ASIC)、现成可编程门阵列(FieldProgrammableGateArray, FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程 存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器502,处理器501读取存储器502中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本发明实施例描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecificIntegratedCircuits,ASIC)、数字信号处 理器(DigitalSignalProcessing,DSP)、数字信号处理设备(DSPDevice,DSPD)、可编程逻辑设备(ProgrammableLogicDevice,PLD)、现场可编程门阵列(Field-ProgrammableGateArray,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请功能的其它电子单元或其组合中。
对于软件实现,可通过执行本发明实施例功能的模块(例如过程、函数等) 来实现本发明实施例的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
可选地,所述数据升级程序被所述处理器501执行时,还可以实现如下步骤:
若校验成功,返回所述从所述N个升级指令中获取至少一个升级指令,以及至少一个反向升级指令、针对所述第一数据升级包执行所述至少一个升级指令得到第二数据升级包、并对所述第二数据升级包进行校验的步骤,直至所述N个升级指令执行完毕或判定所述第二数据升级包校验失败。
可选地,所述移动终端还包括反向升级指令集,所述数据升级程序被所述处理器501执行时,还可以实现如下步骤:
将获取的所述至少一个反向升级指令添加至所述反向升级指令集;
当已经执行所述M个升级指令,所述反向升级指令集包括有M个反向升级指令,所述从获取的反向升级指令中提取M个反向升级指令的步骤,包括:
提取所述反向升级指令集中的M个反向升级指令。
可选地,所述第一数据升级包包括多个第一升级数据,所述数据升级程序被所述处理器501执行时,还可以实现如下步骤:
确定所述至少一个升级指令指向的第一升级数据;
获取所述至少一个升级指令指向的第一升级数据的第一存储路径;
将所述至少一个升级指令指向的第一升级数据备份至第二存储路径。
可选地,所述数据升级程序被所述处理器501执行时,还可以实现如下步骤:
提取所述至少一个升级指令的正向操作命令;
针对所述正向操作命令,生成反向操作命令;
采用所述反向操作命令、所述第一存储路径和所述第二存储路径,生成所述至少一个反向升级指令。
可选地,所述N个升级指令分别指向多个预设的中间数据,所述数据升级程序被所述处理器501执行时,还可以实现如下步骤:
获取所述至少一个升级指令指向的中间数据;
采用所述中间数据更新所述第一升级数据,得到第二升级数据,并采用所述第二升级数据形成所述第二数据升级包。
可选地,所述至少一个升级指令包括预设的第一校验值,所述数据升级程序被所述处理器501执行时,还可以实现如下步骤:
计算所述第二数据升级包中的第二升级数据的第二校验值;
判断所述第二校验值是否与所述第一校验值匹配;
若是,则判定校验成功;
若否,则判定校验失败。
可选地,所述数据升级程序被所述处理器501执行时,还可以实现如下步骤:
获取所述移动终端的处理能力信息;
根据所述移动终端的处理能力信息配置多个处理线程;
针对所述多个处理线程分配线程任务;所述线程任务包括将所述至少一个升级指令指向的第一升级数据备份至第二存储路径,以及,针对所述第一数据升级包执行所述至少一个升级指令,得到第二数据升级包;
根据所述多个处理线程所分配的线程任务,建立所述多个处理线程的关联关系;
针对所述多个处理线程的关联关系,确定所述多个处理线程的优先级别;
按照所述多个处理线程的优先级别,依次启动所述多个处理线程。
需要说明的是,本发明实施例提供的移动终端500 能够实现上述实施例一和实施例二中数据升级方法的各个过程步骤,其工作原理和方式均对应适用,这里不再赘述。
在本发明实施例中,通过在执行升级指令前获取反向升级指令,在移动终端硬件异常、执行多个升级指令后出现校验失败的情况下,依次执行多个反向升级指令,从而可以将移动终端的数据恢复,避免了固件数据不完整、移动终端无法继续正常运作的问题。而且,在移动终端硬件异常、执行多个升级指令后出现校验失败的情况下,移动终端仍然可以正常运作,提升了用户体验。
本领域普通技术人员可以意识到,结合本发明实施例中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合 或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或 者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的 技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者 网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种数据升级方法,应用于移动终端,其特征在于,所述移动终端包括第一数据升级包以及用于升级所述第一数据升级包的N个升级指令,其中,N≥1,所述方法包括:
从所述N个升级指令中获取至少一个升级指令,以及至少一个反向升级指令;
针对所述第一数据升级包执行所述至少一个升级指令,得到第二数据升级包,并对所述第二数据升级包进行校验;
若校验失败,确定所述N个升级指令中已经执行的M个升级指令,并从获取的反向升级指令中提取M个反向升级指令;其中,N≥M≥1;
针对执行所述M个升级指令得到的所述第二数据升级包,依次执行所述M个反向升级指令,以将执行所述M个升级指令得到的第二数据升级包,恢复为执行所述M个升级指令前的第一数据升级包;
其中,所述第一数据升级包包括多个第一升级数据,在所述从所述N个升级指令中获取至少一个升级指令的步骤之后,所述方法还包括:
确定所述至少一个升级指令指向的第一升级数据;
获取所述至少一个升级指令指向的第一升级数据的第一存储路径;
将所述至少一个升级指令指向的第一升级数据备份至第二存储路径;
其中,所述方法还包括:
获取所述移动终端的处理能力信息;
根据所述移动终端的处理能力信息配置多个处理线程;
针对所述多个处理线程分配线程任务;所述线程任务包括将所述至少一个升级指令指向的第一升级数据备份至第二存储路径,以及,针对所述第一数据升级包执行所述至少一个升级指令,得到第二数据升级包;
根据所述多个处理线程所分配的线程任务,建立所述多个处理线程的关联关系;
针对所述多个处理线程的关联关系,确定所述多个处理线程的优先级别;
按照所述多个处理线程的优先级别,依次启动所述多个处理线程;
其中,所述N个升级指令分别指向多个预设的中间数据,所述针对所述第一数据升级包执行所述至少一个升级指令,得到第二数据升级包的步骤,包括:
获取所述至少一个升级指令指向的中间数据;
采用所述中间数据更新所述第一升级数据,得到第二升级数据,并采用所述第二升级数据形成所述第二数据升级包;
所述至少一个升级指令包括预设的第一校验值,所述对所述第二数据升级包进行校验的步骤,包括:
计算所述第二数据升级包中的第二升级数据的第二校验值;
判断所述第二校验值是否与所述第一校验值匹配;
若是,则判定校验成功;
若否,则判定校验失败。
2.根据权利要求1所述的方法,其特征在于,在所述对所述第二数据升级包进行校验的步骤之后,所述方法还包括:
若校验成功,返回所述从所述N个升级指令中获取至少一个升级指令,以及至少一个反向升级指令、针对所述第一数据升级包执行所述至少一个升级指令得到第二数据升级包、并对所述第二数据升级包进行校验的步骤,直至所述N个升级指令执行完毕或判定所述第二数据升级包校验失败。
3.根据权利要求1所述的方法,其特征在于,所述移动终端还包括反向升级指令集,在所述从所述N个升级指令中获取至少一个升级指令,以及至少一个反向升级指令的步骤之后,所述方法还包括:
将获取的所述至少一个反向升级指令添加至所述反向升级指令集;
当已经执行所述M个升级指令,所述反向升级指令集包括有M个反向升级指令,所述从获取的反向升级指令中提取M个反向升级指令的步骤,包括:
提取所述反向升级指令集中的M个反向升级指令。
4.根据权利要求1所述的方法,其特征在于,所述获取至少一个反向升级指令的步骤,包括:
提取所述至少一个升级指令的正向操作命令;
针对所述正向操作命令,生成反向操作命令;
采用所述反向操作命令、所述第一存储路径和所述第二存储路径,生成所述至少一个反向升级指令。
5.一种移动终端,其特征在于,所述移动终端包括第一数据升级包以及用于升级所述第一数据升级包的N个升级指令,其中,N≥1,所述移动终端包括:
指令获取模块,用于从所述N个升级指令中获取至少一个升级指令,以及至少一个反向升级指令;
指令执行及校验模块,用于对所述第一数据升级包执行所述至少一个升级指令,得到第二数据升级包,并对所述第二数据升级包进行校验;
反向升级指令提取模块,用于若校验失败,确定所述N个升级指令中已经执行的M个升级指令,并从获取的反向升级指令中提取M个反向升级指令;其中,N≥M≥1;
反向升级指令执行模块,用于针对执行所述M个升级指令得到的所述第二数据升级包,依次执行所述M个反向升级指令,以将执行所述M个升级指令得到的第二数据升级包,恢复为执行所述M个升级指令前的第一数据升级包;
其中,所述第一数据升级包包括多个第一升级数据,所述移动终端还包括:
数据确定模块,用于确定所述至少一个升级指令指向的第一升级数据;
存储路径获取模块,用于获取所述至少一个升级指令指向的第一升级数据的第一存储路径;
备份模块,用于将所述至少一个升级指令指向的第一升级数据备份至第二存储路径;
其中,所述移动终端还包括:
信息获取模块,用于获取所述移动终端的处理能力信息;
线程配置模块,用于根据所述移动终端的处理能力信息配置多个处理线程;
任务分配模块,用于针对所述多个处理线程分配线程任务;所述线程任务包括将所述至少一个升级指令指向的第一升级数据备份至第二存储路径,以及,针对所述第一数据升级包执行所述至少一个升级指令,得到第二数据升级包;
关联关系建立模块,用于根据所述多个处理线程所分配的线程任务,建立所述多个处理线程的关联关系;
优先级别确定模块,用于针对所述多个处理线程的关联关系,确定所述多个处理线程的优先级别;
线程启动模块,用于按照所述多个处理线程的优先级别,依次启动所述多个处理线程;
其中,所述N个升级指令分别指向多个预设的中间数据,所述指令执行及校验模块,包括:
中间数据获取子模块,用于获取所述至少一个升级指令指向的中间数据;
中间数据处理子模块,用于采用所述中间数据更新所述第一升级数据,得到第二升级数据,并采用所述第二升级数据形成所述第二数据升级包;
所述至少一个升级指令包括预设的第一校验值,所述指令执行及校验模块,包括:
校验值计算子模块,用于计算所述第二数据升级包中的第二升级数据的第二校验值;
校验值判断子模块,用于判断所述第二校验值是否与所述第一校验值匹配;
校验判断子模块,用于判定校验成功或判定校验失败。
6.根据权利要求5所述的移动终端,其特征在于,所述移动终端还包括:
返回模块,用于若校验成功,返回所述从所述N个升级指令中获取至少一个升级指令,以及至少一个反向升级指令、针对所述第一数据升级包执行所述至少一个升级指令得到第二数据升级包、并对所述第二数据升级包进行校验的步骤,直至所述N个升级指令执行完毕或判定所述第二数据升级包校验失败。
7.根据权利要求5所述的移动终端,其特征在于,所述移动终端还包括反向升级指令集,所述移动终端还包括:
反向指令添加模块,用于将获取的所述至少一个反向升级指令添加至所述反向升级指令集;
当已经执行所述M个升级指令,所述反向升级指令集包括有M个反向升级指令,所述反向升级指令提取模块,包括:
反向升级指令提取子模块,用于提取所述反向升级指令集中的M个反向升级指令。
8.根据权利要求5所述的移动终端,其特征在于,所述指令获取模块,包括:
正向操作命令提取子模块,用于提取所述至少一个升级指令的正向操作命令;
反向操作命令生成子模块,用于针对所述正向操作命令,生成反向操作命令;
反向升级指令生成子模块,用于采用所述反向操作命令、所述第一存储路径和所述第二存储路径,生成所述至少一个反向升级指令。
9.一种移动终端,其特征在于,包括处理器和存储器,存储在所述存储器上并可在所述处理器上运行的数据升级程序,所述数据升级程序被所述处理器执行时,实现如权利要求1-4中任一项所述的数据升级方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有数据升级程序,所述数据升级程序被处理器执行时,实现如权利要求1-4中任一项所述的数据升级方法的步骤。
CN201710802259.1A 2017-09-07 2017-09-07 一种数据升级方法及移动终端 Active CN107656747B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710802259.1A CN107656747B (zh) 2017-09-07 2017-09-07 一种数据升级方法及移动终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710802259.1A CN107656747B (zh) 2017-09-07 2017-09-07 一种数据升级方法及移动终端

Publications (2)

Publication Number Publication Date
CN107656747A CN107656747A (zh) 2018-02-02
CN107656747B true CN107656747B (zh) 2021-01-08

Family

ID=61128057

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710802259.1A Active CN107656747B (zh) 2017-09-07 2017-09-07 一种数据升级方法及移动终端

Country Status (1)

Country Link
CN (1) CN107656747B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609328A (zh) * 2012-01-29 2012-07-25 华为终端有限公司 ***差分升级方法和装置、移动终端
CN104951348A (zh) * 2015-07-16 2015-09-30 广东欧珀移动通信有限公司 一种可中断的recovery升级方法及装置
CN105138347A (zh) * 2015-07-17 2015-12-09 广东欧珀移动通信有限公司 一种差分升级包生成方法、软件升级方法及相应装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609328A (zh) * 2012-01-29 2012-07-25 华为终端有限公司 ***差分升级方法和装置、移动终端
CN104951348A (zh) * 2015-07-16 2015-09-30 广东欧珀移动通信有限公司 一种可中断的recovery升级方法及装置
CN105138347A (zh) * 2015-07-17 2015-12-09 广东欧珀移动通信有限公司 一种差分升级包生成方法、软件升级方法及相应装置

Also Published As

Publication number Publication date
CN107656747A (zh) 2018-02-02

Similar Documents

Publication Publication Date Title
US20210124574A1 (en) Techniques for updating a file using a multi-version patch file
KR100584338B1 (ko) 소프트웨어 업데이트 방법 및 시스템
US9804933B2 (en) System differential upgrade method, apparatus, and mobile terminal
KR100750132B1 (ko) 부팅, 소프트웨어 자동 업데이트 및 에러 복원 방법과 그시스템, 그 방법을 기록한 컴퓨터 판독 가능한 기록매체
US20070074201A1 (en) Method and system for updating software and computer readable recording medium storing the method
CN106775610B (zh) 一种电子设备启动方法及一种电子设备
US20110004871A1 (en) Embedded electronic device and firmware updating method thereof
KR100515890B1 (ko) 효율적인 데이터베이스 복구방법
CN105138347A (zh) 一种差分升级包生成方法、软件升级方法及相应装置
CN104572229A (zh) 嵌入式***的固件升级方法以及固件升级装置
US10795688B2 (en) System and method for performing an image-based update
US11544223B2 (en) Write operation verification method and apparatus
CN108108261B (zh) 数据存储装置及其操作方法
CN107908417B (zh) 固件升级方法及电子设备
EP3474143B1 (en) Method and apparatus for incremental recovery of data
CN113254048B (zh) 引导程序更新方法、装置、设备及计算机可读介质
CN109582332B (zh) 互联网摄像机的***升级方法及装置
CN104461641A (zh) 一种数据烧写方法、***、烧写设备以及目标设备
CN111045713A (zh) 一种计算机***的升级方法、***及装置
CN111258666A (zh) 计算机文件的读取方法、装置、计算机***及存储介质
CN113157303A (zh) 升级方法、嵌入式***、终端及计算机存储介质
CN112015447A (zh) 电子设备的***更新方法及装置、电子设备及存储介质
CN114020527A (zh) 快照恢复方法、装置、计算机设备及存储介质
CN116737466B (zh) 备份处理方法、装置、***、电子设备及可读存储介质
CN107704338B (zh) 一种资料储存型闪存的数据恢复方法和装置

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
GR01 Patent grant
GR01 Patent grant