一、什么是init.rc?
Android设备的启动必须经历三个阶段:Bootloader、Linux Kernel和Android系统服务。严格来说,Android系统实际是运行于Linux内核之上的一系列“服务进程”,而这些服务进程的“老祖宗”就是init,它是Android中第一个被启动的进程,因此PID号为0,它通过解析init.rc(就是一个脚本文件,很简单,但也很重要!!!)来构建出系统的初始运行形态:即其他Android系统服务程序大多是在这个rc脚本中描述并被按着一定的条件启动
二、rc文件的解析
1.Google对于init.rc文件的唯一注解在AOSP下的/system/core/init/Readme.txt👇
2.除了这个txt文件,与init.rc解析相关的代码在init_parser.c中
三、rc文件结构
3.1.init.rc脚本由4种类型的声明构成:
👉Actions(行为)
👉Commands(命令)
👉Services( 服务)
👉Options(选项)
3.2.通用语法规则
👉“#”号注释
👉关键字和参数以空格分隔,每个语句以行为单位
👉C语言风格的放斜杠转义符('\')可以用来为参数添加空格
👉字符串中如果有使用到空格,需要对空格加双引号,like this👉" "
👉行尾有反斜杠'\',和C语言一样,表示下一行和这行是同一个