Android init.rc分析

原创 2015年07月10日 00:18:19

INIT.RC分析


1,init.rc是一个可配置的初始化文件,通常定制厂商可以配置额外的初始化配置,init.%PRODUCT%.rc

2,init.rc是在$GINGERBREAD/system/core/init/init.c中读取的,它基于“行”,包含一些用空格隔开的关键字(它属于特殊字符)

3,如果关键字中有空格,处理方法类似于C语言,使用/表示转义,使用“”防止关键字被断开,另外注意/在末尾表示换行

4,#开头的表示注释

5,init.rc包含4种状态类别:Actions/Commands/Services/Options

6,当声明一个service或者action的时候,它将隐式声明一个section,它之后跟随的command或者option都将属于这个section

7,actionservice不能重名,否则忽略为error

8,actions就是在某种条件下触发一系列的命令,通常有一个trigger,形式如:  

on <trigger>

      <command>

      <command>


9,service结构如下:

service <name> <pathname> [ <argument> ]*

   <option>

   <option>


10,optionservice的修饰词,主要包括:

     critical      //表示如果服务在4分钟内存在多于4次,则系统重启到recovery mode

     disabled      //表示服务不会自动启动,需要手动调用名字启动

     setEnv <name> <value>      //设置启动环境变量

     socket <name> <type> <permission> [<user> [<group>]]  //开启一个unix域的socket,名字为/dev/socket/<name> , <type>只能是dgram或者


stream,<user>和<group>默认为0

     user <username>      //表示将用户切换为<username>,用户名已经定义好了,只能是system/root

     group <groupname>    //表示将组切换为<groupname>

     oneshot                //表示这个service只启动一次

     class <name>          //指定一个要启动的类,这个类中如果有多个service,将会被同时启动。默认的class将会是“default”

     onrestart             //在重启时执行一条命令


11,trigger主要包括:

     boot                   //当/init.conf加载完毕时

     <name>=<value>              //当<name>被设置为<value>时

     device-added-<path>        //设备<path>被添加时

     device-removed-<path>      //设备<path>被移除时

     service-exited-<name>     //服务<name>退出时


12,命令主要包括:

     exec <path> [ <argument> ]*    //执行一个<path>指定的程序

     export <name> <value>    //设置一个全局变量

     ifup <interface>       //使网络接口<interface>连接

     import <filename>      //引入其他的配置文件

     hostname <name>        //设置主机名

     chdir <directory>     //切换工作目录

     chmod <octal-mode> <path>        //设置访问权限

     chown <owner> <group> <path>    //设置用户和组

     chroot <directory>                //设置根目录

     class_start <serviceclass>      //启动类中的service

     class_stop <serviceclass>        //停止类中的service

     domainname <name>                 //设置域名

     insmod <path>                      //安装模块

     mkdir <path> [mode] [owner] [group]                   //创建一个目录,并可以指定权限,用户和组

     mount <type> <device> <dir> [ <mountoption> ]*      //加载指定设备到目录下

     <mountoption> 包括"ro", "rw", "remount", "noatime"

     setprop <name> <value>               //设置系统属性

     setrlimit <resource> <cur> <max>   //设置资源访问权限

     start <service>                        //开启服务

     stop <service>                         //停止服务

     symlink <target> <path>               //创建一个动态链接

     sysclktz <mins_west_of_gmt>          //设置系统时钟

     trigger <event>                        //触发事件

     write <path> <string> [ <string> ]*    //向<path>路径的文件写入多个<string>


版权声明:本文为博主原创文章,未经博主允许不得转载。

Android7.0解析Init.rc文件

在解析Init.rc之前需要对init.rc文件有一个认识,init.rc是由一种被称为"Android初始化语言"(Android Init Language,这里简称为AIL)的脚本写成的文件.该...
  • fu_kevin0606
  • fu_kevin0606
  • 2016年11月28日 19:44
  • 3937

Android: 如何调试init.rc中的service

1、更改将要调试的service的class类型:
  • dc3120
  • dc3120
  • 2014年09月18日 10:33
  • 1066

Android启动流程分析(九) 解析init.rc的service

在分析完解析init.rc的action之后,剩下的一部分就是解析service了。 而解析service还是需要回到parse_config里面来。根据前面的知识,我们也可以很容易的知道在关键字为s...
  • ChaoY1116
  • ChaoY1116
  • 2015年03月30日 14:39
  • 1741

Android 7.0 init.rc的一点改变

在Android 7之前的版本中,系统Native服务,不管它们的可执行文件位于系统什么位置都定义在根分区的init.*.rc文件中。这造成init*.rc文件臃肿庞大,给维护带来了一些不便,而且其中...
  • sunao2002002
  • sunao2002002
  • 2016年09月07日 00:11
  • 5740

android init.rc路径问题

android init.rc是android启动入口 那么
  • jamikabin
  • jamikabin
  • 2014年08月20日 19:47
  • 1988

Android: 启动init.rc 中service的权限问题

通过property_set("ctl.start", service_xx);来启动init.rc中的service是一个很方便方法来调用某个可执行程序或某个脚本程序service service_...
  • zmyde2010
  • zmyde2010
  • 2011年04月09日 21:58
  • 18214

Android init.rc文件解析过程详解(一)

Android init.rc文件解析过程详解(一) init.c与init.rc在源码中的位置分别位于如下: 1 init.c  : /system/core/in...
  • mk1111
  • mk1111
  • 2013年11月16日 14:56
  • 20295

Android 的 init.rc 文件简介

系统初始化配置文件init.rc,做了些什么
  • yimiyangguang1314
  • yimiyangguang1314
  • 2011年03月22日 15:26
  • 40856

Android init.rc详解

init.rc 文件并不是普通的配置文件,而是由一种被称为“Android初始化语言”(Android Init Language,这里简称为AIL)的脚本写成的文件。在了解init如何解析init....
  • jingerppp
  • jingerppp
  • 2014年09月12日 17:37
  • 2548

Android修改init.rc和init.xx.rc文件

一、文件简介 init.rc:Android在启动过程中读取的启动脚本文件,主要完成一些初级的初始化,在/system/core/init/init.c中解析。 init.xx.rc:与具体CPU...
  • u013686019
  • u013686019
  • 2015年08月25日 19:07
  • 6790
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android init.rc分析
举报原因:
原因补充:

(最多只允许输入30个字)