`

Android init.rc语法总结

阅读更多
本文转载自:http://blog.csdn.net/champgauss/article/details/8373172
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>
分享到:
评论

相关推荐

    linux系统初始化脚本init.rc的语法介绍.pdf

    Linux 系统初始化脚本 init.rc 语法介绍 init.rc 是 Android 系统...init.rc 语法是 Android 系统初始化脚本的核心组件,它控制着系统的启动和运行过程。了解 init.rc 语法对于 Android 系统开发和维护人员非常重要。

    Android init.rc 脚本说明

    下面,我们将详细解析`init.rc`脚本中的关键概念与语法结构。 #### Actions (动作) `Actions`定义了当特定触发器(Trigger)激活时所执行的一系列命令。每个`Action`都由一个触发器`on`开头,后面跟随一系列的`...

    android的init.rc文件的语法

    "Android 的 init.rc 文件的语法" Android 的 init.rc 文件是 Android 系统启动时的初始化脚本文件,它使用 Android 初始化语言(Android Init Language)来定义系统的启动过程。该语言包括四种类型的语句:动作...

    10.0 init.rc中data下创建文件节点失败.zip

    创建文件或目录的基本语法在`init.rc` 文件中如下: ```rc mkdir /data/path/to/directory 0755 system system mkfile /data/path/to/file 0644 system system "initial content" ``` - `mkdir` 命令用于创建目录...

    linux系统初始化脚本init.rc的语法介绍宣贯.pdf

    "Linux系统初始化脚本init.rc的语法介绍" init.rc是Android系统的初始化脚本,它控制着系统的启动过程。在init.rc文件中,我们可以定义各种Actions、Services、Options等元素,以控制系统的行为。本文将详细介绍...

    linux系统初始化脚本init.rc的语法介绍借鉴.pdf

    Linux 系统初始化脚本 init.rc 语法介绍 init.rc 是 Android 系统初始化脚本,它包含四种类型的声明:Actions、Commands、Services 和 Options。这些声明都是以行为单位的,使用空格来隔开记号。C 语言风格的反斜杠...

    Android init.rc文件详解及简单实例

    Android系统的初始化过程中,init.rc文件扮演着至关重要的角色。它是一个脚本文件,负责定义系统启动时需要执行的各种任务,包括启动...理解init.rc文件的结构和语法规则对于调试和优化Android系统的启动过程至关重要。

    android init语法.doc

    ### Android Init语法详解 #### 一、概述 `android init`是Android系统中一个非常重要的组件,它负责在...理解`init.rc`的语法结构对于深入理解Android系统启动流程非常重要,同时也是进行系统级定制和调试的基础。

    Android中init.rc文件的解析 分享

    这篇文章将深入探讨init.rc的解析过程,以及它所遵循的语法规范。 解析init.rc文件的工作主要在`parse_config()`函数中进行,该函数位于`system/core/init/init_parser.c`。解析流程在系统的启动过程中处于关键阶段...

    android系统从init进程开始到systemserver启动详细流程

    - **init.rc文件结构**:`init.rc`文件采用了自定义的脚本语言(通常称为AIL语言),具有简单的语法结构,支持定义服务、动作、条件语句等。 - **解析流程**: - `init`进程调用`init_parse_config_file`函数来...

    init可执行程序的结构都有哪些

    两个脚本的基本语法和作用是相同的,但init.&lt;设备&gt;.rc更加专注于设备相关的配置。 解析init脚本时,实际上init_parse_config_file()函数构建了一个执行序列,然后execute_one_command()函数依次执行序列中的命令。...

    androidinit脚本编写.pdf

    在Android系统中,`androidinit`脚本是设备启动过程中的核心部分,它负责系统的初始化、服务管理和事件响应。本文将深入探讨`init.*.rc`、`init.conf`文件格式以及Android初始化语言的主要概念。 Android初始化语言...

    android根文件系统分析总结

    ### Android根文件系统分析总结 #### 一、Android源代码文件系统部分介绍 在深入了解Android根文件系统的构建之前,我们先来简要回顾一下Android源代码的组织结构。当从Google获取到完整的Android源代码后,经过在...

    android2.3初始化过程

    - 然后,构建一个动态路径`/init.%s.rc`,其中`%s`会被替换为当前硬件平台的名称,如`init.samsung.rc`等,并通过`init_parse_config_file(tmp)`函数(位于717行)来执行相应的硬件特定配置文件。 ##### 3. 设备...

    [14本经典Android开发教程]-11-Android系统移植技术详解

    此外,系统启动脚本(如init.rc)也需要调整,以确保启动过程中服务和程序的正确加载。 完成以上步骤后,你就可以在目标设备上测试移植后的Android系统了。测试应覆盖功能测试、性能测试、稳定性测试等多个方面,...

    gradle-2.14-rc-1-all.zip

    总之,Gradle 2.14 RC 1是Gradle项目的一个候选发布版本,为开发者提供了一个强大、灵活的构建工具,尤其在Android开发中扮演着至关重要的角色。通过理解和熟练使用Gradle,开发者可以更高效地管理项目,提高开发...

    Android系统移植技术详解

    Android系统的启动过程中,会执行一系列脚本,如init进程、rc文件等,它们定义了系统启动时服务的启动顺序和设备的初始化。 这些知识点构成了Android系统移植的基础,涵盖了从环境准备到具体功能实现的整个流程,...

    android_vendor_motorola

    4. **权限和配置文件**:针对摩托罗拉设备的权限设置和系统配置文件,如build.prop和init.rc。 5. **性能优化**:针对摩托罗拉硬件的性能调优,如GPU渲染、内存管理等。 6. **Bootloader和Recovery**:可能包含对...

Global site tag (gtag.js) - Google Analytics