Have installd use ART binaries from the Android Runtime APEX.

Test: Device boot test (with Android Runtime APEX).
Bug: 113373927
Change-Id: I79652a3b3fbdd5761cf81be56c524cce0dab2ca5
diff --git a/cmds/installd/dexopt.cpp b/cmds/installd/dexopt.cpp
index 25e5247..645e211 100644
--- a/cmds/installd/dexopt.cpp
+++ b/cmds/installd/dexopt.cpp
@@ -332,8 +332,8 @@
             MapPropertyToArg("dalvik.vm.dex2oat-very-large", "--very-large-app-threshold=%s");
 
         // If the runtime was requested to use libartd.so, we'll run dex2oatd, otherwise dex2oat.
-        const char* dex2oat_bin = "/system/bin/dex2oat";
-        constexpr const char* kDex2oatDebugPath = "/system/bin/dex2oatd";
+        const char* dex2oat_bin = "/apex/com.android.runtime/bin/dex2oat";
+        constexpr const char* kDex2oatDebugPath = "/apex/com.android.runtime/bin/dex2oatd";
         // Do not use dex2oatd for release candidates (give dex2oat more soak time).
         bool is_release = android::base::GetProperty("ro.build.version.codename", "") == "REL";
         if (is_debug_runtime() ||
@@ -662,7 +662,9 @@
                   const std::vector<std::string>& dex_locations,
                   bool copy_and_update) {
         const char* profman_bin =
-                is_debug_runtime() ? "/system/bin/profmand" : "/system/bin/profman";
+            is_debug_runtime()
+                ? "/apex/com.android.runtime/bin/profmand"
+                : "/apex/com.android.runtime/bin/profman";
 
         if (copy_and_update) {
             CHECK_EQ(1u, profile_fds.size());
@@ -1464,9 +1466,9 @@
                     const char* class_loader_context) {
         CHECK_GE(zip_fd, 0);
         const char* dexoptanalyzer_bin =
-                is_debug_runtime()
-                        ? "/system/bin/dexoptanalyzerd"
-                        : "/system/bin/dexoptanalyzer";
+            is_debug_runtime()
+                ? "/apex/com.android.runtime/bin/dexoptanalyzerd"
+                : "/apex/com.android.runtime/bin/dexoptanalyzer";
 
         std::string dex_file_arg = "--dex-file=" + dex_file;
         std::string oat_fd_arg = "--oat-fd=" + std::to_string(oat_fd);
diff --git a/cmds/installd/otapreopt.cpp b/cmds/installd/otapreopt.cpp
index b2e7047..d161407 100644
--- a/cmds/installd/otapreopt.cpp
+++ b/cmds/installd/otapreopt.cpp
@@ -440,7 +440,7 @@
                           const char* isa) const {
         // This needs to be kept in sync with ART, see art/runtime/gc/space/image_space.cc.
         std::vector<std::string> cmd;
-        cmd.push_back("/system/bin/dex2oat");
+        cmd.push_back("/apex/com.android.runtime/bin/dex2oat");
         cmd.push_back(StringPrintf("--image=%s", art_path.c_str()));
         for (const std::string& boot_part : Split(boot_cp, ":")) {
             cmd.push_back(StringPrintf("--dex-file=%s", boot_part.c_str()));