您的位置:首页 > 其它

init.rc语法介绍

2017-04-07 11:45 302 查看
2012-12-22 14:45 8210人阅读 评论(0) 收藏 举报


 分类:

Android(27) 


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 <trigger>

     <command>

     <command>

9、service结构如下:

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

     <option>

     <option>

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

   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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: