专利名称:终端数据的还原方法和终端的制作方法
技术领域:
本发明涉及终端领域,尤其涉及终端数据的还原方法和终端。
背景技术:
目前,随着3G(3rd-generati0n,第三代移动通信技术)时代的到来,越来越多的 手机用户热衷于通过手机上网,来进行各种各样的下载。伴随而来的就是手机病毒的出现。 用户下载的资料存储在EFS (embedded file system,嵌入式文件系统)中。如图1所示,为 手机中的存储区分布图。其中,BOOT(启动)区和CODE(代码)区在正常模式下是不能写 入的,而EFS区是可以被写入的,因此很有可能因EFS中的某些关键参数区被破坏后,导致 手机不正常或者下次无法正常开机。一次正常的手机开机程序包括两个阶段。第一个阶段是BOOT阶段,类似于电脑上 的BIOS程序的运行,在运行无误后,会加载手机正常运行所需要的CODE,然后进入正常的 手机操作模式。现有技术中,采用软件方式(开机检测单元)来检测开机失败,检测到开机失败 后,通过软件单元(系统恢复单元)来把系统恢复到正常状态。此方案的缺点为,由于手机 没有备份的功能,因此用户的任何更改都将丢失,只能恢复到最初的原始状态。
发明内容
本发明要解决的技术问题是提供一种终端数据的还原方法和终端,在终端无法正 常开机时,能够将终端数据还原到上一个成功开机时的状态。为解决上述技术问题,本发明的实施例提供技术方案如下—方面,提供一种终端数据的还原方法,包括步骤一,选取终端正常启动后、运行程序前的一状态作为初始状态,记录终端启动 时需要加载的第一数据从所述初始状态到关机前进行的修改;步骤二,当所述终端下次启动时,判断终端是否正常启动,生成判断结果;步骤三,如果所述判断结果为否,则根据所述第一数据当前的状态和记录的所述 第一数据的修改,将所述第一数据还原为所述初始状态。所述的终端数据的还原方法,还包括步骤四,如果所述判断结果为是,则清空记录的所述第一数据的修改;然后执行所
述步骤一。所述步骤一之前,还包括将终端存储器中的文件系统区至少分为三个区,第一分区用于存储终端开启时需 要加载的第一数据,第二分区用于存储终端开启时不需要加载的第二数据;第三分区用于 记录所述第一分区中第一数据的修改;所述步骤一具体为在所述第三分区记录所述第一分区的第一数据从所述初始状 态到关机前进行的修改。
4
所述步骤四具体为如果所述判断结果为是,则将第三分区清空;然后执行所述
步骤"‘ ο所述在第三分区记录所述第一分区的第一数据从所述初始状态到关机前进行的 修改的步骤具体为将所述第三分区设置为与所述第一分区的存储空间大小相同;将所述第三分区的存储块设置为与所述第一分区的存储块相对应;所述第三分区的存储块记录相对应的所述第一分区的存储块中第一数据的关机 前与初始状态时的二进制码之间的差分结果;所述步骤三具体为如果所述判断结果为否,则根据所述第一分区的存储块的当 前状态和对应的所述第三分区的存储块记录的差分结果,将所述第一分区的存储块还原为 初始状态。另一方面,提供一种终端,包括记录单元,用于选取终端正常启动后、运行程序前的一状态作为初始状态,记录终 端启动时需要加载的第一数据从所述初始状态到关机前进行的修改;判断单元,用于当所述终端下次启动时,判断终端是否正常启动,生成判断结果;还原单元,用于当所述判断结果为否时,根据所述第一数据当前的状态和记录的 所述第一数据的修改,将所述第一数据还原为所述初始状态。所述的终端,还包括清空单元,用于当所述判断结果为是时,清空记录的所述第一数据的修改;并启动 所述记录单元。所述的终端,还包括分区单元,用于将终端存储器中的文件系统区至少分为三个区,第一分区用于存 储终端开启时需要加载的第一数据,第二分区用于存储终端开启时不需要加载的第二数 据;第三分区用于记录所述第一分区中第一数据的修改;所述记录单元具体为在所述第三分区记录所述第一分区的第一数据从所述初始 状态到关机前进行的修改。所述清空单元具体为当所述判断结果为是,则将第三分区清空;并启动所述记 录单元。所述记录单元包括第一设置子单元,用于将所述第三分区设置为与所述第一分区的存储空间大小相 同;第二设置子单元,用于将所述第三分区的存储块设置为与所述第一分区的存储块 相对应;记录子单元,用于使用所述第三分区的存储块记录相对应的所述第一分区的存储 块中第一数据的关机前与初始状态时的二进制码之间的差分结果;所述还原单元具体为当所述判断结果为否时,根据所述第一分区的存储块的当 前状态和对应的所述第三分区的存储块记录的差分结果,将所述第一分区的存储块还原为 初始状态。本发明的实施例具有以下有益效果
上述方案中,选取终端正常启动后、运行程序前的一状态作为初始状态,记录终端 启动时需要加载的第一数据从所述初始状态到关机前进行的修改;当所述终端下次启动 时,判断终端是否正常启动,生成判断结果;如果所述判断结果为否,则根据所述第一数据 当前的状态和记录的所述第一数据的修改,将所述第一数据还原为所述初始状态。在终端 无法正常开机时,能够将终端的数据还原到上次成功开机时的状态。
图1是现有技术的手机的分区分布图;图2为本发明所述的终端数据的还原方法的一实施例的流程示意图;图3为本发明所述的终端数据的还原方法的另一实施例的流程示意图;图4为本发明所述的终端的结构示意图;图5是本发明所述的终端(以手机为例)的启动盘的存储空间的分布示意图。
具体实施例方式为使本发明的实施例要解决的技术问题、技术方案和优点更加清楚,下面将结合 附图及具体实施例进行详细描述。如图2所示,为本发明所述的一种终端数据的还原方法的一实施例,包括步骤11,选取终端正常启动后、运行程序前的一状态作为初始状态,记录终端启动 时需要加载的第一数据从所述初始状态到关机前进行的修改;步骤12,当所述终端下次启动时,判断终端是否正常启动,生成判断结果;步骤13,如果所述判断结果为否,则根据所述第一数据当前的状态和记录的所述 第一数据的修改,将所述第一数据还原为所述初始状态。可选的,所述的终端数据的还原方法,还包括步骤14,如果所述判断结果为是,则清空记录的所述第一数据的修改;然后执行 所述步骤11。如图3所示,为本发明所述的一种终端数据的还原方法的另一实施例,包括步骤21,将终端存储器中的文件系统区至少分为三个区,第一分区用于存储终端 开启时需要加载的第一数据,第二分区用于存储终端开启时不需要加载的第二数据;第三 分区用于记录所述第一分区中第一数据的修改;步骤22,选取终端正常启动后、运行程序前的一状态作为初始状态,在所述第三分 区记录所述第一分区的第一数据从所述初始状态到关机前进行的修改。步骤23,当所述终端下次启动时,判断终端是否正常启动,生成判断结果;步骤24,如果所述判断结果为否,则根据所述第一分区当前的状态和第三分区的 当前状态,将所述第一分区还原为所述初始状态。步骤25,如果所述判断结果为是,则将第三分区清空;然后执行所述步骤22。所述在第三分区记录所述第一分区的第一数据从所述初始状态到关机前进行的 修改的步骤具体为步骤221,将所述第三分区设置为与所述第一分区的存储空间大小相同;步骤222,将所述第三分区的存储块设置为与所述第一分区的存储块相对应;
步骤223,所述第三分区的存储块记录相对应的所述第一分区的存储块中第一数 据的关机前与初始状态时的二进制码之间的差分结果;对应的,所述步骤三具体为如果所述判断结果为否,则根据所述第一分区的存储 块的当前状态和对应的所述第三分区的存储块记录的差分结果,将所述第一分区的存储块 还原为初始状态。如图4所示,为本发明所述的一种终端,包括记录单元41,用于选取终端正常启动后、运行程序前的一状态作为初始状态,记录 终端启动时需要加载的第一数据从所述初始状态到关机前进行的修改;判断单元42,用于当所述终端下次启动时,判断终端是否正常启动,生成判断结 果;还原单元43,用于当所述判断结果为否时,根据所述第一数据当前的状态和记录 的所述第一数据的修改,将所述第一数据还原为所述初始状态。所述的终端,还包括清空单元44,用于当所述判断结果为是时,清空记录的所述第一数据的修改;并 启动所述记录单元。所述的终端,还包括分区单元45,用于将终端存储器中的文件系统区至少分为三个区,第一分区用于 存储终端开启时需要加载的第一数据,第二分区用于存储终端开启时不需要加载的第二数 据;第三分区用于记录所述第一分区中第一数据的修改;所述记录单元41具体为在所述第三分区记录所述第一分区的第一数据从所述 初始状态到关机前进行的修改。所述清空单元43具体为当所述判断结果为是,则将第三分区清空;并启动所述 记录单元。所述记录单元41包括第一设置子单元,用于将所述第三分区设置为与所述第一分区的存储空间大小相 同;第二设置子单元,用于将所述第三分区的存储块设置为与所述第一分区的存储块 相对应;记录子单元,用于使用所述第三分区的存储块记录相对应的所述第一分区的存储 块中第一数据的关机前与初始状态时的二进制码之间的差分结果;所述还原单元43具体为当所述判断结果为否时,根据所述第一分区的存储块的 当前状态和对应的所述第三分区的存储块记录的差分结果,将所述第一分区的存储块还原 为初始状态。本发明提供一种具有一键还原功能的终端的实现方法。在手机的文件系统的某些 关键数据被破坏而不能开机的情况下,通过本发明所述的一键还原功能,能将被破环的数 据恢复为上次成功开机时的数据,以保证手机能正常开机使用。以下描述本发明所述的终端数据的还原方法的应用场景。该应用场景以手机为 例,本发明不限于此,可以为PDA(个人数字助理)等智能终端。如图5所示,把EFS区分 EFSl部分(第一分区)、和EFS2部分(第二分区)、以及REC部分(第三分区)。EFSl中放置的是能影响开机的数据,也就是说开机加载的第一数据。EFS2中放置的是对开机没有影 响的数据部分。REC区为手机正常开机后,对EFSl部分所做的修改的记录。在手机正常开 机后(手机进入待机状态,即表示正常开机),清空REC区,表示一次新的起点,之后对EFSl 所做的任何修改,将被记录下来。若EFSl部分的修改,导致下次无法开机,则在手机开机运 行到BOOT阶段的时候,按下特定的键,被BOOT捕获到的时候,在BOOT中进行针对EFSl部 分的还原功能,根据REC中记录的EFSl区的修改和目前EFSl区中的相应内容,进行逆向操 作,把EFSl恢复成上次正常开机时的数据。具体步骤包括步骤1,以一次正常开机作为起点,清空REC区中的内容。步骤2,若后续对EFSl进行修改,则修改前后的差分结果先和之前的差分结果进 行叠加,然后记录到REC区中。这个叠加的差分结果表示了 EFSl目前的内容和刚开机时的 EFSl中的内容的差别。步骤3,若下次能正常开机,则正常开机后,清空REC,不做还原操作。步骤4,若下次不能正常开机,则在重新开机的时候,用户在BOOT阶段按下特定的 按键,触发BOOT中的还原功能,BOOT的还原功能负责根据EFSl和REC中的内容,把EFSl中 的内容还原为上次正常开机时的最开始时的内容。其中判断终端是否正常开机(启动)可 以为根据是否接收到的用户的还原操作指令,则判断终端没有正常开机。采用本发明所述方法,解决了因手机EFS区关键数据被修改而不能开机的问题。 由于REC区并不需要多大的空间,不需要备份数据到服务器上或者外接的存储器上,因此 并不增加多少成本,并且提高了用户使用的满意度。本方案用按键来启动恢复功能,且能恢复到最近一次成功启动时的状态,最大限 度地保存了用户的设置。因EFS区损坏而导致不能开机的情况,用户可以自己处理,不需要 去售后去维修,既减少了用户使用的麻烦,也降低了售后的成本。以下描述本发明所述的终端数据的还原方法的另一应用场景。用户手机能正常开 机时,用户不需要启动一键还原功能,在用户手机无法启动的情况下,用户可以在BOOT阶 段按下自动还原按键来触发这个功能,具体的实施步骤如下步骤1,修改手机中的分区,把EFS中的内容预先按照是否影响正常开机分为EFSl 和EFS2。EFSl中存放影响开机的数据,EFS2中存放的是不影响开机的数据。譬如,NV(非 易失性)参数、电话本、通话记录、短消息等需要在开机过程中加载的第一数据,若加载出 错,就可能影响到开机,因此,把这些数据放到EFSl中。影音文件、电子小说、照片等数据不 会影响开机过程,因此可以放置到EFS2部分。步骤2,增加REC分区,其大小可以设置为和EFSl区的大小相同,且其中的块可以 建立和EFSl中的块的一一对应的关系。对EFSl修改前后内容的差分结果记录到REC区中 对应的块,记录的单位可以是擦除操作的单位,通常为一个存储块。记录的差分结果是被修 改的存储块修改前后的二进制码的差分,这里并不关心其上内容的具体含义。步骤3,在手机正常开机后,清空REC区,可以设置在手机进入待机状态时刻为正 常开机,可以在进入待机状态时刻、下载数据前或者运行程序之前作为REC记录的起点,随 后的对EFSl区的任何块的写操作,都会和修改之前的块的内容进行差分操作,并把差分结 果记录在REC中对应的块中,假设第一个修改导致的差分结果用A来代表,A被写入到REC 中,随后在此基础上,用户又对此存储器的同一个块单元进行了新的操作,其差分结果为B,则B并不直接写入A中,而是先和之前的差分结果A进行合并,合并的结果用C来表示,C将 被写入到REC中,以次类推。即REC中记录的差分结果始终为相对于起点的一个差分结果, 保证以后能恢复到一个可靠的起点。以某一个比特位的变化来说明,假设这个比特原来的值为1,用户对其第一次修 改,改写为0,则差分结果为1,写入REC中,后用户又对其进行修改,改写为1,则这次改写的 差分结果还是1,这次的差分结果和上次的差分结果进行合并,则最终的差分结果为0,写 入REC中,说明目前这个比特位的值和最初的一样。步骤4,在手机增加一键还原按键检测单元,负责监测用户按下的特定的一键还原 按键。步骤5,在手机中增加还原单元,负责将EFSl中的内容恢复到上一个可靠的起点, 其根据REC中记录的上一次正常开机后的用户对EFSl的修改的差分结果和目前EFSl中的 内容,按块进行反向操作,恢复成上次正常开机后,用户修改之前EFSl中的内容。步骤6,还原单元完成对EFSl区的恢复后,继续后续手机的启动,手机正常开机。本发明中所示的图5只为说明本发明,并不代表手机中不会有其它的分区,这里 为简化起见,没有列出其他分区,譬如某些手机中可能有FOTA (Firmware Over The Air,空 中在线软件升级)分区,其存在与否,不影响开机,因此并不影响本发明的实质内容。本发明所述的存储器中的文件系统区不仅包括存储下载文件的区域,还包括管理 文件的存储区域,例如终端中的嵌入式文件系统区(EFS)等。所述方法实施例是与所述装置实施例相对应的,在方法实施例中未详细描述的部 分参照装置实施例中相关部分的描述即可,在装置实施例中未详细描述的部分参照方法实 施例中相关部分的描述即可。本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可 以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质 中,该程序在执行时,包括如上述方法实施例的步骤,所述的存储介质,如只读存储记忆体 (Read-Only Memory, ROM)或随机存储记忆体(Random Access Memory, RAM)等。在本发明各方法实施例中,所述各步骤的序号并不能用于限定各步骤的先后顺 序,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,对各步骤的先后变化也 在本发明的保护范围之内。以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员 来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也 应视为本发明的保护范围。
权利要求
一种终端数据的还原方法,其特征在于,包括步骤一,选取终端正常启动后、运行程序前的一状态作为初始状态,记录终端启动时需要加载的第一数据从所述初始状态到关机前进行的修改;步骤二,当所述终端下次启动时,判断终端是否正常启动,生成判断结果;步骤三,如果所述判断结果为否,则根据所述第一数据当前的状态和记录的所述第一数据的修改,将所述第一数据还原为所述初始状态。
2.根据权利要求1所述的终端数据的还原方法,其特征在于,还包括步骤四,如果所述判断结果为是,则清空记录的所述第一数据的修改;然后执行所述步 马聚-““‘o
3.根据权利要求2所述的终端数据的还原方法,其特征在于,所述步骤一之前,还包括将终端存储器中的文件系统区至少分为三个区,第一分区用于存储终端开启时需要加 载的第一数据,第二分区用于存储终端开启时不需要加载的第二数据;第三分区用于记录 所述第一分区中第一数据的修改;所述步骤一具体为在所述第三分区记录所述第一分区的第一数据从所述初始状态到 关机前进行的修改。
4.根据权利要求3所述的终端数据的还原方法,其特征在于,所述步骤四具体为如果所述判断结果为是,则将第三分区清空;然后执行所述步骤o
5.根据权利要求3所述的终端数据的还原方法,其特征在于,所述在第三分区记录所述第一分区的第一数据从所述初始状态到关机前进行的修改 的步骤具体为将所述第三分区设置为与所述第一分区的存储空间大小相同; 将所述第三分区的存储块设置为与所述第一分区的存储块相对应; 所述第三分区的存储块记录相对应的所述第一分区的存储块中第一数据的关机前与 初始状态时的二进制码之间的差分结果;所述步骤三具体为如果所述判断结果为否,则根据所述第一分区的存储块的当前状 态和对应的所述第三分区的存储块记录的差分结果,将所述第一分区的存储块还原为初始 状态。
6.一种终端,其特征在于,包括记录单元,用于选取终端正常启动后、运行程序前的一状态作为初始状态,记录终端启 动时需要加载的第一数据从所述初始状态到关机前进行的修改;判断单元,用于当所述终端下次启动时,判断终端是否正常启动,生成判断结果; 还原单元,用于当所述判断结果为否时,根据所述第一数据当前的状态和记录的所述 第一数据的修改,将所述第一数据还原为所述初始状态。
7.根据权利要求6所述的终端,其特征在于,还包括清空单元,用于当所述判断结果为是时,清空记录的所述第一数据的修改;并启动所述 记录单元。
8.根据权利要求6所述的终端,其特征在于,还包括分区单元,用于将存储器中的文件系统区至少分为三个区,第一分区用于存储终端开 启时需要加载的第一数据,第二分区用于存储终端开启时不需要加载的第二数据;第三分 区用于记录所述第一分区中第一数据的修改;所述记录单元具体为在所述第三分区记录所述第一分区的第一数据从所述初始状态 到关机前进行的修改。
9.根据权利要求8所述的终端,其特征在于,所述清空单元具体为当所述判断结果为是,则将第三分区清空;并启动所述记录单兀。
10.根据权利要求8所述的终端,其特征在于, 所述记录单元包括第一设置子单元,用于将所述第三分区设置为与所述第一分区的存储空间大小相同; 第二设置子单元,用于将所述第三分区的存储块设置为与所述第一分区的存储块相对应;记录子单元,用于使用所述第三分区的存储块记录相对应的所述第一分区的存储块中 第一数据的关机前与初始状态时的二进制码之间的差分结果;所述还原单元具体为当所述判断结果为否时,根据所述第一分区的存储块的当前状 态和对应的所述第三分区的存储块记录的差分结果,将所述第一分区的存储块还原为初始 状态。
全文摘要
本发明提供一种终端数据的还原方法和终端,涉及终端领域,为解决现有技术中还原终端时将数据恢复到最初的原始状态的技术问题而发明。所述终端数据的还原方法,包括步骤一,选取终端正常启动后、运行程序前的一状态作为初始状态,记录终端启动时需要加载的第一数据从所述初始状态到关机前进行的修改;步骤二,当所述终端下次启动时,判断终端是否正常启动,生成判断结果;步骤三,如果所述判断结果为否,则根据所述第一数据当前的状态和记录的所述第一数据的修改,将所述第一数据还原为所述初始状态。本发明应用于终端的安全领域。
文档编号G06F11/14GK101930388SQ20101024547
公开日2010年12月29日 申请日期2010年8月4日 优先权日2010年8月4日
发明者姚铁锐, 王亚恒 申请人:中兴通讯股份有限公司