没有合适的资源?快使用搜索试试~ 我知道了~
首页Android8.1 init进程学习
Android8.1 init进程学习
需积分: 18 11 下载量 23 浏览量
更新于2023-03-16
评论
收藏 96KB DOCX 举报
本文档是基于Android8.1进行分析,对init进程的启动初始化工作进行了分析,包括解析init.rc配置文件,开启属性服务,开启socket监听子进程终止并处理,创建epoll_fd监听创建的其他fd,用来调用对应的处理函数;添加了几个触发器,会将添加的触发添加到列表,在while循环中,会根据列表添加的触发器去找到actions_容器,遍历执行on定义的一系列command,当然,service也是有class_start关键字定义的函数启动的,class_start命令启动classname名字为后面参数的service,例如zygote服务,classname是main. class_start对于函数会调用到Start()函数,创建servicefork()子进程。 更多的可参考文档。。
资源详情
资源评论
资源推荐
第一章 init 相关文件
系统的 头号进程
子进程终止信号处理,创建 ,安装处理函数
系统属性服务类
解析相关类
头文件声明了两个解析类:
解析数据、解析配置文件、解析配置目录,获取不同子 继续解析。
!、"#$ !、"# !
解析 、解析行 ,留给子类实现。
!、% !、& !、&$ !
下面三种类文件均继承 ,分别实现 、、 三种类型的解析。
定义类:'('
定义类)')(')'"
定义类*
进程第一阶段 + 域,第二阶段才是用户域
#
#
相关的类文件
还包括:watchdogd.h/cpp; bootchart.h/cpp; capabilies.h/cpp; descriptors.h/cpp; device.h/cpp; rmware_handler.h/cpp
Keychoords.h/cpp; log.h/cpp kernel log 相关; reboot.h/reboot.cpp; ul.h/cpp 工具类
第二章 串讲 init main()函数
文件路径:,-..
* !函数的主要功能:
- + 域创建文件系统目录并挂载相关的文件系统
-/ + 域屏蔽标准的输入输出以及初始化内核 系统
-. + 域完成 &%0 相关工作
-1 函数,重新执行 进程 ,进入第二个用户域阶段
-2 用户域标准输入、输出、错误输出重定向到 ,并初始化
-3 初始化属性域
-4 清除 域设置的环境变量;设置 和恢复 安全
- 网络通信,创建 句柄,具有执行后关闭特性在最后 循环处理
装载子进程信号处理器,用于处理子进程终止 !"# 信号
- $% 启动属性服务,& 监听并注册接受函数
' 中保存 (% 对象,记录匹配命令和函数之间的对应关系
/ 在 % 解析 文件的 关键字的内容
. 通过 ') 对象向执行队列添加其他
1 循环处理添加到运行队列的事件
*++intmainintargcchar,,argv-
*+.if/01233-
*+4return%5
*+67
*+8如果是 或者 ,执行对应的 函数
*+9if/01233-
*+return%5
*.7
*.*避免子进程激发重启,退出子进程,并调用 重启引导程序,设置信号处理函数
*.:if;<=>>?%=>>?>'#<;%>@%A'@!-
*.+InstallRebootSignalHandlers5
*..7
*.4添加环境变量
*.6add_environment3A'?"3%A'?"%#<BA'?"5
*.8判断是否 进程的 阶段域,第一次是
*.9boolis_rst_stageC3@?%<!>@#%?' <3CC5
*.,* 域创建文件系统目录并挂载相关的文件系统 ,
*4ifis_rst_stage-
*4*0%&DD%start_timeC0%&DD5
*4:在创建新文件或目录时 屏蔽掉新文件或目录不应有的访问允许权限;就是设置允许当前进程创建文件
或者目录最大可操作的权限,比如这里设置为 ,当创建文件时 EF&,即FE
等于八进制的值 888E 了,这样就是给后面的代码调用函数 & 给出最大的权限,
避免了创建目录或文件的权限不确定性。
*4+!&
*4.&5
*44创建和挂载启动所需的文件系统,系统运行时的目录,编译源码生成根目录无这些
*46 0G$&
*48HGG
*493(3333(3)%@>I#3C84435
*4&338445
*6&3&38445
*6*333333@I5
*6:JdeneMAKE_STR%%?;@
*6+3333333C:C3MAKE_STR'#%;<'#A;>!5
*6.#H
*6433..5
*66%groups12C-'#%;<'#A;>!75
*68$Kgroupsgroups5
*693$(33$33$(3@I5
*63(33$(33(3@I5
& 命令创建 中的字符设备文件和块设备文件;参数:文件名、类型、主、次设备号
*8&3&3%B!";L6&***5
*8*&33%B!";L666&*95
*8:&33%B!";L666&*5
,: 域屏蔽标准的输入输出以及初始化内核 系统 ,
*8+标准输入、输出、错误输出重定向到 ,并初始化
*8.@(&$
*84&
*865
*88
*89> @B>MM3G/35
*8在设备树上挂载由 (0 指定的分区(第一个 域阶段),没有返回 (
*9if/#B)-
*9*> <;;>;MM3BN$35
*9:5重启引导程序
*9+7
*9. 域阶段 ;$ 恢复模式时,设置 @?%'O=%O<;>@环境变量
*94'0O;$5
*96一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文
件。这种体系叫做 $P< 或简化为 <,解决安全问题。
,+ 域完成 < 相关工作 ,
*98<<$
*99selinux_initializetrue5参数 ,表示处于 域阶段做安全相关工作
*9
*QH&P
**<$0重新设置 文件属性,转换到 用户域
*:if%%33CCP*-
*+A> <;;>;MM3(35
*.security_failure5
*47
*6设置 第二个阶段环境变量
*83@?%<!>@#%?' <333*5
*9
*static+:%kNanosecondsPerMillisecondC*65
**6.%start_msCstart_time%%
kNanosecondsPerMillisecond5
***3@?%?';?<#%'?3DD%start_ms%*5好像 '? 命令
**:,.函数,重新执行 进程 ,进入第二个用户域阶段,结束下面调用 ,
**+char,pathC125
**.char,args12C-75
**45
**6
**8$(
**9(
**A> <;;>;MM3R33MMMM3R3(35
***security_failure5
****7结束 (is_rst_stage
***:,4用户域标准输入、输出、错误输出重定向到 ,并初始化 ,
***+'H(进入到 用户域阶段,再次调用
***.5
***4> @B>MM3/35
***6设置所有进程可使用的会话密钥环,但禁止覆盖,类似 B=< 加密的密钥
***8&$
***9&B=<$&$@
***&$
**:&$%%&$%#<S%A<!%<>@%<S;@ *5
**:*,6初始化属性域 ,
**::00&(
**:+303>%Q;>@SL>%!;<'?L>%!><T<!5
**:.初始化属性域 $%
**:4$%5
**:6
**:8(0#?
**:9#?$$P
**:process_kernel_dt5
**+process_kernel_cmdline5
**+*
**+:A&00
**++0$N
**+.export_kernel_boot_props5
**+4
**+6)&0(0
**+8$%3033@?%?';?<#%'?35
**+9$%3033@?%<@IT%?>>35
**+
**.00(B&P$>?'?00
**.*constchar,avb_versionC3@?%'O=%O<;>@35
**.:ifavb_version$%300%3avb_version5
**.+,8清除 域设置的环境变量;设置 和恢复 安全 给定值 ,
**..!
**.43@?%<!>@#%?' <35标识是否第二次 用户域
**.63@?%?';?<#%'?35
剩余32页未读,继续阅读
snail201211
- 粉丝: 10
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- stc12c5a60s2 例程
- Android通过全局变量传递数据
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0