android init.rc

这里只是简单翻译一下,源码中的readme。如果你想更详细的了解整个过程,你需要查看:

$GINGERBREAD/system/core/init/buitins.c

$GINGERBREAD/system/core/init/keywords.h

$GINGERBREAD/system/core/init/init.c

 

 

android初始化文件(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,action和service不能重名,否则忽略为error

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

on

      

      

9,service结构如下:

service [ ]*

   

   

10,option是service的修饰词,主要包括:

     critical  

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

     disabled  

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

     setEnv  

   设置启动环境变量

     socket [ []] 

   开启一个unix域的socket,名字为/dev/socket/ , 只能是dgram或者stream,默认为0

     user  

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

     group  

   表示将组切换为

     oneshot 

   表示这个service只启动一次

     class  

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

     onrestart 

在重启时执行一条命令

11,trigger主要包括:

     boot 

   当/init.conf加载完毕时

     = 

   当被设置为

     device-added- 

   设备被添加时

     device-removed- 

   设备被移除时

     service-exited- 

   服务退出时

12,命令主要包括:

     exec [ ]*

   执行一个指定的程序

    export

   设置一个全局变量

 

     ifup

   使网络接口连接

 

     import

   引入其他的配置文件

 

     hostname

   设置主机名

 

     chdir

   切换工作目录

 

     chmod

   设置访问权限

 

     chown

   设置用户和组

 

     chroot

  设置根目录

 

     class_start

   启动类中的service

 

     class_stop

   停止类中的service

 

     domainname

   设置域名

 

     insmod

   安装模块

 

     mkdir [mode] [owner] [group]

   创建一个目录,并可以指定权限,用户和组

 

     mount

[ ]*

   加载指定设备到目录下

   包括"ro", "rw", "remount", "noatime"

 

     setprop

   设置系统属性

 

     setrlimit

   设置资源访问权限

 

     start

   开启服务

 

     stop

   停止服务

 

     symlink

   创建一个动态链接

 

     sysclktz

   设置系统时钟

 

     trigger

   触发事件

 

     write [ ]*

   向路径的文件写入多个

你可能感兴趣的:(Android)