Microdroid: Add support for android16-6.12 GKI as guest kernel
Bug: 392725856
Test: Boot Microdroid
Change-Id: I0cbb3b31d7eac3f0c2f8b9cf729e7dfb8b97e202
Merged-In: I0cbb3b31d7eac3f0c2f8b9cf729e7dfb8b97e202
diff --git a/build/microdroid/Android.bp b/build/microdroid/Android.bp
index dea0bf3..059077a 100644
--- a/build/microdroid/Android.bp
+++ b/build/microdroid/Android.bp
@@ -633,7 +633,7 @@
}
avb_add_hash_footer_defaults {
- name: "microdroid_gki_kernel_signed_defaults",
+ name: "microdroid_gki-android15-6.6_kernel_signed_defaults",
defaults: ["microdroid_kernel_signed_defaults"],
arch: {
arm64: {
@@ -652,7 +652,7 @@
avb_add_hash_footer {
name: "microdroid_gki-android15-6.6_kernel_signed",
defaults: [
- "microdroid_gki_kernel_signed_defaults",
+ "microdroid_gki-android15-6.6_kernel_signed_defaults",
"microdroid_kernel_cap_defaults",
],
filename: "microdroid_gki-android15-6.6_kernel_signed",
@@ -661,7 +661,7 @@
avb_add_hash_footer {
name: "microdroid_gki-android15-6.6_kernel_signed_supports_uefi_boot",
defaults: [
- "microdroid_gki_kernel_signed_defaults",
+ "microdroid_gki-android15-6.6_kernel_signed_defaults",
"microdroid_kernel_cap_with_uefi_defaults",
],
filename: "microdroid_gki-android15-6.6_kernel_signed_supports_uefi_boot",
@@ -709,6 +709,91 @@
src: ":microdroid_gki-android15-6.6_initrd_debuggable",
}
+///////////////////////////////////////
+// GKI-android16-6.12
+///////////////////////////////////////
+prebuilt_etc {
+ name: "microdroid_gki-android16-6.12.json",
+ src: "microdroid_gki-android16-6.12.json",
+}
+
+avb_add_hash_footer_defaults {
+ name: "microdroid_gki-android16-6.12_kernel_signed_defaults",
+ defaults: ["microdroid_kernel_signed_defaults"],
+ arch: {
+ arm64: {
+ src: ":microdroid_gki_kernel_prebuilts-android16-6.12-arm64",
+ },
+ x86_64: {
+ src: ":microdroid_gki_kernel_prebuilts-android16-6.12-x86_64",
+ },
+ },
+ include_descriptors_from_images: [
+ ":microdroid_gki-android16-6.12_initrd_normal_hashdesc",
+ ":microdroid_gki-android16-6.12_initrd_debug_hashdesc",
+ ],
+}
+
+avb_add_hash_footer {
+ name: "microdroid_gki-android16-6.12_kernel_signed",
+ defaults: [
+ "microdroid_gki-android16-6.12_kernel_signed_defaults",
+ "microdroid_kernel_cap_defaults",
+ ],
+ filename: "microdroid_gki-android16-6.12_kernel_signed",
+}
+
+avb_add_hash_footer {
+ name: "microdroid_gki-android16-6.12_kernel_signed_supports_uefi_boot",
+ defaults: [
+ "microdroid_gki-android16-6.12_kernel_signed_defaults",
+ "microdroid_kernel_cap_with_uefi_defaults",
+ ],
+ filename: "microdroid_gki-android16-6.12_kernel_signed_supports_uefi_boot",
+}
+
+// HACK: use cc_genrule for arch-specific properties
+cc_genrule {
+ name: "microdroid_gki-android16-6.12_kernel_signed-lz4",
+ out: ["microdroid_gki-android16-6.12_kernel_signed-lz4"],
+ srcs: [":empty_file"],
+ arch: {
+ arm64: {
+ srcs: [":microdroid_gki-android16-6.12_kernel_signed"],
+ exclude_srcs: [":empty_file"],
+ },
+ },
+ tools: ["lz4"],
+ cmd: "$(location lz4) -9 $(in) $(out)",
+}
+
+prebuilt_etc {
+ name: "microdroid_gki-android16-6.12_kernel",
+ filename: "microdroid_gki-android16-6.12_kernel",
+ src: ":empty_file",
+ relative_install_path: "fs",
+ arch: {
+ arm64: {
+ src: ":microdroid_gki-android16-6.12_kernel_signed",
+ },
+ x86_64: {
+ src: ":microdroid_gki-android16-6.12_kernel_signed",
+ },
+ },
+}
+
+avb_gen_vbmeta_image {
+ name: "microdroid_gki-android16-6.12_initrd_normal_hashdesc",
+ defaults: ["microdroid_initrd_normal_defaults"],
+ src: ":microdroid_gki-android16-6.12_initrd_normal",
+}
+
+avb_gen_vbmeta_image {
+ name: "microdroid_gki-android16-6.12_initrd_debug_hashdesc",
+ defaults: ["microdroid_initrd_debug_defaults"],
+ src: ":microdroid_gki-android16-6.12_initrd_debuggable",
+}
+
python_binary_host {
name: "extract_microdroid_kernel_hashes",
srcs: ["extract_microdroid_kernel_hashes.py"],
@@ -723,11 +808,13 @@
arm64: {
srcs: [
":microdroid_gki-android15-6.6_kernel_signed",
+ ":microdroid_gki-android16-6.12_kernel_signed",
],
},
x86_64: {
srcs: [
":microdroid_gki-android15-6.6_kernel_signed",
+ ":microdroid_gki-android16-6.12_kernel_signed",
],
},
},
diff --git a/build/microdroid/initrd/Android.bp b/build/microdroid/initrd/Android.bp
index 7331e0b..d9aa108 100644
--- a/build/microdroid/initrd/Android.bp
+++ b/build/microdroid/initrd/Android.bp
@@ -52,6 +52,17 @@
}
java_genrule {
+ name: "microdroid_gki-android16-6.12_initrd_gen_arm64",
+ srcs: [
+ ":microdroid_ramdisk",
+ ":microdroid_first_stage_ramdisk",
+ ":microdroid_gki_modules-android16-6.12-arm64",
+ ],
+ out: ["microdroid_initrd.img"],
+ cmd: "cat $(in) > $(out)",
+}
+
+java_genrule {
name: "microdroid_gki-android15-6.6_initrd_gen_x86_64",
srcs: [
":microdroid_ramdisk",
@@ -62,6 +73,17 @@
cmd: "cat $(in) > $(out)",
}
+java_genrule {
+ name: "microdroid_gki-android16-6.12_initrd_gen_x86_64",
+ srcs: [
+ ":microdroid_ramdisk",
+ ":microdroid_first_stage_ramdisk",
+ ":microdroid_gki_modules-android16-6.12-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",
@@ -111,6 +133,17 @@
}
java_genrule {
+ name: "microdroid_gki-android16-6.12_initrd_debuggable_arm64",
+ tools: ["initrd_bootconfig"],
+ srcs: [
+ ":microdroid_gki-android16-6.12_initrd_gen_arm64",
+ ":microdroid_bootconfig_debuggable_src",
+ ] + bootconfigs_arm64,
+ out: ["microdroid_gki-android16-6.12_initrd_debuggable_arm64"],
+ cmd: "$(location initrd_bootconfig) attach --output $(out) $(in)",
+}
+
+java_genrule {
name: "microdroid_initrd_debuggable_x86_64",
tools: ["initrd_bootconfig"],
srcs: [
@@ -144,6 +177,17 @@
}
java_genrule {
+ name: "microdroid_gki-android16-6.12_initrd_debuggable_x86_64",
+ tools: ["initrd_bootconfig"],
+ srcs: [
+ ":microdroid_gki-android16-6.12_initrd_gen_x86_64",
+ ":microdroid_bootconfig_debuggable_src",
+ ] + bootconfigs_x86_64,
+ out: ["microdroid_gki-android16-6.12_initrd_debuggable_x86_64"],
+ cmd: "$(location initrd_bootconfig) attach --output $(out) $(in)",
+}
+
+java_genrule {
name: "microdroid_initrd_normal_arm64",
tools: ["initrd_bootconfig"],
srcs: [
@@ -166,6 +210,17 @@
}
java_genrule {
+ name: "microdroid_gki-android16-6.12_initrd_normal_arm64",
+ tools: ["initrd_bootconfig"],
+ srcs: [
+ ":microdroid_gki-android16-6.12_initrd_gen_arm64",
+ ":microdroid_bootconfig_normal_src",
+ ] + bootconfigs_arm64,
+ out: ["microdroid_gki-android16-6.12_initrd_normal_arm64"],
+ cmd: "$(location initrd_bootconfig) attach --output $(out) $(in)",
+}
+
+java_genrule {
name: "microdroid_initrd_normal_x86_64",
tools: ["initrd_bootconfig"],
srcs: [
@@ -198,6 +253,17 @@
cmd: "$(location initrd_bootconfig) attach --output $(out) $(in)",
}
+java_genrule {
+ name: "microdroid_gki-android16-6.12_initrd_normal_x86_64",
+ tools: ["initrd_bootconfig"],
+ srcs: [
+ ":microdroid_gki-android16-6.12_initrd_gen_x86_64",
+ ":microdroid_bootconfig_normal_src",
+ ] + bootconfigs_x86_64,
+ out: ["microdroid_gki-android16-6.12_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
@@ -247,6 +313,21 @@
}
prebuilt_etc {
+ name: "microdroid_gki-android16-6.12_initrd_debuggable",
+ // We don't have ramdisk for architectures other than x86_64 & arm64
+ src: ":empty_file",
+ arch: {
+ arm64: {
+ src: ":microdroid_gki-android16-6.12_initrd_debuggable_arm64",
+ },
+ x86_64: {
+ src: ":microdroid_gki-android16-6.12_initrd_debuggable_x86_64",
+ },
+ },
+ filename: "microdroid_gki-android16-6.12_initrd_debuggable.img",
+}
+
+prebuilt_etc {
name: "microdroid_initrd_normal",
// We don't have ramdisk for architectures other than x86_64 & arm64
src: ":empty_file",
@@ -293,3 +374,18 @@
},
filename: "microdroid_gki-android15-6.6_initrd_normal.img",
}
+
+prebuilt_etc {
+ name: "microdroid_gki-android16-6.12_initrd_normal",
+ // We don't have ramdisk for architectures other than x86_64 & arm64
+ src: ":empty_file",
+ arch: {
+ arm64: {
+ src: ":microdroid_gki-android16-6.12_initrd_normal_arm64",
+ },
+ x86_64: {
+ src: ":microdroid_gki-android16-6.12_initrd_normal_x86_64",
+ },
+ },
+ filename: "microdroid_gki-android16-6.12_initrd_normal.img",
+}
diff --git a/build/microdroid/microdroid_gki-android16-6.12.json b/build/microdroid/microdroid_gki-android16-6.12.json
new file mode 100644
index 0000000..57adb24
--- /dev/null
+++ b/build/microdroid/microdroid_gki-android16-6.12.json
@@ -0,0 +1,20 @@
+{
+ "kernel": "/apex/com.android.virt/etc/fs/microdroid_gki-android16-6.12_kernel",
+ "disks": [
+ {
+ "partitions": [
+ {
+ "label": "vbmeta_a",
+ "path": "/apex/com.android.virt/etc/fs/microdroid_vbmeta.img"
+ },
+ {
+ "label": "super",
+ "path": "/apex/com.android.virt/etc/fs/microdroid_super.img"
+ }
+ ],
+ "writable": false
+ }
+ ],
+ "memory_mib": 256,
+ "platform_version": "~1.0"
+}