Chinaunix首页 | 论坛 | 博客
  • 博客访问: 403639
  • 博文数量: 78
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 940
  • 用 户 组: 普通用户
  • 注册时间: 2013-08-25 09:39
文章分类

全部博文(78)

文章存档

2016年(7)

2015年(1)

2014年(35)

2013年(35)

我的朋友

分类: Android平台

2014-03-27 20:56:11

系统启动,bootloader会读取位于MISC分区的启动控制信息块BCBBootloader Control Block)。它是一个结构体,存放着启动命令command。根据不同的命令,系统又 可以进入三种不同的启动模式。我们先看一下这个结构体的定义。

struct bootloader_message{

char command[32];  //存放不同的启动命令

char status[32];   //update-radioupdate-hboot完成存放执行结果

char recovery[1024]; //存放/cache/recovery/command中的命令

};

根据command值区分三种启动模式。

l  command=="boot-recovery"时,系统会进入Recovery模式。Recovery服务会具体根据/cache/recovery/command中的命令执行相应的操作(例如,升级update.zip或擦除cachedata等)。

l  command=="update-radia""update-hboot"时,系统会进入更新firmware(更新bootloader),具体由bootloader完成。

l  command为空时,即没有任何命令,系统会进入正常的启动,最后进入主系统(main system)。

阅读(2660) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~