android启动分析

android启动分析

ID:40545722

大小:17.30 KB

页数:5页

时间:2019-08-04

android启动分析_第1页
android启动分析_第2页
android启动分析_第3页
android启动分析_第4页
android启动分析_第5页
资源描述:

《android启动分析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、init.c分析因为启动是首先运行init.c所以从其main()开始分析652intmain(intargc,char**argv)653{654intfd_count=0;655structpollfdufds[4];656char*tmpdev;657char*debuggable;658chartmp[32];659intproperty_set_fd_init=0;660intsignal_fd_init=0;661intkeychord_fd_init=0;662663if(!strcmp

2、(basename(argv[0]),"ueventd"))664returnueventd_main(argc,argv);这段代码初始化一些变量,然后663行判断是否给用户空间发事件,这里显然不执行if语句。666/*cleartheumask*/667umask(0);设置允许当前进程创建文件或者目录为最大可操作的权限。673mkdir("/dev",0755);674mkdir("/proc",0755);675mkdir("/sys",0755);创建设备目录dev,进程文件系统目录proc

3、,系统目录sys。677mount("tmpfs","/dev","tmpfs",0,"mode=0755");678mkdir("/dev/pts",0755);679mkdir("/dev/socket",0755);680mount("devpts","/dev/pts","devpts",0,NULL);681mount("proc","/proc","proc",0,NULL);682mount("sysfs","/sys","sysfs",0,NULL);把tmpfs挂载到/dev下,然后

4、创建pts和socket目录,在/dev/pts挂装devpts虚拟文件系统,在目录/proc挂装proc文件系统,在目录/sys挂装sysfs文件系统。690open_devnull_stdio();创建空的设备节点(/dev/null)。691log_init();创建kmsg(/dev/kmsg)节点,主要用来输出LOG信息。693INFO("readingconfigfile");694init_parse_config_file("/init.rc");分析根目录下面的init.rc配置

5、文件,并且把里面的参数组成链表的方式697import_kernel_cmdline(0);从内核里取得引导参数699get_hardware_name(hardware,&revision);获取当前android系统运行的硬件信息。主要从/proc/cpuinfo里读到相关的信息。700snprintf(tmp,sizeof(tmp),"/init.%s.rc",hardware);701init_parse_config_file(tmp);以/init.硬件名称.rc来获取相应硬件的配置文件,

6、并且把配置文件参数加载到链表里。以下一段代码,用于加载action_list和queue_list列表,action_list用来加载脚本里的action,queue_list主要用于加载非脚本里的action以及排列action的顺序703action_for_each_trigger("early-init",action_add_queue_tail);在action_list列表里查找以early-init为名的action变量,找到后将它加到queue_list列表里705queue_bui

7、ltin_action(wait_for_coldboot_done_action,"wait_for_coldboot_done"); 把第一个(函数)和第二个参数(名字)组装成一个action变量加到action_list和queue_list列表。706queue_builtin_action(property_init_action,"property_init");707queue_builtin_action(keychord_init_action,"keychord_init");70

8、8queue_builtin_action(console_init_action,"console_init");console_init_action会加载开机画面和文字709queue_builtin_action(set_init_properties_action,"set_init_properties");711/*executeallthebootactionstogetusstarted*/712action_for_each_trig

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

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

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