启动异常进入recovery模式

分析

frameworks/base/services/core/java/com/android/server/RescueParty.java

private static void executeRescueLevelInternal(Context context, int level) throws Exception {
    switch (level) {
        case LEVEL_RESET_SETTINGS_UNTRUSTED_DEFAULTS:
            resetAllSettings(context, Settings.RESET_MODE_UNTRUSTED_DEFAULTS);
            break;
        case LEVEL_RESET_SETTINGS_UNTRUSTED_CHANGES:
            resetAllSettings(context, Settings.RESET_MODE_UNTRUSTED_CHANGES);
            break;
        case LEVEL_RESET_SETTINGS_TRUSTED_DEFAULTS:
            resetAllSettings(context, Settings.RESET_MODE_TRUSTED_DEFAULTS);
            break;
        case LEVEL_FACTORY_RESET:
            RecoverySystem.rebootPromptAndWipeUserData(context, TAG);
            break;
    }
}

android系统默认核心服务和核心APP异常重启四次仍然不恢复正常时,系统的RescueParty检测到了,就进入到了factoryreset界面了。根据相关log需要去查找系统核心服务或核心APP崩溃的具体原因。

关键log

W PackageManager: Incremented rescue level to FACTORY_RESET triggered by UID 10075

出现异常rescue level会累加,根据UID找出具体崩溃的进程

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
刷机精灵是一款运行于PC端的Android手机一键刷机辅助工具,能够帮助手机玩家在 十分简短的流程内快速完成刷机操作。与相对繁琐的传统刷机 ... 备份功能 一键备份整个系统,将风险降至最低 任何时候,一键刷回 化繁为简 一键操作让小白也能安装手机系统 连上手机,即刻上手 快速安装 提供最优固件资源,全自动系统安装轻松一点,高效安装开机画面更换 定制手机开机画面,个性无处不彰显 你的个性,开机即现 刷机精灵 0.7.0 Beta 更新日志(2011-12-16): 1.新增驱动安装向导,海量驱动库支持,设备自动识别 2.新增ROM安全检测模块,专业安全引擎ROM扫描,拒绝流氓 3.ROM市场与下载管理新增适合机型资源提示 4.新增标签栏操作动画 5.解决格式化sd-ext分区卡住的问题 6.增加防止用户选错升级包选项的提醒 7.优化刷机方案资源下载的速度 8.新增产品反馈按钮,产品经理在线交流 9.解决部分刷机失败卡第一屏问题 10.增强三星机型兼容性 11.增强安装包与升级包操作体验 12.增强刷机和备份功能的交互 13.解决部分驱动问题导致的设备识别错误 14.解决部分特殊机型截屏不显示的问题 15.解决快速删除多个备份导致程序异常的问题 16.提高各机型刷机的兼容性 刷机精灵 0.6.2 Beta 更新日志(2011-11-23): 1. 解决从正常开机状态启动到恢复模式状态后刷机报存储卡不存在的问题 2. 增强Root小工具的Root能力,支持包括魅族M9在内的更多机型 3. 解决华为C8650 10月机无法刷机的问题 4. 自动为用户挂载存储卡 5. 新增三星I9023机型的支持 6. 增加下载管理界面的进度条显示 刷机精灵 0.6.1 Beta 更新日志(2011-11-18): 1. 增加智能Root功能,部分未Root机型也能一键刷机! 2. 增强机型识别能力 3. 增加连接手机时需要授权管理确认的提示 4. 在ROM市场中加入刷机精灵支持标志 5. ROM市场资源增加各种排序方式 6. 增强程序的稳定性和对各机型的兼容性 7. 新增LG P500机型的支持 刷机精灵 0.6.0 Beta 更新日志(2011-11-11): 1. 增加在还原(Recovery模式下刷机的支持,即使手机开不了机也能刷 2. 增加了ROM资源的评论、评分功能 3. 增加实用工具箱,提供一键启到Recovery等小工具 4. 增加新功能介绍 5. 优化网络连接 6. 优化机型识别能力 7. 优化刷机向导的用户体验 8. 解决绿色版无法升级的问题 9. 信息界面增加设备是否Root的显示 10. 优化刷机功能,提高刷机成功率 11. 增加下载管理TAB上显示下载中的ROM个数 目前已知的可用机型: HTC Dream (G1) HTC Magic (G2) HTC Hero (G3) HTC Tattoo (G4) Google Nexus One (G5) HTC Legend (G6) HTC Desire (G7) HTC Wildfire (G8) HTC Aria (G9) HTC Desire HD (G10) HTC Incredible S (G11) HTC Desire S (G12) HTC Wildfire S (G13) HTC Sensation (G14) HTC Mytouch 4G HTC Mytouch 3G HTC EVO 4G Google Nexus S 三星Galaxy S i9000 摩托罗拉 CLIQ(MB501) 中兴V880 华为C8650 华为U8800 华为C8500 LG Optimus 2X P990/P993 LG Optimus One (P500) 三星 Galaxy S II i9100
RMAN学习测试整理1 20121219 by Apollo 一、 Oracle数据库的备份分为物理备份和逻辑备份。今天测试整理下物理备份Rman,也就是oracle的恢复管理器(Recovery Manager)。 毕竟逻辑备份是不能实现时间点恢复的,所以生产数据库肯定用物理备份来保证灾难时能够恢复。 二、 Rman热备份的前提条件:数据库需要运行在归档模式下 (1) 查看oracle数据库的archivelog mode的方式 sqlplus / as sysdba ##需要as sysdba登录,不然即使有dba权限也fail archive log list ##方式一 select name,log_mode from v$database; ##方式二 (2) 由非归档切换到归档模式 shutdown immediate startup mount alter database archivelog; alter database open; (3) 反之由归档切换到非归档模式 shutdown immediate startup mount alter database noarchivelog; ##切换到非归档 alter database open; (4) 其实oracle安装好后会默认运行在非归档模式下(安装时有开关勾选),其配置文件为init.ora,可以通过修改init.ora来调整。 sqlplus oracle/oracle show parameter spfile ##spfile和init.ora一般在一个路径下 exit cd $ORACLE_HOME/dbs vi init.ora (5) init.ora关于archive的参数 log_archive_start = true 启动自动归档 log_archive_dest = disk$rdbms:[oracle.archive] 归档日志路径 log_archive_format = “T%TS%S.ARC” 归档日志格式 三、 启用数据库备份模式 (1) 查看当前情况 select * from v$backup; select * from v$log select * from v$datafile_header (2) 整库开启备份模式alter database begin backup; 哦,忘记开启归档了。奔3的人老了呀。(非一致性备份必须开启归档) (3) 指定某个表空间开启备份模式 alter tablespace tablespace_name begin backup; 先建个tbs_apollo_backup的表空间吧: 靠,/opt下剩余只有649M,先给个200M吧,回头再从根目录划分一些出来。 create tablespace tbs_apollo_backup datafile '/opt/oracle/oradata/orcl/tbs_apollo_backup.dbf' size 200M 因为之前做了database begin backup,所有表空间都处于backup状态了。将database的backup停掉重新指定tablespace备份。 再次查看各个tablespace的backup情况 select a.tablespace_name,b.status as backup_status,a.file#, a. ts#,a.recover,a.status as on_off_status,a.name from v$datafile_header a ,v$backup b where a.file# = b.file# 四、 RMAN相关使用 1、 RMAN连接到Target Database (1) 分步进行 rman nocatlog(nocatalog会将相关备份信息即元数据放在Contronfile里面) connect target / (不像DB2那样connect to,就connect就OK了) (2) 一步到位 rman nocatlog target system/manger 权限不足,使用rman连接target的话需要sysdba权限而不是dba。 I 查看是否拥有sysdba权限 select * from v$pwfile_users; 备注:常用的查看权限视图 select * from dba_users where username='SYSTEM' select * from dba_role_privs where grantee='SYSTEM'; select * from v$pwfile_users; ii 用sys用户授予system用户sysdba权限(其实是一个角色) iii 用system用户再次连接target database (3) 可以在rman里面停起数据库(停库状态需要隐式登录,不能带网络服务名) (4) DataFile tbs_apollo_backup.dbf异常了,先解决下 alter database datafile ‘datafile_name’ offline; recover datafile ‘datafile_name’ alter database datafile ‘datafile_name’ online; alter database open; 再次在Rman里面操作停起数据库(sql_statement用单引号或双引号括起) 2、 List命令查看备份集(在数据库控制文件或恢复目录中查询备份的历史信息的方法) (1) 查看数据库所有的备份集合 list backupset; (2) 查看指定TableSpace的备份 list copy of tablespace “TBS_APOLLO_BACKUP” list backupset of tablespace "TBS_APOLLO_BACKUP"; (3) 查看指定DataFile的备份 list backupset of datafile "/opt/oracle/oradata/orcl/users01.dbf"; (4) 查看备份汇总 list backup summary; (5) 3、 Report命令报告备份情况(判断数据库当前可恢复状态和提供数据库备份的信息) (1) report schema;(报告数据库结构) (2) report need backup;(报告需要备份的内容) (3) report obsolete(Which backups can be deleted ?)报告过期备份 (4) report unrecoberable(Which files are unrecoverable ?) 4、 CONFIGURE配置Rman参数 (1) show all命令查看所有配置 (2) CONFIGURE命令修改配置 ControlFile太重要了,一般都设置备份它 五、 准备下数据库对象 1、 临时表空间 create temporary tablespace apollo_temp tempfile ‘/opt/app/oracle/oradata/orcl_apollo/Apollo_temp.dbf’ size 200m autoextend on next 50m maxsize 2048m extent management local; 2、 创建数据表空间 create tablespace apollo_data logging datafile ‘/opt/app/oracle/oradata/orcl_apollo/apollo_data.dbf’ size 1g autoextend on next 50m maxsize 4096m extent management local; 备注:引用的字符串如这里的单引号在copy时异常。 3、 创建用户并指定表空间 create user rman identified by rman default tablespace apollo_data temporary tablespace apollo_temp; 4、 给用户授权 grant connect ,resource to rman; 5、 其他如table、index、function、procedure、view、sequence等。 六、 Rman备份的对象(主要包括Database、Tablespace、Datafile、Controlfile和Archivelog) Rman不能备份口令文件和初始化参数文件(也就是前面提到的init.ora)。 1、 备份DataBase backup database; backup database是一次全备份,其实省略的很多参数,相当于用的默认的。而备份好的备份集放在哪里呢? 在sqlplus里面执行show parameter db_recovery_file_dest; 查看备份后情况: list backupset; 2、 备份Tablespace backup tablespace apollo_data; RMAN-06554: WARNING: file 5 is in backup mode 该警告提示file5也就是这个表空间的备份其实已经存在了,因为刚做过full backup了嘛。 查看备份集合新增了3和4两个备份集 3、 备份Datafile backup datafile '/opt/app/oracle/oradata/orcl_apollo/system01.dbf'; 也可backup datafile 4 这里的4对应第四个datafile,可由report schema报告得知是:user01.dbf 测试备份的有点多,那么可以删除一些过期的备份。 (1) 通过删除备份集删除 (2) 通过删除备份片删除 (3) 当然直接删除全部过期更加直接 delete obsolete; (4) 删除后无过期备份存在 4、 备份Controlfile (1) 自动备份控制文件如前面示例show all后修改的参数 CONFIGURE CONTROLFILE AUTOBACKUP ON; 那么每次备份会自动备份控制文件。 (2) 手动备份控制文件 backup current controlfile; (3) 列出备份过的controlfile list backup of controlfile; 有14、15、16三个备份集里面有,那么肯定有过期的了,再验证下 report obsolete; 14和15作为过期的报告出来,16为最新的备份。 5、 备份Archivelog (1) 备份数据库时使用参数plus archivelog自动备份 backup database plus archivelog;(我们清空所有备份delete backup后重头来) (2) 手工备份 backup archivelog all; 6、 备份spfile (1) 备份时自动备份spfile CONFIGURE CONTROLFILE AUTOBACKUP ON在备份控制文件时页备份spfile (2) 手动备份 备份的spfile同样放到backupset目录下面 7、 七、 恢复数据库 1、 模拟datafile丢失或损坏进行恢复 cd $ORACLE_BASE/oradata/orcl_apollo mv ./apollo_data.dbf /home/oracle/backup/apollo_data.dbf 重启数据库看看 看来破坏了datafile正常停库都不行,需要abort才行。 起库就更不用说了 那么开始真正恢复吧,思路是这样的:由报错可见起库的实例nomount和控制文件的mount都成功了,但是在open database时报错,就需要在mount和open之间恢复。先将datafile置于offline状态,restore和recover后在online,最后在open database就OK了。 (1) 将数据库处于mount模式 (2) 将datafile 1 (即system01.dbf)置于offline (3) restore和recover(所有的铺垫都是为了这两步) restore datafile 1; recover datafile 1; (4) 将datafile 1 置于online (5) alter database open; alter database datafile 2 offline; 2、 模拟tablespace丢失或损坏进行恢复 (1) backup tablespace apollo_data (2) drop tablespace apollo_data 提示表空间非空,查看下里面的内容,是建的一些测试表。 select * from dba_segments where tablespace_name='APOLLO_DATA' and segment_name=’ AMIS_IC_MEMBER’ ; 没关系那就加上including contents选项删除吧 (3) 停库起到mount模式 (4) 进入sqplus将表空间offline alter tablespace apollo_data offline; (5) 进入rman使用restore和recover恢复表空间 restore tablespace apollo_data; recover tablespace apollo_data; 备注:从(4)、(5)开始的执行都没有成功,因为drop表空间后即使在系统表里 面也不再有改表空间的信息,模拟失败待后续研究! (1) 在rman里面备份表空间apollo_data (2) 模拟表空间里面的对象破坏进行恢复吧 select * from dba_segments where tablespace_name='APOLLO_DATA' and (3) alter tablespace apollo_data offline; (4) restore tablespace apollo_data; (5) recover tablespace apollo_data (6) alter tablespace apollo_data online; (7) apollo_data.已经恢复 备注:其实datafile和tablespace的恢复步骤是一样的。 3、 模拟controlfile丢失或损坏进行恢复 (1) 丢失controlfile (2) startup nomount; (3) restore controlfile from $BACKUP_CONTROLFILE_PATH; 如果开启CONFIGURE CONTROLFILE AUTOBACKUP ON;就可以 restore controlfile from autobackup; (4) alter database mount; (5) recover database; (6) alter database open resetlog; 4、 模拟spfile丢失或损坏进行恢复 (1) startup nomount; (2) set dbid 1330128391; (3) store spfile from autobackup; (4) shutdown immediate; (5) set dbid 1330128391; (6) startup; 5、 模拟整个database恢复 (1) startup nomount; (2) restore controlfile form autobakcup; (3) alter database mount; (4) restore database; (5) recover database; (6) alter database open resetlogs 6、 模拟redolog file恢复(其实下面操作在sqlplus里面,不在rman执行) (1) shutdown immediate; (2) startup mount; (3) recover database until cancel; (4) alter database resetlog;

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值