Android .rc规则详解与init 启动_android init.rc-CSDN博客
是以rc为后缀的文本文件
/init.rc是重要文件,在init进程启动时加载,并负责初始化系统设置。在加载完/init.rc后,执行first stage mount即加载/{system,vendor,odm}/etc/init/路径的rc文件,实现/system, /vendor
的挂载。
Mount_all命令可以指定fstab文件,挂载相应分区。没有指定就搜索默认路径/{system,vendor,odm}/etc/init/。这主要是为了支持工厂模式和其它非标准启动模式。正常启动应该使用如下3个路径的。
1. /system/etc/init/ 用于系统核心项,例如SurfaceFlinger, MediaService,logcatd.
2. /vendor/etc/init/ 用于SoC vendor 项,例如core SoC 需要的actions 或 daemons.
3. /odm/etc/init/ 给设备制造商使用, 例如外设、运动传感器等。
/{system,vendor,odm}目录下的bin文件都在其对应的 /etc/init/下有其对应项。系统中存在一个编译宏LOCAL_INIT_RC给开发者使用。每一个rc文件应该包含某个服务的全部关联操作。
例如:logcat
system/core/logcat/Android.bp
system/core/logcat/logcatd.rc
Init 加载logcatd.rc并将任务放入队列,合适时机运行。
根据init .rc文件的守护进程拆分init .rc文件比以前使用的整体init .rc文件更好。这样可以确保init读取的是唯一的服务entry和action,还有助于解决服务冲突。
/vendor/etc/init/xxx.rc