- 1、本文档共52页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Android启动流程分析
Android 2.3.1 (Tiny210 Source) 启动分析
init 干的那些事儿
干吗的:保姆(打扫卫生),父亲(制造儿子)
谁找她:她干爹(内核或者switch_root切换)
代码阅读指数:★★★★★
重点阅读函数:
* main 入口
* parse_new_section 处理init.rc配置文件(注意这里默认的service不指定class属性,则默认的classname为 default,将被 class_start default 逐一启动)
* service_start 启动服务
init.rc最重要的两个keyword
以on打头的“ACTION”,定义启动顺序的流程(early-init,XXXXX这里省略后面详细说 init, early-fs, fs, post-fs, early-boot, boot)。它的触发是被动的,在init.c定义了启动顺序,如前面所述可以理解为信号触发及回调。
基本格式:
on action
command
command
command * 以service打头的SERVICE,顾名思义,服务服务,为别人服务,是属于预先定义,后被调用的。其格式如下:
service name command
option
option
option
例如ueventd的启动
预先定义ueventd服务:
service ueventd /sbin/ueventd
critical
#critical表示 关键服务,如果服务在4分钟内重启超过4次,将重启进入恢复模式
启动ueventd服务
on early-init
start ueventd 常用command
INFO sysclktz 设置时区 loglevel 设置消息调试等级 3 erorr 5 notice 6 info 一般设为7则可以输出所有的调试信息 export 设置环境变量,最多支持32个,在 运行程序execve时,作为第三个参数传入 symlink 链接 实际调用symlink函数 oldpath newpath mkdir 建立文件夹:mkdir path [mode] [owner] [group] mount 挂载文件系统:mount type device path flags ... options write 往指定文件输出内容:write file content chown 改变指定文件的所有者,组ID可选 chown file uid gid chmod 改变制定文件的权限 chmod 0777 file ifup 设置某个网络端口属性为up(ifr.ifr_flags |= IFF_UP;) hostname 设置hostname,即write_file(/proc/sys/kernel/hostname, args[1]) domainname 设置域名,即write_file(/proc/sys/kernel/domainname, args[1]); setrlimit 设置系统资源,例如设置调度优先级等,函数参数等同于setrlimit系统调用函数 setprop Android属性设置
启动流程
early-init 启动ueventdwait_for_coldboot_done 等待ueventd 初次初始化设备节点,并进入循环property_init 初始化property, 读取/default.propkeychord_init 按键音console_init 在FB CONSOLE 上打印提示消息,可以是565格式的图片(/initlogo.rle),也可以是默认的Android提示..set_init_properties 处理/proc/cmdline的参数(import_kernel_nv),增加至property中。 (这里可以传入工厂参数儿进入工厂测试模式)init 设置环境变量,建立必要的文件系统结构,建立cgroup(一种可设置进程的CPU,内存,网络占用率的机制)控制点early-fs 空,未处理fs 空,未处理post-fs 建立/data /cache 下必要的文件夹,处理/proc/kmsg,/proc/sysrq-trigger 权限 property_service_init 加载/system/build.prop /system/default.prop /data/local.
您可能关注的文档
最近下载
- 2024年中国石油东方地球物理勘探有限责任公司秋季高校毕业生招聘270人(甘肃有岗)笔试备考试题及答案解析.docx
- 天马旅游汽车公司管理职责、制度汇编.doc
- 从领导力角度说耿彦波——.ppt
- 唐山介绍PPT(唐山简介经典版).pptx
- 《我的家庭贡献与责任》第一课时小学道德与法治四年级上册PPT课件.pptx VIP
- 保养手册_迈腾b7l使用说明书.pdf
- 2024-2025人教版3三年级数学上册(全册)优秀测试卷(附答案).doc
- (2024年1月)广西各市房屋工程造价指标.doc VIP
- 2022年11月苏州城市学院下半年公开招聘27名管理岗位工作人员笔试参考题库含答案解析.docx
- 2023年义务教育初中英语新课标《英语新课程标准》解读ppt课件.pptx VIP
文档评论(0)