Android Recovery 代码分析

2014-11-24 11:39:35 来源: 作者: 浏览: 1

1、调用main函数


在gingerbread/bootable/recovery/recovery.c最下面有个main(),这是recovery应用的主入口,当编译recovery的时候,会生成一个名为recovery的可执行文件,我这边是放在out/目录下recovery/文件系统的/sbin目录下,调用recovery可执行文件时会传入参数,这些参数就是main函数的参数,如下




从这里开始了recovery...





2、获取commond





3、获取默认升级固件路径和名称


int property_get(const char *key, char *value, const char *default_value);


包括U盘、SD卡和Flash升级





4、解析命令


int getopt_long(int, char * const *, const char *, const struct option *, int *);


如 case 's': send_intent = optarg; break;


optarg是取命令中等号后面字符串



注册一些命令,register_update_commands函数是注册在update-script和recovery-script使用的升级命令


初始化一个变量,int status = INSTALL_SUCCESS;这个变量是用来标识升级是否成功,在清除misc分区命令时候作为一个判断依据




5、升级、格式化、还原


接下来,有三种需求,一是factorytest;二是update、recover;三是wipe data


-->

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: