Rename the runtime linker namespace following ART/Runtime APEX split.
am: f02d5d69a6
Change-Id: I5354597fad998b022e5aff513c5a9392a36cb975
diff --git a/contents/include/linkerconfig/namespacebuilder.h b/contents/include/linkerconfig/namespacebuilder.h
index 6e295d9..107d3b7 100644
--- a/contents/include/linkerconfig/namespacebuilder.h
+++ b/contents/include/linkerconfig/namespacebuilder.h
@@ -26,7 +26,7 @@
namespace contents {
NamespaceBuilder BuildSystemDefaultNamespace;
NamespaceBuilder BuildMediaNamespace;
-NamespaceBuilder BuildRuntimeNamespace;
+NamespaceBuilder BuildArtNamespace;
NamespaceBuilder BuildConscryptNamespace;
NamespaceBuilder BuildResolvNamespace;
NamespaceBuilder BuildSphalNamespace;
@@ -40,4 +40,4 @@
NamespaceBuilder BuildNeuralNetworksNamespace;
} // namespace contents
} // namespace linkerconfig
-} // namespace android
\ No newline at end of file
+} // namespace android
diff --git a/contents/namespace/runtime.cc b/contents/namespace/art.cc
similarity index 62%
rename from contents/namespace/runtime.cc
rename to contents/namespace/art.cc
index 3ec93ab..0f18dca 100644
--- a/contents/namespace/runtime.cc
+++ b/contents/namespace/art.cc
@@ -22,19 +22,29 @@
namespace android {
namespace linkerconfig {
namespace contents {
-Namespace BuildRuntimeNamespace([[maybe_unused]] const Context& ctx) {
- Namespace ns("runtime", /*is_isolated=*/true,
+
+Namespace BuildArtNamespace([[maybe_unused]] const Context& ctx) {
+ // Make the namespace visible to allow links to be created at runtime, e.g.
+ // through android_link_namespaces in libnativeloader. That is not applicable
+ // to the vendor section.
+ Namespace ns("art",
+ /*is_isolated=*/true,
/*is_visible=*/!ctx.IsVendorSection());
+
ns.AddSearchPath("/apex/com.android.art/${LIB}", AsanPath::SAME_PATH);
- ns.AddSearchPath("/apex/com.android.runtime/${LIB}", AsanPath::SAME_PATH);
- // TODO(b/119867084): Restrict to Bionic dlopen dependencies and PALette
- // library when it exists.
- ns.CreateLink(ctx.IsVendorSection() ? "system" : "default", true);
+
+ // Need allow_all_shared_libs to let libart.so dlopen oat files in
+ // /system/framework and /data.
+ // TODO(b/130340935): Use a dynamically created linker namespace similar to
+ // classloader-namespace for oat files, and tighten this up.
+ ns.CreateLink(ctx.IsVendorSection() ? "system" : "default",
+ /*allow_all_shared_libs=*/true);
ns.CreateLink("neuralnetworks").AddSharedLib("libneuralnetworks.so");
return ns;
}
+
} // namespace contents
} // namespace linkerconfig
} // namespace android
diff --git a/contents/namespace/conscrypt.cc b/contents/namespace/conscrypt.cc
index f5d9143..4a7fac8 100644
--- a/contents/namespace/conscrypt.cc
+++ b/contents/namespace/conscrypt.cc
@@ -37,11 +37,11 @@
/*is_visible=*/true);
ns.AddSearchPath("/apex/com.android.conscrypt/${LIB}", AsanPath::SAME_PATH);
- ns.CreateLink("runtime").AddSharedLib("libandroidio.so");
+ ns.CreateLink("art").AddSharedLib("libandroidio.so");
ns.CreateLink("default").AddSharedLib(kLibsFromDefault);
return ns;
}
} // namespace contents
} // namespace linkerconfig
-} // namespace android
\ No newline at end of file
+} // namespace android
diff --git a/contents/namespace/system.cc b/contents/namespace/system.cc
index a8cabc2..2d92af7 100644
--- a/contents/namespace/system.cc
+++ b/contents/namespace/system.cc
@@ -28,7 +28,7 @@
ns.AddSearchPath("/@{SYSTEM_EXT:system_ext}/${LIB}", AsanPath::WITH_DATA_ASAN);
ns.AddSearchPath("/@{PRODUCT:product}/${LIB}", AsanPath::WITH_DATA_ASAN);
- ns.CreateLink("runtime").AddSharedLib(
+ ns.CreateLink("art").AddSharedLib(
{"libdexfile_external.so",
"libdexfile_external.so",
"libnativebridge.so",
@@ -45,4 +45,4 @@
}
} // namespace contents
} // namespace linkerconfig
-} // namespace android
\ No newline at end of file
+} // namespace android
diff --git a/contents/namespace/systemdefault.cc b/contents/namespace/systemdefault.cc
index bf94280..d704c48 100644
--- a/contents/namespace/systemdefault.cc
+++ b/contents/namespace/systemdefault.cc
@@ -23,7 +23,7 @@
using android::linkerconfig::modules::Namespace;
namespace {
-const std::vector<std::string> kLibsFromRuntimeLegacy = {
+const std::vector<std::string> kLibsFromArtLegacy = {
"libart.so:libartd.so",
"libdexfile_external.so",
"libnativebridge.so",
@@ -33,7 +33,7 @@
// TODO(b/122876336): Remove libpac.so once it's migrated to Webview
"libpac.so"};
-const std::vector<std::string> kLibsFromRuntime = {
+const std::vector<std::string> kLibsFromArt = {
"libdexfile_external.so",
"libdexfiled_external.so",
"libnativebridge.so",
@@ -106,8 +106,8 @@
BuildPermittedPath(ns);
}
- ns.CreateLink("runtime").AddSharedLib(is_legacy ? kLibsFromRuntimeLegacy
- : kLibsFromRuntime);
+ ns.CreateLink("art").AddSharedLib(is_legacy ? kLibsFromArtLegacy
+ : kLibsFromArt);
ns.CreateLink("resolv").AddSharedLib("libnetd_resolv.so");
ns.CreateLink("neuralnetworks").AddSharedLib("libneuralnetworks.so");
@@ -115,4 +115,4 @@
}
} // namespace contents
} // namespace linkerconfig
-} // namespace android
\ No newline at end of file
+} // namespace android
diff --git a/contents/namespace/unrestricteddefault.cc b/contents/namespace/unrestricteddefault.cc
index 98f3680..d608a6d 100644
--- a/contents/namespace/unrestricteddefault.cc
+++ b/contents/namespace/unrestricteddefault.cc
@@ -23,7 +23,7 @@
using android::linkerconfig::modules::Namespace;
namespace {
-const std::vector<std::string> kLibsFromRuntime = {
+const std::vector<std::string> kLibsFromArt = {
"libdexfile_external.so",
"libdexfiled_external.so",
"libnativebridge.so",
@@ -48,7 +48,7 @@
ns.AddSearchPath("/odm/${LIB}", AsanPath::WITH_DATA_ASAN);
ns.AddSearchPath("/vendor/${LIB}", AsanPath::WITH_DATA_ASAN);
- ns.CreateLink("runtime").AddSharedLib(kLibsFromRuntime);
+ ns.CreateLink("art").AddSharedLib(kLibsFromArt);
ns.CreateLink("resolv").AddSharedLib("libnetd_resolv.so");
ns.CreateLink("neuralnetworks").AddSharedLib("libneuralnetworks.so");
@@ -56,4 +56,4 @@
}
} // namespace contents
} // namespace linkerconfig
-} // namespace android
\ No newline at end of file
+} // namespace android
diff --git a/contents/namespace/vendordefault.cc b/contents/namespace/vendordefault.cc
index 330df4d..43ccace 100644
--- a/contents/namespace/vendordefault.cc
+++ b/contents/namespace/vendordefault.cc
@@ -40,7 +40,7 @@
ns.AddPermittedPath("/vendor", AsanPath::WITH_DATA_ASAN);
ns.AddPermittedPath("/system/vendor", AsanPath::NONE);
- ns.CreateLink("runtime").AddSharedLib("@{SANITIZER_RUNTIME_LIBRARIES}");
+ ns.CreateLink("art").AddSharedLib("@{SANITIZER_RUNTIME_LIBRARIES}");
ns.CreateLink("system").AddSharedLib(
{"@{LLNDK_LIBRARIES}", "@{SANITIZER_RUNTIME_LIBRARIES}"});
ns.CreateLink("vndk").AddSharedLib(
@@ -55,4 +55,4 @@
}
} // namespace contents
} // namespace linkerconfig
-} // namespace android
\ No newline at end of file
+} // namespace android
diff --git a/contents/namespace/vndk.cc b/contents/namespace/vndk.cc
index d691b08..71108ea 100644
--- a/contents/namespace/vndk.cc
+++ b/contents/namespace/vndk.cc
@@ -55,7 +55,7 @@
ns.CreateLink(is_system_section ? "default" : "system")
.AddSharedLib({"@{LLNDK_LIBRARIES}", "@{SANITIZER_RUNTIME_LIBRARIES}"});
- ns.CreateLink("runtime").AddSharedLib("@{SANITIZER_RUNTIME_LIBRARIES}");
+ ns.CreateLink("art").AddSharedLib("@{SANITIZER_RUNTIME_LIBRARIES}");
if (is_system_section) {
ns.CreateLink("sphal", true);
@@ -74,4 +74,4 @@
}
} // namespace contents
} // namespace linkerconfig
-} // namespace android
\ No newline at end of file
+} // namespace android
diff --git a/contents/namespace/vndkinsystem.cc b/contents/namespace/vndkinsystem.cc
index 965b750..21e2bd5 100644
--- a/contents/namespace/vndkinsystem.cc
+++ b/contents/namespace/vndkinsystem.cc
@@ -39,11 +39,11 @@
ns.CreateLink("system").AddSharedLib(
{"@{LLNDK_LIBRARIES}", "@{SANITIZER_RUNTIME_LIBRARIES}"});
ns.CreateLink("vndk", true);
- ns.CreateLink("runtime").AddSharedLib("@{SANITIZER_RUNTIME_LIBRARIES}");
+ ns.CreateLink("art").AddSharedLib("@{SANITIZER_RUNTIME_LIBRARIES}");
ns.CreateLink("neuralnetworks").AddSharedLib("libneuralnetworks.so");
return ns;
}
} // namespace contents
} // namespace linkerconfig
-} // namespace android
\ No newline at end of file
+} // namespace android
diff --git a/contents/section/legacy.cc b/contents/section/legacy.cc
index 76144df..feb3e1c 100644
--- a/contents/section/legacy.cc
+++ b/contents/section/legacy.cc
@@ -31,7 +31,7 @@
std::vector<Namespace> namespaces;
namespaces.emplace_back(BuildSystemDefaultNamespace(ctx));
- namespaces.emplace_back(BuildRuntimeNamespace(ctx));
+ namespaces.emplace_back(BuildArtNamespace(ctx));
namespaces.emplace_back(BuildMediaNamespace(ctx));
namespaces.emplace_back(BuildConscryptNamespace(ctx));
namespaces.emplace_back(BuildResolvNamespace(ctx));
@@ -41,4 +41,4 @@
}
} // namespace contents
} // namespace linkerconfig
-} // namespace android
\ No newline at end of file
+} // namespace android
diff --git a/contents/section/system.cc b/contents/section/system.cc
index df4c99c..beff0b8 100644
--- a/contents/section/system.cc
+++ b/contents/section/system.cc
@@ -32,7 +32,7 @@
std::vector<Namespace> namespaces;
namespaces.emplace_back(BuildSystemDefaultNamespace(ctx));
- namespaces.emplace_back(BuildRuntimeNamespace(ctx));
+ namespaces.emplace_back(BuildArtNamespace(ctx));
namespaces.emplace_back(BuildMediaNamespace(ctx));
namespaces.emplace_back(BuildConscryptNamespace(ctx));
namespaces.emplace_back(BuildResolvNamespace(ctx));
@@ -45,4 +45,4 @@
}
} // namespace contents
} // namespace linkerconfig
-} // namespace android
\ No newline at end of file
+} // namespace android
diff --git a/contents/section/unrestricted.cc b/contents/section/unrestricted.cc
index efcc69a..0ccf072 100644
--- a/contents/section/unrestricted.cc
+++ b/contents/section/unrestricted.cc
@@ -32,7 +32,7 @@
std::vector<Namespace> namespaces;
namespaces.emplace_back(BuildUnrestrictedDefaultNamespace(ctx));
- namespaces.emplace_back(BuildRuntimeNamespace(ctx));
+ namespaces.emplace_back(BuildArtNamespace(ctx));
namespaces.emplace_back(BuildMediaNamespace(ctx));
namespaces.emplace_back(BuildConscryptNamespace(ctx));
namespaces.emplace_back(BuildResolvNamespace(ctx));
@@ -42,4 +42,4 @@
}
} // namespace contents
} // namespace linkerconfig
-} // namespace android
\ No newline at end of file
+} // namespace android
diff --git a/contents/section/vendor.cc b/contents/section/vendor.cc
index ce264d1..2aafe84 100644
--- a/contents/section/vendor.cc
+++ b/contents/section/vendor.cc
@@ -32,7 +32,7 @@
std::vector<Namespace> namespaces;
namespaces.emplace_back(BuildVendorDefaultNamespace(ctx));
- namespaces.emplace_back(BuildRuntimeNamespace(ctx));
+ namespaces.emplace_back(BuildArtNamespace(ctx));
namespaces.emplace_back(BuildVndkNamespace(ctx));
namespaces.emplace_back(BuildSystemNamespace(ctx));
namespaces.emplace_back(BuildNeuralNetworksNamespace(ctx));
@@ -45,4 +45,4 @@
}
} // namespace contents
} // namespace linkerconfig
-} // namespace android
\ No newline at end of file
+} // namespace android