package { default_applicable_licenses: ["Android-Apache-2.0"], } rust_binary_host { name: "initrd_bootconfig", defaults: ["avf_build_flags_rust"], srcs: ["src/main.rs"], rustlibs: [ "libanyhow", "libclap", ], prefer_rlib: true, } rust_test_host { name: "initrd_bootconfig.test", defaults: ["avf_build_flags_rust"], srcs: ["src/main.rs"], rustlibs: [ "libanyhow", "libclap", ], prefer_rlib: true, test_suites: ["general-tests"], } python_binary_host { name: "gen_vbmeta_bootconfig", srcs: ["gen_vbmeta_bootconfig.py"], } java_genrule { name: "microdroid_initrd_gen", srcs: [ ":microdroid_ramdisk", ":microdroid_first_stage_ramdisk", ], out: ["microdroid_initrd.img"], cmd: "cat $(in) > $(out)", } java_genrule { name: "microdroid_gki-android15-6.6_initrd_gen_arm64", srcs: [ ":microdroid_ramdisk", ":microdroid_first_stage_ramdisk", ":microdroid_gki_modules-android15-6.6-arm64", ], out: ["microdroid_initrd.img"], cmd: "cat $(in) > $(out)", } java_genrule { name: "microdroid_gki-android15-6.6_initrd_gen_x86_64", srcs: [ ":microdroid_ramdisk", ":microdroid_first_stage_ramdisk", ":microdroid_gki_modules-android15-6.6-x86_64", ], out: ["microdroid_initrd.img"], cmd: "cat $(in) > $(out)", } // This contains vbmeta hashes & related (boot)configs which are passed to kernel/init java_genrule { name: "microdroid_vbmeta_bootconfig_gen", srcs: [":microdroid_vbmeta"], out: ["bootconfig_microdroid_vbmeta"], tools: [ "gen_vbmeta_bootconfig", "avbtool", ], cmd: "$(location gen_vbmeta_bootconfig) $(location avbtool) $(in) > $(out)", } bootconfigs_arm64 = [ ":microdroid_bootconfig_arm64_gen", ":microdroid_vbmeta_bootconfig_gen", ] bootconfigs_x86_64 = [ ":microdroid_bootconfig_x86_64_gen", ":microdroid_vbmeta_bootconfig_gen", ] bootconfigs_x86_64_16k = bootconfigs_x86_64 + [ ":microdroid_16k_bootconfig_x86_64_gen", ] java_genrule { name: "microdroid_initrd_debuggable_arm64", tools: ["initrd_bootconfig"], srcs: [ ":microdroid_initrd_gen", ":microdroid_bootconfig_debuggable_src", ] + bootconfigs_arm64, out: ["microdroid_initrd_debuggable_arm64"], cmd: "$(location initrd_bootconfig) attach --output $(out) $(in)", } java_genrule { name: "microdroid_gki-android15-6.6_initrd_debuggable_arm64", tools: ["initrd_bootconfig"], srcs: [ ":microdroid_gki-android15-6.6_initrd_gen_arm64", ":microdroid_bootconfig_debuggable_src", ] + bootconfigs_arm64, out: ["microdroid_gki-android15-6.6_initrd_debuggable_arm64"], cmd: "$(location initrd_bootconfig) attach --output $(out) $(in)", } java_genrule { name: "microdroid_initrd_debuggable_x86_64", tools: ["initrd_bootconfig"], srcs: [ ":microdroid_initrd_gen", ":microdroid_bootconfig_debuggable_src", ] + bootconfigs_x86_64, out: ["microdroid_initrd_debuggable_x86_64"], cmd: "$(location initrd_bootconfig) attach --output $(out) $(in)", } java_genrule { name: "microdroid_16k_initrd_debuggable_x86_64", tools: ["initrd_bootconfig"], srcs: [ ":microdroid_initrd_gen", ":microdroid_bootconfig_debuggable_src", ] + bootconfigs_x86_64_16k, out: ["microdroid_16k_initrd_debuggable_x86_64"], cmd: "$(location initrd_bootconfig) attach --output $(out) $(in)", } java_genrule { name: "microdroid_gki-android15-6.6_initrd_debuggable_x86_64", tools: ["initrd_bootconfig"], srcs: [ ":microdroid_gki-android15-6.6_initrd_gen_x86_64", ":microdroid_bootconfig_debuggable_src", ] + bootconfigs_x86_64, out: ["microdroid_gki-android15-6.6_initrd_debuggable_x86_64"], cmd: "$(location initrd_bootconfig) attach --output $(out) $(in)", } java_genrule { name: "microdroid_initrd_normal_arm64", tools: ["initrd_bootconfig"], srcs: [ ":microdroid_initrd_gen", ":microdroid_bootconfig_normal_src", ] + bootconfigs_arm64, out: ["microdroid_initrd_normal_arm64"], cmd: "$(location initrd_bootconfig) attach --output $(out) $(in)", } java_genrule { name: "microdroid_gki-android15-6.6_initrd_normal_arm64", tools: ["initrd_bootconfig"], srcs: [ ":microdroid_gki-android15-6.6_initrd_gen_arm64", ":microdroid_bootconfig_normal_src", ] + bootconfigs_arm64, out: ["microdroid_gki-android15-6.6_initrd_normal_arm64"], cmd: "$(location initrd_bootconfig) attach --output $(out) $(in)", } java_genrule { name: "microdroid_initrd_normal_x86_64", tools: ["initrd_bootconfig"], srcs: [ ":microdroid_initrd_gen", ":microdroid_bootconfig_normal_src", ] + bootconfigs_x86_64, out: ["microdroid_initrd_normal_x86_64"], cmd: "$(location initrd_bootconfig) attach --output $(out) $(in)", } java_genrule { name: "microdroid_16k_initrd_normal_x86_64", tools: ["initrd_bootconfig"], srcs: [ ":microdroid_initrd_gen", ":microdroid_bootconfig_normal_src", ] + bootconfigs_x86_64_16k, out: ["microdroid_16k_initrd_normal_x86_64"], cmd: "$(location initrd_bootconfig) attach --output $(out) $(in)", } java_genrule { name: "microdroid_gki-android15-6.6_initrd_normal_x86_64", tools: ["initrd_bootconfig"], srcs: [ ":microdroid_gki-android15-6.6_initrd_gen_x86_64", ":microdroid_bootconfig_normal_src", ] + bootconfigs_x86_64, out: ["microdroid_gki-android15-6.6_initrd_normal_x86_64"], cmd: "$(location initrd_bootconfig) attach --output $(out) $(in)", } prebuilt_etc { name: "microdroid_initrd_debuggable", // We don't have ramdisk for architectures other than x86_64 & arm64 src: ":empty_file", arch: { x86_64: { src: ":microdroid_initrd_debuggable_x86_64", }, arm64: { src: ":microdroid_initrd_debuggable_arm64", }, }, filename: "microdroid_initrd_debuggable.img", } prebuilt_etc { name: "microdroid_16k_initrd_debuggable", // We don't have ramdisk for architectures other than x86_64 & arm64 src: ":empty_file", arch: { // For x86_64 we emulate 16k by adding `page_shift=14` to bootconfig, that's why we need // separate initrd. x86_64: { src: ":microdroid_16k_initrd_debuggable_x86_64", }, // For arm64, the initrd for 16k kernel is the same. arm64: { src: ":microdroid_initrd_debuggable_arm64", }, }, filename: "microdroid_16k_initrd_debuggable.img", } prebuilt_etc { name: "microdroid_gki-android15-6.6_initrd_debuggable", // We don't have ramdisk for architectures other than x86_64 & arm64 src: ":empty_file", arch: { arm64: { src: ":microdroid_gki-android15-6.6_initrd_debuggable_arm64", }, x86_64: { src: ":microdroid_gki-android15-6.6_initrd_debuggable_x86_64", }, }, filename: "microdroid_gki-android15-6.6_initrd_debuggable.img", } prebuilt_etc { name: "microdroid_initrd_normal", // We don't have ramdisk for architectures other than x86_64 & arm64 src: ":empty_file", arch: { x86_64: { src: ":microdroid_initrd_normal_x86_64", }, arm64: { src: ":microdroid_initrd_normal_arm64", }, }, filename: "microdroid_initrd_normal.img", } prebuilt_etc { name: "microdroid_16k_initrd_normal", // We don't have ramdisk for architectures other than x86_64 & arm64 src: ":empty_file", arch: { // For x86_64 we emulate 16k by adding `page_shift=14` to bootconfig, that's why we need // separate initrd. x86_64: { src: ":microdroid_16k_initrd_normal_x86_64", }, // For arm64, the initrd for 16k kernel is the same. arm64: { src: ":microdroid_initrd_normal_arm64", }, }, filename: "microdroid_16k_initrd_normal.img", } prebuilt_etc { name: "microdroid_gki-android15-6.6_initrd_normal", // We don't have ramdisk for architectures other than x86_64 & arm64 src: ":empty_file", arch: { arm64: { src: ":microdroid_gki-android15-6.6_initrd_normal_arm64", }, x86_64: { src: ":microdroid_gki-android15-6.6_initrd_normal_x86_64", }, }, filename: "microdroid_gki-android15-6.6_initrd_normal.img", }