android恢复出厂设置流程图,Android recovery模式

Android利用Recovery模式,进行恢复出厂设置,OTA升级,patch升级及firmware升级。

升级一般通过运行升级包中的META-INF/com/google/android/update-script脚本来执行自定义升级,脚本中是一组recovery系统能识别的UI控制,文件系统操作命令,例如write_raw_image(写FLASH分区),copy_dir(复制目录)。该包一般被下载至SDCARD和CACHE分区下。

升级中还涉及到包的数字签名,签名方式和普通JAR文件签名差不错。公钥会被硬编译入recovery,编译时生成在:out/target/product/XX/obj/PACKAGING/ota_keys_inc_intermediates/keys.inc

G1中的三种启动模式

MAGIC KEY:

camera +

power:bootloader模式,ADP里则可以使用fastboot模式

home + power:recovery模式

正常启动

Bootloader正常启动,又有三种方式,按照BCB(Bootloader

Control Block, 下节介绍)中的command分类:

command == 'boot-recovery'

→ 启动recovery.img。recovery模式

command ==

'update-radio/hboot' → 更新firmware(bootloader)

其他 → 启动boot.img

Recovery涉及到的其他系统及文件

CACHE分区文件

Recovery

工具通过NAND

cache分区上的三个文件和主系统打交道。主系统(包括恢复出厂设置和OTA升级)可以写入recovery所需的命令,读出recovery过程中的LOG和intent。

/cache/recovery/command:

recovery命令,由主系统写入。所有命令如下:

--send_intent=anystring

- write the text out to recovery.intent

--update_package=root:path

- verify install an OTA package file

--wipe_data

- erase user data (and cache), then reboot

--wipe_cache

- wipe cache (but not user data), then reboot

/cache/recovery/log:recovery过程日志,由主系统读出

/cache/recovery/intent:recovery输出的intent

MISC分区内容

Bootloader Control Block

(BCB) 存放recovery

bootloader message。结构如下:

struct

bootloader_message {

char

command[32];

char

status[32];  // 未知用途

char

recovery[1024];

};

command可以有以下两个值

“boot-recovery”:标示recovery正在进行,或指示bootloader应该进入recovery

m

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值