"init.rc" in Android

来源:互联网 发布:数组slice js 编辑:程序博客网 时间:2024/06/06 17:20

在 Linux Kernel 启动完成后,会创建并启动用户空间的第一个进程 init ,这个进程会完成众多的任务,在 Android 系统中,需要解析 init.rc 这样的配置文件,系统正常启动时,解析 system/core/rootdir/init.rc 这个配置文件,系统以 Recovery 模式启动时,解析 bootable/recovery/etc/init.rc 这个文件,这个是可以修改的。


在 init.rc 文件中的代码片段:



第一次看这些 *.rc 配置文件时,会误认为里面的 mkdir write 等这些是系统调用,其实这些只是一些关键字,在 init.c 的源码中,调用函数 

init_parse_config_file("/init.rc");

解析 init.rc 文件,文件中关键字的定义及其对应的 action 在

system/core/init/keywords.h

中定义,例如:



以 chdir 为例,#define KEYWORD(symbol, flags, nargs, func) K_##symbol,  这样的定义会扩展为: K_chdir

在 system/core/init/init_parser.c 文件中,可以看到:



在这个函数中,会返回 K_chdir 

搜索 lookup_keyword 函数,可以查看到调用它的地方,解析 action, service等,。。。 待续。。。





0 0
原创粉丝点击