本文向您展示了如何在android启动过程中分析init.rc文件。内容简洁易懂,一定会让你大放异彩。希望通过这篇文章的详细介绍,你能有所收获。
1.init.rc文件结构
文件位置:
init . c :/系统/内核/init
init . RC :/系统/内核/rootdir
首先,init.rc文件是基于模块的,每个模块的内容是一起执行的。模块分为三种类型:开启、服务和导入。
我们可以看看init.rc文件是如何编写的:
1 .进口
import /init.usb.rc
导入/初始化。${ro.hardware}。罗马天主教
import /init.trace.rc
以上内容简单易懂,即导入其他。rc文件,所以当你添加一个产品到android源代码中,并想添加一个引导条目,你可以在这里添加它。
2.on
一般来说,on类型是做一些简单的shell指令,比如chown、mkdir、write、export和symlink。
而且init.rc本身带来了一些注释,比较容易理解。
关于后fs数据
#我们再次检查/chmod /data,因为装载是作为根默认值运行的
chown系统系统/数据
chmod 0771/数据
3 .服务
服务类型的模块代表一个可执行程序,例如:
服务引导/系统/bin/引导动画
主类
用户图形
分组图形
有缺陷的
一次通过
Bootanim是模块名
/system/bin/bootanimation是可执行文件的路径。
对应于关键字类、用户、组和onrestart的行用于描述服务的一些特征。不同的服务有不同的特点。
init.rc的结构大概是这样的,那么这个init.rc是怎么工作的呢?这取决于init.c文件。
首先,我们知道每个on模块都有自己的名字,比如上面的post-fs-data。然后你可以在init.c中找到这句话:
action _ for _ each _ trigger(' post-fs-data ',action _ add _ queue _ tail);
这将把“onpost-fs-data”这样一个节中的所有命令添加到一个执行队列中,队列中的命令将在未来的某个时间按顺序执行,因此调用action_for_each_trigger()的顺序决定了命令的执行顺序。
这项服务何时执行?
on模块的指令中会有“class_start”,例如:
class_start核心
类_开始主
在未加密的
类_开始时间晚_开始时间
服务模块在这里执行时会被调用。
以上内容是安卓启动时如何分析init.rc文件。你学到什么知识或技能了吗?如果你想学习更多的技能或丰富你的知识,请关注行业信息渠道。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/151921.html