1.通过产品mk文件中的PRODUCT_COPY_FILES宏将自定义的.rc文件拷贝至根文件系统,一般拷贝到system/etc/init目录下。
2.system/core/init/builtins中的import_late方法会解析system/etc/init等目录下的所有的.rc文件。


/* Imports .rc files from the specified paths. Default ones are applied if none is given.
 *
 * start_index: index of the first path in the args list
 */
static void import_late(const std::vector<std::string>& args, size_t start_index, size_t end_index) {
    Parser& parser = Parser::GetInstance();
    if (end_index <= start_index) {
        // Use the default set if no path is given
        static const std::vector<std::string> init_directories = {
            "/system/etc/init",
            "/vendor/etc/init",
            "/odm/etc/init"
        };

        for (const auto& dir : init_directories) {
            parser.ParseConfig(dir);
        }
    } else {
        for (size_t i = start_index; i < end_index; ++i) {
            parser.ParseConfig(args[i]);
        }
    }
}

3.至于import_late方法是何时被调用的,看源码是和mount相关的,此处就不深究了。

分类: rc文件

0 条评论

发表回复

您的电子邮箱地址不会被公开。