Androidrecovery模式(1)—功能和如何进入

Androidrecovery模式(1)—功能和如何进入

 

1.  Recovery模式的功能

比如三星Galaxy A7 Recovery模式的菜单:

Androidrecovery模式(1)—功能和如何进入_第1张图片

图1

主要功能是恢复出厂设置和系统升级。

(1)恢复出厂设置

主要是擦除用户数据(对应userdata分区)和缓存数据(对应cache分区)

(2)系统升级

分为在线升级和离线升级:

1)  在线升级

利用无线通信网络,系统自动连接更新源,查看有无升级包、下载OTA升级包,然后给出提示,发起升级过程。在升级古城,Android系统会重启系统进入recovery模式。

2)  离线升级

将OTA升级包放在TF卡或中,通过离线方式升级。

 

2.  如何进入recovery模式

进入recovery有两种方式,一种是通过组合键进入recovery,另一种是上层应用设置中执行安装/重置/清除缓存等操作进行recovery。组合键方式,不同android设备的进入条件不一样,三星Galaxy A7是开机时,同时按下power+音量上+home按键,

 

下面从流程图来看设备如何进入recovery模式

\bootable\bootloader\lk\app\aboot\aboot.c


 Androidrecovery模式(1)—功能和如何进入_第2张图片

图2

boot_linux_from_mmc()根据当前模式来加载boot.img或是recovery.img,然后调用boot_linux()启动内核。

 

3.  设备分区

分区信息是通过USB烧录的线刷工具写入的,bootloader中读取的流程:

target_init()--->partition_read_table()--->mmc_boot_read_gpt()

分区信息在partition_read_table()中可根据下面的代码打印出来

for(;count < partition_count; count++)
    {
       dprintf(ALWAYS,"partition_entries[%d].name=%s\n",count,partition_entries[count].name);
    }
 
[80] partition_entries[0].name=modem
[80] partition_entries[1].name=sbl1
[90] partition_entries[2].name=sbl1bak
[90] partition_entries[3].name=aboot
[90] partition_entries[4].name=abootbak
[100] partition_entries[5].name=rpm
[100] partition_entries[6].name=rpmbak
[100] partition_entries[7].name=tz
[110] partition_entries[8].name=tzbak
[110] partition_entries[9].name=pad
[110] partition_entries[10].name=modemst1
[120] partition_entries[11].name=modemst2
[120] partition_entries[12].name=misc
[120] partition_entries[13].name=fsc
[130] partition_entries[14].name=ssd
[130] partition_entries[15].name=splash
[130] partition_entries[16].name=DDR
[140] partition_entries[17].name=fsg
[140] partition_entries[18].name=sec
[140] partition_entries[19].name=boot
[150] partition_entries[20].name=system
[150] partition_entries[21].name=persist
[150] partition_entries[22].name=cache
[160] partition_entries[23].name=recovery
[160] partition_entries[24].name=devinfo
[160] partition_entries[25].name=keystore
[170] partition_entries[26].name=oem
[170] partition_entries[27].name=config
[180] partition_entries[28].name=userdata

其实还有两个分区,就是主GPT和备份GPT,分别在EMMC最前面和最后面,这两个分区应该是隐藏起来,属于受保护的。

 

参考:

Android Recovery:功能简介。Recovery模式介绍

http://blog.csdn.net/wed110/article/details/29607391

 

Recovery启动流程(3)--recovery.cpp分析

http://www.cnblogs.com/xiaolei-kaiyuan/p/5456227.html


你可能感兴趣的:(Android,recovery)