diff --git a/init/init.cpp b/init/init.cpp index 95f272b8d..79623c333 100644 --- a/init/init.cpp +++ b/init/init.cpp @@ -110,12 +110,15 @@ static void LoadBootScripts(ActionManager& action_manager, ServiceList& service_ if (!parser.ParseConfig("/system/etc/init")) { late_import_paths.emplace_back("/system/etc/init"); } - if (!parser.ParseConfig("/vendor/etc/init")) { - late_import_paths.emplace_back("/vendor/etc/init"); + if (!parser.ParseConfig("/product/etc/init")) { + late_import_paths.emplace_back("/product/etc/init"); } if (!parser.ParseConfig("/odm/etc/init")) { late_import_paths.emplace_back("/odm/etc/init"); } + if (!parser.ParseConfig("/vendor/etc/init")) { + late_import_paths.emplace_back("/vendor/etc/init"); + } } else { parser.ParseConfig(bootscript); } diff --git a/init/property_service.cpp b/init/property_service.cpp index 0cb9e63b4..fa28fa33b 100644 --- a/init/property_service.cpp +++ b/init/property_service.cpp @@ -641,6 +641,7 @@ void property_load_boot_defaults() { load_properties_from_file("/default.prop", NULL); } } + load_properties_from_file("/product/build.prop", NULL); load_properties_from_file("/odm/default.prop", NULL); load_properties_from_file("/vendor/default.prop", NULL); diff --git a/libcutils/fs_config.cpp b/libcutils/fs_config.cpp index 7c0366324..984071c13 100644 --- a/libcutils/fs_config.cpp +++ b/libcutils/fs_config.cpp @@ -141,6 +141,7 @@ static const struct fs_path_config android_files[] = { { 00444, AID_ROOT, AID_ROOT, 0, odm_conf_file + 1 }, { 00444, AID_ROOT, AID_ROOT, 0, oem_conf_dir + 1 }, { 00444, AID_ROOT, AID_ROOT, 0, oem_conf_file + 1 }, + { 00600, AID_ROOT, AID_ROOT, 0, "product/build.prop" }, { 00750, AID_ROOT, AID_SHELL, 0, "sbin/fs_mgr" }, { 00755, AID_ROOT, AID_SHELL, 0, "system/bin/crash_dump32" }, { 00755, AID_ROOT, AID_SHELL, 0, "system/bin/crash_dump64" }, diff --git a/rootdir/Android.mk b/rootdir/Android.mk index ca992d6ed..d8163abd3 100644 --- a/rootdir/Android.mk +++ b/rootdir/Android.mk @@ -88,6 +88,11 @@ ifdef BOARD_USES_VENDORIMAGE else LOCAL_POST_INSTALL_CMD += ; ln -sf /system/vendor $(TARGET_ROOT_OUT)/vendor endif +ifdef BOARD_USES_PRODUCTIMAGE + LOCAL_POST_INSTALL_CMD += ; mkdir -p $(TARGET_ROOT_OUT)/product +else + LOCAL_POST_INSTALL_CMD += ; ln -sf /system/product $(TARGET_ROOT_OUT)/product +endif ifdef BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE LOCAL_POST_INSTALL_CMD += ; mkdir -p $(TARGET_ROOT_OUT)/cache else diff --git a/rootdir/etc/ld.config.txt.in b/rootdir/etc/ld.config.txt.in index 2a801fad8..00d3379f9 100644 --- a/rootdir/etc/ld.config.txt.in +++ b/rootdir/etc/ld.config.txt.in @@ -55,6 +55,9 @@ namespace.default.permitted.paths += /vendor/framework namespace.default.permitted.paths += /vendor/app namespace.default.permitted.paths += /vendor/priv-app namespace.default.permitted.paths += /oem/app +namespace.default.permitted.paths += /product/framework +namespace.default.permitted.paths += /product/app +namespace.default.permitted.paths += /product/priv-app namespace.default.permitted.paths += /data namespace.default.permitted.paths += /mnt/expand @@ -72,6 +75,9 @@ namespace.default.asan.permitted.paths += /vendor/framework namespace.default.asan.permitted.paths += /vendor/app namespace.default.asan.permitted.paths += /vendor/priv-app namespace.default.asan.permitted.paths += /oem/app +namespace.default.asan.permitted.paths += /product/framework +namespace.default.asan.permitted.paths += /product/app +namespace.default.asan.permitted.paths += /product/priv-app namespace.default.asan.permitted.paths += /mnt/expand ###############################################################################