Android 启动流程分析.doc

Android 启动流程分析.doc

ID:61506729

大小:2.43 MB

页数:51页

时间:2021-02-08

Android 启动流程分析.doc_第1页
Android 启动流程分析.doc_第2页
Android 启动流程分析.doc_第3页
Android 启动流程分析.doc_第4页
Android 启动流程分析.doc_第5页
资源描述:

《Android 启动流程分析.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、1.Android2.3.1(Tiny210Source)启动分析Tiny210的入口:/linuxrc,该程序并不开源,从符号表信息推测其加入触摸屏校准的功能,最终调用Android的/sbin/init。1.1init干的那些事儿干吗的:保姆(打扫卫生),父亲(制造儿子)谁找她:她干爹(内核或者switch_root切换)代码阅读指数:★★★★★重点阅读函数:*main入口*parse_new_section处理init.rc配置文件(注意这里默认的service不指定class属性,则默认的classname为"def

2、ault",将被init.rc脚本的中的语句class_startdefault逐一启动)*service_start启动服务思考:*init.rc规则*Android系统中常用用户名和组ID及其应用范围1.2init.rc规则init.rc最重要的两个keyword,以On开头的"ACTION",以service开头的"Service"。具体请参考Android源码systemcoreinitreadme.txt1.2.1ACTION以on打头的“ACTION”,定义启动顺序的流程(early-init,XXXXX这

3、里省略后面详细说init,early-fs,fs,post-fs,early-boot,boot)。它的触发是被动的,在init.c定义了启动顺序,如前面所述,可以理解为信号触发及回调。基本格式:on1.2.2SERVICE*以service打头的"SERVICE",顾名思义,服务服务,为别人服务,是属于预先定义,后被调用的。其格式如下:service

4、定义ueventd服务:serviceueventd/sbin/ueventdcritical#critical表示关键服务,如果服务在4分钟内重启超过4次,将重启进入恢复模式启动ueventd服务onearly-initstartueventd1.1.1常用commandCOMMANDINFOsysclktz设置时区loglevel设置消息调试等级3erorr5notice6info一般设为7则可以输出所有的调试信息export设置环境变量,最多支持32个,在运行程序execve时,作为第三个参数传入symlink链接实际

5、调用symlink函数oldpathnewpathmkdir建立文件夹:mkdir[mode][owner][group]mount挂载文件系统:mountwrite往指定文件输出内容:writechown改变指定文件的所有者,组ID可选chownchmod改变制定文件的权限chmod0777ifup设置某个网络端口属性为up(ifr.ifr_flags

6、=IFF

7、_UP;)hostname设置hostname,即write_file("/proc/sys/kernel/hostname",args[1])domainname设置域名,即write_file("/proc/sys/kernel/domainname",args[1]);setrlimit设置系统资源,例如设置调度优先级等,函数参数等同于setrlimit系统调用函数setpropAndroid属性设置1.2启动流程Android启动流程跟init程序源码的ACTION定义有关,具体的Service跟/init.rc中的

8、定义有关。1.1.1ACTION流ACTION流是在system/core/init.c中预定的流程,init严格按照该流程启动程序。注:蓝色,只在代码中定义的ACTIONACTION说明early-init启动ueventdwait_for_coldboot_done等待ueventd初次初始化设备节点,并进入循环property_init初始化property,读取/default.propkeychord_init按键音??console_init在FBCONSOLE上打印提示消息,可以是565格式的图片(/initl

9、ogo.rle),也可以是默认的Android提示..set_init_properties处理/proc/cmdline的参数(import_kernel_nv),增加至property中。(这里可以传入工厂参数儿进入工厂测试模式)init设置环境变量,建立必要的文件系统结构,建立cgr

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。