CN104536841B - 一种Android系统Data分区自修复方法及系统 - Google Patents

一种Android系统Data分区自修复方法及系统 Download PDF

Info

Publication number
CN104536841B
CN104536841B CN201410688336.1A CN201410688336A CN104536841B CN 104536841 B CN104536841 B CN 104536841B CN 201410688336 A CN201410688336 A CN 201410688336A CN 104536841 B CN104536841 B CN 104536841B
Authority
CN
China
Prior art keywords
data
subregions
android
intelligent terminal
recovery
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
CN201410688336.1A
Other languages
English (en)
Other versions
CN104536841A (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.)
Sichuan Changhong Electric Co Ltd
Original Assignee
Sichuan Changhong Electric 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 Sichuan Changhong Electric Co Ltd filed Critical Sichuan Changhong Electric Co Ltd
Priority to CN201410688336.1A priority Critical patent/CN104536841B/zh
Publication of CN104536841A publication Critical patent/CN104536841A/zh
Application granted granted Critical
Publication of CN104536841B publication Critical patent/CN104536841B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种Android系统Data分区自修复方法及系统,涉及Android系统分区自修复技术领域,旨在提供一种操作方便,且能够保障数据的完整性与系统的稳定性的Data分区自修复方法及系统。本发明技术要点:Android智能终端开机进入Android系统后,判断Data分区是否损坏,若损坏则执行以下步骤;设置进入Recovery系统的标识;设置进入Recovery系统后修复Data分区的标识;重新启动Android智能终端;待Android智能终端进入Recovery系统后对Data分区进行修复:卸载Data分区;执行修复指令;撤销对进入Recovery系统的标识的设置。

Description

一种Android系统Data分区自修复方法及系统
技术领域
本发明涉及一种Android系统分区自修复技术领域,特别是涉及Android系统Data分区自修复技术。
背景技术
目前,Android系统的智能电视终端中的Data分区存放的用户数据越来越多,因此,Android系统在运行的过程中系统对Data分区的读写以及擦除操作越来越频繁。如果在对Data分区进行读写或者擦除操作时突然断电会导致Data分区文件系统的损坏。Data分区损坏后分区将由原来的读写权限变为只读权限,Data分区权限改变后系统将无法对Data分区下的数据进行操作,从而导致系统崩溃。
目前对于出现Data分区损坏的终端,通常采用刷机作为修复Data分区的方法,然而这样的解决方法不但会使得系统设置的相关数据和程序数据丢失而且操作复杂难度系数大。
发明内容
本发明所要解决的技术问题是:针对上述问题,提供一种Android系统Data分区自修复方法及系统。
其中,本发明提供的Android系统Data分区自修复方法包括:
步骤1:Android智能终端开机进入Android系统后,判断Data分区是否损坏,若损坏则执行步骤2~6;
步骤2:设置进入Recovery系统的标识,以便Android智能终端重新启动后直接进入Recovery系统;
步骤3:设置进入Recovery系统后修复Data分区的标识,以便Android智能终端进入Recovery系统后对Data分区进行修复;
步骤 4:重新启动Android智能终端;
步骤5:待Android智能终端进入Recovery系统后对Data分区进行修复:卸载Data分区;执行execl("/sbin/e2fsck", "e2fsck", "-B 4096", "-b 32768", "-cy", /data,NULL)指令;
步骤6:撤销步骤2对进入Recovery系统的标识的设置,以便Android智能终端再次重新启动后进入Android系统。
所述步骤1进一步包括:Android智能终端开机进入Android系统后,对Data分区进行挂载,然后读取Data分区的权限并判断所述权限是否为只读,若是则认为Data分区已被损坏。
所述步骤2进一步包括:将MISC分区的启动控制信息块中的command变量赋值成“boot-recovery”,以便Android智能终端重新启动后进入Recovery系统。
所述步骤3进一步包括:将“/data”标识写入到 “/cache/recovery/command”文件中,以便Android智能终端进入Recovery系统后对Data分区进行修复。
所述步骤6进一步包括:将MISC分区的启动控制信息块中的command变量赋值成空,以便Android智能终端再次重新启动后进入Android系统。
一种Android系统Data分区自修复系统包括:
检测Data分区模块,用于在Android智能终端开机进入Android系统后,判断Data分区是否损坏;
设置进入Recovery系统标识模块,用于设置进入Recovery系统的标识,以便Android智能终端重新启动后进入Recovery系统;
设置修复Data分区标识模块,用于设置进入Recovery系统后修复Data分区的标识,以便Android智能终端进入Recovery系统后对Data分区进行修复;
Data分区修复模块,用于待Android智能终端重新启动并进入Recovery系统后对Data分区进行修复;
撤销进入Recovery系统标识设置模块,用于撤销对进入Recovery系统的标识的设置,以便Android智能终端再次重新启动后进入Android系统;
所述Data分区修复模块进一步包括:卸载Data分区模块,用于卸载Data分区;执行修复指令模块,用于执行execl("/sbin/e2fsck", "e2fsck", "-B 4096", "-b 32768","-cy", /data, NULL)指令。
所述检测Data分区模块进一步用于在Android智能终端开机进入Android系统后,对Data分区进行挂载,然后读取Data分区的权限并判断所述权限是否为只读,若是则认为Data分区已被损坏。
所述设置进入Recovery系统标识模块进一步用于将MISC分区的启动控制信息块中的command变量赋值成“boot-recovery”,以便Android智能终端重新启动后进入Recovery系统。
所述设置修复Data分区标识模块进一步用于将“/data”标识写入到 “/cache/recovery/command”文件中,以便Android智能终端进入Recovery系统后对Data分区进行修复。
所述撤销进入Recovery系统标识设置模块进一步用于将MISC分区的启动控制信息块中的command变量赋值成空,以便Android智能终端再次重新启动后进入Android系统。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
本发明提供的Android系统Data分区自修复方法及系统在每次智能终端开机时自动检测Data分区是否损坏,若是则自动进行修复设置,在智能终端重新启动时自动完成Data分区的修复。对于用户而言只需重启智能终端便能够自动实现Data分区自修复,操作简单方便、占用系统资源少且保障了数据的完整性与系统的稳定性。
附图说明
本发明将通过例子并参照附图的方式说明,其中:
图1为本发明一个实施例的流程图。
具体实施方式
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
本说明书中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
在有关Android平台的研发领域中,人们通常将用户正常使用的系统称为Android系统,对智能终端进行系统升级或修复时使用的是另一个系统,本领域技术人员称之为Recovery系统。本发明公开的Android系统Data分区自修复系统通过软件自动实现,包括:
检测Data分区模块,用于在Android智能终端开机进入Android系统后,判断Data分区是否损坏;
设置进入Recovery系统标识模块,用于设置进入Recovery系统的标识,以便Android智能终端重新启动后进入Recovery系统;
设置修复Data分区标识模块,用于设置进入Recovery系统后修复Data分区的标识,以便Android智能终端进入Recovery系统后对Data分区进行修复;
Data分区修复模块,用于待Android智能终端重新启动并进入Recovery系统后对Data分区进行修复;
撤销进入Recovery系统标识设置模块,用于撤销对进入Recovery系统的标识的设置,以便Android智能终端再次重新启动后进入Android系统;
所述Data分区修复模块进一步包括:卸载Data分区模块,用于卸载Data分区;执行修复指令模块,用于执行execl("/sbin/e2fsck", "e2fsck", "-B 4096", "-b 32768","-cy", /data, NULL)指令。
其中,所述检测Data分区模块进一步用于在Android智能终端开机进入Android系统后,对Data分区进行挂载,然后读取Data分区的权限并判断所述权限是否为只读,若是则认为Data分区已被损坏。
在一个具体实施例中,所述设置进入Recovery系统标识模块进一步用于将MISC分区的启动控制信息块中的command变量赋值成“boot-recovery”,以便Android智能终端重新启动后进入Recovery系统。
所述设置修复Data分区标识模块进一步用于将“/data”标识写入到 “/cache/recovery/command”文件中,以便Android智能终端进入Recovery系统后对Data分区进行修复。
所述撤销进入Recovery系统标识设置模块进一步用于将MISC分区的启动控制信息块中的command变量赋值成空,以便Android智能终端再次重新启动后进入Android系统。
智能终端开机后便自动运行本发明,参见图1,具体流程如下:
1.首先Android智能终端开机进入Android系统后,完成对Data分区的挂载,然后获取Data分区权限。
2.如果获取到的Data分区权限变为只读,则说明Data分区损坏,进行一下操作:
2a、设置进入Recovery系统标识,即设置MISC分区的启动控制信息块,将块中的command赋值成boot-recovery,以便下次开机进入Recovery系统。
2b、设置进入Recovery后修复Data分区的标识,即将/data标识写入到 /cache/recovery/command文件中。
2c、在Android系统下重新启动。
3.智能终端重启,bootloader读取位于MISC分区的启动控制信息块时检测到command=boot-recovery,智能终端便自动进入Recovery系统。
4.进入Recovery系统后,Recovery服务根据/cache/recovery/command中的命令执行相应的操作,由于在第三步将/data写入到/cache/recovery/command文件中,因此执行Data分区修复操作。
5.对Data分区的修复操作包括以下几个步骤:
5a、卸载Data分区;
5b、启动子进程在子进程中执行如下命令:
execl("/sbin/e2fsck", "e2fsck", "-B 4096", "-b 32768", "-cy", /data,NULL);
5c、执行成功后返回。
6.将MISC分区的启动控制信息块中的command赋值成空,以便智能终端再次重新启动时进入Android系统。
本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。

Claims (2)

1.一种Android系统Data分区自修复方法,其特征在于,包括:
步骤1:Android智能终端开机进入Android系统后,判断Data分区是否损坏,对Data分区进行挂载,然后读取Data分区的权限并判断所述权限是否为只读,若是则认为Data分区已被损坏,若损坏则执行步骤2~6;
步骤2:设置进入Recovery系统的标识,将MISC分区的启动控制信息块中的command变量赋值成“boot-recovery”,以便Android智能终端重新启动后进入Recovery系统;
步骤3:设置进入Recovery系统后修复Data分区的标识,将“/data”标识写入到 “/cache/recovery/command”文件中,以便Android智能终端进入Recovery系统后对Data分区进行修复;
步骤 4:重新启动Android智能终端;
步骤5:待Android智能终端进入Recovery系统后对Data分区进行修复:卸载Data分区;执行execl("/sbin/e2fsck", "e2fsck", "-B 4096", "-b 32768", "-cy", /data,NULL)指令,执行成功后返回;
步骤6:撤销步骤2对进入Recovery系统的标识的设置,将MISC分区的启动控制信息块中的command变量赋值成空,以便Android智能终端再次重新启动后进入Android系统。
2.一种Android系统Data分区自修复系统,其特征在于,包括:
检测Data分区模块,用于在Android智能终端开机进入Android系统后,判断Data分区是否损坏,所述检测Data分区模块进一步用于在Android智能终端开机进入Android系统后,对Data分区进行挂载,然后读取Data分区的权限并判断所述权限是否为只读,若是则认为Data分区已被损坏;
设置进入Recovery系统标识模块,用于设置进入Recovery系统的标识,用于将MISC分区的启动控制信息块中的command变量赋值成“boot-recovery”,以便Android智能终端重新启动后进入Recovery系统;
设置修复Data分区标识模块,用于设置进入Recovery系统后修复Data分区的标识,以便Android智能终端进入Recovery系统后对Data分区进行修复;
Data分区修复模块,用于将“/data”标识写入到 “/cache/recovery/command”文件中,以便用于待Android智能终端重新启动并进入Recovery系统后对Data分区进行修复;
撤销进入Recovery系统标识设置模块,用于将MISC分区的启动控制信息块中的command变量赋值成空,用于撤销对进入Recovery系统的标识的设置,以便Android智能终端再次重新启动后进入Android系统;
所述Data分区修复模块进一步包括:卸载Data分区模块,用于卸载Data分区;执行修复指令模块,用于执行execl("/sbin/e2fsck", "e2fsck", "-B 4096", "-b 32768", "-cy", /data, NULL)指令。
CN201410688336.1A 2014-11-26 2014-11-26 一种Android系统Data分区自修复方法及系统 Active CN104536841B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410688336.1A CN104536841B (zh) 2014-11-26 2014-11-26 一种Android系统Data分区自修复方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410688336.1A CN104536841B (zh) 2014-11-26 2014-11-26 一种Android系统Data分区自修复方法及系统

Publications (2)

Publication Number Publication Date
CN104536841A CN104536841A (zh) 2015-04-22
CN104536841B true CN104536841B (zh) 2018-04-06

Family

ID=52852372

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410688336.1A Active CN104536841B (zh) 2014-11-26 2014-11-26 一种Android系统Data分区自修复方法及系统

Country Status (1)

Country Link
CN (1) CN104536841B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105205165B (zh) * 2015-10-08 2018-11-27 广东欧珀移动通信有限公司 基于android系统的内置文件显示处理方法和装置
CN105868047A (zh) * 2015-11-13 2016-08-17 乐视移动智能信息技术(北京)有限公司 数据分区的修复方法、装置及终端
CN106095503A (zh) * 2016-06-13 2016-11-09 广东欧珀移动通信有限公司 智能终端的开机方法和系统
CN106815024B (zh) * 2017-01-12 2021-03-23 惠州Tcl移动通信有限公司 一种优化移动终端开机时间的方法及系统
CN112306368B (zh) * 2019-07-24 2022-11-04 青岛海信传媒网络技术有限公司 一种emmc扩展用户数据分区的方法及装置
CN112346788A (zh) * 2020-11-06 2021-02-09 四川长虹电器股份有限公司 一种Android智能电视系统分区安全的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103150516A (zh) * 2013-03-01 2013-06-12 中科创达软件股份有限公司 一种Android系统设备进入临时模式的方法及装置
CN103593289A (zh) * 2013-11-12 2014-02-19 浪潮齐鲁软件产业有限公司 一种安卓机顶盒生产测试软件的设计方法
CN103927239A (zh) * 2014-03-28 2014-07-16 深圳市江波龙电子有限公司 一种终端设备的系统恢复方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7187689B1 (en) * 2001-10-29 2007-03-06 Juniper Networks, Inc. Self-cleaning mechanism for error recovery

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103150516A (zh) * 2013-03-01 2013-06-12 中科创达软件股份有限公司 一种Android系统设备进入临时模式的方法及装置
CN103593289A (zh) * 2013-11-12 2014-02-19 浪潮齐鲁软件产业有限公司 一种安卓机顶盒生产测试软件的设计方法
CN103927239A (zh) * 2014-03-28 2014-07-16 深圳市江波龙电子有限公司 一种终端设备的系统恢复方法及装置

Also Published As

Publication number Publication date
CN104536841A (zh) 2015-04-22

Similar Documents

Publication Publication Date Title
CN104536841B (zh) 一种Android系统Data分区自修复方法及系统
CN105094927B (zh) 一种设备固件升级方法和装置
CN103544031B (zh) 多分区外存储设备的Android系统升级方法和系统
CN102637144B (zh) 一种系统故障的处理方法和装置
CN102023908A (zh) 一种引导程序备份方法及装置
CN103761124B (zh) 用于保护测控装置的嵌入式Linux系统启动方法
CN101436138A (zh) 一种用于软件升级且动态回滚的控制装置以及控制方法
CN103902399B (zh) 软件系统修复处理方法及装置
CN102890657A (zh) 一种减少eeprom的数据读写出错的方法
CN111142911A (zh) 具有异常恢复功能的嵌入式系统及其升级方法
CN105930184A (zh) 系统升级方法及装置
CN107566169A (zh) 一种基于openwrt的固件升级方法及路由器
CN105868047A (zh) 数据分区的修复方法、装置及终端
CN105138430A (zh) 一种嵌入式操作系统备份与恢复的方法及装置
CN107168750A (zh) 一种固件升级保护方法及系统
CN109375953B (zh) 一种操作系统启动方法及装置
CN109213505B (zh) 服务器硬盘固件刷新方法及装置
CN108170456B (zh) 电子设备的固件升级方法及装置
CN113220319A (zh) 一种数据更新方法、装置及车辆
CN112015587B (zh) 一种增强操作系统可靠性的方法及装置
CN111984195A (zh) 一种提高嵌入式Linux系统稳定性的方法及装置
CN105159810B (zh) 对计算机系统的bios进行测试的方法及装置
CN105867833B (zh) 数据存储装置及数据存储方法
CN104317645B (zh) 一种应用程序实例监听端口的方法及装置
CN105975322A (zh) 一种用于程序更新的装置、方法及微控制器

Legal Events

Date Code Title Description
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant