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: