diff --git a/apex/Android.bp b/apex/Android.bp
index bb73630..5357566 100644
--- a/apex/Android.bp
+++ b/apex/Android.bp
@@ -29,7 +29,7 @@
         },
     },
     binaries: [
-        "assemble_cvd",
+        "mk_cdisk",
         "fd_server",
         "virtmanager",
         "vm",
diff --git a/microdroid/Android.bp b/microdroid/Android.bp
index 8ffb3cb..90d2678 100644
--- a/microdroid/Android.bp
+++ b/microdroid/Android.bp
@@ -298,3 +298,8 @@
         "microdroid",
     ],
 }
+
+prebuilt_etc {
+    name: "microdroid_cdisk.json",
+    src: "microdroid_cdisk.json",
+}
diff --git a/microdroid/README.md b/microdroid/README.md
index d737e22..08ed35b 100644
--- a/microdroid/README.md
+++ b/microdroid/README.md
@@ -24,6 +24,7 @@
 $ m microdroid_uboot_env
 $ m microdroid_vbmeta
 $ m microdroid_vbmeta_system
+$ m microdroid_cdisk.json
 ```
 
 ## Installing
@@ -38,14 +39,10 @@
 $ adb push $ANDROID_PRODUCT_OUT/system/etc/microdroid_vendor_boot-5.10.img /data/local/tmp/vendor_boot.img
 $ adb push $ANDROID_PRODUCT_OUT/system/etc/microdroid_vbmeta.img /data/local/tmp/vbmeta.img
 $ adb push $ANDROID_PRODUCT_OUT/system/etc/microdroid_vbmeta_system.img /data/local/tmp/vbmeta_system.img
-$ adb shell mkdir /data/local/tmp/cuttlefish_runtime.1/
-$ adb push $ANDROID_PRODUCT_OUT/system/etc/uboot_env.img /data/local/tmp/cuttlefish_runtime.1/
-$ adb shell mkdir -p /data/local/tmp/etc/cvd_config
-$ adb shell 'echo "{}" > /data/local/tmp/etc/cvd_config/cvd_config_phone.json'
-$ dd if=/dev/zero of=empty.img bs=4k count=600
-$ mkfs.ext4 -F empty.img
-$ adb push empty.img /data/local/tmp/userdata.img
-$ adb push empty.img /data/local/tmp/cache.img
+$ adb push $ANDROID_PRODUCT_OUT/system/etc/uboot_env.img /data/local/tmp
+$ adb push $ANDROID_PRODUCT_OUT/system/etc/microdroid_cdisk.json /data/local/tmp
+$ dd if=/dev/zero of=misc.img bs=4k count=256
+$ adb push misc.img /data/local/tmp/
 ```
 
 ## Running
@@ -54,8 +51,8 @@
 future, this shall be done via [`virtmanager`](../virtmanager/).
 
 ```
-$ adb shell 'HOME=/data/local/tmp; PATH=$PATH:/apex/com.android.virt/bin; assemble_cvd -protected_vm < /dev/null'
-$ adb shell 'cd /data/local/tmp; /apex/com.android.virt/bin/crosvm run --cid=5 --disable-sandbox --bios=bootloader --serial=type=stdout --disk=cuttlefish_runtime/os_composite.img'
+$ adb shell 'cd /data/local/tmp; /apex/com.android.virt/bin/mk_cdisk microdroid_cdisk.json os_composite.img'
+$ adb shell 'cd /data/local/tmp; /apex/com.android.virt/bin/crosvm run --cid=5 --disable-sandbox --bios=bootloader --serial=type=stdout --disk=os_composite.img'
 ```
 
 The CID in `--cid` parameter can be anything greater than 2 (`VMADDR_CID_HOST`).
