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 33java_genrule { 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 43java_genrule { 44 name: "microdroid_gki-android15-6.6_initrd_gen_arm64", 45 srcs: [ 46 ":microdroid_ramdisk", 47 ":microdroid_first_stage_ramdisk", 48 ":microdroid_gki_modules-android15-6.6-arm64", 49 ], 50 out: ["microdroid_initrd.img"], 51 cmd: "cat $(in) > $(out)", 52} 53 54java_genrule { 55 name: "microdroid_gki-android15-6.6_initrd_gen_x86_64", 56 srcs: [ 57 ":microdroid_ramdisk", 58 ":microdroid_first_stage_ramdisk", 59 ":microdroid_gki_modules-android15-6.6-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 66java_genrule { 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 87bootconfigs_x86_64_16k = bootconfigs_x86_64 + [ 88 ":microdroid_16k_bootconfig_x86_64_gen", 89] 90 91java_genrule { 92 name: "microdroid_initrd_debuggable_arm64", 93 tools: ["initrd_bootconfig"], 94 srcs: [ 95 ":microdroid_initrd_gen", 96 ":microdroid_bootconfig_debuggable_src", 97 ] + bootconfigs_arm64, 98 out: ["microdroid_initrd_debuggable_arm64"], 99 cmd: "$(location initrd_bootconfig) attach --output $(out) $(in)", 100} 101 102java_genrule { 103 name: "microdroid_gki-android15-6.6_initrd_debuggable_arm64", 104 tools: ["initrd_bootconfig"], 105 srcs: [ 106 ":microdroid_gki-android15-6.6_initrd_gen_arm64", 107 ":microdroid_bootconfig_debuggable_src", 108 ] + bootconfigs_arm64, 109 out: ["microdroid_gki-android15-6.6_initrd_debuggable_arm64"], 110 cmd: "$(location initrd_bootconfig) attach --output $(out) $(in)", 111} 112 113java_genrule { 114 name: "microdroid_initrd_debuggable_x86_64", 115 tools: ["initrd_bootconfig"], 116 srcs: [ 117 ":microdroid_initrd_gen", 118 ":microdroid_bootconfig_debuggable_src", 119 ] + bootconfigs_x86_64, 120 out: ["microdroid_initrd_debuggable_x86_64"], 121 cmd: "$(location initrd_bootconfig) attach --output $(out) $(in)", 122} 123 124java_genrule { 125 name: "microdroid_16k_initrd_debuggable_x86_64", 126 tools: ["initrd_bootconfig"], 127 srcs: [ 128 ":microdroid_initrd_gen", 129 ":microdroid_bootconfig_debuggable_src", 130 ] + bootconfigs_x86_64_16k, 131 out: ["microdroid_16k_initrd_debuggable_x86_64"], 132 cmd: "$(location initrd_bootconfig) attach --output $(out) $(in)", 133} 134 135java_genrule { 136 name: "microdroid_gki-android15-6.6_initrd_debuggable_x86_64", 137 tools: ["initrd_bootconfig"], 138 srcs: [ 139 ":microdroid_gki-android15-6.6_initrd_gen_x86_64", 140 ":microdroid_bootconfig_debuggable_src", 141 ] + bootconfigs_x86_64, 142 out: ["microdroid_gki-android15-6.6_initrd_debuggable_x86_64"], 143 cmd: "$(location initrd_bootconfig) attach --output $(out) $(in)", 144} 145 146java_genrule { 147 name: "microdroid_initrd_normal_arm64", 148 tools: ["initrd_bootconfig"], 149 srcs: [ 150 ":microdroid_initrd_gen", 151 ":microdroid_bootconfig_normal_src", 152 ] + bootconfigs_arm64, 153 out: ["microdroid_initrd_normal_arm64"], 154 cmd: "$(location initrd_bootconfig) attach --output $(out) $(in)", 155} 156 157java_genrule { 158 name: "microdroid_gki-android15-6.6_initrd_normal_arm64", 159 tools: ["initrd_bootconfig"], 160 srcs: [ 161 ":microdroid_gki-android15-6.6_initrd_gen_arm64", 162 ":microdroid_bootconfig_normal_src", 163 ] + bootconfigs_arm64, 164 out: ["microdroid_gki-android15-6.6_initrd_normal_arm64"], 165 cmd: "$(location initrd_bootconfig) attach --output $(out) $(in)", 166} 167 168java_genrule { 169 name: "microdroid_initrd_normal_x86_64", 170 tools: ["initrd_bootconfig"], 171 srcs: [ 172 ":microdroid_initrd_gen", 173 ":microdroid_bootconfig_normal_src", 174 ] + bootconfigs_x86_64, 175 out: ["microdroid_initrd_normal_x86_64"], 176 cmd: "$(location initrd_bootconfig) attach --output $(out) $(in)", 177} 178 179java_genrule { 180 name: "microdroid_16k_initrd_normal_x86_64", 181 tools: ["initrd_bootconfig"], 182 srcs: [ 183 ":microdroid_initrd_gen", 184 ":microdroid_bootconfig_normal_src", 185 ] + bootconfigs_x86_64_16k, 186 out: ["microdroid_16k_initrd_normal_x86_64"], 187 cmd: "$(location initrd_bootconfig) attach --output $(out) $(in)", 188} 189 190java_genrule { 191 name: "microdroid_gki-android15-6.6_initrd_normal_x86_64", 192 tools: ["initrd_bootconfig"], 193 srcs: [ 194 ":microdroid_gki-android15-6.6_initrd_gen_x86_64", 195 ":microdroid_bootconfig_normal_src", 196 ] + bootconfigs_x86_64, 197 out: ["microdroid_gki-android15-6.6_initrd_normal_x86_64"], 198 cmd: "$(location initrd_bootconfig) attach --output $(out) $(in)", 199} 200 201prebuilt_etc { 202 name: "microdroid_initrd_debuggable", 203 // We don't have ramdisk for architectures other than x86_64 & arm64 204 src: ":empty_file", 205 arch: { 206 x86_64: { 207 src: ":microdroid_initrd_debuggable_x86_64", 208 }, 209 arm64: { 210 src: ":microdroid_initrd_debuggable_arm64", 211 }, 212 }, 213 filename: "microdroid_initrd_debuggable.img", 214} 215 216prebuilt_etc { 217 name: "microdroid_16k_initrd_debuggable", 218 // We don't have ramdisk for architectures other than x86_64 & arm64 219 src: ":empty_file", 220 arch: { 221 // For x86_64 we emulate 16k by adding `page_shift=14` to bootconfig, that's why we need 222 // separate initrd. 223 x86_64: { 224 src: ":microdroid_16k_initrd_debuggable_x86_64", 225 }, 226 // For arm64, the initrd for 16k kernel is the same. 227 arm64: { 228 src: ":microdroid_initrd_debuggable_arm64", 229 }, 230 }, 231 filename: "microdroid_16k_initrd_debuggable.img", 232} 233 234prebuilt_etc { 235 name: "microdroid_gki-android15-6.6_initrd_debuggable", 236 // We don't have ramdisk for architectures other than x86_64 & arm64 237 src: ":empty_file", 238 arch: { 239 arm64: { 240 src: ":microdroid_gki-android15-6.6_initrd_debuggable_arm64", 241 }, 242 x86_64: { 243 src: ":microdroid_gki-android15-6.6_initrd_debuggable_x86_64", 244 }, 245 }, 246 filename: "microdroid_gki-android15-6.6_initrd_debuggable.img", 247} 248 249prebuilt_etc { 250 name: "microdroid_initrd_normal", 251 // We don't have ramdisk for architectures other than x86_64 & arm64 252 src: ":empty_file", 253 arch: { 254 x86_64: { 255 src: ":microdroid_initrd_normal_x86_64", 256 }, 257 arm64: { 258 src: ":microdroid_initrd_normal_arm64", 259 }, 260 }, 261 filename: "microdroid_initrd_normal.img", 262} 263 264prebuilt_etc { 265 name: "microdroid_16k_initrd_normal", 266 // We don't have ramdisk for architectures other than x86_64 & arm64 267 src: ":empty_file", 268 arch: { 269 // For x86_64 we emulate 16k by adding `page_shift=14` to bootconfig, that's why we need 270 // separate initrd. 271 x86_64: { 272 src: ":microdroid_16k_initrd_normal_x86_64", 273 }, 274 // For arm64, the initrd for 16k kernel is the same. 275 arm64: { 276 src: ":microdroid_initrd_normal_arm64", 277 }, 278 }, 279 filename: "microdroid_16k_initrd_normal.img", 280} 281 282prebuilt_etc { 283 name: "microdroid_gki-android15-6.6_initrd_normal", 284 // We don't have ramdisk for architectures other than x86_64 & arm64 285 src: ":empty_file", 286 arch: { 287 arm64: { 288 src: ":microdroid_gki-android15-6.6_initrd_normal_arm64", 289 }, 290 x86_64: { 291 src: ":microdroid_gki-android15-6.6_initrd_normal_x86_64", 292 }, 293 }, 294 filename: "microdroid_gki-android15-6.6_initrd_normal.img", 295} 296