blob: 6e8216fedb289f39be9f83aa860b2c7b6cd13509 [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",
20 "general-tests",
21 ],
Nikita Ioffebac2bcf2023-02-10 00:09:20 +000022 static_libs: [
23 "com.android.microdroid.testservice-java",
24 "com.android.microdroid.test.vmshare_service-java",
25 ],
Alan Stokesfe6df522023-08-18 15:31:57 +010026 certificate: ":MicrodroidTestAppCert",
Nikita Ioffe7ffb0142023-02-01 22:22:23 +000027 sdk_version: "test_current",
28 jni_uses_platform_apis: true,
29 use_embedded_native_libs: true,
30 // We only support 64-bit ABI, but CTS demands all APKs to be multi-ABI.
31 compile_multilib: "both",
32}
33
34android_test {
35 name: "MicrodroidTestApp",
36 defaults: ["MicrodroidTestAppsDefaults"],
Jiyong Parka7266ac2021-05-17 21:57:24 +090037 srcs: ["src/java/**/*.java"],
Jiyong Parkbda1e212021-10-29 20:13:37 +090038 static_libs: [
Alice Wang7e0843d2022-09-01 11:30:21 +000039 "MicrodroidDeviceTestHelper",
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 Stokes38d00f82022-10-03 17:43:45 +010055 ],
Jiyong Park968635d2022-08-22 10:18:17 +090056 min_sdk_version: "33",
Nikita Ioffe9c480682023-02-08 14:17:32 +000057 // Defined in ../vmshareapp/Android.bp
Nikita Ioffe97dd06f2023-07-01 16:27:14 +010058 data: [
59 ":MicrodroidVmShareApp",
60 ":test_microdroid_vendor_image",
61 ],
Jiyong Parka7266ac2021-05-17 21:57:24 +090062}
63
Nikita Ioffe7ffb0142023-02-01 22:22:23 +000064// Defaults shared between MicrodroidTestNativeLib and MicrodroidPayloadInOtherAppNativeLib shared
65// libs. They are expected to share everything apart from the name, so that one app
66// (MicrodroidTestApp) can start a payload defined in the another app (MicrodroidVmShareApp).
67cc_defaults {
68 name: "MicrodroidTestNativeLibDefaults",
Jiyong Parkfe5b28e2021-06-24 00:19:02 +090069 srcs: ["src/native/testbinary.cpp"],
Alan Stokes4bff0d62022-10-28 14:29:59 +010070 stl: "libc++_static",
Alan Stokesd4ea5a82022-11-10 12:17:42 +000071 header_libs: ["vm_payload_restricted_headers"],
Andrew Scull66616612021-06-17 16:41:03 +000072 shared_libs: [
Andrew Scull66616612021-06-17 16:41:03 +000073 "libbinder_ndk",
Nikita Ioffe3452ee22022-12-15 00:31:56 +000074 "libcap",
Jiyong Parkfe5b28e2021-06-24 00:19:02 +090075 "MicrodroidTestNativeLibSub",
Alan Stokesbcc2ec22022-10-31 17:02:50 +000076 "libvm_payload#current",
Andrew Scull66616612021-06-17 16:41:03 +000077 ],
Inseob Kimdb319702022-01-20 13:12:43 +090078 static_libs: [
Alan Stokes18986452022-10-28 11:11:11 +010079 "com.android.microdroid.testservice-ndk",
Alan Stokes4bff0d62022-10-28 14:29:59 +010080 "libbase",
Nikita Ioffe29e15c82023-02-25 02:31:51 +000081 "libfstab",
Inseob Kimdb319702022-01-20 13:12:43 +090082 "libfsverity_digests_proto_cc",
83 "liblog",
84 "libprotobuf-cpp-lite-ndk",
85 ],
Jiyong Parka7266ac2021-05-17 21:57:24 +090086}
Jiyong Park6de08572021-06-14 21:13:32 +090087
Jiyong Parkfe5b28e2021-06-24 00:19:02 +090088cc_library_shared {
Nikita Ioffe7ffb0142023-02-01 22:22:23 +000089 name: "MicrodroidPayloadInOtherAppNativeLib",
90 defaults: ["MicrodroidTestNativeLibDefaults"],
91}
92
93cc_library_shared {
94 name: "MicrodroidTestNativeLib",
95 defaults: ["MicrodroidTestNativeLibDefaults"],
96}
97
98cc_library_shared {
Jiyong Parkfe5b28e2021-06-24 00:19:02 +090099 name: "MicrodroidTestNativeLibSub",
100 srcs: ["src/native/testlib.cpp"],
Alan Stokes4bff0d62022-10-28 14:29:59 +0100101 stl: "libc++_static",
Jiyong Parkfe5b28e2021-06-24 00:19:02 +0900102}
Alan Stokes08c421a2022-11-15 16:06:26 +0000103
104cc_library_shared {
105 name: "MicrodroidIdleNativeLib",
106 srcs: ["src/native/idlebinary.cpp"],
107 header_libs: ["vm_payload_headers"],
108 stl: "libc++_static",
109}
Inseob Kim24358c62022-12-09 15:49:22 +0900110
111// An empty payload missing AVmPayload_main
112cc_library_shared {
113 name: "MicrodroidEmptyNativeLib",
114 srcs: ["src/native/emptybinary.cpp"],
115 stl: "none",
116}
117
Alan Stokes4a66deb2023-01-27 12:12:00 +0000118// A payload that exits immediately on start
119cc_library_shared {
120 name: "MicrodroidExitNativeLib",
121 srcs: ["src/native/exitbinary.cpp"],
122 header_libs: ["vm_payload_headers"],
123 stl: "libc++_static",
124}
125
Inseob Kim24358c62022-12-09 15:49:22 +0900126// A payload which tries to link against libselinux, one of private libraries
127cc_library_shared {
128 name: "MicrodroidPrivateLinkingNativeLib",
129 srcs: ["src/native/idlebinary.cpp"],
130 header_libs: ["vm_payload_headers"],
131 // HACK: linking against "libselinux" will embed libselinux.so into the apk
132 // link against a stub to prevent libselinux.so from being embedded
133 shared_libs: ["libselinux#latest"],
134 stl: "libc++_static",
135}
Inseob Kimab1037d2023-02-08 17:03:31 +0900136
137// A payload that crashes immediately on start
138cc_library_shared {
139 name: "MicrodroidCrashNativeLib",
140 srcs: ["src/native/crashbinary.cpp"],
141 header_libs: ["vm_payload_headers"],
142 stl: "libc++_static",
143}