Add microdroid_16k kernel

Since microdroid_16k kernel uses the same initrd as regulard microdroid
kernel, I've added a small hack in payload.rs. If we want, we can add a
more generic solution in a follow-up patch.

Additionally, since 16k kernels are only supported for 16k kernel builds
(trying to build x86_64 16k kernel on android15-6.6 branch results in
"ERROR: 16k pages not supported on x86_64."), the microdroid_16k related
soong modules are only enabled for products that set
TARGET_BOOTS_16K := true. This is needed to make checkbuild on x86_64
products happy.

Test: adb shell /apex/com.android.virt/bin info
Test: atest virtualizationmanager_device_test
Change-Id: Id74da6bb73093cc5ee60c58d99a8c218a31468c9
diff --git a/android/virtmgr/src/aidl.rs b/android/virtmgr/src/aidl.rs
index 5dac07f..c1b4d86 100644
--- a/android/virtmgr/src/aidl.rs
+++ b/android/virtmgr/src/aidl.rs
@@ -2237,6 +2237,14 @@
     }
 
     #[test]
+    fn test_extract_os_name_from_microdroid_16k_config() -> Result<()> {
+        test_extract_os_name_from_config_path(
+            Path::new("/apex/com.android.virt/etc/microdroid_16k.json"),
+            Some("microdroid_16k"),
+        )
+    }
+
+    #[test]
     fn test_extract_os_name_from_microdroid_gki_config() -> Result<()> {
         test_extract_os_name_from_config_path(
             Path::new("/apex/com.android.virt/etc/microdroid_gki-android14-6.1.json"),
diff --git a/android/virtmgr/src/payload.rs b/android/virtmgr/src/payload.rs
index 5811314..244e112 100644
--- a/android/virtmgr/src/payload.rs
+++ b/android/virtmgr/src/payload.rs
@@ -449,6 +449,8 @@
         DebugLevel::FULL => "debuggable",
         _ => return Err(anyhow!("unsupported debug level: {:?}", config.debugLevel)),
     };
+    // TODO(ioffe): generalise this
+    let os_name = if os_name == "microdroid_16k" { "microdroid" } else { os_name };
     let initrd = format!("/apex/com.android.virt/etc/{os_name}_initrd_{debug_suffix}.img");
     vm_config.initrd = Some(open_parcel_file(Path::new(&initrd), false)?);