Android系统启动之init.rc文件解析过程

Android系统启动之init.rc文件解析过程,第1张

第一篇: Android系统启动之bootloader

第二篇: Android系统启动之Init流程(上)

第三篇: Android系统启动之Init流程(下)

第四篇: Android系统启动之init.rc文件解析过程

第五篇: Android系统启动之zyogte进程

第六篇: Android系判哗统启动之zyogte进程java(上)

第七篇: Android系统启动之zyogte进程java(下)

第八篇: Android系统启动之SystemServer

Android init.rc文件由系统第一个启动的init程序解析。是启动系统服务使用的文件。

主要包含了四种类型的语句:

Action和services显式声明了一个语句块,而commands和options属于最近声明的语句块。

在第一个语句块之前 的commands和options会被忽略.

基本规则如下:

动掘蚂行作表示了一组命令(commands)组成.动作包括一个触发器,决定了何时运行这个动作。

注意: 当触发器的条件满足时,这个动作会被增加到已被运行的队列尾。假设此动作在队列中已经存在,那么它将不会运行.

一个动作所包括的命令将被依次运行。

在"动作"(action)里面的,on后面物隐跟着的字符串是触发器(trigger),trigger是一个用于匹配某种事件类型的字符串,它将对应的Action的执行。

触发器(trigger)有几种格式:

常见的格式:

command是action的命令列表中的命令,或者是service中的选项 onrestart 的参数命令.

命令将在所属事件发生时被一个个地执行.

常见命令:

服务是指那些须要在系统初始化时就启动或退出时自己主动重新启动的程序.

解释一下各个参数:

options是Service的修订项。它们决定一个服务何时以及如何运行.

使用例子:

源码路径 system/core/init/init.cpp 中:

开始解析rc文件.

ParseConfig函数在文件 core/init/init_parser.cpp 140行:

ParseConfigFile函数:

Android init.rc文件浅析

安卓系统启动--3init.rc解析

init.rc深入学习

楼主颂茄,你确定你拥滑仔有野让察了修改 init 文件的知识了么?

init=/sbin/init.bak

放在 grub 的 kernel 行里作为一个参数就行了。

配置启动级别文件名:inittab

路径/etc/

共有7个级别:

l0:0:wait:/etc/rc.d/rc 0

l1:1:wait:/etc/rc.d/rc 1

l2:2:wait:/etc/rc.d/rc 2

l3:3:wait:/etc/rc.d/rc 3

l4:4:wait:/etc/rc.d/rc 4

l5:5:wait:/etc/rc.d/rc 5

l6:6:wait:/etc/rc.d/rc 6

0:关机(不要设置为启动默认级别)

1:单用户模式

2:多用户,无NFS(如果您没有配租伍置网络,该级别与3一样)

3:完全多用户模式

4:不使用

5:X11图形模式

6:重启(不要设置为启动默认级别)

Linux 启动时,运行一个叫做init 的程序,然后由它来启动后面的任务,包括多用户环境,网络等。那么弊蔽或,到底什么是运行级别呢?简单的说,运行级就是 *** 作系统当前正在运行的功能级别。这个级别从1 到6,具有不同的功能。这些级别在/etc/inittab 文件里指定。这个文件是init

程序寻找的主要文件,最先运行的服务是那些放在/etc/rc.d 目录下的文件。大多数的Linux 发行版本中,启动脚本放在/etc/rc.d/init.d,这些脚本被ln 命令来连接到 /etc/rc.d/rcn.d目录(这里的n 就是运行级0-6)。如:/etc/rc.d/rc5.d 下面的S10network就是连接到/etc/rc.d/init.d下的network 脚本的。因此,我们可以知道,rc5.d 下面的文件就是并谈和运行级5 有关的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12170300.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存