blob: ceb30932942dcf4591b979d3b9b30d0ddd818670 [file] [log] [blame]
Elliott Hughes627d8d32019-09-30 16:46:18 -07001// ART APEX module
2//
3// Contains both the Android Managed Runtime (ART) and the Android Core Library
4// (Libcore).
5
Roland Levillain38a938e2018-09-21 10:55:51 +01006// Modules listed in LOCAL_REQUIRED_MODULES for module art-runtime in art/Android.mk.
7// - Base requirements (binaries for which both 32- and 64-bit versions are built, if relevant).
8art_runtime_base_binaries_both = [
9 "dalvikvm",
10]
11// - Base requirements (binaries for which a 32-bit version is preferred).
12art_runtime_base_binaries_prefer32 = [
13 "dex2oat",
14 "dexoptanalyzer",
15 "profman",
16]
17// - Base requirements (libraries).
Roland Levillain1617f8c2019-03-26 17:52:30 +000018//
19// Note: ART on-device chroot-based testing and benchmarking is not yet using
Martin Stjernholmfb3a94b2019-07-05 22:27:36 +010020// the ART APEX, meaning that copies of some of these libraries have to be
Roland Levillain1617f8c2019-03-26 17:52:30 +000021// installed in `/system` for the ART Buildbot set-up to work properly. This is
22// done by the `standalone-apex-files` Make phony target, used by the ART
23// Buildbot and Golem (see `art/Android.mk`). If you add libraries to this list,
Martin Stjernholm84e5bb92019-09-05 19:56:46 +010024// you may have to also add them to `PRIVATE_ART_APEX_DEPENDENCY_LIBS` in
Roland Levillain1617f8c2019-03-26 17:52:30 +000025// `art/Android.mk`.
26// TODO(b/121117762): Remove this note when both the ART Buildbot and Golem use
Martin Stjernholmfb3a94b2019-07-05 22:27:36 +010027// the ART APEX.
Roland Levillain38a938e2018-09-21 10:55:51 +010028art_runtime_base_native_shared_libs = [
Martin Stjernholm023c2182019-03-28 15:52:32 +000029 // External API (having APEX stubs).
Martin Stjernholm84bf6982019-02-05 15:07:57 +000030 "libdexfile_external",
Martin Stjernholmc2f8b502019-01-17 14:51:35 +000031 "libnativebridge",
32 "libnativehelper",
33 "libnativeloader",
Martin Stjernholm023c2182019-03-28 15:52:32 +000034 // libadbconnection is internal and loaded with dlopen(), but it cannot use
35 // "required" because of cyclic dependency (b/124505714).
36 "libadbconnection",
37 // TODO(b/124476339): Clean up the following libraries once "required"
Martin Stjernholm0c15b822019-02-14 17:24:19 +000038 // dependencies work with APEX libraries.
Martin Stjernholm023c2182019-03-28 15:52:32 +000039 "libart",
40 "libart-compiler",
Martin Stjernholm0c15b822019-02-14 17:24:19 +000041 "libdt_fd_forward",
42 "libdt_socket",
43 "libjdwp",
44 "libnpt",
Martin Stjernholm023c2182019-03-28 15:52:32 +000045 "libopenjdkjvm",
46 "libopenjdkjvmti",
Roland Levillain38a938e2018-09-21 10:55:51 +010047]
Florian Mayer07710c52019-09-16 15:53:38 +000048
49art_runtime_base_native_device_only_shared_libs = [
50 "libperfetto_hprof",
51]
52
Jiyong Park3296fb12018-12-13 18:32:21 +090053bionic_native_shared_libs = [
Martin Stjernholm023c2182019-03-28 15:52:32 +000054 // External API (having APEX stubs).
Jiyong Park3296fb12018-12-13 18:32:21 +090055 "libc",
56 "libm",
57 "libdl",
58]
Jiyong Park408f7d02019-04-02 23:04:42 +090059
Jiyong Parke2bc9fe2018-12-26 11:36:39 +090060bionic_binaries_both = [
61 "linker",
62]
Martin Stjernholmfb3a94b2019-07-05 22:27:36 +010063
Roland Levillain38a938e2018-09-21 10:55:51 +010064// - Debug variants (binaries for which a 32-bit version is preferred).
Roland Levillain38a938e2018-09-21 10:55:51 +010065art_runtime_debug_binaries_prefer32 = [
Roland Levillain38a938e2018-09-21 10:55:51 +010066 "dexoptanalyzerd",
67 "profmand",
68]
Alex Light572a0962019-01-18 14:48:37 -080069art_runtime_debug_binaries_prefer32_device = [
70 "dex2oatd",
71]
Martin Stjernholmfb3a94b2019-07-05 22:27:36 +010072
Alex Light572a0962019-01-18 14:48:37 -080073art_runtime_debug_binaries_both_host = [
74 "dex2oatd",
75]
76
Roland Levillaincb82d092018-11-02 18:50:15 +000077// - Debug variants (libraries).
Roland Levillain38a938e2018-09-21 10:55:51 +010078art_runtime_debug_native_shared_libs = [
Martin Stjernholmc2f8b502019-01-17 14:51:35 +000079 "libadbconnectiond",
Roland Levillain38a938e2018-09-21 10:55:51 +010080 "libartd",
81 "libartd-compiler",
Martin Stjernholm356864a2019-04-30 16:22:17 +010082 "libdexfiled_external",
Roland Levillain38a938e2018-09-21 10:55:51 +010083 "libopenjdkjvmd",
84 "libopenjdkjvmtid",
Roland Levillain38a938e2018-09-21 10:55:51 +010085]
86
Florian Mayer07710c52019-09-16 15:53:38 +000087art_runtime_base_native_device_only_debug_shared_libs = [
Elliott Hughes627d8d32019-09-30 16:46:18 -070088 "libperfetto_hprofd",
Florian Mayer07710c52019-09-16 15:53:38 +000089]
90
Roland Levillain4d6f24d2019-10-02 16:47:36 +010091// Libraries needed to execute ART run-tests.
92// TODO(b/124476339): When bug 124476339 is fixed, add these libraries as `runtime_libs`
93// dependencies of `libartd-compiler`, and remove `art_runtime_run_test_libs`.
94art_runtime_run_test_libs = [
95 "libart-disassembler",
96 "libartd-disassembler",
97]
98
Orion Hodson5cb98a92019-03-25 15:07:16 +000099// Tools common to both device APEX and host APEX. Derived from art-tools in art/Android.mk.
Alex Lightda948ce2018-12-06 17:05:41 +0000100art_tools_common_binaries = [
Roland Levillain38a938e2018-09-21 10:55:51 +0100101 "dexdump",
102 "dexlist",
Alex Lightda948ce2018-12-06 17:05:41 +0000103]
104
Martin Stjernholm77f17662019-04-03 17:08:21 +0100105// Tools common to both device and host debug APEXes.
106art_tools_debug_binaries = [
Roland Levillain6dd62122019-06-18 19:10:21 +0100107 "dexanalyze",
Martin Stjernholm77f17662019-04-03 17:08:21 +0100108 "dexdiag",
Roland Levillain6dd62122019-06-18 19:10:21 +0100109 "dexlayout",
110 "dexlayoutd",
111]
112
113art_tools_debug_binaries_both = [
114 "imgdiag",
115 "imgdiagd",
Martin Stjernholm77f17662019-04-03 17:08:21 +0100116]
117
Orion Hodson5cb98a92019-03-25 15:07:16 +0000118// Tools exclusively for the device APEX derived from art-tools in art/Android.mk.
Roland Levillaine9f0ccc2019-01-07 16:45:58 +0000119art_tools_device_only_binaries = [
120 // oatdump cannot link with host linux_bionic due to not using clang lld;
121 // TODO: Make it work with clang lld.
Roland Levillain38a938e2018-09-21 10:55:51 +0100122 "oatdump",
123]
Roland Levillain02998cf2019-03-21 14:27:02 +0000124// Same, but for only for debug packages.
125art_tools_debug_device_only_binaries = [
126 // oatdumpd cannot link with host linux_bionic due to not using clang lld;
127 // TODO: Make it work with clang lld.
128 "oatdumpd",
129]
Roland Levillain38a938e2018-09-21 10:55:51 +0100130
Orion Hodson5cb98a92019-03-25 15:07:16 +0000131// Tools exclusively for the host APEX derived from art-tools in art/Android.mk.
Roland Levillaine9f0ccc2019-01-07 16:45:58 +0000132art_tools_host_only_binaries = [
Roland Levillain38a938e2018-09-21 10:55:51 +0100133 // FIXME: Does not work as-is, because `ahat` is defined in tools/ahat/Android.mk
134 // (same issue as for `libart_fake` above).
135 //"ahat",
136 "hprof-conv",
Roland Levillain38a938e2018-09-21 10:55:51 +0100137]
138
Roland Levillaina0b19032019-02-08 15:59:56 +0000139// Core Java libraries.
140libcore_java_libs = [
141 "core-oj",
142 "core-libart",
Victor Chang759845f2019-08-06 16:04:36 +0100143 "core-icu4j",
Roland Levillaina0b19032019-02-08 15:59:56 +0000144 "okhttp",
145 "bouncycastle",
146 "apache-xml",
147]
148
149// Native libraries that support the core Java libraries.
Roland Levillain1617f8c2019-03-26 17:52:30 +0000150//
151// Note: ART on-device chroot-based testing and benchmarking is not yet using
Martin Stjernholmfb3a94b2019-07-05 22:27:36 +0100152// the ART APEX, meaning that copies of some of these libraries have to be
Roland Levillain1617f8c2019-03-26 17:52:30 +0000153// installed in `/system` for the ART Buildbot set-up to work properly. This is
154// done by the `standalone-apex-files` Make phony target, used by the ART
155// Buildbot and Golem (see `art/Android.mk`). If you add libraries to this list,
Martin Stjernholm84e5bb92019-09-05 19:56:46 +0100156// you may have to also add them to `PRIVATE_ART_APEX_DEPENDENCY_LIBS` in
Roland Levillain1617f8c2019-03-26 17:52:30 +0000157// `art/Android.mk`.
158// TODO(b/121117762): Remove this note when both the ART Buildbot and Golem use
Martin Stjernholmfb3a94b2019-07-05 22:27:36 +0100159// the ART APEX.
Roland Levillaincb82d092018-11-02 18:50:15 +0000160libcore_native_shared_libs = [
Martin Stjernholm023c2182019-03-28 15:52:32 +0000161 // External API (having APEX stubs).
Victor Chang2f0008a2019-01-15 14:10:34 +0000162 "libandroidicu",
Pete Bentley79f56622019-03-21 17:09:56 +0000163 "libandroidio",
Martin Stjernholm023c2182019-03-28 15:52:32 +0000164 // TODO(b/124476339): Clean up the following libraries once "required"
165 // dependencies work with APEX libraries.
Victor Chang2f0008a2019-01-15 14:10:34 +0000166 "libexpat",
167 "libicui18n",
168 "libicuuc",
Victor Chang65ae6692019-10-11 14:17:21 +0100169 "libicu_jni",
Pete Bentley51ffdbe2019-01-11 15:25:40 +0000170 "libjavacore",
Roland Levillaincb82d092018-11-02 18:50:15 +0000171 "libopenjdk",
Martin Stjernholm023c2182019-03-28 15:52:32 +0000172]
173libcore_debug_native_shared_libs = [
174 "libopenjdkd",
Victor Chang2f0008a2019-01-15 14:10:34 +0000175]
176
Martin Stjernholm023c2182019-03-28 15:52:32 +0000177libcore_native_device_only_shared_libs = [
Victor Chang2f0008a2019-01-15 14:10:34 +0000178 // TODO(b/122876336): Remove libpac.so once it's migrated to Webview.
179 // libpac is used by frameworks, not by ART host.
180 "libpac",
Roland Levillaincb82d092018-11-02 18:50:15 +0000181]
182
Alex Lightf7f31522019-02-01 11:14:41 -0800183// Temporary library includes for b/123591866 as all libraries are moved into the main art-apex.
184art_runtime_libraries_zipapex = [
185 "libnativebridge",
186 "libnativeloader",
187 "libnativehelper",
188 "libcutils",
189]
190
Jiyong Parke9618552019-02-11 10:54:36 +0900191android_app_certificate {
Martin Stjernholm6da45692019-08-15 15:18:53 +0100192 name: "com.android.art.certificate",
193 certificate: "com.android.art",
Martin Stjernholmfb3a94b2019-07-05 22:27:36 +0100194}
195
196apex_key {
197 name: "com.android.art.key",
198 public_key: "com.android.art.avbpubkey",
199 private_key: "com.android.art.pem",
Jiyong Parke9618552019-02-11 10:54:36 +0900200}
201
Roland Levillain3be7afe2018-12-04 19:35:03 +0000202prebuilt_etc {
Martin Stjernholmfb3a94b2019-07-05 22:27:36 +0100203 name: "com.android.art.ld.config.txt",
Roland Levillain3be7afe2018-12-04 19:35:03 +0000204 src: "ld.config.txt",
205 filename: "ld.config.txt",
206 installable: false,
207}
208
Martin Stjernholmfb3a94b2019-07-05 22:27:36 +0100209// Default values shared by device ART APEXes.
Andreas Gampee55ea982019-02-26 09:11:20 -0800210apex_defaults {
Martin Stjernholmfb3a94b2019-07-05 22:27:36 +0100211 name: "com.android.art-defaults",
Roland Levillain53058802018-11-14 17:32:18 +0000212 compile_multilib: "both",
Martin Stjernholmfb3a94b2019-07-05 22:27:36 +0100213 manifest: "manifest-art.json",
Roland Levillaina0b19032019-02-08 15:59:56 +0000214 java_libs: libcore_java_libs,
Andreas Gampe0dc93b12019-05-15 10:30:22 -0700215 native_shared_libs: art_runtime_base_native_shared_libs +
Florian Mayer07710c52019-09-16 15:53:38 +0000216 art_runtime_base_native_device_only_shared_libs +
Andreas Gampe0dc93b12019-05-15 10:30:22 -0700217 libcore_native_device_only_shared_libs +
218 libcore_native_shared_libs,
Roland Levillain53058802018-11-14 17:32:18 +0000219 multilib: {
220 both: {
Martin Stjernholmfb3a94b2019-07-05 22:27:36 +0100221 binaries: art_runtime_base_binaries_both,
Roland Levillain53058802018-11-14 17:32:18 +0000222 },
223 prefer32: {
224 binaries: art_runtime_base_binaries_prefer32,
225 },
226 first: {
Andreas Gampe0dc93b12019-05-15 10:30:22 -0700227 binaries: art_tools_common_binaries +
228 art_tools_device_only_binaries,
229 },
Roland Levillain53058802018-11-14 17:32:18 +0000230 },
Andreas Gampe31782c12019-02-06 09:47:25 -0800231 binaries: [
Andreas Gampe5bb525a2019-02-19 12:26:35 -0800232 "art_postinstall_hook",
Andreas Gampe31782c12019-02-06 09:47:25 -0800233 "art_preinstall_hook",
Nicolas Geoffray0c63f762019-10-30 11:26:31 +0000234 "art_preinstall_hook_boot",
Andreas Gampe29c111e2019-02-28 13:58:07 -0800235 "art_preinstall_hook_system_server",
Andreas Gampe31782c12019-02-06 09:47:25 -0800236 "art_prepostinstall_utils",
237 ],
Martin Stjernholmfb3a94b2019-07-05 22:27:36 +0100238 prebuilts: ["com.android.art.ld.config.txt"],
239 key: "com.android.art.key",
Victor Chang64611242019-07-05 16:32:41 +0100240 required: [
241 "art_apex_boot_integrity",
242 "com.android.i18n",
243 ],
Andreas Gampee55ea982019-02-26 09:11:20 -0800244}
245
Martin Stjernholmfb3a94b2019-07-05 22:27:36 +0100246// Default values shared by (device) Debug and Testing ART APEXes.
Roland Levillain61f07162019-06-26 12:44:04 +0100247apex_defaults {
Martin Stjernholmfb3a94b2019-07-05 22:27:36 +0100248 name: "com.android.art-dev-defaults",
249 defaults: ["com.android.art-defaults"],
Florian Mayer07710c52019-09-16 15:53:38 +0000250 native_shared_libs: art_runtime_base_native_device_only_debug_shared_libs +
Roland Levillain4d6f24d2019-10-02 16:47:36 +0100251 art_runtime_run_test_libs +
Florian Mayer07710c52019-09-16 15:53:38 +0000252 art_runtime_debug_native_shared_libs +
Roland Levillain89867bf2019-06-24 15:09:01 +0100253 libcore_debug_native_shared_libs,
Roland Levillain38a938e2018-09-21 10:55:51 +0100254 multilib: {
Roland Levillain6dd62122019-06-18 19:10:21 +0100255 both: {
256 binaries: art_tools_debug_binaries_both,
257 },
Roland Levillain38a938e2018-09-21 10:55:51 +0100258 prefer32: {
Andreas Gampe0dc93b12019-05-15 10:30:22 -0700259 binaries: art_runtime_debug_binaries_prefer32 +
260 art_runtime_debug_binaries_prefer32_device,
Roland Levillain38a938e2018-09-21 10:55:51 +0100261 },
262 first: {
Andreas Gampe0dc93b12019-05-15 10:30:22 -0700263 binaries: art_tools_debug_binaries +
264 art_tools_debug_device_only_binaries,
265 },
Roland Levillain38a938e2018-09-21 10:55:51 +0100266 },
Roland Levillain61f07162019-06-26 12:44:04 +0100267}
268
Martin Stjernholmfb3a94b2019-07-05 22:27:36 +0100269// Release version of the ART APEX module (not containing debug
Roland Levillain61f07162019-06-26 12:44:04 +0100270// variants nor tools), included in user builds. Also used for
271// storage-constrained devices in userdebug and eng builds.
Nicolas Geoffray0c63f762019-10-30 11:26:31 +0000272apex {
Martin Stjernholmfb3a94b2019-07-05 22:27:36 +0100273 name: "com.android.art.release",
274 defaults: ["com.android.art-defaults"],
Martin Stjernholm6da45692019-08-15 15:18:53 +0100275 certificate: ":com.android.art.certificate",
Roland Levillain61f07162019-06-26 12:44:04 +0100276}
277
Martin Stjernholmfb3a94b2019-07-05 22:27:36 +0100278// "Debug" version of the ART APEX module (containing both release and
Roland Levillain61f07162019-06-26 12:44:04 +0100279// debug variants, as well as additional tools), included in userdebug and
280// eng build.
Nicolas Geoffray0c63f762019-10-30 11:26:31 +0000281apex {
Martin Stjernholmfb3a94b2019-07-05 22:27:36 +0100282 name: "com.android.art.debug",
283 defaults: ["com.android.art-dev-defaults"],
Martin Stjernholm6da45692019-08-15 15:18:53 +0100284 certificate: ":com.android.art.certificate",
Roland Levillain38a938e2018-09-21 10:55:51 +0100285}
Alex Lightda948ce2018-12-06 17:05:41 +0000286
Martin Stjernholmfb3a94b2019-07-05 22:27:36 +0100287// ART gtests with dependencies on internal ART APEX libraries.
Roland Levillain61f07162019-06-26 12:44:04 +0100288art_gtests = [
289 "art_cmdline_tests",
290 "art_compiler_tests",
291 "art_dex2oat_tests",
292 "art_dexanalyze_tests",
293 "art_dexdiag_tests",
294 "art_dexdump_tests",
295 "art_dexlayout_tests",
296 "art_dexlist_tests",
297 "art_dexoptanalyzer_tests",
298 "art_imgdiag_tests",
299 "art_libartbase_tests",
300 "art_libartpalette_tests",
301 "art_libdexfile_tests",
302 "art_libdexfile_support_tests",
303 "art_libprofile_tests",
304 "art_oatdump_tests",
305 "art_profman_tests",
306 "art_runtime_compiler_tests",
307 "art_runtime_tests",
308 "art_sigchain_tests",
309]
310
Martin Stjernholmfb3a94b2019-07-05 22:27:36 +0100311// "Testing" version of the ART APEX module (containing both release
Roland Levillain61f07162019-06-26 12:44:04 +0100312// and debug variants, additional tools, and ART gtests), for testing
313// purposes only.
Nicolas Geoffray0c63f762019-10-30 11:26:31 +0000314apex_test {
Martin Stjernholmfb3a94b2019-07-05 22:27:36 +0100315 name: "com.android.art.testing",
316 defaults: ["com.android.art-dev-defaults"],
317 file_contexts: "com.android.art.debug",
Martin Stjernholm6da45692019-08-15 15:18:53 +0100318 certificate: ":com.android.art.certificate",
Roland Levillain61f07162019-06-26 12:44:04 +0100319 tests: art_gtests,
Andreas Gampe816a5522019-09-11 11:29:49 -0700320 binaries: ["signal_dumper"], // Need signal_dumper for run-tests.
Roland Levillain61f07162019-06-26 12:44:04 +0100321}
322
323// TODO: Do this better. art_apex_test_host will disable host builds when
Martin Stjernholmfb3a94b2019-07-05 22:27:36 +0100324// HOST_PREFER_32_BIT is set. We cannot simply use com.android.art.debug
Alex Lightda948ce2018-12-06 17:05:41 +0000325// because binaries have different multilib classes and 'multilib: {}' isn't
326// supported by target: { ... }.
327// See b/120617876 for more information.
Roland Levillain61f07162019-06-26 12:44:04 +0100328art_apex_test_host {
Martin Stjernholmfb3a94b2019-07-05 22:27:36 +0100329 name: "com.android.art.host",
Alex Lightda948ce2018-12-06 17:05:41 +0000330 compile_multilib: "both",
331 payload_type: "zip",
332 host_supported: true,
333 device_supported: false,
Martin Stjernholmfb3a94b2019-07-05 22:27:36 +0100334 manifest: "manifest-art.json",
Roland Levillaina0b19032019-02-08 15:59:56 +0000335 java_libs: libcore_java_libs,
Alex Light55a9bad2019-01-29 18:34:09 -0800336 ignore_system_library_special_case: true,
Andreas Gampe0dc93b12019-05-15 10:30:22 -0700337 native_shared_libs: art_runtime_base_native_shared_libs +
338 art_runtime_debug_native_shared_libs +
339 libcore_native_shared_libs +
340 libcore_debug_native_shared_libs +
341 art_runtime_libraries_zipapex +
Roland Levillain4d6f24d2019-10-02 16:47:36 +0100342 art_runtime_run_test_libs,
Alex Lightda948ce2018-12-06 17:05:41 +0000343 multilib: {
344 both: {
Andreas Gampe0dc93b12019-05-15 10:30:22 -0700345 binaries: art_runtime_base_binaries_both +
Roland Levillain6dd62122019-06-18 19:10:21 +0100346 art_runtime_debug_binaries_both_host +
347 art_tools_debug_binaries_both,
Alex Lightda948ce2018-12-06 17:05:41 +0000348 },
349 first: {
Andreas Gampe0dc93b12019-05-15 10:30:22 -0700350 binaries: art_tools_common_binaries + // Host APEX is always debug.
351 art_tools_debug_binaries +
352 art_tools_host_only_binaries +
353 art_runtime_base_binaries_prefer32 +
354 art_runtime_debug_binaries_prefer32,
355 },
Alex Lightda948ce2018-12-06 17:05:41 +0000356 },
Martin Stjernholmfb3a94b2019-07-05 22:27:36 +0100357 key: "com.android.art.key",
Alex Lighte3521522018-12-06 22:51:18 -0800358 target: {
359 darwin: {
360 enabled: false,
361 },
Alex Light55a9bad2019-01-29 18:34:09 -0800362 linux_bionic: {
363 enabled: true,
364 multilib: {
365 both: {
366 native_shared_libs: bionic_native_shared_libs,
367 binaries: bionic_binaries_both,
Andreas Gampe0dc93b12019-05-15 10:30:22 -0700368 },
369 },
Alex Light55a9bad2019-01-29 18:34:09 -0800370 },
Alex Lighte3521522018-12-06 22:51:18 -0800371 },
Alex Lightda948ce2018-12-06 17:05:41 +0000372}
Jiyong Park1410e9f2019-02-02 04:18:23 +0000373
374python_binary_host {
375 name: "art-apex-tester",
376 srcs: ["art_apex_test.py"],
377 main: "art_apex_test.py",
378 version: {
379 py2: {
Roland Levillain29e740f2019-08-20 15:31:37 +0100380 enabled: true,
Jiyong Park1410e9f2019-02-02 04:18:23 +0000381 },
382 py3: {
Roland Levillain29e740f2019-08-20 15:31:37 +0100383 enabled: false,
Jiyong Park1410e9f2019-02-02 04:18:23 +0000384 },
385 },
386}
387
388// Genrules so we can run the checker, and empty Java library so that it gets executed.
389
Roland Levillaind4fc62c2019-08-12 19:47:51 +0100390art_check_apex_gen_stem = "$(location art-apex-tester)" +
391 " --debugfs $(location debugfs)" +
392 " --tmpdir $(genDir)"
393
394// The non-flattened APEXes are always checked, as they are always generated
395// (even when APEX flattening is enabled).
396genrule_defaults {
397 name: "art-check-apex-gen-defaults",
Jiyong Park1410e9f2019-02-02 04:18:23 +0000398 tools: [
399 "art-apex-tester",
400 "debugfs",
401 ],
Jiyong Park1410e9f2019-02-02 04:18:23 +0000402}
Andreas Gampe0dc93b12019-05-15 10:30:22 -0700403
Roland Levillaind4fc62c2019-08-12 19:47:51 +0100404cc_defaults {
405 name: "art-check-apex-gen-fakebin-defaults",
Jiyong Park1410e9f2019-02-02 04:18:23 +0000406 host_supported: true,
407 device_supported: false,
408 target: {
409 darwin: {
Andreas Gampe0dc93b12019-05-15 10:30:22 -0700410 enabled: false, // No python3.
Jiyong Park1410e9f2019-02-02 04:18:23 +0000411 },
412 },
413}
414
415genrule {
Roland Levillaind4fc62c2019-08-12 19:47:51 +0100416 name: "art-check-release-apex-gen",
417 defaults: ["art-check-apex-gen-defaults"],
Martin Stjernholmfb3a94b2019-07-05 22:27:36 +0100418 srcs: [":com.android.art.release"],
Roland Levillaind4fc62c2019-08-12 19:47:51 +0100419 cmd: art_check_apex_gen_stem +
Roland Levillaind7ea0432019-09-09 16:29:12 +0100420 " --flavor release" +
Roland Levillaind4fc62c2019-08-12 19:47:51 +0100421 " $(in)" +
422 " && touch $(out)",
423 out: ["art-check-release-apex-gen.dummy"],
424}
425
426cc_prebuilt_binary {
427 name: "art-check-release-apex-gen-fakebin",
428 defaults: ["art-check-apex-gen-fakebin-defaults"],
429 srcs: [":art-check-release-apex-gen"],
430}
431
432genrule {
Jiyong Park1410e9f2019-02-02 04:18:23 +0000433 name: "art-check-debug-apex-gen",
Roland Levillaind4fc62c2019-08-12 19:47:51 +0100434 defaults: ["art-check-apex-gen-defaults"],
Martin Stjernholmfb3a94b2019-07-05 22:27:36 +0100435 srcs: [":com.android.art.debug"],
Roland Levillaind4fc62c2019-08-12 19:47:51 +0100436 cmd: art_check_apex_gen_stem +
Roland Levillaind7ea0432019-09-09 16:29:12 +0100437 " --flavor debug" +
Andreas Gampe0dc93b12019-05-15 10:30:22 -0700438 " $(in)" +
439 " && touch $(out)",
Jiyong Park1410e9f2019-02-02 04:18:23 +0000440 out: ["art-check-debug-apex-gen.dummy"],
441}
Andreas Gampe0dc93b12019-05-15 10:30:22 -0700442
Jiyong Park1410e9f2019-02-02 04:18:23 +0000443cc_prebuilt_binary {
444 name: "art-check-debug-apex-gen-fakebin",
Roland Levillaind4fc62c2019-08-12 19:47:51 +0100445 defaults: ["art-check-apex-gen-fakebin-defaults"],
Jiyong Park1410e9f2019-02-02 04:18:23 +0000446 srcs: [":art-check-debug-apex-gen"],
Jiyong Park1410e9f2019-02-02 04:18:23 +0000447}
Andreas Gampe31782c12019-02-06 09:47:25 -0800448
Roland Levillain61f07162019-06-26 12:44:04 +0100449genrule {
450 name: "art-check-testing-apex-gen",
Roland Levillaind4fc62c2019-08-12 19:47:51 +0100451 defaults: ["art-check-apex-gen-defaults"],
Martin Stjernholmfb3a94b2019-07-05 22:27:36 +0100452 srcs: [":com.android.art.testing"],
Roland Levillaind4fc62c2019-08-12 19:47:51 +0100453 cmd: art_check_apex_gen_stem +
Roland Levillaind7ea0432019-09-09 16:29:12 +0100454 " --flavor testing" +
Roland Levillain61f07162019-06-26 12:44:04 +0100455 " $(in)" +
456 " && touch $(out)",
457 out: ["art-check-testing-apex-gen.dummy"],
458}
459
460cc_prebuilt_binary {
461 name: "art-check-testing-apex-gen-fakebin",
Roland Levillaind4fc62c2019-08-12 19:47:51 +0100462 defaults: ["art-check-apex-gen-fakebin-defaults"],
Roland Levillain61f07162019-06-26 12:44:04 +0100463 srcs: [":art-check-testing-apex-gen"],
Roland Levillain61f07162019-06-26 12:44:04 +0100464}
465
Andreas Gampe31782c12019-02-06 09:47:25 -0800466// Pre-install scripts.
467
468sh_binary {
469 name: "art_preinstall_hook",
470 src: "art_preinstall_hook.sh",
471}
Andreas Gampe0dc93b12019-05-15 10:30:22 -0700472
Andreas Gampe31782c12019-02-06 09:47:25 -0800473sh_binary {
Nicolas Geoffray0c63f762019-10-30 11:26:31 +0000474 name: "art_preinstall_hook_boot",
475 src: "art_preinstall_hook_boot.sh",
476}
477
478sh_binary {
Andreas Gampe29c111e2019-02-28 13:58:07 -0800479 name: "art_preinstall_hook_system_server",
480 src: "art_preinstall_hook_system_server.sh",
481}
Andreas Gampe0dc93b12019-05-15 10:30:22 -0700482
Andreas Gampe29c111e2019-02-28 13:58:07 -0800483sh_binary {
Andreas Gampe31782c12019-02-06 09:47:25 -0800484 name: "art_prepostinstall_utils",
485 src: "art_prepostinstall_utils.sh",
486}
Andreas Gampe0dc93b12019-05-15 10:30:22 -0700487
Andreas Gampe5bb525a2019-02-19 12:26:35 -0800488sh_binary {
489 name: "art_postinstall_hook",
490 src: "art_postinstall_hook.sh",
491}
Andreas Gampe57975682019-03-04 09:27:11 -0800492
493sh_binary {
494 name: "art_apex_boot_integrity",
495 src: "art_apex_boot_integrity.sh",
496 init_rc: ["art_apex_boot_integrity.rc"],
497}