android的init.rc文件的语法
"Android 的 init.rc 文件的语法" Android 的 init.rc 文件是 Android 系统启动时的初始化脚本文件,它使用 Android 初始化语言(Android Init Language)来定义系统的启动过程。该语言包括四种类型的语句:动作(Actions)、指令(Commands)、服务(Services)和选项(Options)。 动作(Actions) ---------- 动作(Actions)是一个有名字的指令(commands)序列。每个动作(Actions)都定义一个触发条件(trigger),用于指示什么时候执行这个动作。当与动作的触发器匹配的事件发生时,该动作将被添加到一个即将被执行的队列的队尾(除非它已经在队列中)。队列中的每一个动作被依次取出执行,动作中的每一个指令也将依次执行。初始化程序(Init)在执行一个动作的各项指令的期间,还需要处理其它操作(比如,设备创建/销毁,属性设置,进程重启)。 一个动作定义的形式如下: ``` on <trigger> <command> <command> <command> ``` 例如: ``` on boot mkdir /system chown system /system chmod 755 /system ``` 服务(Services) ---------- 服务是初始化程序需要启动的一些程序,初始化程序还有可能会在这些程序退出之后重启它们。服务定义的形式如下: ``` service <name> <pathname> [ <argument> ]* <option> <option> ... ``` 例如: ``` service myservice /system/bin/myservice option disabled socket mysocket stream 0600 root root user root group root ``` 选项(Options) ---------- 选项将影响控制初始化程序运行服务的时机和方法。可能的选项如下表: | 选项 | 说明 | | --- | --- | | disabled | 这个服务不会自动启动,需要手动启动。 | | socket | 创建一个 Unix 域套接字。 | | user | 指定服务的用户名。 | | group | 指定服务的组名。 | | capability | 设置 Linux 能力。 | | oneshot | 不重新启动服务。 | | class | 指定服务的类名。 | 语法约定 ---------- * 所有类型的语句都是基于行(line-oriented)的,一个语句包含若干个 tokens,token 之间通过空格字符分隔。 * 如果一个 token 中需要包含空格字符,则需要通过 C 语言风格的反斜线('\')来转义,或者使用双引号把整个 token 引起来。 * 反斜线还可以出现在一行的末尾,表示下一行的内容仍然属于当前语句。 * 以 '#' 开始的行是注释行。 * 动作(Actions)和服务(Services)语句隐含表示一个新的段落(section)的开始。 * 所有的指令(commands)和选项(options)归属于上方最近的一个段落。在第一个段落之前的指令(commands)和选项(options)是无效的。 * 动作(Actions)和服务(Services)拥有唯一性的名字。如果出现重名,那么后出现的定义将被作为错误忽略掉。 init.rc 文件的语法定义了 Android 系统的启动过程,包括动作、服务和选项等内容。通过了解这些语法,可以更好地理解 Android 系统的启动机制,并且可以根据需要自定义系统的启动过程。
剩余6页未读,继续阅读
- yilonglucky2012-03-297页的doc文档,只包含语法部分。其中有些表格倒是将各个选项说明的更清楚。
- 粉丝: 801
- 资源: 773
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助