1package { 2 default_applicable_licenses: ["Android-Apache-2.0"], 3} 4 5rust_binary_host { 6 name: "initrd_bootconfig", 7 defaults: ["avf_build_flags_rust"], 8 srcs: ["src/main.rs"], 9 rustlibs: [ 10 "libanyhow", 11 "libclap", 12 ], 13 prefer_rlib: true, 14} 15 16rust_test_host { 17 name: "initrd_bootconfig.test", 18 defaults: ["avf_build_flags_rust"], 19 srcs: ["src/main.rs"], 20 rustlibs: [ 21 "libanyhow", 22 "libclap", 23 ], 24 prefer_rlib: true, 25 test_suites: ["general-tests"], 26} 27 28python_binary_host { 29 name: "gen_vbmeta_bootconfig", 30 srcs: ["gen_vbmeta_bootconfig.py"], 31} 32 33genrule { 34 name: "microdroid_initrd_gen", 35 srcs: [ 36 ":microdroid_ramdisk", 37 ":microdroid_first_stage_ramdisk", 38 ], 39 out: ["microdroid_initrd.img"], 40 cmd: "cat $(in) > $(out)", 41} 42 43genrule { 44 name: "microdroid_gki-android14-6.1-pkvm_experimental_initrd_gen_arm64", 45 srcs: [ 46 ":microdroid_ramdisk", 47 ":microdroid_first_stage_ramdisk", 48 ":microdroid_gki_modules-6.1-pkvm_experimental-arm64", 49 ], 50 out: ["microdroid_initrd.img"], 51 cmd: "cat $(in) > $(out)", 52} 53 54genrule { 55 name: "microdroid_gki-android14-6.1-pkvm_experimental_initrd_gen_x86_64", 56 srcs: [ 57 ":microdroid_ramdisk", 58 ":microdroid_first_stage_ramdisk", 59 ":microdroid_gki_modules-6.1-pkvm_experimental-x86_64", 60 ], 61 out: ["microdroid_initrd.img"], 62 cmd: "cat $(in) > $(out)", 63} 64 65// This contains vbmeta hashes & related (boot)configs which are passed to kernel/init 66genrule { 67 name: "microdroid_vbmeta_bootconfig_gen", 68 srcs: [":microdroid_vbmeta"], 69 out: ["bootconfig_microdroid_vbmeta"], 70 tools: [ 71 "gen_vbmeta_bootconfig", 72 "avbtool", 73 ], 74 cmd: "$(location gen_vbmeta_bootconfig) $(location avbtool) $(in) > $(out)", 75} 76 77bootconfigs_arm64 = [ 78 ":microdroid_bootconfig_arm64_gen", 79 ":microdroid_vbmeta_bootconfig_gen", 80] 81 82bootconfigs_x86_64 = [ 83 ":microdroid_bootconfig_x86_64_gen", 84 ":microdroid_vbmeta_bootconfig_gen", 85] 86 87genrule { 88 name: "microdroid_initrd_debuggable_arm64", 89 tools: ["initrd_bootconfig"], 90 srcs: [ 91 ":microdroid_initrd_gen", 92 ":microdroid_bootconfig_debuggable_src", 93 ] + bootconfigs_arm64, 94 out: ["microdroid_initrd_debuggable_arm64"], 95 cmd: "$(location initrd_bootconfig) attach --output $(out) $(in)", 96} 97 98genrule { 99 name: "microdroid_gki-android14-6.1-pkvm_experimental_initrd_debuggable_arm64", 100 tools: ["initrd_bootconfig"], 101 srcs: [ 102 ":microdroid_gki-android14-6.1-pkvm_experimental_initrd_gen_arm64", 103 ":microdroid_bootconfig_debuggable_src", 104 ] + bootconfigs_arm64, 105 out: ["microdroid_gki-android14-6.1-pkvm_experimental_initrd_debuggable_arm64"], 106 cmd: "$(location initrd_bootconfig) attach --output $(out) $(in)", 107} 108 109genrule { 110 name: "microdroid_initrd_debuggable_x86_64", 111 tools: ["initrd_bootconfig"], 112 srcs: [ 113 ":microdroid_initrd_gen", 114 ":microdroid_bootconfig_debuggable_src", 115 ] + bootconfigs_x86_64, 116 out: ["microdroid_initrd_debuggable_x86_64"], 117 cmd: "$(location initrd_bootconfig) attach --output $(out) $(in)", 118} 119 120genrule { 121 name: "microdroid_gki-android14-6.1-pkvm_experimental_initrd_debuggable_x86_64", 122 tools: ["initrd_bootconfig"], 123 srcs: [ 124 ":microdroid_gki-android14-6.1-pkvm_experimental_initrd_gen_x86_64", 125 ":microdroid_bootconfig_debuggable_src", 126 ] + bootconfigs_x86_64, 127 out: ["microdroid_gki-android14-6.1-pkvm_experimental_initrd_debuggable_x86_64"], 128 cmd: "$(location initrd_bootconfig) attach --output $(out) $(in)", 129} 130 131genrule { 132 name: "microdroid_initrd_normal_arm64", 133 tools: ["initrd_bootconfig"], 134 srcs: [ 135 ":microdroid_initrd_gen", 136 ":microdroid_bootconfig_normal_src", 137 ] + bootconfigs_arm64, 138 out: ["microdroid_initrd_normal_arm64"], 139 cmd: "$(location initrd_bootconfig) attach --output $(out) $(in)", 140} 141 142genrule { 143 name: "microdroid_gki-android14-6.1-pkvm_experimental_initrd_normal_arm64", 144 tools: ["initrd_bootconfig"], 145 srcs: [ 146 ":microdroid_gki-android14-6.1-pkvm_experimental_initrd_gen_arm64", 147 ":microdroid_bootconfig_normal_src", 148 ] + bootconfigs_arm64, 149 out: ["microdroid_gki-android14-6.1-pkvm_experimental_initrd_normal_arm64"], 150 cmd: "$(location initrd_bootconfig) attach --output $(out) $(in)", 151} 152 153genrule { 154 name: "microdroid_initrd_normal_x86_64", 155 tools: ["initrd_bootconfig"], 156 srcs: [ 157 ":microdroid_initrd_gen", 158 ":microdroid_bootconfig_normal_src", 159 ] + bootconfigs_x86_64, 160 out: ["microdroid_initrd_normal_x86_64"], 161 cmd: "$(location initrd_bootconfig) attach --output $(out) $(in)", 162} 163 164genrule { 165 name: "microdroid_gki-android14-6.1-pkvm_experimental_initrd_normal_x86_64", 166 tools: ["initrd_bootconfig"], 167 srcs: [ 168 ":microdroid_gki-android14-6.1-pkvm_experimental_initrd_gen_x86_64", 169 ":microdroid_bootconfig_normal_src", 170 ] + bootconfigs_x86_64, 171 out: ["microdroid_gki-android14-6.1-pkvm_experimental_initrd_normal_x86_64"], 172 cmd: "$(location initrd_bootconfig) attach --output $(out) $(in)", 173} 174 175prebuilt_etc { 176 name: "microdroid_initrd_debuggable", 177 // We don't have ramdisk for architectures other than x86_64 & arm64 178 src: ":empty_file", 179 arch: { 180 x86_64: { 181 src: ":microdroid_initrd_debuggable_x86_64", 182 }, 183 arm64: { 184 src: ":microdroid_initrd_debuggable_arm64", 185 }, 186 }, 187 filename: "microdroid_initrd_debuggable.img", 188} 189 190prebuilt_etc { 191 name: "microdroid_gki-android14-6.1-pkvm_experimental_initrd_debuggable", 192 // We don't have ramdisk for architectures other than x86_64 & arm64 193 src: ":empty_file", 194 arch: { 195 x86_64: { 196 src: ":microdroid_gki-android14-6.1-pkvm_experimental_initrd_debuggable_x86_64", 197 }, 198 arm64: { 199 src: ":microdroid_gki-android14-6.1-pkvm_experimental_initrd_debuggable_arm64", 200 }, 201 }, 202 filename: "microdroid_gki-android14-6.1-pkvm_experimental_initrd_debuggable.img", 203} 204 205prebuilt_etc { 206 name: "microdroid_initrd_normal", 207 // We don't have ramdisk for architectures other than x86_64 & arm64 208 src: ":empty_file", 209 arch: { 210 x86_64: { 211 src: ":microdroid_initrd_normal_x86_64", 212 }, 213 arm64: { 214 src: ":microdroid_initrd_normal_arm64", 215 }, 216 }, 217 filename: "microdroid_initrd_normal.img", 218} 219 220prebuilt_etc { 221 name: "microdroid_gki-android14-6.1-pkvm_experimental_initrd_normal", 222 // We don't have ramdisk for architectures other than x86_64 & arm64 223 src: ":empty_file", 224 arch: { 225 x86_64: { 226 src: ":microdroid_gki-android14-6.1-pkvm_experimental_initrd_normal_x86_64", 227 }, 228 arm64: { 229 src: ":microdroid_gki-android14-6.1-pkvm_experimental_initrd_normal_arm64", 230 }, 231 }, 232 filename: "microdroid_gki-android14-6.1-pkvm_experimental_initrd_normal.img", 233} 234