Rename the runtime linker namespace following ART/Runtime APEX split. am: f02d5d69a6 am: b5b1822951
am: cd76e4d318

Change-Id: I0086c920eb10ca3c138681a7c04284c1cbabab8d
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