Init进程概述
init是一个由内核启动的用户级进程。内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。init始终是用户级的第一个进程。
adb shell ps查看pid及ppid为1的进程信息:
作为天字第一号进程,init被赋予了很多极其重要的工作职责:
(1)解析系统property文件并初始化property信息。
(2)解析脚本init.rc。
(3)根据init.rc配置信息,触发Action及启动Service。
(4)提供系统property服务管理及完成对应的触发事件。
(5)维护系统级Service。
解析init.rc
文件内容
在Android的Init文件中,主要包含:
Action
Commands
Services
Options
在文件 system/core/init/keywords.h 例如如下的定义:
KEYWORD(on, SECTION, 0, 0)
KEYWORD(service, S