一种升级异常修复方法、升级异常修复装置及智能终端转让专利

申请号 : CN201710612728.3

文献号 : CN107341074B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王汉青

申请人 : OPPO广东移动通信有限公司

摘要 :

本发明公开了一种升级异常修复方法、升级异常修复装置、智能终端及计算机可读存储介质,其中,该升级异常修复方法包括:当接收到升级指令时,保存升级前主分区表中的数据,作为升级前分区信息;在基于所述升级指令对所述主分区表进行写入操作前,获取准备写入所述主分区表的数据,作为目标写入信息;当本次对所述主分区表进行的写入操作完成时,获取本次写入所述主分区表中的数据,作为目标读取信息;检测所述目标写入信息及所述目标读取信息是否存在差异;若所述目标写入信息及所述目标读取信息存在差异,则将当前所述主分区表中的数据替换为所述升级前分区信息。本发明方案能够保护智能终端升级时的分区表的数据的安全。

权利要求 :

1.一种升级异常修复方法,其特征在于,所述升级异常修复方法包括:当接收到升级指令时,保存升级前主分区表中的数据,作为升级前分区信息,其中,保存的所述升级前分区信息在升级时不会发生更改;

在基于所述升级指令对所述主分区表进行写入操作前,获取准备写入所述主分区表的数据,作为目标写入信息;

当本次对所述主分区表进行的写入操作完成时,获取本次写入所述主分区表中的数据,作为目标读取信息;

检测所述目标写入信息及所述目标读取信息是否存在差异;

若所述目标写入信息及所述目标读取信息存在差异,则将当前所述主分区表中的数据替换为所述升级前分区信息;

所述升级异常修复方法还包括:

在智能终端初次启动时,保存所述主分区表中的数据,作为原始分区信息,其中,保存的所述原始分区信息在升级时不会发生更改;

所述检测所述目标写入信息及所述目标读取信息是否存在差异,之后还包括:若所述目标写入信息及所述目标读取信息不存在差异,则检测比对差异是否超出预设的差异范围,所述比对差异为将所述原始分区信息及所述目标读取信息进行比对后所得差异;

若所述比对差异超出所述预设的差异范围,则将当前所述主分区表中的数据替换为所述升级前分区信息。

2.如权利要求1所述的升级异常修复方法,其特征在于,所述检测比对差异是否超出所述预设的差异范围,包括:将所述原始分区信息存入第一缓冲区,将所述目标读取信息存入第二缓冲区;

分别比对所述第一缓冲区与所述第二缓冲区的各个相应位置的数据是否存在差异;

若所有存在差异的位置均为预设的差异位置,则确定所述比对差异未超出所述预设的差异范围;

若出现有存在差异的位置不为预设的差异位置,则确定所述比对差异超出所述预设的差异范围。

3.如权利要求1至2任一项所述的升级异常修复方法,其特征在于,所述保存升级前主分区表中的数据,包括:获取升级前所述主分区表中的数据;

将升级前所述主分区表中的数据保存至私有分区表中,其中,所述私有分区表中的数据在升级时不会发生更改。

4.如权利要求1至2任一项所述的升级异常修复方法,其特征在于,所述将当前所述主分区表中的数据替换为所述升级前分区信息之后,或者,若所述比对差异未超出所述预设的差异范围,则所述升级异常修复方法还包括:基于当前所述主分区表中的数据触发智能终端启动。

5.一种升级异常修复装置,其特征在于,所述升级异常修复装置包括:升级前分区信息保存单元,用于当接收到升级指令时,保存升级前主分区表中的数据,作为升级前分区信息,其中,保存的所述升级前分区信息在升级时不会发生更改;

目标写入信息获取单元,用于在基于所述升级指令对所述主分区表进行写入操作前,获取准备写入所述主分区表的数据,作为目标写入信息;

目标读取信息获取单元,用于当本次对所述主分区表进行的写入操作完成时,获取本次写入所述主分区表中的数据,作为目标读取信息;

第一差异检测单元,用于检测所述目标写入信息获取单元获取到的目标写入信息及所述目标读取信息获取单元获取到的目标读取信息是否存在差异;

数据修复单元,用于若所述第一差异检测单元检测到所述目标写入信息及所述目标读取信息存在差异,则将当前所述主分区表中的数据替换为所述升级前分区信息保存单元保存的升级前分区信息;

原始分区信息保存单元,用于在智能终端初次启动时,保存所述主分区表中的数据,作为原始分区信息,其中,保存的所述原始分区信息在升级时不会发生更改;

