Merge "Rename product_services to system_ext"
am: 6da50e319c
Change-Id: If9eaecca2382b3ace74ae721e80d51c79bb9b0fb
This commit is contained in:
commit
e0b1eb8d65
7 changed files with 57 additions and 66 deletions
|
|
@ -704,10 +704,9 @@ bool ReadFstabFromDt(Fstab* fstab, bool log) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// For GSI to skip mounting /product and /product_services, until there are
|
// For GSI to skip mounting /product and /system_ext, until there are well-defined interfaces
|
||||||
// well-defined interfaces between them and /system. Otherwise, the GSI flashed
|
// between them and /system. Otherwise, the GSI flashed on /system might not be able to work with
|
||||||
// on /system might not be able to work with /product and /product_services.
|
// /product and /system_ext. When they're skipped here, /system/product and /system/system_ext in
|
||||||
// When they're skipped here, /system/product and /system/product_services in
|
|
||||||
// GSI will be used.
|
// GSI will be used.
|
||||||
bool SkipMountingPartitions(Fstab* fstab) {
|
bool SkipMountingPartitions(Fstab* fstab) {
|
||||||
constexpr const char kSkipMountConfig[] = "/system/etc/init/config/skip_mount.cfg";
|
constexpr const char kSkipMountConfig[] = "/system/etc/init/config/skip_mount.cfg";
|
||||||
|
|
|
||||||
|
|
@ -139,12 +139,12 @@ static void LoadBootScripts(ActionManager& action_manager, ServiceList& service_
|
||||||
if (!parser.ParseConfig("/system/etc/init")) {
|
if (!parser.ParseConfig("/system/etc/init")) {
|
||||||
late_import_paths.emplace_back("/system/etc/init");
|
late_import_paths.emplace_back("/system/etc/init");
|
||||||
}
|
}
|
||||||
|
// late_import is available only in Q and earlier release. As we don't
|
||||||
|
// have system_ext in those versions, skip late_import for system_ext.
|
||||||
|
parser.ParseConfig("/system_ext/etc/init");
|
||||||
if (!parser.ParseConfig("/product/etc/init")) {
|
if (!parser.ParseConfig("/product/etc/init")) {
|
||||||
late_import_paths.emplace_back("/product/etc/init");
|
late_import_paths.emplace_back("/product/etc/init");
|
||||||
}
|
}
|
||||||
if (!parser.ParseConfig("/product_services/etc/init")) {
|
|
||||||
late_import_paths.emplace_back("/product_services/etc/init");
|
|
||||||
}
|
|
||||||
if (!parser.ParseConfig("/odm/etc/init")) {
|
if (!parser.ParseConfig("/odm/etc/init")) {
|
||||||
late_import_paths.emplace_back("/odm/etc/init");
|
late_import_paths.emplace_back("/odm/etc/init");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -782,10 +782,9 @@ static void property_initialize_ro_product_props() {
|
||||||
"brand", "device", "manufacturer", "model", "name",
|
"brand", "device", "manufacturer", "model", "name",
|
||||||
};
|
};
|
||||||
const char* RO_PRODUCT_PROPS_ALLOWED_SOURCES[] = {
|
const char* RO_PRODUCT_PROPS_ALLOWED_SOURCES[] = {
|
||||||
"odm", "product", "product_services", "system", "vendor",
|
"odm", "product", "system_ext", "system", "vendor",
|
||||||
};
|
};
|
||||||
const char* RO_PRODUCT_PROPS_DEFAULT_SOURCE_ORDER =
|
const char* RO_PRODUCT_PROPS_DEFAULT_SOURCE_ORDER = "product,odm,vendor,system_ext,system";
|
||||||
"product,product_services,odm,vendor,system";
|
|
||||||
const std::string EMPTY = "";
|
const std::string EMPTY = "";
|
||||||
|
|
||||||
std::string ro_product_props_source_order =
|
std::string ro_product_props_source_order =
|
||||||
|
|
@ -892,6 +891,7 @@ void property_load_boot_defaults(bool load_debug_prop) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
load_properties_from_file("/system/build.prop", nullptr, &properties);
|
load_properties_from_file("/system/build.prop", nullptr, &properties);
|
||||||
|
load_properties_from_file("/system_ext/build.prop", nullptr, &properties);
|
||||||
load_properties_from_file("/vendor/default.prop", nullptr, &properties);
|
load_properties_from_file("/vendor/default.prop", nullptr, &properties);
|
||||||
load_properties_from_file("/vendor/build.prop", nullptr, &properties);
|
load_properties_from_file("/vendor/build.prop", nullptr, &properties);
|
||||||
if (SelinuxGetVendorAndroidVersion() >= __ANDROID_API_Q__) {
|
if (SelinuxGetVendorAndroidVersion() >= __ANDROID_API_Q__) {
|
||||||
|
|
@ -901,7 +901,6 @@ void property_load_boot_defaults(bool load_debug_prop) {
|
||||||
load_properties_from_file("/odm/build.prop", nullptr, &properties);
|
load_properties_from_file("/odm/build.prop", nullptr, &properties);
|
||||||
}
|
}
|
||||||
load_properties_from_file("/product/build.prop", nullptr, &properties);
|
load_properties_from_file("/product/build.prop", nullptr, &properties);
|
||||||
load_properties_from_file("/product_services/build.prop", nullptr, &properties);
|
|
||||||
load_properties_from_file("/factory/factory.prop", "ro.*", &properties);
|
load_properties_from_file("/factory/factory.prop", "ro.*", &properties);
|
||||||
|
|
||||||
if (load_debug_prop) {
|
if (load_debug_prop) {
|
||||||
|
|
|
||||||
|
|
@ -106,7 +106,7 @@ static const char sys_conf_file[] = "/system/etc/fs_config_files";
|
||||||
// oem/ file-system since the intent is to provide support for customized
|
// oem/ file-system since the intent is to provide support for customized
|
||||||
// portions of a separate vendor.img or oem.img. Has to remain open so that
|
// portions of a separate vendor.img or oem.img. Has to remain open so that
|
||||||
// customization can also land on /system/vendor, /system/oem, /system/odm,
|
// customization can also land on /system/vendor, /system/oem, /system/odm,
|
||||||
// /system/product or /system/product_services.
|
// /system/product or /system/system_ext.
|
||||||
//
|
//
|
||||||
// We expect build-time checking or filtering when constructing the associated
|
// We expect build-time checking or filtering when constructing the associated
|
||||||
// fs_config_* files (see build/tools/fs_config/fs_config_generate.c)
|
// fs_config_* files (see build/tools/fs_config/fs_config_generate.c)
|
||||||
|
|
@ -118,15 +118,12 @@ static const char odm_conf_dir[] = "/odm/etc/fs_config_dirs";
|
||||||
static const char odm_conf_file[] = "/odm/etc/fs_config_files";
|
static const char odm_conf_file[] = "/odm/etc/fs_config_files";
|
||||||
static const char product_conf_dir[] = "/product/etc/fs_config_dirs";
|
static const char product_conf_dir[] = "/product/etc/fs_config_dirs";
|
||||||
static const char product_conf_file[] = "/product/etc/fs_config_files";
|
static const char product_conf_file[] = "/product/etc/fs_config_files";
|
||||||
static const char product_services_conf_dir[] = "/product_services/etc/fs_config_dirs";
|
static const char system_ext_conf_dir[] = "/system_ext/etc/fs_config_dirs";
|
||||||
static const char product_services_conf_file[] = "/product_services/etc/fs_config_files";
|
static const char system_ext_conf_file[] = "/system_ext/etc/fs_config_files";
|
||||||
static const char* conf[][2] = {
|
static const char* conf[][2] = {
|
||||||
{sys_conf_file, sys_conf_dir},
|
{sys_conf_file, sys_conf_dir}, {ven_conf_file, ven_conf_dir},
|
||||||
{ven_conf_file, ven_conf_dir},
|
{oem_conf_file, oem_conf_dir}, {odm_conf_file, odm_conf_dir},
|
||||||
{oem_conf_file, oem_conf_dir},
|
{product_conf_file, product_conf_dir}, {system_ext_conf_file, system_ext_conf_dir},
|
||||||
{odm_conf_file, odm_conf_dir},
|
|
||||||
{product_conf_file, product_conf_dir},
|
|
||||||
{product_services_conf_file, product_services_conf_dir},
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Do not use android_files to grant Linux capabilities. Use ambient capabilities in their
|
// Do not use android_files to grant Linux capabilities. Use ambient capabilities in their
|
||||||
|
|
@ -158,9 +155,9 @@ static const struct fs_path_config android_files[] = {
|
||||||
{ 00600, AID_ROOT, AID_ROOT, 0, "product/build.prop" },
|
{ 00600, AID_ROOT, AID_ROOT, 0, "product/build.prop" },
|
||||||
{ 00444, AID_ROOT, AID_ROOT, 0, product_conf_dir + 1 },
|
{ 00444, AID_ROOT, AID_ROOT, 0, product_conf_dir + 1 },
|
||||||
{ 00444, AID_ROOT, AID_ROOT, 0, product_conf_file + 1 },
|
{ 00444, AID_ROOT, AID_ROOT, 0, product_conf_file + 1 },
|
||||||
{ 00600, AID_ROOT, AID_ROOT, 0, "product_services/build.prop" },
|
{ 00600, AID_ROOT, AID_ROOT, 0, "system_ext/build.prop" },
|
||||||
{ 00444, AID_ROOT, AID_ROOT, 0, product_services_conf_dir + 1 },
|
{ 00444, AID_ROOT, AID_ROOT, 0, system_ext_conf_dir + 1 },
|
||||||
{ 00444, AID_ROOT, AID_ROOT, 0, product_services_conf_file + 1 },
|
{ 00444, AID_ROOT, AID_ROOT, 0, system_ext_conf_file + 1 },
|
||||||
{ 00755, AID_ROOT, AID_SHELL, 0, "system/bin/crash_dump32" },
|
{ 00755, AID_ROOT, AID_SHELL, 0, "system/bin/crash_dump32" },
|
||||||
{ 00755, AID_ROOT, AID_SHELL, 0, "system/bin/crash_dump64" },
|
{ 00755, AID_ROOT, AID_SHELL, 0, "system/bin/crash_dump64" },
|
||||||
{ 00755, AID_ROOT, AID_SHELL, 0, "system/bin/debuggerd" },
|
{ 00755, AID_ROOT, AID_SHELL, 0, "system/bin/debuggerd" },
|
||||||
|
|
@ -248,9 +245,9 @@ static int fs_config_open(int dir, int which, const char* target_out_path) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// if path is "odm/<stuff>", "oem/<stuff>", "product/<stuff>",
|
// if path is "odm/<stuff>", "oem/<stuff>", "product/<stuff>",
|
||||||
// "product_services/<stuff>" or "vendor/<stuff>"
|
// "system_ext/<stuff>" or "vendor/<stuff>"
|
||||||
static bool is_partition(const std::string& path) {
|
static bool is_partition(const std::string& path) {
|
||||||
static const char* partitions[] = {"odm/", "oem/", "product/", "product_services/", "vendor/"};
|
static const char* partitions[] = {"odm/", "oem/", "product/", "system_ext/", "vendor/"};
|
||||||
for (size_t i = 0; i < (sizeof(partitions) / sizeof(partitions[0])); ++i) {
|
for (size_t i = 0; i < (sizeof(partitions) / sizeof(partitions[0])); ++i) {
|
||||||
if (StartsWith(path, partitions[i])) return true;
|
if (StartsWith(path, partitions[i])) return true;
|
||||||
}
|
}
|
||||||
|
|
@ -285,10 +282,8 @@ static bool fs_config_cmp(bool dir, const char* prefix, size_t len, const char*
|
||||||
if (fnmatch(pattern.c_str(), input.c_str(), fnm_flags) == 0) return true;
|
if (fnmatch(pattern.c_str(), input.c_str(), fnm_flags) == 0) return true;
|
||||||
|
|
||||||
// Check match between logical partition's files and patterns.
|
// Check match between logical partition's files and patterns.
|
||||||
static constexpr const char* kLogicalPartitions[] = {"system/product/",
|
static constexpr const char* kLogicalPartitions[] = {"system/product/", "system/system_ext/",
|
||||||
"system/product_services/",
|
"system/vendor/", "vendor/odm/"};
|
||||||
"system/vendor/",
|
|
||||||
"vendor/odm/"};
|
|
||||||
for (auto& logical_partition : kLogicalPartitions) {
|
for (auto& logical_partition : kLogicalPartitions) {
|
||||||
if (StartsWith(input, logical_partition)) {
|
if (StartsWith(input, logical_partition)) {
|
||||||
std::string input_in_partition = input.substr(input.find('/') + 1);
|
std::string input_in_partition = input.substr(input.find('/') + 1);
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@
|
||||||
# absolute path of an executable is selected.
|
# absolute path of an executable is selected.
|
||||||
dir.system = /system/bin/
|
dir.system = /system/bin/
|
||||||
dir.system = /system/xbin/
|
dir.system = /system/xbin/
|
||||||
|
dir.system = /%SYSTEM_EXT%/bin/
|
||||||
dir.system = /%PRODUCT%/bin/
|
dir.system = /%PRODUCT%/bin/
|
||||||
|
|
||||||
dir.vendor = /odm/bin/
|
dir.vendor = /odm/bin/
|
||||||
|
|
@ -48,8 +49,8 @@ namespace.default.isolated = true
|
||||||
namespace.default.visible = true
|
namespace.default.visible = true
|
||||||
|
|
||||||
namespace.default.search.paths = /system/${LIB}
|
namespace.default.search.paths = /system/${LIB}
|
||||||
|
namespace.default.search.paths += /%SYSTEM_EXT%/${LIB}
|
||||||
namespace.default.search.paths += /%PRODUCT%/${LIB}
|
namespace.default.search.paths += /%PRODUCT%/${LIB}
|
||||||
namespace.default.search.paths += /%PRODUCT_SERVICES%/${LIB}
|
|
||||||
|
|
||||||
# We can't have entire /system/${LIB} as permitted paths because doing so
|
# We can't have entire /system/${LIB} as permitted paths because doing so
|
||||||
# makes it possible to load libs in /system/${LIB}/vndk* directories by
|
# makes it possible to load libs in /system/${LIB}/vndk* directories by
|
||||||
|
|
@ -61,12 +62,15 @@ namespace.default.search.paths += /%PRODUCT_SERVICES%/${LIB}
|
||||||
namespace.default.permitted.paths = /system/${LIB}/drm
|
namespace.default.permitted.paths = /system/${LIB}/drm
|
||||||
namespace.default.permitted.paths += /system/${LIB}/extractors
|
namespace.default.permitted.paths += /system/${LIB}/extractors
|
||||||
namespace.default.permitted.paths += /system/${LIB}/hw
|
namespace.default.permitted.paths += /system/${LIB}/hw
|
||||||
|
namespace.default.permitted.paths += /%SYSTEM_EXT%/${LIB}
|
||||||
namespace.default.permitted.paths += /%PRODUCT%/${LIB}
|
namespace.default.permitted.paths += /%PRODUCT%/${LIB}
|
||||||
namespace.default.permitted.paths += /%PRODUCT_SERVICES%/${LIB}
|
|
||||||
# These are where odex files are located. libart has to be able to dlopen the files
|
# These are where odex files are located. libart has to be able to dlopen the files
|
||||||
namespace.default.permitted.paths += /system/framework
|
namespace.default.permitted.paths += /system/framework
|
||||||
namespace.default.permitted.paths += /system/app
|
namespace.default.permitted.paths += /system/app
|
||||||
namespace.default.permitted.paths += /system/priv-app
|
namespace.default.permitted.paths += /system/priv-app
|
||||||
|
namespace.default.permitted.paths += /%SYSTEM_EXT%/framework
|
||||||
|
namespace.default.permitted.paths += /%SYSTEM_EXT%/app
|
||||||
|
namespace.default.permitted.paths += /%SYSTEM_EXT%/priv-app
|
||||||
namespace.default.permitted.paths += /vendor/framework
|
namespace.default.permitted.paths += /vendor/framework
|
||||||
namespace.default.permitted.paths += /vendor/app
|
namespace.default.permitted.paths += /vendor/app
|
||||||
namespace.default.permitted.paths += /vendor/priv-app
|
namespace.default.permitted.paths += /vendor/priv-app
|
||||||
|
|
@ -80,9 +84,6 @@ namespace.default.permitted.paths += /oem/app
|
||||||
namespace.default.permitted.paths += /%PRODUCT%/framework
|
namespace.default.permitted.paths += /%PRODUCT%/framework
|
||||||
namespace.default.permitted.paths += /%PRODUCT%/app
|
namespace.default.permitted.paths += /%PRODUCT%/app
|
||||||
namespace.default.permitted.paths += /%PRODUCT%/priv-app
|
namespace.default.permitted.paths += /%PRODUCT%/priv-app
|
||||||
namespace.default.permitted.paths += /%PRODUCT_SERVICES%/framework
|
|
||||||
namespace.default.permitted.paths += /%PRODUCT_SERVICES%/app
|
|
||||||
namespace.default.permitted.paths += /%PRODUCT_SERVICES%/priv-app
|
|
||||||
namespace.default.permitted.paths += /data
|
namespace.default.permitted.paths += /data
|
||||||
namespace.default.permitted.paths += /mnt/expand
|
namespace.default.permitted.paths += /mnt/expand
|
||||||
namespace.default.permitted.paths += /apex/com.android.runtime/${LIB}/bionic
|
namespace.default.permitted.paths += /apex/com.android.runtime/${LIB}/bionic
|
||||||
|
|
@ -90,10 +91,10 @@ namespace.default.permitted.paths += /system/${LIB}/bootstrap
|
||||||
|
|
||||||
namespace.default.asan.search.paths = /data/asan/system/${LIB}
|
namespace.default.asan.search.paths = /data/asan/system/${LIB}
|
||||||
namespace.default.asan.search.paths += /system/${LIB}
|
namespace.default.asan.search.paths += /system/${LIB}
|
||||||
|
namespace.default.asan.search.paths += /data/asan/%SYSTEM_EXT%/${LIB}
|
||||||
|
namespace.default.asan.search.paths += /%SYSTEM_EXT%/${LIB}
|
||||||
namespace.default.asan.search.paths += /data/asan/%PRODUCT%/${LIB}
|
namespace.default.asan.search.paths += /data/asan/%PRODUCT%/${LIB}
|
||||||
namespace.default.asan.search.paths += /%PRODUCT%/${LIB}
|
namespace.default.asan.search.paths += /%PRODUCT%/${LIB}
|
||||||
namespace.default.asan.search.paths += /data/asan/%PRODUCT_SERVICES%/${LIB}
|
|
||||||
namespace.default.asan.search.paths += /%PRODUCT_SERVICES%/${LIB}
|
|
||||||
|
|
||||||
namespace.default.asan.permitted.paths = /data
|
namespace.default.asan.permitted.paths = /data
|
||||||
namespace.default.asan.permitted.paths += /system/${LIB}/drm
|
namespace.default.asan.permitted.paths += /system/${LIB}/drm
|
||||||
|
|
@ -102,6 +103,10 @@ namespace.default.asan.permitted.paths += /system/${LIB}/hw
|
||||||
namespace.default.asan.permitted.paths += /system/framework
|
namespace.default.asan.permitted.paths += /system/framework
|
||||||
namespace.default.asan.permitted.paths += /system/app
|
namespace.default.asan.permitted.paths += /system/app
|
||||||
namespace.default.asan.permitted.paths += /system/priv-app
|
namespace.default.asan.permitted.paths += /system/priv-app
|
||||||
|
namespace.default.asan.permitted.paths += /%SYSTEM_EXT%/${LIB}
|
||||||
|
namespace.default.asan.permitted.paths += /%SYSTEM_EXT%/framework
|
||||||
|
namespace.default.asan.permitted.paths += /%SYSTEM_EXT%/app
|
||||||
|
namespace.default.asan.permitted.paths += /%SYSTEM_EXT%/priv-app
|
||||||
namespace.default.asan.permitted.paths += /vendor/framework
|
namespace.default.asan.permitted.paths += /vendor/framework
|
||||||
namespace.default.asan.permitted.paths += /vendor/app
|
namespace.default.asan.permitted.paths += /vendor/app
|
||||||
namespace.default.asan.permitted.paths += /vendor/priv-app
|
namespace.default.asan.permitted.paths += /vendor/priv-app
|
||||||
|
|
@ -116,10 +121,6 @@ namespace.default.asan.permitted.paths += /%PRODUCT%/${LIB}
|
||||||
namespace.default.asan.permitted.paths += /%PRODUCT%/framework
|
namespace.default.asan.permitted.paths += /%PRODUCT%/framework
|
||||||
namespace.default.asan.permitted.paths += /%PRODUCT%/app
|
namespace.default.asan.permitted.paths += /%PRODUCT%/app
|
||||||
namespace.default.asan.permitted.paths += /%PRODUCT%/priv-app
|
namespace.default.asan.permitted.paths += /%PRODUCT%/priv-app
|
||||||
namespace.default.asan.permitted.paths += /%PRODUCT_SERVICES%/${LIB}
|
|
||||||
namespace.default.asan.permitted.paths += /%PRODUCT_SERVICES%/framework
|
|
||||||
namespace.default.asan.permitted.paths += /%PRODUCT_SERVICES%/app
|
|
||||||
namespace.default.asan.permitted.paths += /%PRODUCT_SERVICES%/priv-app
|
|
||||||
namespace.default.asan.permitted.paths += /mnt/expand
|
namespace.default.asan.permitted.paths += /mnt/expand
|
||||||
namespace.default.asan.permitted.paths += /apex/com.android.runtime/${LIB}/bionic
|
namespace.default.asan.permitted.paths += /apex/com.android.runtime/${LIB}/bionic
|
||||||
namespace.default.asan.permitted.paths += /system/${LIB}/bootstrap
|
namespace.default.asan.permitted.paths += /system/${LIB}/bootstrap
|
||||||
|
|
@ -511,15 +512,15 @@ namespace.vndk.link.vndk_in_system.shared_libs = %VNDK_USING_CORE_VARIANT_LIBRAR
|
||||||
namespace.system.isolated = false
|
namespace.system.isolated = false
|
||||||
|
|
||||||
namespace.system.search.paths = /system/${LIB}
|
namespace.system.search.paths = /system/${LIB}
|
||||||
|
namespace.system.search.paths += /%SYSTEM_EXT%/${LIB}
|
||||||
namespace.system.search.paths += /%PRODUCT%/${LIB}
|
namespace.system.search.paths += /%PRODUCT%/${LIB}
|
||||||
namespace.system.search.paths += /%PRODUCT_SERVICES%/${LIB}
|
|
||||||
|
|
||||||
namespace.system.asan.search.paths = /data/asan/system/${LIB}
|
namespace.system.asan.search.paths = /data/asan/system/${LIB}
|
||||||
namespace.system.asan.search.paths += /system/${LIB}
|
namespace.system.asan.search.paths += /system/${LIB}
|
||||||
namespace.system.asan.search.paths += /data/asan/product/${LIB}
|
namespace.system.asan.search.paths += /data/asan/%SYSTEM_EXT%/${LIB}
|
||||||
|
namespace.system.asan.search.paths += /%SYSTEM_EXT%/${LIB}
|
||||||
|
namespace.system.asan.search.paths += /data/asan/%PRODUCT%/${LIB}
|
||||||
namespace.system.asan.search.paths += /%PRODUCT%/${LIB}
|
namespace.system.asan.search.paths += /%PRODUCT%/${LIB}
|
||||||
namespace.system.asan.search.paths += /data/asan/product_services/${LIB}
|
|
||||||
namespace.system.asan.search.paths += /%PRODUCT_SERVICES%/${LIB}
|
|
||||||
|
|
||||||
namespace.system.links = runtime
|
namespace.system.links = runtime
|
||||||
namespace.system.link.runtime.shared_libs = libdexfile_external.so
|
namespace.system.link.runtime.shared_libs = libdexfile_external.so
|
||||||
|
|
@ -554,15 +555,15 @@ namespace.vndk_in_system.visible = true
|
||||||
# The search paths here should be kept the same as that of the 'system'
|
# The search paths here should be kept the same as that of the 'system'
|
||||||
# namespace.
|
# namespace.
|
||||||
namespace.vndk_in_system.search.paths = /system/${LIB}
|
namespace.vndk_in_system.search.paths = /system/${LIB}
|
||||||
|
namespace.vndk_in_system.search.paths += /%SYSTEM_EXT%/${LIB}
|
||||||
namespace.vndk_in_system.search.paths += /%PRODUCT%/${LIB}
|
namespace.vndk_in_system.search.paths += /%PRODUCT%/${LIB}
|
||||||
namespace.vndk_in_system.search.paths += /%PRODUCT_SERVICES%/${LIB}
|
|
||||||
|
|
||||||
namespace.vndk_in_system.asan.search.paths = /data/asan/system/${LIB}
|
namespace.vndk_in_system.asan.search.paths = /data/asan/system/${LIB}
|
||||||
namespace.vndk_in_system.asan.search.paths += /system/${LIB}
|
namespace.vndk_in_system.asan.search.paths += /system/${LIB}
|
||||||
namespace.vndk_in_system.asan.search.paths += /data/asan/product/${LIB}
|
namespace.vndk_in_system.asan.search.paths += /data/asan/%SYSTEM_EXT%/${LIB}
|
||||||
|
namespace.vndk_in_system.asan.search.paths += /%SYSTEM_EXT%/${LIB}
|
||||||
|
namespace.vndk_in_system.asan.search.paths += /data/asan/%PRODUCT%/${LIB}
|
||||||
namespace.vndk_in_system.asan.search.paths += /%PRODUCT%/${LIB}
|
namespace.vndk_in_system.asan.search.paths += /%PRODUCT%/${LIB}
|
||||||
namespace.vndk_in_system.asan.search.paths += /data/asan/product_services/${LIB}
|
|
||||||
namespace.vndk_in_system.asan.search.paths += /%PRODUCT_SERVICES%/${LIB}
|
|
||||||
|
|
||||||
namespace.vndk_in_system.whitelisted = %VNDK_USING_CORE_VARIANT_LIBRARIES%
|
namespace.vndk_in_system.whitelisted = %VNDK_USING_CORE_VARIANT_LIBRARIES%
|
||||||
|
|
||||||
|
|
@ -707,7 +708,7 @@ namespace.resolv.link.default.shared_libs += liblog.so
|
||||||
[postinstall]
|
[postinstall]
|
||||||
namespace.default.isolated = false
|
namespace.default.isolated = false
|
||||||
namespace.default.search.paths = /system/${LIB}
|
namespace.default.search.paths = /system/${LIB}
|
||||||
|
namespace.default.search.paths += /%SYSTEM_EXT%/${LIB}
|
||||||
namespace.default.search.paths += /%PRODUCT%/${LIB}
|
namespace.default.search.paths += /%PRODUCT%/${LIB}
|
||||||
namespace.default.search.paths += /%PRODUCT_SERVICES%/${LIB}
|
|
||||||
|
|
||||||
namespace.default.link.runtime.shared_libs = %SANITIZER_RUNTIME_LIBRARIES%
|
namespace.default.link.runtime.shared_libs = %SANITIZER_RUNTIME_LIBRARIES%
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@
|
||||||
# absolute path of an executable is selected.
|
# absolute path of an executable is selected.
|
||||||
dir.system = /system/bin/
|
dir.system = /system/bin/
|
||||||
dir.system = /system/xbin/
|
dir.system = /system/xbin/
|
||||||
|
dir.system = /%SYSTEM_EXT%/bin/
|
||||||
dir.system = /%PRODUCT%/bin/
|
dir.system = /%PRODUCT%/bin/
|
||||||
|
|
||||||
dir.vendor = /odm/bin/
|
dir.vendor = /odm/bin/
|
||||||
|
|
@ -48,21 +49,21 @@ namespace.default.isolated = false
|
||||||
namespace.default.visible = true
|
namespace.default.visible = true
|
||||||
|
|
||||||
namespace.default.search.paths = /system/${LIB}
|
namespace.default.search.paths = /system/${LIB}
|
||||||
|
namespace.default.search.paths += /%SYSTEM_EXT%/${LIB}
|
||||||
|
namespace.default.search.paths += /%PRODUCT%/${LIB}
|
||||||
namespace.default.search.paths += /odm/${LIB}
|
namespace.default.search.paths += /odm/${LIB}
|
||||||
namespace.default.search.paths += /vendor/${LIB}
|
namespace.default.search.paths += /vendor/${LIB}
|
||||||
namespace.default.search.paths += /%PRODUCT%/${LIB}
|
|
||||||
namespace.default.search.paths += /%PRODUCT_SERVICES%/${LIB}
|
|
||||||
|
|
||||||
namespace.default.asan.search.paths = /data/asan/system/${LIB}
|
namespace.default.asan.search.paths = /data/asan/system/${LIB}
|
||||||
namespace.default.asan.search.paths += /system/${LIB}
|
namespace.default.asan.search.paths += /system/${LIB}
|
||||||
|
namespace.default.asan.search.paths += /data/asan/%SYSTEM_EXT%/${LIB}
|
||||||
|
namespace.default.asan.search.paths += /%SYSTEM_EXT%/${LIB}
|
||||||
|
namespace.default.asan.search.paths += /data/asan/%PRODUCT%/${LIB}
|
||||||
|
namespace.default.asan.search.paths += /%PRODUCT%/${LIB}
|
||||||
namespace.default.asan.search.paths += /data/asan/odm/${LIB}
|
namespace.default.asan.search.paths += /data/asan/odm/${LIB}
|
||||||
namespace.default.asan.search.paths += /odm/${LIB}
|
namespace.default.asan.search.paths += /odm/${LIB}
|
||||||
namespace.default.asan.search.paths += /data/asan/vendor/${LIB}
|
namespace.default.asan.search.paths += /data/asan/vendor/${LIB}
|
||||||
namespace.default.asan.search.paths += /vendor/${LIB}
|
namespace.default.asan.search.paths += /vendor/${LIB}
|
||||||
namespace.default.asan.search.paths += /data/asan/%PRODUCT%/${LIB}
|
|
||||||
namespace.default.asan.search.paths += /%PRODUCT%/${LIB}
|
|
||||||
namespace.default.asan.search.paths += /data/asan/%PRODUCT_SERVICES%/${LIB}
|
|
||||||
namespace.default.asan.search.paths += /%PRODUCT_SERVICES%/${LIB}
|
|
||||||
|
|
||||||
# Keep in sync with the "platform" namespace in art/build/apex/ld.config.txt.
|
# Keep in sync with the "platform" namespace in art/build/apex/ld.config.txt.
|
||||||
# If a shared library or an executable requests a shared library that
|
# If a shared library or an executable requests a shared library that
|
||||||
|
|
@ -336,8 +337,9 @@ namespace.default.search.paths += /vendor/${LIB}/vndk-sp
|
||||||
# Access to system libraries is allowed
|
# Access to system libraries is allowed
|
||||||
namespace.default.search.paths += /system/${LIB}/vndk-sp%VNDK_VER%
|
namespace.default.search.paths += /system/${LIB}/vndk-sp%VNDK_VER%
|
||||||
namespace.default.search.paths += /system/${LIB}
|
namespace.default.search.paths += /system/${LIB}
|
||||||
|
namespace.default.search.paths += /%SYSTEM_EXT%/${LIB}
|
||||||
namespace.default.search.paths += /%PRODUCT%/${LIB}
|
namespace.default.search.paths += /%PRODUCT%/${LIB}
|
||||||
namespace.default.search.paths += /%PRODUCT_SERVICES%/${LIB}
|
# Put /system/lib/vndk at the last search order in vndk_lite for GSI
|
||||||
namespace.default.search.paths += /system/${LIB}/vndk%VNDK_VER%
|
namespace.default.search.paths += /system/${LIB}/vndk%VNDK_VER%
|
||||||
|
|
||||||
namespace.default.asan.search.paths = /data/asan/odm/${LIB}
|
namespace.default.asan.search.paths = /data/asan/odm/${LIB}
|
||||||
|
|
@ -356,10 +358,10 @@ namespace.default.asan.search.paths += /data/asan/system/${LIB}/vndk-sp%VNDK_VER
|
||||||
namespace.default.asan.search.paths += /system/${LIB}/vndk-sp%VNDK_VER%
|
namespace.default.asan.search.paths += /system/${LIB}/vndk-sp%VNDK_VER%
|
||||||
namespace.default.asan.search.paths += /data/asan/system/${LIB}
|
namespace.default.asan.search.paths += /data/asan/system/${LIB}
|
||||||
namespace.default.asan.search.paths += /system/${LIB}
|
namespace.default.asan.search.paths += /system/${LIB}
|
||||||
namespace.default.asan.search.paths += /data/asan/product/${LIB}
|
namespace.default.asan.search.paths += /data/asan/%SYSTEM_EXT%/${LIB}
|
||||||
|
namespace.default.asan.search.paths += /%SYSTEM_EXT%/${LIB}
|
||||||
|
namespace.default.asan.search.paths += /data/asan/%PRODUCT%/${LIB}
|
||||||
namespace.default.asan.search.paths += /%PRODUCT%/${LIB}
|
namespace.default.asan.search.paths += /%PRODUCT%/${LIB}
|
||||||
namespace.default.asan.search.paths += /data/asan/product_services/${LIB}
|
|
||||||
namespace.default.asan.search.paths += /%PRODUCT_SERVICES%/${LIB}
|
|
||||||
namespace.default.asan.search.paths += /data/asan/system/${LIB}/vndk%VNDK_VER%
|
namespace.default.asan.search.paths += /data/asan/system/${LIB}/vndk%VNDK_VER%
|
||||||
namespace.default.asan.search.paths += /system/${LIB}/vndk%VNDK_VER%
|
namespace.default.asan.search.paths += /system/${LIB}/vndk%VNDK_VER%
|
||||||
|
|
||||||
|
|
@ -514,5 +516,5 @@ namespace.resolv.link.default.shared_libs += libbinder_ndk.so
|
||||||
[postinstall]
|
[postinstall]
|
||||||
namespace.default.isolated = false
|
namespace.default.isolated = false
|
||||||
namespace.default.search.paths = /system/${LIB}
|
namespace.default.search.paths = /system/${LIB}
|
||||||
|
namespace.default.search.paths += /%SYSTEM_EXT%/${LIB}
|
||||||
namespace.default.search.paths += /%PRODUCT%/${LIB}
|
namespace.default.search.paths += /%PRODUCT%/${LIB}
|
||||||
namespace.default.search.paths += /%PRODUCT_SERVICES%/${LIB}
|
|
||||||
|
|
|
||||||
|
|
@ -147,12 +147,7 @@ endif
|
||||||
$(hide) sed -i.bak -e "s?%SANITIZER_RUNTIME_LIBRARIES%?$(PRIVATE_SANITIZER_RUNTIME_LIBRARIES)?g" $@
|
$(hide) sed -i.bak -e "s?%SANITIZER_RUNTIME_LIBRARIES%?$(PRIVATE_SANITIZER_RUNTIME_LIBRARIES)?g" $@
|
||||||
$(hide) sed -i.bak -e "s?%VNDK_VER%?$(PRIVATE_VNDK_VERSION_SUFFIX)?g" $@
|
$(hide) sed -i.bak -e "s?%VNDK_VER%?$(PRIVATE_VNDK_VERSION_SUFFIX)?g" $@
|
||||||
$(hide) sed -i.bak -e "s?%PRODUCT%?$(TARGET_COPY_OUT_PRODUCT)?g" $@
|
$(hide) sed -i.bak -e "s?%PRODUCT%?$(TARGET_COPY_OUT_PRODUCT)?g" $@
|
||||||
ifeq ($(TARGET_COPY_OUT_PRODUCT),$(TARGET_COPY_OUT_PRODUCT_SERVICES))
|
$(hide) sed -i.bak -e "s?%SYSTEM_EXT%?$(TARGET_COPY_OUT_SYSTEM_EXT)?g" $@
|
||||||
# Remove lines containing %PRODUCT_SERVICES% (identical to the %PRODUCT% ones)
|
|
||||||
$(hide) sed -i.bak -e "\?%PRODUCT_SERVICES%?d" $@
|
|
||||||
else
|
|
||||||
$(hide) sed -i.bak -e "s?%PRODUCT_SERVICES%?$(TARGET_COPY_OUT_PRODUCT_SERVICES)?g" $@
|
|
||||||
endif
|
|
||||||
$(hide) sed -i.bak -e "s?^$(PRIVATE_VNDK_VERSION_TAG)??g" $@
|
$(hide) sed -i.bak -e "s?^$(PRIVATE_VNDK_VERSION_TAG)??g" $@
|
||||||
$(hide) sed -i.bak "/^\#VNDK[0-9]\{2\}\#.*$$/d" $@
|
$(hide) sed -i.bak "/^\#VNDK[0-9]\{2\}\#.*$$/d" $@
|
||||||
$(hide) rm -f $@.bak
|
$(hide) rm -f $@.bak
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue