Use mk_cdisk instead of assemble_cvd
mk_cdisk is a tool to create a composite disk image. It can be used to
create other kinds of composite disks as well as os_composite.os which
was created by assemble_cvd before.
For example, if we want to pass host apexes to microdroid we can pass
them via a composite disk referencing host apex files.
Bug: 181093750
Test: running microdroid VM following updated microdroid/README.md
TEst: MicrodroidTestCase
Change-Id: Ief6468564da9eb78c6729ae64a218811919b3ae0
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