第二差异检测单元,用于若所述第一差异检测单元检测到所述目标写入信息及所述目标读取信息不存在差异,则检测比对差异是否超出预设的差异范围,所述比对差异为将所述原始分区信息保存单元保存的原始分区信息及所述目标读取信息获取单元获取到的目标读取信息进行比对后所得差异;

所述数据修复单元,还用于若所述第二差异检测单元检测到所述比对差异超出所述预设的差异范围,则将当前所述主分区表中的数据替换为所述升级前分区信息保存单元保存的升级前分区信息。

6.如权利要求5所述的升级异常修复装置,其特征在于,所述第二差异检测单元包括:信息缓冲子单元,用于将所述原始分区信息存入第一缓冲区,将所述目标读取信息存入第二缓冲区;

信息比对子单元,用于分别比对所述第一缓冲区与所述第二缓冲区的各个相应位置的数据是否存在差异;

检测结果确定子单元,用于若所有存在差异的位置均为预设的差异位置,则确定所述比对差异未超出所述预设的差异范围,若出现有存在差异的位置不为预设的差异位置,则确定所述比对差异超出所述预设的差异范围。

7.一种智能终端,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至4任一项所述方法的步骤。

8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述方法的步骤。

说明书 :

一种升级异常修复方法、升级异常修复装置及智能终端

技术领域

[0001] 本发明属于智能终端技术领域,尤其涉及一种升级异常修复方法、升级异常修复装置、智能终端及计算机可读存储介质。

背景技术

[0002] 市面上的基于联发科(Media Tek,MTK)平台的智能终端在使用空中下载技术(Over the Air,OTA)进行升级时,通常会对分区表进行写入操作,写入一些标志位。但在进行OTA升级的过程中,有时会出现对分区表进行写入操作后,分区表被错误地写入了一些随机数字的情况。在这种情况下,智能终端会因为在开机时无法加载到正确的分区表而导致无法开机,影响智能终端的正常工作。

发明内容

