android recovery 升级和分区

1、华为手机分区信息:

1|shell@android:/ $ df
df
Filesystem             Size   Used   Free   Blksize
/dev                   196M    64K   196M   4096
/mnt/asec              196M     0K   196M   4096
/mnt/obb               196M     0K   196M   4096
/cache                 189M     4M   184M   4096
/system               1010M   741M   268M   4096
/data                    1G   803M   332M   4096
/cust                   79M    22M    57M   4096
/storage/sdcard1         1G     1G    20M   4096
/storage/sdcard0         7G     1G     6G   32768


shell@android:/dev/block $ cat /proc/partitions
cat /proc/partitions
major minor  #blocks  name


 179        0    3817472 mmcblk0
 179        1         20 mmcblk0p1
 179        2        300 mmcblk0p2
 179        3     133120 mmcblk0p3
 179        4          1 mmcblk0p4
 179        5      12288 mmcblk0p5
 179        6       4096 mmcblk0p6
 179        7       4096 mmcblk0p7
 179        8       3072 mmcblk0p8
 179        9       3072 mmcblk0p9
 179       10       3072 mmcblk0p10
 179       11       4096 mmcblk0p11
 179       12       8192 mmcblk0p12
 179       13      20480 mmcblk0p13
 179       14       4096 mmcblk0p14
 179       15     196608 mmcblk0p15
 179       16      81920 mmcblk0p16
 179       17    1048576 mmcblk0p17
 179       18    1179648 mmcblk0p18
 179       19    1105920 mmcblk0p19
 179       32    7639040 mmcblk1
 179       33    7634944 mmcblk1p1



二、recovery 分区:

   在这里主要是将bootcmd_android_recovery这个环境变量加到uboot启动的environment中,这样当系统启动加载完 root fs之后将不会进入到android的system中,而是进入到了recovery这个轻量级的小UI系统中。

       下面我们来看看为什么在uboot的启动环境变量中加入bootcmd_android_recovery这些启动参数的时候,系统就会进入到 recovery模式下而不是android system,先看看bootcmd_android_recovery相应的参数:

复制代码
#define CONFIG_ANDROID_RECOVERY_BOOTARGS_MMC \
"setenv bootargs ${bootargs} init=/init root=/dev/mmcblk1p4" \
"rootfs=ext4 video=mxcdi1fb:RGB666,XGA ldb=di1 di1_primary"
#define CONFIG_ANDROID_RECOVERY_BOOTCMD_MMC \
"run bootargs_android_recovery;" \
"mmc read 0 ${loadaddr} 0x800 0x2000;bootm"
复制代码

       可以看到在进入recovery模式的时候这里把root的分区设置成了/dev/mmcblk1p4,再来看看在系统烧录的时候对整个SD卡的分区如下:

复制代码
sudo mkfs.vfat -F 32 ${NODE}${PART}1 -n sdcards
sudo mkfs.ext4 ${NODE}${PART}2 -O ^extent -L system
sudo mkfs.ext4 ${NODE}${PART}4 -O ^extent -L recovery
sudo mkfs.ext4 ${NODE}${PART}5 -O ^extent -L data
sudo mkfs.ext4 ${NODE}${PART}6 -O ^extent -L cache
复制代码

       这里NODE = /dev/mmcblk1为挂载点,PART = p或者为空,作为分区的检测。可以看出上面在给recovery分区的时候,用的是/dev/mmcblk1p4这个分区,所以当设置了recovery 启动模式的时候,root根目录就被挂载到/dev/mmcblk1p4这个recovery分区中来,从而进入recovery模式。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值