blob: d05ea8641c4a80a35b019eb13b1c2bad8574ccfe [file] [log] [blame]
package {
default_applicable_licenses: ["Android-Apache-2.0"],
}
rust_binary_host {
name: "initrd_bootconfig",
srcs: ["src/main.rs"],
rustlibs: [
"libanyhow",
"libclap",
],
prefer_rlib: true,
}
python_binary_host {
name: "gen_vbmeta_bootconfig",
srcs: ["gen_vbmeta_bootconfig.py"],
}
genrule {
name: "microdroid_initrd_gen",
srcs: [
":microdroid_ramdisk",
":microdroid_vendor_ramdisk",
],
out: ["microdroid_initrd.img"],
cmd: "cat $(in) > $(out)",
}
// This contains vbmeta hashes & related (boot)configs which are passed to kernel/init
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",
]
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) --output $(out) $(in)",
}
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) --output $(out) $(in)",
}
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) --output $(out) $(in)",
}
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) --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_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",
}
genrule {
name: "microdroid_initrd_normal.sha256",
srcs: [":microdroid_initrd_normal"],
cmd: "cat $(in) | sha256sum | cut -d' ' -f1 > $(out)",
out: ["hash"],
}
genrule {
name: "microdroid_initrd_debuggable.sha256",
srcs: [":microdroid_initrd_debuggable"],
cmd: "cat $(in) | sha256sum | cut -d' ' -f1 > $(out)",
out: ["hash"],
}
genrule {
name: "microdroid_initrd_hashes",
srcs: [
":microdroid_initrd_normal.sha256",
":microdroid_initrd_debuggable.sha256",
],
// join the hashes with commas
cmd: "cat $(in) | tr '\n' ',' > $(out) && truncate -s -1 $(out)",
out: ["output"],
}