diff --git a/microdroid/microdroid_cdisk.json b/microdroid/microdroid_cdisk.json
new file mode 100644
index 0000000..818a2b8
--- /dev/null
+++ b/microdroid/microdroid_cdisk.json
@@ -0,0 +1,48 @@
+{
+  "partitions": [
+    {
+      "label": "uboot_env",
+      "path": "uboot_env.img"
+    },
+    {
+      "label": "misc",
+      "path": "misc.img"
+    },
+    {
+      "label": "boot_a",
+      "path": "boot.img"
+    },
+    {
+      "label": "boot_b",
+      "path": "boot.img"
+    },
+    {
+      "label": "vendor_boot_a",
+      "path": "vendor_boot.img"
+    },
+    {
+      "label": "vendor_boot_b",
+      "path": "vendor_boot.img"
+    },
+    {
+      "label": "vbmeta_a",
+      "path": "vbmeta.img"
+    },
+    {
+      "label": "vbmeta_b",
+      "path": "vbmeta.img"
+    },
+    {
+      "label": "vbmeta_system_a",
+      "path": "vbmeta_system.img"
+    },
+    {
+      "label": "vbmeta_system_b",
+      "path": "vbmeta_system.img"
+    },
+    {
+      "label": "super",
+      "path": "super.img"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/tests/hostside/Android.bp b/tests/hostside/Android.bp
index c030e8d..a1e6cbb 100644
--- a/tests/hostside/Android.bp
+++ b/tests/hostside/Android.bp
@@ -8,22 +8,21 @@
     test_suites: ["device-tests"],
     libs: ["tradefed"],
     data: [
+        ":microdroid_cdisk.json",
         ":microdroid_super",
         ":microdroid_boot-5.10",
         ":microdroid_vendor_boot-5.10",
         ":microdroid_uboot_env",
         ":cuttlefish_crosvm_bootloader",
-        ":MicrodroidHostTestCase_EmptyImage",
+        ":MicrodroidHostTestCase_misc",
         ":microdroid_vbmeta",
         ":microdroid_vbmeta_system",
     ],
 }
 
 genrule {
-    name: "MicrodroidHostTestCase_EmptyImage",
-    tools: ["mke2fs"],
-    out: ["empty.img"],
-    cmd: "dd if=/dev/zero of=$(out) bs=4k count=600 &&" +
-        "$(location mke2fs) -t ext4 $(out)",
+    name: "MicrodroidHostTestCase_misc",
+    out: ["misc.img"],
+    cmd: "dd if=/dev/zero of=$(out) bs=4k count=256",
     visibility: ["//visibility:private"],
 }
diff --git a/tests/hostside/java/android/virt/test/MicrodroidTestCase.java b/tests/hostside/java/android/virt/test/MicrodroidTestCase.java
index c5c86a6..a521570 100644
--- a/tests/hostside/java/android/virt/test/MicrodroidTestCase.java
+++ b/tests/hostside/java/android/virt/test/MicrodroidTestCase.java
@@ -69,44 +69,44 @@
     @Test
     public void testMicrodroidBoots() throws Exception {
         // Prepare input files
+        pushFile("microdroid_cdisk.json", "microdroid_cdisk.json");
         pushFile("u-boot.bin", "bootloader");
         pushFile("microdroid_super.img", "super.img");
         pushFile("microdroid_boot-5.10.img", "boot.img");
         pushFile("microdroid_vendor_boot-5.10.img", "vendor_boot.img");
-        pushFile("uboot_env.img", "cuttlefish_runtime.1/uboot_env.img");
-        pushFile("empty.img", "userdata.img");
+        pushFile("uboot_env.img", "uboot_env.img");
+        pushFile("misc.img", "misc.img");
         pushFile("microdroid_vbmeta.img", "vbmeta.img");
         pushFile("microdroid_vbmeta_system.img", "vbmeta_system.img");
-        pushFile("empty.img", "cache.img");
-        getDevice().executeShellCommand("mkdir -p " + TEST_ROOT + "etc/cvd_config");
-        getDevice().pushString("{}", TEST_ROOT + "etc/cvd_config/cvd_config_phone.json");
 
-        // Run assemble_cvd to create os_composite.img
-        getDevice().executeShellCommand("HOME=" + TEST_ROOT + "; "
-                + "PATH=$PATH:" + VIRT_APEX + "bin; "
-                + VIRT_APEX + "bin/assemble_cvd -protected_vm < /dev/null");
+        // Create os_composite.img
+        String makeOsCompositeCmd =
+                String.format(
+                        "cd %s; %sbin/mk_cdisk microdroid_cdisk.json os_composite.img",
+                        TEST_ROOT, VIRT_APEX);
+        getDevice().executeShellCommand(makeOsCompositeCmd);
 
         // Make sure that os_composite.img is created
-        final String compositeImg = TEST_ROOT + "cuttlefish_runtime/os_composite.img";
+        final String compositeImg = TEST_ROOT + "/os_composite.img";
         CommandResult result = getDevice().executeShellV2Command("du -b " + compositeImg);
         assertThat(result.getExitCode(), is(0));
         assertThat(result.getStdout(), is(not("")));
 
         // Start microdroid using crosvm
         ExecutorService executor = Executors.newFixedThreadPool(1);
-        executor.execute(() -> {
-            try {
-                getDevice().executeShellV2Command("cd " + TEST_ROOT + "; "
-                        + VIRT_APEX + "bin/crosvm run "
-                        + "--cid=" + TEST_VM_CID + " "
-                        + "--disable-sandbox "
-                        + "--bios=bootloader "
-                        + "--serial=type=syslog "
-                        + "--disk=cuttlefish_runtime/os_composite.img");
-            } catch (Exception e) {
-                throw new RuntimeException(e);
-            }
-        });
+        String runMicrodroidCmd =
+                String.format(
+                        "cd %s; %sbin/crosvm run --cid=%d --disable-sandbox --bios=bootloader"
+                                + " --serial=type=syslog --disk=os_composite.img",
+                        TEST_ROOT, VIRT_APEX, TEST_VM_CID);
+        executor.execute(
+                () -> {
+                    try {
+                        getDevice().executeShellV2Command(runMicrodroidCmd);
+                    } catch (Exception e) {
+                        throw new RuntimeException(e);
+                    }
+                });
         // .. and wait for microdroid to boot
         // TODO(jiyong): don't wait too long. We can wait less by monitoring log from microdroid
         Thread.sleep(MICRODROID_BOOT_TIMEOUT_MILLIS);
