Move dexdiag out of the release APEX, to avoid dependencies on
lib{proc,mem}info there.

Also deduped the dexdump and dexlist checks in art_apex_test.py.

Test: art/build/apex/runtests.sh (on aosp_taimen, aosp_cf_x86_phone, hikey64_only)
Bug: 124293228
Bug: 118374951

(cherry picked from commit 77f17668f9d9dfe152deca165ddaac9aec4a7ce4)

Change-Id: Id316d9b2534b2b30211d2770d0835f208dc6b83b
diff --git a/build/apex/Android.bp b/build/apex/Android.bp
index d2bc678..95aea3c 100644
--- a/build/apex/Android.bp
+++ b/build/apex/Android.bp
@@ -90,11 +90,15 @@
 
 // Tools common to both device APEX and host APEX. Derived from art-tools in art/Android.mk.
 art_tools_common_binaries = [
-    "dexdiag",
     "dexdump",
     "dexlist",
 ]
 
+// Tools common to both device and host debug APEXes.
+art_tools_debug_binaries = [
+    "dexdiag",
+]
+
 // Tools exclusively for the device APEX derived from art-tools in art/Android.mk.
 art_tools_device_only_binaries = [
     // oatdump cannot link with host linux_bionic due to not using clang lld;
@@ -116,9 +120,6 @@
     "hprof-conv",
 ]
 
-art_tools_device_binaries = art_tools_common_binaries + art_tools_device_only_binaries
-art_tools_host_binaries = art_tools_common_binaries + art_tools_host_only_binaries
-
 // Libraries needed to use com.android.runtime.host for zipapex run-tests
 art_runtime_host_run_test_libs = [
     "libartd-disassembler"
@@ -215,7 +216,8 @@
             binaries: art_runtime_base_binaries_prefer32,
         },
         first: {
-            binaries: art_tools_device_binaries,
+            binaries: art_tools_common_binaries
+                + art_tools_device_only_binaries,
         }
     },
     binaries: [
@@ -256,7 +258,8 @@
                 + art_runtime_debug_binaries_prefer32_device,
         },
         first: {
-            binaries: art_tools_debug_device_only_binaries,
+            binaries: art_tools_debug_binaries
+                + art_tools_debug_device_only_binaries,
         }
     },
     certificate: ":com.android.runtime.debug.certificate",
@@ -288,7 +291,9 @@
                 + art_runtime_debug_binaries_both_host,
         },
         first: {
-            binaries: art_tools_host_binaries
+            binaries: art_tools_common_binaries
+                + art_tools_debug_binaries  // Host APEX is always debug.
+                + art_tools_host_only_binaries
                 + art_runtime_base_binaries_prefer32
                 + art_runtime_debug_binaries_prefer32,
         }
diff --git a/build/apex/art_apex_test.py b/build/apex/art_apex_test.py
index 434edc7..b60d0aa 100755
--- a/build/apex/art_apex_test.py
+++ b/build/apex/art_apex_test.py
@@ -383,8 +383,10 @@
     # Check the APEX manifest.
     self._checker.check_file('apex_manifest.json')
 
-    # Check base binaries for ART.
+    # Check binaries for ART.
     self._checker.check_executable('dex2oat')
+    self._checker.check_executable('dexdump')
+    self._checker.check_executable('dexlist')
     self._checker.check_executable('dexoptanalyzer')
     self._checker.check_executable('profman')
     self._checker.check_symlinked_multilib_executable('dalvikvm')
@@ -468,9 +470,6 @@
     self._checker.check_executable('art_prepostinstall_utils')
 
     # Check binaries for ART.
-    self._checker.check_executable('dexdiag')
-    self._checker.check_executable('dexdump')
-    self._checker.check_executable('dexlist')
     self._checker.check_executable('oatdump')
 
     # Check internal libraries for ART.
@@ -501,10 +500,6 @@
     self._checker.check_native_library('libtombstoned_client')
     self._checker.check_native_library('libz')
 
-    # TODO(b/124293228): Figure out why we get these.
-    self._checker.check_prefer64_library('libmeminfo')
-    self._checker.check_prefer64_library('libprocinfo')
-
     # TODO(b/124293228): Cuttlefish puts ARM libs in a lib/arm subdirectory.
     # Check that properly on that arch, but for now just ignore the directory.
     self._checker.ignore_path('lib/arm')
@@ -544,8 +539,6 @@
   def run(self):
     # Check binaries for ART.
     self._checker.check_executable('dexdiag')
-    self._checker.check_executable('dexdump')
-    self._checker.check_executable('dexlist')
 
     # Check debug binaries for ART.
     self._checker.check_executable('dexoptanalyzerd')
@@ -594,6 +587,8 @@
     # package we need to look out for dependencies that should go through
     # exported library stubs (until b/128708192 is fixed).
     self._checker.check_optional_native_library('libvixld')  # Only on ARM/ARM64
+    self._checker.check_prefer64_library('libmeminfo')
+    self._checker.check_prefer64_library('libprocinfo')
 
 
 class NoSuperfluousBinariesChecker: