blob: d9f74dc43444eca0bb3e2ec6ac3d9a8a9ed09880 [file] [log] [blame]
Jiyong Parka7266ac2021-05-17 21:57:24 +09001package {
2 default_applicable_licenses: ["Android-Apache-2.0"],
3}
4
Alan Stokesfe6df522023-08-18 15:31:57 +01005android_app_certificate {
6 name: "MicrodroidTestAppCert",
7
8 // The default app cert is the same as the default platform cert
9 // (on a test-keys build), which means we end up getting assigned
10 // the permissions via signature and can't reliably disclaim
11 // them. So instead we use our own custom cert. See b/290582742.
12 // Created via: development/tools/make_key microdroid_test_app '/CN=microdroid_test_app'
13 certificate: "microdroid_test_app",
14}
15
Nikita Ioffe7ffb0142023-02-01 22:22:23 +000016java_defaults {
17 name: "MicrodroidTestAppsDefaults",
Nikita Ioffebac2bcf2023-02-10 00:09:20 +000018 static_libs: [
Jaewan Kim899f85e2024-12-12 18:29:55 -080019 "avf_aconfig_flags_java",
Nikita Ioffebac2bcf2023-02-10 00:09:20 +000020 "com.android.microdroid.testservice-java",
21 "com.android.microdroid.test.vmshare_service-java",
Alice Wang0362f7f2024-03-21 08:16:26 +000022 "com.android.virt.vm_attestation.testservice-java",
Jaewan Kim899f85e2024-12-12 18:29:55 -080023 "platform-test-annotations",
Nikita Ioffebac2bcf2023-02-10 00:09:20 +000024 ],
Alan Stokesfe6df522023-08-18 15:31:57 +010025 certificate: ":MicrodroidTestAppCert",
Nikita Ioffe7ffb0142023-02-01 22:22:23 +000026 sdk_version: "test_current",
27 jni_uses_platform_apis: true,
28 use_embedded_native_libs: true,
29 // We only support 64-bit ABI, but CTS demands all APKs to be multi-ABI.
30 compile_multilib: "both",
31}
32
Shikha Panwar979b9df2024-03-20 19:48:19 +000033java_defaults {
34 name: "MicrodroidVersionsTestAppDefaults",
Jiyong Parka7266ac2021-05-17 21:57:24 +090035 srcs: ["src/java/**/*.java"],
Shikha Panwar979b9df2024-03-20 19:48:19 +000036 defaults: ["MicrodroidTestAppsDefaults"],
Jiyong Parkbda1e212021-10-29 20:13:37 +090037 static_libs: [
Alice Wang7e0843d2022-09-01 11:30:21 +000038 "MicrodroidDeviceTestHelper",
Alice Wanga78d8942024-03-21 12:55:41 +000039 "VmAttestationTestUtil",
Jiyong Parkbda1e212021-10-29 20:13:37 +090040 "androidx.test.runner",
41 "androidx.test.ext.junit",
Andrew Scull6ad64402022-07-04 13:12:53 +000042 "authfs_test_apk_assets",
Andrew Scull61892082022-02-21 00:07:25 +000043 "cbor-java",
Krzysztof KosiƄski9cf23c62023-10-07 00:48:09 +000044 "truth",
Jiyong Park5517b102022-07-11 16:09:19 +090045 "compatibility-common-util-devicesidelib",
Nikita Ioffea7cb3672023-02-24 23:10:34 +000046 "measure_io_as_jar",
Jiyong Parkbda1e212021-10-29 20:13:37 +090047 ],
Alan Stokes38d00f82022-10-03 17:43:45 +010048 jni_libs: [
49 "MicrodroidTestNativeLib",
David Brazdilf88c3152022-11-08 15:36:16 +000050 "MicrodroidIdleNativeLib",
Inseob Kim24358c62022-12-09 15:49:22 +090051 "MicrodroidEmptyNativeLib",
Alan Stokes4a66deb2023-01-27 12:12:00 +000052 "MicrodroidExitNativeLib",
Inseob Kim24358c62022-12-09 15:49:22 +090053 "MicrodroidPrivateLinkingNativeLib",
Inseob Kimab1037d2023-02-08 17:03:31 +090054 "MicrodroidCrashNativeLib",
Alan Stokesc874cd22024-06-11 16:23:18 +010055 "libmicrodroid_testlib_rust",
Alice Wang0362f7f2024-03-21 08:16:26 +000056 "libvm_attestation_test_payload",
Alice Wang56f22392024-07-09 07:53:22 +000057
58 // Non-VM payload libraries
59 "libhwtrust_jni",
Alan Stokes38d00f82022-10-03 17:43:45 +010060 ],
Nikita Ioffe13c401d2025-02-06 00:03:38 +000061 // AVF java APIs were introduced in Android U.
62 min_sdk_version: "34",
Shikha Panwar979b9df2024-03-20 19:48:19 +000063}
64
Jiyong Park57de2552024-12-06 17:18:34 +090065DATA = [
66 ":MicrodroidTestAppUpdated",
Nikita Ioffe2cb8e732025-02-04 00:41:51 +000067 ":MicrodroidTestHelperAppRelaxedRollbackProtection_V5",
68 ":MicrodroidTestHelperAppRelaxedRollbackProtection_V6",
69 ":MicrodroidTestHelperAppRelaxedRollbackProtection_V7_inc_rollback_version",
Nikita Ioffea73451a2025-01-28 17:09:22 +000070 ":MicrodroidTestHelperAppRelaxedRollbackProtection_no_permission",
71 ":MicrodroidTestHelperAppRelaxedRollbackProtection_no_rollback_index",
Jiyong Park57de2552024-12-06 17:18:34 +090072 ":MicrodroidVmShareApp",
73 ":test_microdroid_vendor_image",
74 ":test_microdroid_vendor_image_unsigned",
75]
76
Nikita Ioffe1d0ee112025-01-29 01:44:43 +000077android_test_helper_app {
Nikita Ioffe2cb8e732025-02-04 00:41:51 +000078 name: "MicrodroidTestHelperAppRelaxedRollbackProtection_V5",
Nikita Ioffe1d0ee112025-01-29 01:44:43 +000079 defaults: ["MicrodroidTestAppsDefaults"],
80 manifest: "AndroidManifestV5_relaxed_rollback_protection.xml",
81 jni_libs: [
Nikita Ioffea73451a2025-01-28 17:09:22 +000082 "MicrodroidTestNativeLib",
83 "MicrodroidTestNativeLibWithLibIcu",
84 ],
85 min_sdk_version: "33",
86}
87
88android_test_helper_app {
Nikita Ioffe2cb8e732025-02-04 00:41:51 +000089 name: "MicrodroidTestHelperAppRelaxedRollbackProtection_V6",
90 defaults: ["MicrodroidTestAppsDefaults"],
91 manifest: "AndroidManifestV6_relaxed_rollback_protection.xml",
92 jni_libs: [
93 "MicrodroidTestNativeLib",
94 "MicrodroidTestNativeLibWithLibIcu",
95 ],
96 min_sdk_version: "33",
97}
98
99android_test_helper_app {
100 name: "MicrodroidTestHelperAppRelaxedRollbackProtection_V7_inc_rollback_version",
101 defaults: ["MicrodroidTestAppsDefaults"],
102 manifest: "AndroidManifestV7_relaxed_rollback_protection_inc_rollback_version.xml",
103 jni_libs: [
104 "MicrodroidTestNativeLib",
105 "MicrodroidTestNativeLibWithLibIcu",
106 ],
107 min_sdk_version: "33",
108}
109
110android_test_helper_app {
Nikita Ioffea73451a2025-01-28 17:09:22 +0000111 name: "MicrodroidTestHelperAppRelaxedRollbackProtection_no_rollback_index",
112 defaults: ["MicrodroidTestAppsDefaults"],
113 manifest: "AndroidManifestV5_relaxed_rollback_protection_no_rollback_index.xml",
114 jni_libs: [
115 "MicrodroidTestNativeLib",
116 "MicrodroidTestNativeLibWithLibIcu",
117 ],
118 min_sdk_version: "33",
119}
120
121android_test_helper_app {
122 name: "MicrodroidTestHelperAppRelaxedRollbackProtection_no_permission",
123 defaults: ["MicrodroidTestAppsDefaults"],
124 manifest: "AndroidManifestV5_relaxed_rollback_protection_no_permission.xml",
125 jni_libs: [
126 "MicrodroidTestNativeLib",
Nikita Ioffe1d0ee112025-01-29 01:44:43 +0000127 "MicrodroidTestNativeLibWithLibIcu",
128 ],
129 min_sdk_version: "33",
130}
131
Shikha Panwar979b9df2024-03-20 19:48:19 +0000132android_test {
133 name: "MicrodroidTestApp",
134 defaults: ["MicrodroidVersionsTestAppDefaults"],
135 manifest: "AndroidManifestV5.xml",
Jiyong Park57de2552024-12-06 17:18:34 +0900136 test_suites: ["general-tests"],
Jiyong Park1a3b5a42024-12-27 17:42:36 +0900137 test_config_template: "AndroidTestTemplate.xml",
138 auto_gen_config: true,
Jiyong Park57de2552024-12-06 17:18:34 +0900139 data: DATA,
140}
141
142android_test {
143 name: "MicrodroidTestApp.CTS",
144 defaults: ["MicrodroidVersionsTestAppDefaults"],
145 manifest: "AndroidManifestV5.xml",
Jiyong Park1a3b5a42024-12-27 17:42:36 +0900146 test_config_template: "AndroidTestTemplate.xml",
Jiyong Park57de2552024-12-06 17:18:34 +0900147 test_suites: ["cts"],
Jiyong Park1a3b5a42024-12-27 17:42:36 +0900148 auto_gen_config: true,
149 test_options: {
150 tradefed_options: [
151 {
152 name: "include-annotation",
153 value: "com.android.compatibility.common.util.CddTest",
154 },
155 {
156 name: "test-suite-tag",
157 value: "cts",
158 },
159 ],
160 },
Jiyong Park57de2552024-12-06 17:18:34 +0900161 data: DATA,
162}
163
164android_test {
165 name: "MicrodroidTestApp.VTS",
166 defaults: ["MicrodroidVersionsTestAppDefaults"],
167 manifest: "AndroidManifestV5.xml",
Jiyong Park1a3b5a42024-12-27 17:42:36 +0900168 test_config_template: "AndroidTestTemplate.xml",
Jiyong Park57de2552024-12-06 17:18:34 +0900169 test_suites: ["vts"],
Jiyong Park1a3b5a42024-12-27 17:42:36 +0900170 auto_gen_config: true,
171 test_options: {
172 tradefed_options: [
173 {
174 name: "include-annotation",
175 value: "com.android.compatibility.common.util.VsrTest",
176 },
177 {
178 name: "test-suite-tag",
179 value: "vts",
180 },
181 ],
182 },
Jiyong Park57de2552024-12-06 17:18:34 +0900183 data: DATA,
184}
185
Jiyong Park1a3b5a42024-12-27 17:42:36 +0900186android_test {
187 name: "MicrodroidTestApp.GTS",
188 defaults: ["MicrodroidVersionsTestAppDefaults"],
189 manifest: "AndroidManifestV5.xml",
190 test_config_template: "AndroidTestTemplate.xml",
191 test_suites: ["gts"],
192 auto_gen_config: true,
193 test_options: {
194 tradefed_options: [
195 {
196 name: "include-annotation",
197 value: "com.android.compatibility.common.util.GmsTest",
198 },
199 {
200 name: "test-suite-tag",
201 value: "gts",
202 },
203 ],
204 },
205 data: DATA,
Jiyong Parka7266ac2021-05-17 21:57:24 +0900206}
207
Shikha Panwar979b9df2024-03-20 19:48:19 +0000208android_test_helper_app {
209 name: "MicrodroidTestAppUpdated",
210 defaults: ["MicrodroidVersionsTestAppDefaults"],
211 manifest: "AndroidManifestV6.xml",
212}
213
Nikita Ioffe7ffb0142023-02-01 22:22:23 +0000214// Defaults shared between MicrodroidTestNativeLib and MicrodroidPayloadInOtherAppNativeLib shared
215// libs. They are expected to share everything apart from the name, so that one app
216// (MicrodroidTestApp) can start a payload defined in the another app (MicrodroidVmShareApp).
217cc_defaults {
218 name: "MicrodroidTestNativeLibDefaults",
Nikita Ioffe38b9e712024-02-08 15:55:07 +0000219 defaults: ["avf_build_flags_cc"],
Jiyong Parkfe5b28e2021-06-24 00:19:02 +0900220 srcs: ["src/native/testbinary.cpp"],
Alan Stokes4bff0d62022-10-28 14:29:59 +0100221 stl: "libc++_static",
Alan Stokesd4ea5a82022-11-10 12:17:42 +0000222 header_libs: ["vm_payload_restricted_headers"],
Andrew Scull66616612021-06-17 16:41:03 +0000223 shared_libs: [
Andrew Scull66616612021-06-17 16:41:03 +0000224 "libbinder_ndk",
Nikita Ioffe3452ee22022-12-15 00:31:56 +0000225 "libcap",
Jiyong Parkfe5b28e2021-06-24 00:19:02 +0900226 "MicrodroidTestNativeLibSub",
Alan Stokesbcc2ec22022-10-31 17:02:50 +0000227 "libvm_payload#current",
Andrew Scull66616612021-06-17 16:41:03 +0000228 ],
Inseob Kimdb319702022-01-20 13:12:43 +0900229 static_libs: [
Alan Stokes18986452022-10-28 11:11:11 +0100230 "com.android.microdroid.testservice-ndk",
Alan Stokes4bff0d62022-10-28 14:29:59 +0100231 "libbase",
Nikita Ioffe29e15c82023-02-25 02:31:51 +0000232 "libfstab",
Inseob Kimdb319702022-01-20 13:12:43 +0900233 "libfsverity_digests_proto_cc",
234 "liblog",
235 "libprotobuf-cpp-lite-ndk",
236 ],
Nikita Ioffe3e3fdf02025-01-15 14:20:27 +0000237 // We've added support for updatable payloads in Android U.
238 min_sdk_version: "UpsideDownCake",
Jiyong Parka7266ac2021-05-17 21:57:24 +0900239}
Jiyong Park6de08572021-06-14 21:13:32 +0900240
Jiyong Parkfe5b28e2021-06-24 00:19:02 +0900241cc_library_shared {
Nikita Ioffe7ffb0142023-02-01 22:22:23 +0000242 name: "MicrodroidPayloadInOtherAppNativeLib",
243 defaults: ["MicrodroidTestNativeLibDefaults"],
244}
245
246cc_library_shared {
247 name: "MicrodroidTestNativeLib",
248 defaults: ["MicrodroidTestNativeLibDefaults"],
249}
250
251cc_library_shared {
Nikita Ioffeaa9f6032025-01-21 18:06:46 +0000252 name: "MicrodroidTestNativeLibWithLibIcu",
253 defaults: ["MicrodroidTestNativeLibDefaults"],
254 shared_libs: [
255 "libicu",
256 ],
257 cflags: [
258 "-D__MICRODROID_TEST_PAYLOAD_USES_LIBICU__",
259 ],
260}
261
262cc_library_shared {
Jiyong Parkfe5b28e2021-06-24 00:19:02 +0900263 name: "MicrodroidTestNativeLibSub",
Nikita Ioffe38b9e712024-02-08 15:55:07 +0000264 defaults: ["avf_build_flags_cc"],
Jiyong Parkfe5b28e2021-06-24 00:19:02 +0900265 srcs: ["src/native/testlib.cpp"],
Alan Stokes4bff0d62022-10-28 14:29:59 +0100266 stl: "libc++_static",
Jiyong Parkfe5b28e2021-06-24 00:19:02 +0900267}
Alan Stokes08c421a2022-11-15 16:06:26 +0000268
269cc_library_shared {
270 name: "MicrodroidIdleNativeLib",
Nikita Ioffe38b9e712024-02-08 15:55:07 +0000271 defaults: ["avf_build_flags_cc"],
Alan Stokes08c421a2022-11-15 16:06:26 +0000272 srcs: ["src/native/idlebinary.cpp"],
273 header_libs: ["vm_payload_headers"],
274 stl: "libc++_static",
275}
Inseob Kim24358c62022-12-09 15:49:22 +0900276
277// An empty payload missing AVmPayload_main
278cc_library_shared {
279 name: "MicrodroidEmptyNativeLib",
Nikita Ioffe38b9e712024-02-08 15:55:07 +0000280 defaults: ["avf_build_flags_cc"],
Inseob Kim24358c62022-12-09 15:49:22 +0900281 srcs: ["src/native/emptybinary.cpp"],
282 stl: "none",
283}
284
Alan Stokes4a66deb2023-01-27 12:12:00 +0000285// A payload that exits immediately on start
286cc_library_shared {
287 name: "MicrodroidExitNativeLib",
Nikita Ioffe38b9e712024-02-08 15:55:07 +0000288 defaults: ["avf_build_flags_cc"],
Alan Stokes4a66deb2023-01-27 12:12:00 +0000289 srcs: ["src/native/exitbinary.cpp"],
290 header_libs: ["vm_payload_headers"],
291 stl: "libc++_static",
292}
293
Inseob Kim24358c62022-12-09 15:49:22 +0900294// A payload which tries to link against libselinux, one of private libraries
295cc_library_shared {
296 name: "MicrodroidPrivateLinkingNativeLib",
Nikita Ioffe38b9e712024-02-08 15:55:07 +0000297 defaults: ["avf_build_flags_cc"],
Inseob Kim24358c62022-12-09 15:49:22 +0900298 srcs: ["src/native/idlebinary.cpp"],
299 header_libs: ["vm_payload_headers"],
300 // HACK: linking against "libselinux" will embed libselinux.so into the apk
301 // link against a stub to prevent libselinux.so from being embedded
302 shared_libs: ["libselinux#latest"],
303 stl: "libc++_static",
304}
Inseob Kimab1037d2023-02-08 17:03:31 +0900305
306// A payload that crashes immediately on start
307cc_library_shared {
308 name: "MicrodroidCrashNativeLib",
Nikita Ioffe38b9e712024-02-08 15:55:07 +0000309 defaults: ["avf_build_flags_cc"],
Inseob Kimab1037d2023-02-08 17:03:31 +0900310 srcs: ["src/native/crashbinary.cpp"],
311 header_libs: ["vm_payload_headers"],
312 stl: "libc++_static",
313}
Alan Stokesc874cd22024-06-11 16:23:18 +0100314
315// A payload written in Rust, using the Rust wrapper for the VM payload API.
316rust_ffi_shared {
317 name: "libmicrodroid_testlib_rust",
318 crate_name: "microdroid_testlib_rust",
319 defaults: ["avf_build_flags_rust"],
320 prefer_rlib: true,
321 srcs: ["src/native/testbinary.rs"],
322 compile_multilib: "both",
323 rustlibs: [
324 "com.android.microdroid.testservice-rust",
325 "libandroid_logger",
326 "libanyhow",
327 "libavflog",
Alan Stokesc874cd22024-06-11 16:23:18 +0100328 "liblog_rust",
329 "libvm_payload_rs",
330 ],
331}
Alice Wang56f22392024-07-09 07:53:22 +0000332
333rust_ffi_shared {
334 name: "libhwtrust_jni",
335 crate_name: "hwtrust_jni",
336 srcs: ["src/native/hwtrust_jni.rs"],
337 prefer_rlib: true,
338 rustlibs: [
339 "libandroid_logger",
340 "libanyhow",
341 "liblog_rust",
342 "libhwtrust",
343 "libjni",
344 ],
345 shared_libs: [
346 "libcrypto",
347 ],
348}