[0003] 有鉴于此,本发明提供了一种升级异常修复方法、升级异常修复装置、智能终端及计算机可读存储介质,旨在解决智能终端在进行升级时发生的分区表异常写入的问题,保护智能终端升级时的分区表的数据的安全。
[0004] 本发明第一方面提供了一种升级异常修复方法,上述升级异常修复方法包括:
[0005] 当接收到升级指令时,保存升级前主分区表中的数据,作为升级前分区信息,其中,保存的上述升级前分区信息在升级时不会发生更改;
[0006] 在基于上述升级指令对上述主分区表进行写入操作前,获取准备写入上述主分区表的数据,作为目标写入信息;
[0007] 当本次对上述主分区表进行的写入操作完成时,获取本次写入上述主分区表中的数据,作为目标读取信息;
[0008] 检测上述目标写入信息及上述目标读取信息是否存在差异;
[0009] 若上述目标写入信息及上述目标读取信息存在差异,则将当前上述主分区表中的数据替换为上述升级前分区信息。
[0010] 基于本发明第一方面,在第一种可能的实现方式中,上述升级异常修复方法还包括:
[0011] 在智能终端初次启动时,保存上述主分区表中的数据,作为原始分区信息,其中,保存的上述原始分区信息在升级时不会发生更改;
[0012] 上述检测上述目标写入信息及上述目标读取信息是否存在差异,之后还包括:
[0013] 若上述目标写入信息及上述目标读取信息不存在差异,则检测比对差异是否超出预设的差异范围,上述比对差异为将上述原始分区信息及上述目标读取信息进行比对后所得差异;
[0014] 若上述比对差异超出上述预设的差异范围,则将当前上述主分区表中的数据替换为上述升级前分区信息。
[0015] 基于本发明第一方面的第一种可能的实现方式,在第二种可能的实现方式中,上述检测比对差异是否超出上述预设的差异范围,包括:
[0016] 将上述原始分区信息存入第一缓冲区,将上述目标读取信息存入第二缓冲区;
[0017] 分别比对上述第一缓冲区与上述第二缓冲区的各个相应位置的数据是否存在差异;
[0018] 若所有存在差异的位置均为预设的差异位置,则确定上述比对差异未超出上述预设的差异范围;
[0019] 若出现有存在差异的位置不为预设的差异位置,则确定上述比对差异超出上述预设的差异范围。
[0020] 基于本发明第一方面,或者本发明第一方面的第一种可能的实现方式,或者本发明第一方面的第二种可能的实现方式,在第三种可能的实现方式中,上述将当前上述主分区表中的数据替换为上述升级前分区信息之后,或者,若上述比对差异未超出上述预设的差异范围,则上述升级异常修复方法还包括:
[0021] 基于当前上述主分区表中的数据触发智能终端启动。
[0022] 基于本发明第一方面,或者本发明第一方面的第一种可能的实现方式,或者本发明第一方面的第二种可能的实现方式,在第四种可能的实现方式中,上述保存升级前主分区表中的数据,包括:
[0023] 获取升级前上述主分区表中的数据;
[0024] 将升级前上述主分区表中的数据保存至私有分区表中,其中,上述私有分区表中的数据在升级时不会发生更改。
[0025] 本发明第二方面提供了一种升级异常修复装置,上述升级异常修复装置包括:
[0026] 升级前分区信息保存单元,用于当接收到升级指令时,保存升级前主分区表中的数据,作为升级前分区信息,其中,保存的上述升级前分区信息在升级时不会发生更改;
[0027] 目标写入信息获取单元,用于在基于上述升级指令对上述主分区表进行写入操作前,获取准备写入上述主分区表的数据,作为目标写入信息;
[0028] 目标读取信息获取单元,用于当本次对上述主分区表进行的写入操作完成时,获取本次写入上述主分区表中的数据,作为目标读取信息;
[0029] 第一差异检测单元,用于检测上述目标写入信息获取单元获取到的目标写入信息及上述目标读取信息获取单元获取到的目标读取信息是否存在差异;
[0030] 数据修复单元,用于若上述第一差异检测单元检测到上述目标写入信息及上述目标读取信息存在差异,则将当前上述主分区表中的数据替换为上述升级前分区信息保存单元保存的升级前分区信息。
[0031] 基于本发明第二方面,在第一种可能的实现方式中,上述升级异常修复装置还包括:
[0032] 原始分区信息保存单元,用于在智能终端初次启动时,保存上述主分区表中的数据,作为原始分区信息,其中,保存的上述原始分区信息在升级时不会发生更改;
[0033] 第二差异检测单元,用于若上述第一差异检测单元检测到上述目标写入信息及上述目标读取信息不存在差异,则检测比对差异是否超出预设的差异范围,上述比对差异为将上述原始分区信息保存单元保存的原始分区信息及上述目标读取信息获取单元获取到的目标读取信息进行比对后所得差异;
[0034] 上述数据修复单元,还用于若上述第二差异检测单元检测到上述比对差异超出上述预设的差异范围,则将当前上述主分区表中的数据替换为上述升级前分区信息保存单元保存的升级前分区信息。
[0035] 基于本发明第二方面的第一种可能的实现方式,在第二种可能的实现方式中,上述第二差异检测单元,包括:
[0036] 信息缓冲子单元,用于将上述原始分区信息存入第一缓冲区,将上述目标读取信息存入第二缓冲区;
[0037] 信息比对子单元,用于分别比对上述第一缓冲区与上述第二缓冲区的各个相应位置的数据是否存在差异;
[0038] 检测结果确定子单元,用于若所有存在差异的位置均为预设的差异位置,则确定上述比对差异未超出上述预设的差异范围,若出现有存在差异的位置不为预设的差异位置,则确定上述比对差异超出上述预设的差异范围。
[0039] 基于本发明第二方面,或者本发明第二方面的第一种可能的实现方式,或者本发明第二方面的第二种可能的实现方式,在第三种可能的实现方式中,上述升级异常修复装置还包括:
[0040] 终端启动单元,用于在将当前上述主分区表中的数据替换为上述升级前分区信息之后,或者,若上述比对差异未超出上述预设的差异范围,则基于当前上述主分区表中的数据触发智能终端启动。
[0041] 基于本发明第二方面,或者本发明第二方面的第一种可能的实现方式,或者本发明第二方面的第二种可能的实现方式,在第四种可能的实现方式中,上述升级前分区信息保存单元包括:
[0042] 升级前分区信息获取子单元,用于获取升级前上述主分区表中的数据;
[0043] 升级前分区信息存入子单元,用于将升级前上述主分区表中的数据保存至私有分区表中,其中,上述私有分区表中的数据在升级时不会发生更改。
[0044] 本发明第三方面提供了一种智能终端,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,上述处理器执行上述计算机程序时实现上述第一方面或者上述第一方面的任一可能实现方式中提及的升级异常修复方法。
[0045] 本发明第四方面提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,上述计算机程序被处理器执行时实现上述第一方面或者上述第一方面的任一可能实现方式中提及的升级异常修复方法。
[0046] 由上可见,通过本发明方案,当接收到升级指令时,保存升级前主分区表中的数据,作为升级前分区信息,其中,保存的上述升级前分区信息在升级时不会发生更改,在基于上述升级指令对上述主分区表进行写入操作前,获取准备写入上述主分区表的数据,作为目标写入信息,并在本次对上述主分区表进行的写入操作完成时,获取本次写入上述主分区表中的数据,作为目标读取信息,随后检测上述目标写入信息及上述目标读取信息是否存在差异,若上述目标写入信息及上述目标读取信息存在差异,则将当前上述主分区表中的数据替换为上述升级前分区信息。本发明方案通过对升级前待写入主分区表的数据及升级后从主分区表读取到的数据进行比对及判断,能够快速获知智能终端的主分区表在升级过程中是否发生数据异常,并在发生数据异常时,通过将主分区表中的数据还原为预先保存的智能终端能够正常运行时的主分区表的数据,实现升级异常的快速修复,保护分区表的数据的安全。

附图说明

[0047] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0048] 图1是本发明提供的升级异常修复方法一个实施例实现流程示意图;
[0049] 图2是本发明提供的升级异常修复方法另一个实施例实现流程示意图;
[0050] 图3是本发明提供的升级异常修复方法步骤S206的具体实现流程示意图;
[0051] 图4是本发明提供的升级异常修复装置一个实施例结构示意图;
[0052] 图5是本发明提供的智能终端一个实施例结构示意图。

具体实施方式

[0053] 以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
[0054] 为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
[0055] 实施例一
[0056] 下面对本发明实施例提供的一种升级异常修复方法进行描述,请参阅图1,本发明实施例中的升级异常修复方法包括:
[0057] 在步骤S101中,当接收到升级指令时,保存升级前主分区表中的数据,作为升级前分区信息;
[0058] 在本发明实施例中,基于MTK平台的智能终端可以在用户输入的升级指令的指示下进行升级操作;或者,在步骤S101中,上述升级指令也可以是由智能终端的操作系统周期性生成的,例如,设定每月的一号由上述智能终端的操作系统自动检测是否能够进行升级,并在能够进行升级时生成升级指令并基于上述升级指令进行升级操作;又或者,在步骤S101中,还可以是当智能终端检测到当前存在用于进行升级的升级文件时,生成升级指令并基于上述升级指令进行升级操作,此处不作限定。当接收到升级指令时,保存升级前主分区表中的数据,作为升级前分区信息,其中,保存的上述升级前分区信息在升级时不会发生更改。虽然智能终端会自动将主分区表中的数据在备份分区表中进行备份,但在进行升级操作时,主分区表及备份分区表均会进行读写操作,即备份分区表中的数据在进行了升级操作后,也可能会发生数据异常,主分区表即便基于备份分区表进行了数据的还原操作,也无法获得正确的分区表的数据。因而,为了确保上述升级前分区信息在升级时不会发生更改,上述步骤S101可以具体表现为:在接收到升级指令时,获取升级前上述主分区表中的数据;将升级前上述主分区表中的数据保存至私有分区表中。上述私有分区表为智能终端的厂商设置的分区表,可以使得智能终端保存各自厂商的特有参数,例如校准参数等,通常情况下,智能终端的厂商对上述私有分区表设置了保护机制,使得智能终端在进行升级时不会对上述私有分区表中的数据进行更改。或者,上述步骤S101还可以具体表现为:在接收到升级指令时,获取升级前上述主分区表中的数据;将升级前上述主分区表中的数据保存至云端服务器中。当然,还可以通过其他方式保存上述升级前分区信息,此处不作限定。
[0059] 在步骤S102中,在基于上述升级指令对上述主分区表进行写入操作前,获取准备写入上述主分区表的数据,作为目标写入信息;
[0060] 在本发明实施例中,在基于步骤S101中获得的升级指令对上述主分区表进行写入操作前,获取准备写入上述主分区表的数据,作为目标写入信息。由于每次升级都必然会对主分区表进行写入操作,为了确定上述写入操作是有效的,在进行上述写入操作前,可以获取准备写入上述主分区表的数据,即获取本次待写入主分区表的数据。可选地,由于对上述主分区表进行写入操作时,通常不会对上述主分区表的全部位置的数据进行改写,因而,此处可以是仅获取主分区表中,本次实际准备写入的数据及各实际准备写入的数据在主分区表中的对应位置信息,即此时,对主分区表进行写入操作的方式为局部覆盖;或者,在步骤S102中,上述目标写入信息也可以覆盖主分区表的全部位置,即对于主分区表的全部位置的数据,均有对应的准备写入的数据,对于那些实际不应该被改写的位置,该位置的原数据与对应的准备写入的数据相等。在此过程中,由于主分区表的各个位置都会进行写入操作,因而此时不再需要查找实际准备写入的数据在主分区表中的对应位置信息,而是直接将整个主分区表的数据替换为目标写入信息即可,即此时,对主分区表进行写入操作的方式为全部覆盖。当然,还可以以其它方式获取本次升级准备写入上述主分区表的数据,此处不作限定。
[0061] 在步骤S103中,当本次对上述主分区表进行的写入操作完成时,获取本次写入上述主分区表中的数据,作为目标读取信息;
[0062] 在本发明实施例中,当本次对上述主分区表进行的写入操作完成时,根据本次升级对主分区表进行的写入操作的方式,获取本次写入上述主分区表中的数据,作为目标读取数据。可选地,若本次写入操作为局部覆盖,则在本次写入操作完成时,查找上述主分区表中实际进行了写入操作的位置,并读取这些位置的数据,作为目标读取信息;或者,在步骤S103中,若本次写入操作为全部覆盖,则完整读取上述主分区表中的所有位置的数据,作为目标读取信息。当然,还可以以其他方式获取本次写入上述主分区表的数据,此处不作限定。
[0063] 在步骤S104中,检测上述目标写入信息及上述目标读取信息是否存在差异;
[0064] 在步骤S105中,若上述目标写入信息及上述目标读取信息存在差异,则将当前上述主分区表中的数据替换为上述升级前分区信息。
[0065] 在本发明实施例中,检测上述步骤S102获得的目标写入数据及上述步骤S103获得的目标读取数据是否存在差异。若对主分区表进行的写入操作及读取操作均未发生异常,则上述目标写入信息必然与上述读取信息相等。因而此处通过检测上述目标写入信息及上述目标读取信息是否存在差异来判断升级后的主分区表的数据是否异常。若上述目标写入信息及上述目标读取信息存在差异,则表明对上述主分区表进行的写入操作和/或读取操作中,存在误操作的情况。此时若对主分区表进行加载,很可能无法加载到正确的主分区表的数据。为了修复上述主分区表可能存在的异常情况,将上述主分区表中的数据替换为升级过程中不会发生更改的上述升级前分区信息。若上述目标写入信息及上述目标读取信息不存在差异,则此时可以基于当前上述主分区表中的数据触发智能终端启动。
[0066] 由上可见,通过本发明实施例,在智能终端进行了升级后,对升级前待写入主分区表的数据及升级后从主分区表读取到的数据进行比对及判断,能够快速获知智能终端的主分区表在升级过程中是否发生数据异常,并在发生数据异常时,通过将主分区表中的数据还原为预先保存的智能终端能够正常运行时的主分区表的数据,实现升级异常的快速修复,保护分区表的数据的安全。
[0067] 应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0068] 实施例二
[0069] 在上述实施例一的基础上,下面对本发明实施例提供的另一升级异常修复方法进行描述,请参阅图2,本发明实施例中的升级异常修复方法包括:
[0070] 在步骤S201中,在智能终端初次启动时,保存上述主分区表中的数据,作为原始分区信息;
[0071] 在本发明实施例中,在智能终端初次启动时,由于上述智能终端中的数据还未被用户所更改,且智能终端也未进行过升级操作,也即是说,此时智能终端中的数据仍为出厂时由智能终端的厂商设置的原始数据。因此,可以将上述原始分区信息作为后续检验主分区表中的数据是否正常的一个参考。需要注意的是,上述保存的上述原始分区信息在升级时不会发生更改,具体地,可以参考上述步骤S101的描述,以保存上述升级前分区信息时采用的类似的方式保存上述原始分区信息。
[0072] 在步骤S202中,当接收到升级指令时,保存升级前主分区表中的数据,作为升级前分区信息;
[0073] 在本发明实施例中,上述步骤S202与上述步骤S101相同,具体可参见步骤S101的相关描述,在此不再赘述。
[0074] 在步骤S203中,在基于上述升级指令对上述主分区表进行写入操作前,获取准备写入上述主分区表的数据,作为目标写入信息;
[0075] 在本发明实施例中,上述步骤S203与上述步骤S102相同,具体可参见步骤S102的相关描述,在此不再赘述。
[0076] 在步骤S204中,当本次对上述主分区表进行的写入操作完成时,获取本次写入上述主分区表中的数据,作为目标读取信息;
[0077] 在本发明实施例中,上述步骤S204与上述步骤S103相同,具体可参见步骤S103的相关描述,在此不再赘述。
[0078] 在步骤S205中,检测上述目标写入信息及上述目标读取信息是否存在差异,若是,则执行步骤S207,若否,则执行步骤S206;
[0079] 在本发明实施例中,检测上述步骤S203获得的目标写入数据及上述步骤S204获得的目标读取数据是否存在差异。若对主分区表进行的写入操作及读取操作均未发生异常,则上述目标写入信息必然与上述读取信息相等。因而此处通过当检测到上述目标写入信息必然与上述读取信息存在异常时可以立刻确定升级过程中主分区表发生了异常。但实际上,即便上述目标写入信息与上述目标读取数据不存在差异,上述主分区表仍有存在异常写入的可能性,例如,若在写入时,主分区表中的第一位的数据原本为“1”,本不应该被修改,因而准备写入上述第一位的数据也为“1”,但由于写入时发生了错误,导致上述第一位的数据被改写为了“0”,而在读取上述主分区表中的数据时,又发生了读取错误,导致读取到的上述第一位的数据为“1”。此时,获取到的上述准备写入第一位的数据与读取到的第一位的数据虽然没有差异,但实际上,主分区表中已经被改写为错误的数据。为了避免出现上述情况,可以在检测到上述目标写入信息及上述目标读取信息不存在差异时,进行进一步地检测,以确保主分区表中的数据准确。
[0080] 在步骤S206中,检测比对差异是否超出预设的差异范围,若是,则执行步骤S207,若否,则执行步骤S208;
[0081] 在本发明实施例中,上述比对差异为将上述原始分区信息及上述目标读取信息进行比对后所得差异。由于上述原始分区信息为智能终端出厂时的原始的数据,在本次进行了升级后,必然会对上述智能终端的主分区表的数据进行更改,也即是说,上述原始分区信息必然会与上述目标读取信息存在差异。因此,在本步骤中,可以检测上述比对差异是否超出预设的差异范围,若超过了预设的差异范围,则确认在本次升级过程中主分区表的数据很可能存在异常,若未超过预设的差异范围,则确认主分区表中的数据是正确的。
[0082] 在步骤S207中,将当前上述主分区表中的数据替换为上述升级前分区信息;
[0083] 在本发明实施例中,当步骤S206中检测到上述比对差异超过了预设的差异范围时,则确认在本次升级过程中主分区表的数据存在异常,此时若对主分区表进行加载,会出现无法加载到正确的主分区表的数据的情况。为了修复上述主分区表的异常情况,将当前上述主分区表中的数据替换为升级过程中不会发生更改的上述升级前分区信息。
[0084] 在步骤S208中,基于当前上述主分区表中的数据触发智能终端启动。
[0085] 在本发明实施例中,若已经通过步骤S205确定了上述目标写入信息与上述目标读取信息不存在差异,而且还通过步骤S206确定了上述原始分区信息及上述目标读取信息的差异在预设的差异范围内,则此时可以确认上述主分区表中的数据是正确的。或者,若已经通过上述步骤S207将当前上述主分区表中的数据替换为上述升级前分区信息,则此时也可以确认上述主分区表中的数据是正确的。至此,本次升级操作或升级时的异常修复操作已全部完成,可以基于当前上述主分区表中的数据触发智能终端启动。
[0086] 进一步地,图3示出了上述步骤S206的具体实现流程,详述如下:
[0087] 在步骤S301中,将上述原始分区信息存入第一缓冲区,将上述目标读取信息存入第二缓冲区;
[0088] 在本发明实施例中,可以将步骤S201获取到的上述原始分区信息存入第一缓冲区,将步骤S204获取到的上述原目标读取信息存入第二缓冲区,等待进行比对操作。
[0089] 在步骤S302中,分别比对上述第一缓冲区与上述第二缓冲区的各个相应位置的数据是否存在差异;
[0090] 在步骤S303中,若所有存在差异的位置均为预设的差异位置,则确定上述比对差异未超出上述预设的差异范围;
[0091] 在步骤S304中,若出现有存在差异的位置不为预设的差异位置,则确定上述比对差异超出上述预设的差异范围。
[0092] 在本发明实施例中,上述预设的差异位置为开发人员已知的智能终端的主分区表在升级时会产生差异的位置,也即是,上述预设的差异位置所发生的数据改写是受升级操作控制的正常差异。通过检验上述第一缓冲区与上述第二缓冲区的各个相应位置的数据是否存在差异,可以获取到所有存在差异的位置。若所有这些存在差异的位置均为预设的差异位置,则确定上述比对差异未超出上述预设的差异范围,即上述比对差异在升级时的合理范围内;反之,若所有存在差异的位置中,一旦出现有一个以上存在差异的位置不为预设的差异位置,则确定上述比对差异超出了预设的差异范围,即上述比对差异已超出了升级时的合理范围。
[0093] 由上可见,通过本发明实施例,在智能终端进行了升级后,对升级前待写入主分区表的数据及升级后从主分区表读取到的数据进行比对及判断,能够初步筛选出升级时因读/写主分区表的数据时发生了误操作而产生的数据异常情况,进一步地,当升级前待写入主分区表的数据及升级后从主分区表读取到的数据完全一致时,本发明实施例还通过检测智能终端出厂时的主分区表数据与升级后从主分区表读取到的数据之间的差异是否在合理范围内,确定是否存在因读写主分区表的数据均发生了误操作而导致的初步检测时没有检测到的数据异常情况,提高了升级时对数据异常检测的准确性,能够更好的保护分区表的数据的安全。
[0094] 应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0095] 实施例三
[0096] 本发明实施例还提供一种升级异常修复装置,如图4所示,本发明实施例中的升级异常处理装置400包括:
[0097] 升级前分区信息保存单元401,用于当接收到升级指令时,保存升级前主分区表中的数据,作为升级前分区信息,其中,保存的上述升级前分区信息在升级时不会发生更改;
[0098] 目标写入信息获取单元402,用于在基于上述升级指令对上述主分区表进行写入操作前,获取准备写入上述主分区表的数据,作为目标写入信息;
[0099] 目标读取信息获取单元403,用于当本次对上述主分区表进行的写入操作完成时,获取本次写入上述主分区表中的数据,作为目标读取信息;
[0100] 第一差异检测单元404,用于检测上述目标写入信息获取单元402获取到的目标写入信息及上述目标读取信息获取单元403获取到的目标读取信息是否存在差异;
[0101] 数据修复单元405,用于若上述第一差异检测单元404检测到上述目标写入信息及上述目标读取信息存在差异,则将当前上述主分区表中的数据替换为上述升级前分区信息保存单元保存的升级前分区信息。
[0102] 可选地,上述升级异常修复装置400还包括:
[0103] 原始分区信息保存单元,用于在智能终端初次启动时,保存上述主分区表中的数据,作为原始分区信息,其中,保存的上述原始分区信息在升级时不会发生更改;
[0104] 第二差异检测单元,用于若上述第一差异检测单元404检测到上述目标写入信息及上述目标读取信息不存在差异,则检测比对差异是否超出预设的差异范围,上述比对差异为将上述原始分区信息保存单元保存的原始分区信息及上述目标读取信息获取单元获取到的目标读取信息进行比对后所得差异;
[0105] 上述数据修复单元,还用于若上述第二差异检测单元检测到上述比对差异超出上述预设的差异范围,则将当前上述主分区表中的数据替换为上述升级前分区信息保存单元保存的升级前分区信息。
[0106] 可选地,上述第二差异检测单元,包括:
[0107] 信息缓冲子单元,用于将上述原始分区信息存入第一缓冲区,将上述目标读取信息存入第二缓冲区;
[0108] 信息比对子单元,用于分别比对上述第一缓冲区与上述第二缓冲区的各个相应位置的数据是否存在差异;
[0109] 检测结果确定子单元,用于若所有存在差异的位置均为预设的差异位置,则确定上述比对差异未超出上述预设的差异范围,若出现有存在差异的位置不为预设的差异位置,则确定上述比对差异超出上述预设的差异范围。
[0110] 可选地,上述升级前分区信息保存单元401包括:
[0111] 升级前分区信息获取子单元,用于获取升级前上述主分区表中的数据;
[0112] 升级前分区信息存入子单元,用于将升级前上述主分区表中的数据保存至私有分区表中,其中,上述私有分区表中的数据在升级时不会发生更改。
[0113] 可选地,上述升级异常修复装置400还包括:
[0114] 终端启动单元,用于在将当前上述主分区表中的数据替换为上述升级前分区信息之后,或者,若上述比对差异未超出上述预设的差异范围,则基于当前上述主分区表中的数据触发智能终端启动。
[0115] 由上可见,通过本发明实施例,升级异常修复装置能够在智能终端进行了升级后,对升级前待写入主分区表的数据及升级后从主分区表读取到的数据进行比对及判断,能够初步筛选出升级时因读/写主分区表的数据时发生了误操作而产生的数据异常情况,进一步地,当升级前待写入主分区表的数据及升级后从主分区表读取到的数据完全一致时,升级异常修复装置还能通过第二差异检测单元检测智能终端出厂时的主分区表数据与升级后从主分区表读取到的数据之间的差异是否在合理范围内,以此确定是否存在因读写主分区表的数据均发生了误操作而导致的初步检测时没有检测到的数据异常情况,提高了升级时对数据异常检测的准确性,能够更好的保护分区表的数据的安全。
[0116] 实施例四
[0117] 本发明实施例提供一种智能终端,请参阅图5,本发明实施例中的智能终端包括:存储器501,一个或多个处理器502(图5中仅示出一个)及存储在存储器501上并可在处理器上运行的计算机程序。其中:存储器501用于存储软件程序以及模块,处理器502通过运行存储在存储器501的软件程序以及单元,从而执行各种功能应用以及数据处理,以获取上述预设事件对应的资源。具体地,处理器502通过运行存储在存储器501的上述计算机程序时实现以下步骤:
[0118] 当接收到升级指令时,保存升级前主分区表中的数据,作为升级前分区信息,其中,保存的上述升级前分区信息在升级时不会发生更改;
[0119] 在基于上述升级指令对上述主分区表进行写入操作前,获取准备写入上述主分区表的数据,作为目标写入信息;
[0120] 当本次对上述主分区表进行的写入操作完成时,获取本次写入上述主分区表中的数据,作为目标读取信息;
[0121] 检测上述目标写入信息及上述目标读取信息是否存在差异;
[0122] 若上述目标写入信息及上述目标读取信息存在差异,则将当前上述主分区表中的数据替换为上述升级前分区信息。
[0123] 假设上述为第一种可能的实施方式,则在第一种可能的实施方式作为基础而提供的第二种可能的实施方式中,处理器502通过运行存储在存储器501的上述计算机程序时还实现以下步骤:
[0124] 在智能终端初次启动时,保存上述主分区表中的数据,作为原始分区信息,其中,保存的上述原始分区信息在升级时不会发生更改;
[0125] 上述检测上述目标写入信息及上述目标读取信息是否存在差异,之后还包括:
[0126] 若上述目标写入信息及上述目标读取信息不存在差异,则检测比对差异是否超出预设的差异范围,上述比对差异为将上述原始分区信息及上述目标读取信息进行比对后所得差异;
[0127] 若上述比对差异超出上述预设的差异范围,则将当前上述主分区表中的数据替换为上述升级前分区信息。
[0128] 在上述第二种可能的实施方式作为基础而提供的第三种可能的实施方式中,上述检测比对差异是否超出上述预设的差异范围,包括:
[0129] 将上述原始分区信息存入第一缓冲区,将上述目标读取信息存入第二缓冲区;
[0130] 分别比对上述第一缓冲区与上述第二缓冲区的各个相应位置的数据是否存在差异;
[0131] 若所有存在差异的位置均为预设的差异位置,则确定上述比对差异未超出上述预设的差异范围;
[0132] 若出现有存在差异的位置不为预设的差异位置,则确定上述比对差异超出上述预设的差异范围。
[0133] 在上述第一种可能的实施方式作为基础或上述第二种可能的实施方式作为基础或第三种可能的实施方式作为基础而提供的第四种可能的实施方式中,上述将当前上述主分区表中的数据替换为上述升级前分区信息之后,或者,若上述比对差异未超出上述预设的差异范围,处理器502通过运行存储在存储器501的上述计算机程序时还实现以下步骤:
[0134] 基于当前上述主分区表中的数据触发智能终端启动。
[0135] 在上述第一种可能的实施方式作为基础或上述第二种可能的实施方式作为基础或第三种可能的实施方式作为基础而提供的第五种可能的实施方式中,上述保存升级前主分区表中的数据,包括:
[0136] 获取升级前上述主分区表中的数据;
[0137] 将升级前上述主分区表中的数据保存至私有分区表中,其中,上述私有分区表中的数据在升级时不会发生更改。
[0138] 进一步,如图5所示,上述智能终端还可包括:一个或多个输入设备503(图5中仅示出一个)和一个或多个输出设备504(图4中仅示出一个)。存储器501、处理器502、输入设备503和输出设备504通过总线505连接。
[0139] 应当理解,在本发明实施例中,所称处理器502可以是中央处理单元(Central Processing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0140] 输入设备503可以包括键盘、触控板、指纹采传感器(用于采集用户的指纹信息和指纹的方向信息)、麦克风等,输出设备504可以包括显示器、扬声器等。
[0141] 存储器501可以包括只读存储器和随机存取存储器,并向处理器502提供指令和数据。存储器501的一部分或全部还可以包括非易失性随机存取存储器。例如,存储器501还可以存储设备类型的信息。
[0142] 由上可见,通过本发明实施例,智能终端在进行了升级后,将对升级前待写入主分区表的数据及升级后从主分区表读取到的数据进行比对及判断,能够初步筛选出升级时因读/写主分区表的数据时发生了误操作而产生的数据异常情况,进一步地,当升级前待写入主分区表的数据及升级后从主分区表读取到的数据完全一致时,还能检测智能终端出厂时的主分区表数据与升级后从主分区表读取到的数据之间的差异是否在合理范围内,以此确定是否存在因读写主分区表的数据均发生了误操作而导致的初步检测时没有检测到的数据异常情况,提高了升级时对数据异常检测的准确性,能够更好的保护分区表的数据的安全。
[0143] 所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0144] 在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0145] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0146] 在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0147] 上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0148] 上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读介质可以包括:能够携带上述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,上述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
[0149] 以上上述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。