blob: bc5cbfe37512d1a14ad0616e31b68ab88c640b57 [file] [log] [blame]
Alice Wangf3d96b12022-12-15 13:10:47 +00001package {
2 default_applicable_licenses: ["Android-Apache-2.0"],
3}
4
Pierre-Clément Tosi44e9f942023-06-27 14:33:56 +00005rust_library_rlib {
6 name: "libpvmfw_avb_nostd",
Alice Wangf3d96b12022-12-15 13:10:47 +00007 crate_name: "pvmfw_avb",
Nikita Ioffeda1b2732023-09-04 13:46:56 +01008 defaults: ["avf_build_flags_rust"],
Alice Wangf3d96b12022-12-15 13:10:47 +00009 srcs: ["src/lib.rs"],
10 prefer_rlib: true,
11 rustlibs: [
David Pursella7c727b2023-08-14 16:24:40 -070012 "libavb_rs_nostd",
Alice Wangf2752862023-01-18 11:51:25 +000013 "libtinyvec_nostd",
Alice Wangf3d96b12022-12-15 13:10:47 +000014 ],
Alice Wanga78279c2022-12-16 12:41:19 +000015 whole_static_libs: [
Pierre-Clément Tosi69467e02023-02-01 13:35:15 +000016 "libavb_baremetal",
Alice Wanga78279c2022-12-16 12:41:19 +000017 ],
Alice Wangf3d96b12022-12-15 13:10:47 +000018 no_stdlibs: true,
19 stdlibs: [
20 "libcore.rust_sysroot",
21 ],
22}
23
24rust_test {
Alice Wangbf7fadd2023-01-13 12:18:24 +000025 name: "libpvmfw_avb.integration_test",
26 crate_name: "pvmfw_avb_test",
Nikita Ioffeda1b2732023-09-04 13:46:56 +010027 defaults: ["avf_build_flags_rust"],
Alan Stokesd7aea452024-03-14 14:20:04 +000028 srcs: ["tests/api_test.rs"],
Alice Wangf3d96b12022-12-15 13:10:47 +000029 test_suites: ["general-tests"],
Alice Wanga78279c2022-12-16 12:41:19 +000030 data: [
31 ":avb_testkey_rsa2048_pub_bin",
32 ":avb_testkey_rsa4096_pub_bin",
33 ":microdroid_kernel_signed",
Alice Wang6b486f12023-01-06 13:12:16 +000034 ":microdroid_initrd_normal",
Alice Wang4e55dd92023-01-11 10:17:01 +000035 ":microdroid_initrd_debuggable",
Alice Wang3a4f58b2024-11-18 10:56:58 +000036 ":trusty_security_vm_signed",
Alice Wang6b486f12023-01-06 13:12:16 +000037 ":test_image_with_one_hashdesc",
Alice Wang86383df2023-01-11 10:03:56 +000038 ":test_image_with_non_initrd_hashdesc",
Alice Wangf2752862023-01-18 11:51:25 +000039 ":test_image_with_initrd_and_non_initrd_desc",
Alice Wang86383df2023-01-11 10:03:56 +000040 ":test_image_with_prop_desc",
Alice Wangab0d0202023-05-17 08:07:41 +000041 ":test_image_with_service_vm_prop",
42 ":test_image_with_unknown_vm_type_prop",
43 ":test_image_with_multiple_props",
44 ":test_image_with_duplicated_capability",
Shikha Panwara26f16a2023-09-27 09:39:00 +000045 ":test_image_with_rollback_index_5",
Shikha Panwar4a0651d2023-09-28 13:06:13 +000046 ":test_image_with_multiple_capabilities",
Nikolina Ilic57ba9c42024-10-01 09:50:48 +000047 ":test_image_with_all_capabilities",
Alice Wanga78279c2022-12-16 12:41:19 +000048 ":unsigned_test_image",
49 ],
Alice Wangbf7fadd2023-01-13 12:18:24 +000050 prefer_rlib: true,
Alice Wanga78279c2022-12-16 12:41:19 +000051 rustlibs: [
52 "libanyhow",
Alice Wangbf7fadd2023-01-13 12:18:24 +000053 "libavb_bindgen",
David Pursella7c727b2023-08-14 16:24:40 -070054 "libavb_rs_nostd",
Alice Wang1f0add02023-01-23 16:22:53 +000055 "libhex",
Alice Wangbf7fadd2023-01-13 12:18:24 +000056 "libpvmfw_avb_nostd",
Alice Wang1f0add02023-01-23 16:22:53 +000057 "libopenssl",
Alice Wanga78279c2022-12-16 12:41:19 +000058 ],
59 enabled: false,
60 arch: {
61 // Microdroid kernel is only available in these architectures.
62 arm64: {
63 enabled: true,
64 },
65 x86_64: {
66 enabled: true,
67 },
68 },
69}
70
71// Generates a 16KB unsigned image for testing.
72genrule {
73 name: "unsigned_test_image",
74 tools: ["avbtool"],
75 out: ["unsigned_test.img"],
76 cmd: "$(location avbtool) generate_test_image --image_size 16384 --output $(out)",
Alice Wangf3d96b12022-12-15 13:10:47 +000077}
Alice Wang6b486f12023-01-06 13:12:16 +000078
Alice Wang86383df2023-01-11 10:03:56 +000079avb_gen_vbmeta_image {
80 name: "test_non_initrd_hashdesc",
81 src: ":unsigned_test_image",
82 partition_name: "non_initrd11",
83 salt: "2222",
84}
85
86avb_add_hash_footer {
87 name: "test_image_with_non_initrd_hashdesc",
88 src: ":unsigned_test_image",
89 partition_name: "boot",
90 private_key: ":pvmfw_sign_key",
Alice Wangf2752862023-01-18 11:51:25 +000091 salt: "3322",
Alice Wang86383df2023-01-11 10:03:56 +000092 include_descriptors_from_images: [
93 ":test_non_initrd_hashdesc",
94 ],
95}
96
97avb_add_hash_footer {
Alice Wangf2752862023-01-18 11:51:25 +000098 name: "test_image_with_initrd_and_non_initrd_desc",
99 src: ":unsigned_test_image",
100 partition_name: "boot",
101 private_key: ":pvmfw_sign_key",
102 salt: "3241",
103 include_descriptors_from_images: [
104 ":microdroid_initrd_normal_hashdesc",
105 ":test_non_initrd_hashdesc",
106 ],
107 enabled: false,
108 arch: {
109 // microdroid_initrd_normal_hashdesc is only available in these architectures.
110 arm64: {
111 enabled: true,
112 },
113 x86_64: {
114 enabled: true,
115 },
116 },
117}
118
119avb_add_hash_footer {
Alice Wang86383df2023-01-11 10:03:56 +0000120 name: "test_image_with_prop_desc",
121 src: ":unsigned_test_image",
122 partition_name: "boot",
123 private_key: ":pvmfw_sign_key",
Alice Wangf2752862023-01-18 11:51:25 +0000124 salt: "2134",
Alice Wang86383df2023-01-11 10:03:56 +0000125 props: [
126 {
127 name: "mock_prop",
128 value: "3333",
129 },
130 ],
131}
132
Alice Wang6b486f12023-01-06 13:12:16 +0000133avb_add_hash_footer {
Alice Wangab0d0202023-05-17 08:07:41 +0000134 name: "test_image_with_service_vm_prop",
135 src: ":unsigned_test_image",
136 partition_name: "boot",
137 private_key: ":pvmfw_sign_key",
138 salt: "2131",
139 props: [
140 {
141 name: "com.android.virt.cap",
142 value: "remote_attest",
143 },
144 ],
145}
146
147avb_add_hash_footer {
148 name: "test_image_with_unknown_vm_type_prop",
149 src: ":unsigned_test_image",
150 partition_name: "boot",
151 private_key: ":pvmfw_sign_key",
152 salt: "2132",
153 props: [
154 {
155 name: "com.android.virt.cap",
156 value: "foo",
157 },
158 ],
159}
160
161avb_add_hash_footer {
162 name: "test_image_with_multiple_props",
163 src: ":unsigned_test_image",
164 partition_name: "boot",
165 private_key: ":pvmfw_sign_key",
166 salt: "2133",
167 props: [
168 {
169 name: "com.android.virt.cap",
170 value: "remote_attest",
171 },
172 {
173 name: "another_vm_type",
174 value: "foo_vm",
175 },
176 ],
177}
178
179avb_add_hash_footer {
180 name: "test_image_with_duplicated_capability",
181 src: ":unsigned_test_image",
182 partition_name: "boot",
183 private_key: ":pvmfw_sign_key",
184 salt: "2134",
185 props: [
186 {
187 name: "com.android.virt.cap",
188 value: "remote_attest|remote_attest|remote_attest",
189 },
190 ],
191}
192
193avb_add_hash_footer {
Alice Wang6b486f12023-01-06 13:12:16 +0000194 name: "test_image_with_one_hashdesc",
195 src: ":unsigned_test_image",
Alice Wang8aa3cb12023-01-11 09:04:04 +0000196 partition_name: "boot",
Alice Wang6b486f12023-01-06 13:12:16 +0000197 private_key: ":pvmfw_sign_key",
198 salt: "1111",
199}
Shikha Panwara26f16a2023-09-27 09:39:00 +0000200
201avb_add_hash_footer {
202 name: "test_image_with_rollback_index_5",
203 src: ":unsigned_test_image",
204 partition_name: "boot",
205 private_key: ":pvmfw_sign_key",
206 salt: "1211",
207 rollback_index: 5,
208}
Shikha Panwar4a0651d2023-09-28 13:06:13 +0000209
210avb_add_hash_footer {
211 name: "test_image_with_multiple_capabilities",
212 src: ":unsigned_test_image",
213 partition_name: "boot",
214 private_key: ":pvmfw_sign_key",
215 salt: "2134",
216 props: [
217 {
218 name: "com.android.virt.cap",
219 value: "remote_attest|secretkeeper_protection",
220 },
221 ],
222}
Nikolina Ilic57ba9c42024-10-01 09:50:48 +0000223
224avb_add_hash_footer {
225 name: "test_image_with_all_capabilities",
226 src: ":unsigned_test_image",
227 partition_name: "boot",
228 private_key: ":pvmfw_sign_key",
229 salt: "4231",
230 props: [
231 {
232 name: "com.android.virt.cap",
233 value: "remote_attest|secretkeeper_protection|supports_uefi_boot",
234 },
235 ],
236}