[讨论] INIT.RC分析

Wince.Android   2015-5-8 16:46 楼主
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 [ ]*
   向路径的文件写入多个




如果对linux,Android,wince 等嵌入式底层有兴趣的,请加这个QQ群吧,群号:27100460

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复