`
- 浏览:
81861 次
- 性别:
- 来自:
西安
-
本文转载自:
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>
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
### Android启动流程详解:init.c与init.rc分析 #### 一、引言 在深入了解Android启动过程时,我们不可避免地会遇到两个核心组件:`init.c`和`init.rc`。这两个组件对于理解整个Android系统的启动流程至关重要。...
Linux 系统初始化脚本 init.rc 语法介绍 init.rc 是 Android 系统...init.rc 语法是 Android 系统初始化脚本的核心组件,它控制着系统的启动和运行过程。了解 init.rc 语法对于 Android 系统开发和维护人员非常重要。
下面,我们将详细解析`init.rc`脚本中的关键概念与语法结构。 #### Actions (动作) `Actions`定义了当特定触发器(Trigger)激活时所执行的一系列命令。每个`Action`都由一个触发器`on`开头,后面跟随一系列的`...
"Android 的 init.rc 文件的语法" Android 的 init.rc 文件是 Android 系统启动时的初始化脚本文件,它使用 Android 初始化语言(Android Init Language)来定义系统的启动过程。该语言包括四种类型的语句:动作...
创建文件或目录的基本语法在`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的语法介绍" init.rc是Android系统的初始化脚本,它控制着系统的启动过程。在init.rc文件中,我们可以定义各种Actions、Services、Options等元素,以控制系统的行为。本文将详细介绍...
Linux 系统初始化脚本 init.rc 语法介绍 init.rc 是 Android 系统初始化脚本,它包含四种类型的声明:Actions、Commands、Services 和 Options。这些声明都是以行为单位的,使用空格来隔开记号。C 语言风格的反斜杠...
Android系统的初始化过程中,init.rc文件扮演着至关重要的角色。它是一个脚本文件,负责定义系统启动时需要执行的各种任务,包括启动...理解init.rc文件的结构和语法规则对于调试和优化Android系统的启动过程至关重要。
### Android Init语法详解 #### 一、概述 `android init`是Android系统中一个非常重要的组件,它负责在...理解`init.rc`的语法结构对于深入理解Android系统启动流程非常重要,同时也是进行系统级定制和调试的基础。
这篇文章将深入探讨init.rc的解析过程,以及它所遵循的语法规范。 解析init.rc文件的工作主要在`parse_config()`函数中进行,该函数位于`system/core/init/init_parser.c`。解析流程在系统的启动过程中处于关键阶段...
- **init.rc文件结构**:`init.rc`文件采用了自定义的脚本语言(通常称为AIL语言),具有简单的语法结构,支持定义服务、动作、条件语句等。 - **解析流程**: - `init`进程调用`init_parse_config_file`函数来...
两个脚本的基本语法和作用是相同的,但init.<设备>.rc更加专注于设备相关的配置。 解析init脚本时,实际上init_parse_config_file()函数构建了一个执行序列,然后execute_one_command()函数依次执行序列中的命令。...
在Android系统中,`androidinit`脚本是设备启动过程中的核心部分,它负责系统的初始化、服务管理和事件响应。本文将深入探讨`init.*.rc`、`init.conf`文件格式以及Android初始化语言的主要概念。 Android初始化语言...
### Android根文件系统分析总结 #### 一、Android源代码文件系统部分介绍 在深入了解Android根文件系统的构建之前,我们先来简要回顾一下Android源代码的组织结构。当从Google获取到完整的Android源代码后,经过在...
- 然后,构建一个动态路径`/init.%s.rc`,其中`%s`会被替换为当前硬件平台的名称,如`init.samsung.rc`等,并通过`init_parse_config_file(tmp)`函数(位于717行)来执行相应的硬件特定配置文件。 ##### 3. 设备...
此外,系统启动脚本(如init.rc)也需要调整,以确保启动过程中服务和程序的正确加载。 完成以上步骤后,你就可以在目标设备上测试移植后的Android系统了。测试应覆盖功能测试、性能测试、稳定性测试等多个方面,...
5. **INIT.RC文件语法**:定义了系统启动过程中各个进程的启动顺序和参数配置。 #### 七、IPC框架—BINDER机制 1. **BINDER情景分析**:介绍BINDER的工作原理及其应用场景。 2. **BINDER机制的组成**:包括Binder...
总之,Gradle 2.14 RC 1是Gradle项目的一个候选发布版本,为开发者提供了一个强大、灵活的构建工具,尤其在Android开发中扮演着至关重要的角色。通过理解和熟练使用Gradle,开发者可以更高效地管理项目,提高开发...
Android系统的启动过程中,会执行一系列脚本,如init进程、rc文件等,它们定义了系统启动时服务的启动顺序和设备的初始化。 这些知识点构成了Android系统移植的基础,涵盖了从环境准备到具体功能实现的整个流程,...
4. **权限和配置文件**:针对摩托罗拉设备的权限设置和系统配置文件,如build.prop和init.rc。 5. **性能优化**:针对摩托罗拉硬件的性能调优,如GPU渲染、内存管理等。 6. **Bootloader和Recovery**:可能包含对...