blob: cb374a55e184970a59c80b573e334d0eef3cd36a [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 ],
Jiyong Park968635d2022-08-22 10:18:17 +090061 min_sdk_version: "33",
Shikha Panwar979b9df2024-03-20 19:48:19 +000062}
63
Jiyong Park57de2552024-12-06 17:18:34 +090064DATA = [
65 ":MicrodroidTestAppUpdated",
66 ":MicrodroidVmShareApp",
67 ":test_microdroid_vendor_image",
68 ":test_microdroid_vendor_image_unsigned",
69]
70
Shikha Panwar979b9df2024-03-20 19:48:19 +000071android_test {
72 name: "MicrodroidTestApp",
73 defaults: ["MicrodroidVersionsTestAppDefaults"],
74 manifest: "AndroidManifestV5.xml",
Jiyong Park57de2552024-12-06 17:18:34 +090075 test_suites: ["general-tests"],
76 test_config: "AndroidTest.xml",
77 data: DATA,
78}
79
80android_test {
81 name: "MicrodroidTestApp.CTS",
82 defaults: ["MicrodroidVersionsTestAppDefaults"],
83 manifest: "AndroidManifestV5.xml",
84 test_suites: ["cts"],
85 test_config: ":MicrodroidTestApp.CTS.config",
86 data: DATA,
87}
88
89android_test {
90 name: "MicrodroidTestApp.VTS",
91 defaults: ["MicrodroidVersionsTestAppDefaults"],
92 manifest: "AndroidManifestV5.xml",
93 test_suites: ["vts"],
94 test_config: ":MicrodroidTestApp.VTS.config",
95 data: DATA,
96}
97
98genrule {
99 name: "MicrodroidTestApp.CTS.config",
100 srcs: ["AndroidTest.xml"],
101 out: ["out.xml"],
102 cmd: "sed " +
103 "-e 's/<!-- PLACEHOLDER_FOR_ANNOTATION -->/" +
104 "<option name=\"include-annotation\" value=\"com.android.compatibility.common.util.CddTest\" \\/>/' " +
105 "-e 's/MicrodroidTestApp.apk/MicrodroidTestApp.CTS.apk/' " +
106 "$(in) > $(out)",
107}
108
109genrule {
110 name: "MicrodroidTestApp.VTS.config",
111 srcs: ["AndroidTest.xml"],
112 out: ["out.xml"],
113 cmd: "sed " +
114 "-e 's/<!-- PLACEHOLDER_FOR_ANNOTATION -->/" +
115 "<option name=\"include-annotation\" value=\"com.android.compatibility.common.util.VsrTest\" \\/>/' " +
116 "-e 's/MicrodroidTestApp.apk/MicrodroidTestApp.VTS.apk/' " +
117 "$(in) > $(out)",
Jiyong Parka7266ac2021-05-17 21:57:24 +0900118}
119
Shikha Panwar979b9df2024-03-20 19:48:19 +0000120android_test_helper_app {
121 name: "MicrodroidTestAppUpdated",
122 defaults: ["MicrodroidVersionsTestAppDefaults"],
123 manifest: "AndroidManifestV6.xml",
124}
125
Nikita Ioffe7ffb0142023-02-01 22:22:23 +0000126// Defaults shared between MicrodroidTestNativeLib and MicrodroidPayloadInOtherAppNativeLib shared
127// libs. They are expected to share everything apart from the name, so that one app
128// (MicrodroidTestApp) can start a payload defined in the another app (MicrodroidVmShareApp).
129cc_defaults {
130 name: "MicrodroidTestNativeLibDefaults",
Nikita Ioffe38b9e712024-02-08 15:55:07 +0000131 defaults: ["avf_build_flags_cc"],
Jiyong Parkfe5b28e2021-06-24 00:19:02 +0900132 srcs: ["src/native/testbinary.cpp"],
Alan Stokes4bff0d62022-10-28 14:29:59 +0100133 stl: "libc++_static",
Alan Stokesd4ea5a82022-11-10 12:17:42 +0000134 header_libs: ["vm_payload_restricted_headers"],
Andrew Scull66616612021-06-17 16:41:03 +0000135 shared_libs: [
Andrew Scull66616612021-06-17 16:41:03 +0000136 "libbinder_ndk",
Nikita Ioffe3452ee22022-12-15 00:31:56 +0000137 "libcap",
Jiyong Parkfe5b28e2021-06-24 00:19:02 +0900138 "MicrodroidTestNativeLibSub",
Alan Stokesbcc2ec22022-10-31 17:02:50 +0000139 "libvm_payload#current",
Andrew Scull66616612021-06-17 16:41:03 +0000140 ],
Inseob Kimdb319702022-01-20 13:12:43 +0900141 static_libs: [
Alan Stokes18986452022-10-28 11:11:11 +0100142 "com.android.microdroid.testservice-ndk",
Alan Stokes4bff0d62022-10-28 14:29:59 +0100143 "libbase",
Nikita Ioffe29e15c82023-02-25 02:31:51 +0000144 "libfstab",
Inseob Kimdb319702022-01-20 13:12:43 +0900145 "libfsverity_digests_proto_cc",
146 "liblog",
147 "libprotobuf-cpp-lite-ndk",
148 ],
Jiyong Parka7266ac2021-05-17 21:57:24 +0900149}
Jiyong Park6de08572021-06-14 21:13:32 +0900150
Jiyong Parkfe5b28e2021-06-24 00:19:02 +0900151cc_library_shared {
Nikita Ioffe7ffb0142023-02-01 22:22:23 +0000152 name: "MicrodroidPayloadInOtherAppNativeLib",
153 defaults: ["MicrodroidTestNativeLibDefaults"],
154}
155
156cc_library_shared {
157 name: "MicrodroidTestNativeLib",
158 defaults: ["MicrodroidTestNativeLibDefaults"],
159}
160
161cc_library_shared {
Jiyong Parkfe5b28e2021-06-24 00:19:02 +0900162 name: "MicrodroidTestNativeLibSub",
Nikita Ioffe38b9e712024-02-08 15:55:07 +0000163 defaults: ["avf_build_flags_cc"],
Jiyong Parkfe5b28e2021-06-24 00:19:02 +0900164 srcs: ["src/native/testlib.cpp"],
Alan Stokes4bff0d62022-10-28 14:29:59 +0100165 stl: "libc++_static",
Jiyong Parkfe5b28e2021-06-24 00:19:02 +0900166}
Alan Stokes08c421a2022-11-15 16:06:26 +0000167
168cc_library_shared {
169 name: "MicrodroidIdleNativeLib",
Nikita Ioffe38b9e712024-02-08 15:55:07 +0000170 defaults: ["avf_build_flags_cc"],
Alan Stokes08c421a2022-11-15 16:06:26 +0000171 srcs: ["src/native/idlebinary.cpp"],
172 header_libs: ["vm_payload_headers"],
173 stl: "libc++_static",
174}
Inseob Kim24358c62022-12-09 15:49:22 +0900175
176// An empty payload missing AVmPayload_main
177cc_library_shared {
178 name: "MicrodroidEmptyNativeLib",
Nikita Ioffe38b9e712024-02-08 15:55:07 +0000179 defaults: ["avf_build_flags_cc"],
Inseob Kim24358c62022-12-09 15:49:22 +0900180 srcs: ["src/native/emptybinary.cpp"],
181 stl: "none",
182}
183
Alan Stokes4a66deb2023-01-27 12:12:00 +0000184// A payload that exits immediately on start
185cc_library_shared {
186 name: "MicrodroidExitNativeLib",
Nikita Ioffe38b9e712024-02-08 15:55:07 +0000187 defaults: ["avf_build_flags_cc"],
Alan Stokes4a66deb2023-01-27 12:12:00 +0000188 srcs: ["src/native/exitbinary.cpp"],
189 header_libs: ["vm_payload_headers"],
190 stl: "libc++_static",
191}
192
Inseob Kim24358c62022-12-09 15:49:22 +0900193// A payload which tries to link against libselinux, one of private libraries
194cc_library_shared {
195 name: "MicrodroidPrivateLinkingNativeLib",
Nikita Ioffe38b9e712024-02-08 15:55:07 +0000196 defaults: ["avf_build_flags_cc"],
Inseob Kim24358c62022-12-09 15:49:22 +0900197 srcs: ["src/native/idlebinary.cpp"],
198 header_libs: ["vm_payload_headers"],
199 // HACK: linking against "libselinux" will embed libselinux.so into the apk
200 // link against a stub to prevent libselinux.so from being embedded
201 shared_libs: ["libselinux#latest"],
202 stl: "libc++_static",
203}
Inseob Kimab1037d2023-02-08 17:03:31 +0900204
205// A payload that crashes immediately on start
206cc_library_shared {
207 name: "MicrodroidCrashNativeLib",
Nikita Ioffe38b9e712024-02-08 15:55:07 +0000208 defaults: ["avf_build_flags_cc"],
Inseob Kimab1037d2023-02-08 17:03:31 +0900209 srcs: ["src/native/crashbinary.cpp"],
210 header_libs: ["vm_payload_headers"],
211 stl: "libc++_static",
212}
Alan Stokesc874cd22024-06-11 16:23:18 +0100213
214// A payload written in Rust, using the Rust wrapper for the VM payload API.
215rust_ffi_shared {
216 name: "libmicrodroid_testlib_rust",
217 crate_name: "microdroid_testlib_rust",
218 defaults: ["avf_build_flags_rust"],
219 prefer_rlib: true,
220 srcs: ["src/native/testbinary.rs"],
221 compile_multilib: "both",
222 rustlibs: [
223 "com.android.microdroid.testservice-rust",
224 "libandroid_logger",
225 "libanyhow",
226 "libavflog",
227 "libcstr",
228 "liblog_rust",
229 "libvm_payload_rs",
230 ],
231}
Alice Wang56f22392024-07-09 07:53:22 +0000232
233rust_ffi_shared {
234 name: "libhwtrust_jni",
235 crate_name: "hwtrust_jni",
236 srcs: ["src/native/hwtrust_jni.rs"],
237 prefer_rlib: true,
238 rustlibs: [
239 "libandroid_logger",
240 "libanyhow",
241 "liblog_rust",
242 "libhwtrust",
243 "libjni",
244 ],
245 shared_libs: [
246 "libcrypto",
247 ],
248}