Android的恢复模式
2019-07-14 01:50发布
生成海报
KEY:
-
摄像头+
电源:引导程序模式,ADP里则可以使用FASTBOOT模式
-
家+电源:恢复模式
-
正常启动
引导程序正常启动,又有三种方式,按照BCB(Bootloader的
控制块,下节介绍)中的命令分类:
-
命令==“启动恢复”
→启动恢复模式recovery.img。
-
命令==
'update-radio/hboot→更新固件(引导程序)
-
其他→启动的boot.img
恢复涉及到的其他系统及文件
Recovery
工具通过NAND
cache分区上的三个文件和主系统打交道。主系统(包括恢复出厂设置和OTA升级)可以写入recovery所需的命令,读出recovery过程中的LOG和intent。
-
/缓存/恢复/命令:
恢复命令,由主系统写入。所有命令如下:
-
-
send_intent anystring
-写文本recovery.intent
-
-
update_package =根:路径
-验证安装OTA包文件
-
的-
wipe_data
-擦除用户数据 (和缓存),然后重新启动
-
-
wipe_cache
-擦拭缓存(而不是用户数据 ),然后重新启动
-
/缓存/恢复/日志:恢复过程日志,由主系统应将其译为出
-
/缓存/恢复/目的:恢复输出的意图
-
MISC分区内容的Bootloader控制块
(BCB)存放恢复 bootloader的消息。结构如下:结构
bootloader_message {
[32] 字符 命令
字符
状态[32]; / /未知用途
的char
恢复[1024];
};
-
command可以有以下两个值
“boot-recovery”:标示recovery正在进行,或指示bootloader应该进入recovery
mode
“update-hboot/radio”:指示bootloader更新firmware
-
恢复内容“恢复
n n “ 其中恢复
命令为CACHE :/恢复/命令命令
两种恢复
案例
用户选择“恢复出厂设置”
设置系统将“
- wipe_data”命令写入/缓存/恢复/命令
系统重启,并进入恢复模式(/
sbin目录/恢复)
get_args()
将
“启动恢复”和“ - wipe_data”写入BCB
erase_root()
格式化(擦除)数据分区
erase_root()
格式化(擦除)高速缓存分区
finish_recovery()
擦除BCB
重启系统
升级系统下载
OTA包到/缓存/一些档案名称。
升级系统写入恢复命令“
- update_package = CACHE:一些档案名称。”
重启,并进入恢复模式
get_args()
将“启动恢复”
和
“ - update_package = ...”
写入BCB
install_package()
作升级
finish_recovery()
擦除BCB
*
如果安装包失败**
prompt_and_wait()等待用户操作,选择ALT + S或ALT + W
升级或恢复出厂设置
主()
调用
maybe_install_firmware_update()
如果包里有HBOOT
/无线的固件则继续,否则返回
将
“启动恢复”
和“ - wipe_cache”
写入BCB
将
固件映像写入缓存分区
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