blob: 8314f43156ce553467be754d0f7a0f050ac43e41 [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",
Jiyong Park29de5172022-02-08 00:37:05 +090018 test_suites: [
19 "cts",
Alan Stokesb2820e12024-03-15 12:15:37 +000020 "vts",
Jiyong Park29de5172022-02-08 00:37:05 +090021 "general-tests",
22 ],
Nikita Ioffebac2bcf2023-02-10 00:09:20 +000023 static_libs: [
24 "com.android.microdroid.testservice-java",
25 "com.android.microdroid.test.vmshare_service-java",
Alice Wang0362f7f2024-03-21 08:16:26 +000026 "com.android.virt.vm_attestation.testservice-java",
Nikita Ioffebac2bcf2023-02-10 00:09:20 +000027 ],
Alan Stokesfe6df522023-08-18 15:31:57 +010028 certificate: ":MicrodroidTestAppCert",
Nikita Ioffe7ffb0142023-02-01 22:22:23 +000029 sdk_version: "test_current",
30 jni_uses_platform_apis: true,
31 use_embedded_native_libs: true,
32 // We only support 64-bit ABI, but CTS demands all APKs to be multi-ABI.
33 compile_multilib: "both",
34}
35
Shikha Panwar979b9df2024-03-20 19:48:19 +000036java_defaults {
37 name: "MicrodroidVersionsTestAppDefaults",
Jiyong Parka7266ac2021-05-17 21:57:24 +090038 srcs: ["src/java/**/*.java"],
Shikha Panwar979b9df2024-03-20 19:48:19 +000039 defaults: ["MicrodroidTestAppsDefaults"],
Jiyong Parkbda1e212021-10-29 20:13:37 +090040 static_libs: [
Alice Wang7e0843d2022-09-01 11:30:21 +000041 "MicrodroidDeviceTestHelper",
Alice Wanga78d8942024-03-21 12:55:41 +000042 "VmAttestationTestUtil",
Jiyong Parkbda1e212021-10-29 20:13:37 +090043 "androidx.test.runner",
44 "androidx.test.ext.junit",
Andrew Scull6ad64402022-07-04 13:12:53 +000045 "authfs_test_apk_assets",
Andrew Scull61892082022-02-21 00:07:25 +000046 "cbor-java",
Krzysztof KosiƄski9cf23c62023-10-07 00:48:09 +000047 "truth",
Jiyong Park5517b102022-07-11 16:09:19 +090048 "compatibility-common-util-devicesidelib",
Nikita Ioffea7cb3672023-02-24 23:10:34 +000049 "measure_io_as_jar",
Jiyong Parkbda1e212021-10-29 20:13:37 +090050 ],
Alan Stokes38d00f82022-10-03 17:43:45 +010051 jni_libs: [
52 "MicrodroidTestNativeLib",
David Brazdilf88c3152022-11-08 15:36:16 +000053 "MicrodroidIdleNativeLib",
Inseob Kim24358c62022-12-09 15:49:22 +090054 "MicrodroidEmptyNativeLib",
Alan Stokes4a66deb2023-01-27 12:12:00 +000055 "MicrodroidExitNativeLib",
Inseob Kim24358c62022-12-09 15:49:22 +090056 "MicrodroidPrivateLinkingNativeLib",
Inseob Kimab1037d2023-02-08 17:03:31 +090057 "MicrodroidCrashNativeLib",
Alan Stokesc874cd22024-06-11 16:23:18 +010058 "libmicrodroid_testlib_rust",
Alice Wang0362f7f2024-03-21 08:16:26 +000059 "libvm_attestation_test_payload",
Alice Wang56f22392024-07-09 07:53:22 +000060
61 // Non-VM payload libraries
62 "libhwtrust_jni",
Alan Stokes38d00f82022-10-03 17:43:45 +010063 ],
Jiyong Park968635d2022-08-22 10:18:17 +090064 min_sdk_version: "33",
Shikha Panwar979b9df2024-03-20 19:48:19 +000065}
66
67android_test {
68 name: "MicrodroidTestApp",
69 defaults: ["MicrodroidVersionsTestAppDefaults"],
70 manifest: "AndroidManifestV5.xml",
Nikita Ioffe9c480682023-02-08 14:17:32 +000071 // Defined in ../vmshareapp/Android.bp
Nikita Ioffe97dd06f2023-07-01 16:27:14 +010072 data: [
Shikha Panwar979b9df2024-03-20 19:48:19 +000073 ":MicrodroidTestAppUpdated",
Nikita Ioffe97dd06f2023-07-01 16:27:14 +010074 ":MicrodroidVmShareApp",
75 ":test_microdroid_vendor_image",
Seungjae Yoo1e053be2023-11-09 10:14:30 +090076 ":test_microdroid_vendor_image_unsigned",
Nikita Ioffe97dd06f2023-07-01 16:27:14 +010077 ],
Jiyong Parka7266ac2021-05-17 21:57:24 +090078}
79
Shikha Panwar979b9df2024-03-20 19:48:19 +000080android_test_helper_app {
81 name: "MicrodroidTestAppUpdated",
82 defaults: ["MicrodroidVersionsTestAppDefaults"],
83 manifest: "AndroidManifestV6.xml",
84}
85
Nikita Ioffe7ffb0142023-02-01 22:22:23 +000086// Defaults shared between MicrodroidTestNativeLib and MicrodroidPayloadInOtherAppNativeLib shared
87// libs. They are expected to share everything apart from the name, so that one app
88// (MicrodroidTestApp) can start a payload defined in the another app (MicrodroidVmShareApp).
89cc_defaults {
90 name: "MicrodroidTestNativeLibDefaults",
Nikita Ioffe38b9e712024-02-08 15:55:07 +000091 defaults: ["avf_build_flags_cc"],
Jiyong Parkfe5b28e2021-06-24 00:19:02 +090092 srcs: ["src/native/testbinary.cpp"],
Alan Stokes4bff0d62022-10-28 14:29:59 +010093 stl: "libc++_static",
Alan Stokesd4ea5a82022-11-10 12:17:42 +000094 header_libs: ["vm_payload_restricted_headers"],
Andrew Scull66616612021-06-17 16:41:03 +000095 shared_libs: [
Andrew Scull66616612021-06-17 16:41:03 +000096 "libbinder_ndk",
Nikita Ioffe3452ee22022-12-15 00:31:56 +000097 "libcap",
Jiyong Parkfe5b28e2021-06-24 00:19:02 +090098 "MicrodroidTestNativeLibSub",
Alan Stokesbcc2ec22022-10-31 17:02:50 +000099 "libvm_payload#current",
Andrew Scull66616612021-06-17 16:41:03 +0000100 ],
Inseob Kimdb319702022-01-20 13:12:43 +0900101 static_libs: [
Alan Stokes18986452022-10-28 11:11:11 +0100102 "com.android.microdroid.testservice-ndk",
Alan Stokes4bff0d62022-10-28 14:29:59 +0100103 "libbase",
Nikita Ioffe29e15c82023-02-25 02:31:51 +0000104 "libfstab",
Inseob Kimdb319702022-01-20 13:12:43 +0900105 "libfsverity_digests_proto_cc",
106 "liblog",
107 "libprotobuf-cpp-lite-ndk",
108 ],
Jiyong Parka7266ac2021-05-17 21:57:24 +0900109}
Jiyong Park6de08572021-06-14 21:13:32 +0900110
Jiyong Parkfe5b28e2021-06-24 00:19:02 +0900111cc_library_shared {
Nikita Ioffe7ffb0142023-02-01 22:22:23 +0000112 name: "MicrodroidPayloadInOtherAppNativeLib",
113 defaults: ["MicrodroidTestNativeLibDefaults"],
114}
115
116cc_library_shared {
117 name: "MicrodroidTestNativeLib",
118 defaults: ["MicrodroidTestNativeLibDefaults"],
119}
120
121cc_library_shared {
Jiyong Parkfe5b28e2021-06-24 00:19:02 +0900122 name: "MicrodroidTestNativeLibSub",
Nikita Ioffe38b9e712024-02-08 15:55:07 +0000123 defaults: ["avf_build_flags_cc"],
Jiyong Parkfe5b28e2021-06-24 00:19:02 +0900124 srcs: ["src/native/testlib.cpp"],
Alan Stokes4bff0d62022-10-28 14:29:59 +0100125 stl: "libc++_static",
Jiyong Parkfe5b28e2021-06-24 00:19:02 +0900126}
Alan Stokes08c421a2022-11-15 16:06:26 +0000127
128cc_library_shared {
129 name: "MicrodroidIdleNativeLib",
Nikita Ioffe38b9e712024-02-08 15:55:07 +0000130 defaults: ["avf_build_flags_cc"],
Alan Stokes08c421a2022-11-15 16:06:26 +0000131 srcs: ["src/native/idlebinary.cpp"],
132 header_libs: ["vm_payload_headers"],
133 stl: "libc++_static",
134}
Inseob Kim24358c62022-12-09 15:49:22 +0900135
136// An empty payload missing AVmPayload_main
137cc_library_shared {
138 name: "MicrodroidEmptyNativeLib",
Nikita Ioffe38b9e712024-02-08 15:55:07 +0000139 defaults: ["avf_build_flags_cc"],
Inseob Kim24358c62022-12-09 15:49:22 +0900140 srcs: ["src/native/emptybinary.cpp"],
141 stl: "none",
142}
143
Alan Stokes4a66deb2023-01-27 12:12:00 +0000144// A payload that exits immediately on start
145cc_library_shared {
146 name: "MicrodroidExitNativeLib",
Nikita Ioffe38b9e712024-02-08 15:55:07 +0000147 defaults: ["avf_build_flags_cc"],
Alan Stokes4a66deb2023-01-27 12:12:00 +0000148 srcs: ["src/native/exitbinary.cpp"],
149 header_libs: ["vm_payload_headers"],
150 stl: "libc++_static",
151}
152
Inseob Kim24358c62022-12-09 15:49:22 +0900153// A payload which tries to link against libselinux, one of private libraries
154cc_library_shared {
155 name: "MicrodroidPrivateLinkingNativeLib",
Nikita Ioffe38b9e712024-02-08 15:55:07 +0000156 defaults: ["avf_build_flags_cc"],
Inseob Kim24358c62022-12-09 15:49:22 +0900157 srcs: ["src/native/idlebinary.cpp"],
158 header_libs: ["vm_payload_headers"],
159 // HACK: linking against "libselinux" will embed libselinux.so into the apk
160 // link against a stub to prevent libselinux.so from being embedded
161 shared_libs: ["libselinux#latest"],
162 stl: "libc++_static",
163}
Inseob Kimab1037d2023-02-08 17:03:31 +0900164
165// A payload that crashes immediately on start
166cc_library_shared {
167 name: "MicrodroidCrashNativeLib",
Nikita Ioffe38b9e712024-02-08 15:55:07 +0000168 defaults: ["avf_build_flags_cc"],
Inseob Kimab1037d2023-02-08 17:03:31 +0900169 srcs: ["src/native/crashbinary.cpp"],
170 header_libs: ["vm_payload_headers"],
171 stl: "libc++_static",
172}
Alan Stokesc874cd22024-06-11 16:23:18 +0100173
174// A payload written in Rust, using the Rust wrapper for the VM payload API.
175rust_ffi_shared {
176 name: "libmicrodroid_testlib_rust",
177 crate_name: "microdroid_testlib_rust",
178 defaults: ["avf_build_flags_rust"],
179 prefer_rlib: true,
180 srcs: ["src/native/testbinary.rs"],
181 compile_multilib: "both",
182 rustlibs: [
183 "com.android.microdroid.testservice-rust",
184 "libandroid_logger",
185 "libanyhow",
186 "libavflog",
187 "libcstr",
188 "liblog_rust",
189 "libvm_payload_rs",
190 ],
191}
Alice Wang56f22392024-07-09 07:53:22 +0000192
193rust_ffi_shared {
194 name: "libhwtrust_jni",
195 crate_name: "hwtrust_jni",
196 srcs: ["src/native/hwtrust_jni.rs"],
197 prefer_rlib: true,
198 rustlibs: [
199 "libandroid_logger",
200 "libanyhow",
201 "liblog_rust",
202 "libhwtrust",
203 "libjni",
204 ],
205 shared_libs: [
206 "libcrypto",
207 ],
208}