Merge "instance.img is actually added as a writable partition"
diff --git a/microdroid/microdroid.json b/microdroid/microdroid.json
index ee3a737..da82289 100644
--- a/microdroid/microdroid.json
+++ b/microdroid/microdroid.json
@@ -30,10 +30,11 @@
"partitions": [
{
"label": "uboot_env",
- "paths": ["/apex/com.android.virt/etc/uboot_env.img"]
+ "paths": ["/apex/com.android.virt/etc/uboot_env.img"],
+ "writable": false
}
],
- "writable": false
+ "writable": true
}
],
"memory_mib": 2048
diff --git a/tests/hostside/java/android/virt/test/MicrodroidTestCase.java b/tests/hostside/java/android/virt/test/MicrodroidTestCase.java
index 8afc287..c05a841 100644
--- a/tests/hostside/java/android/virt/test/MicrodroidTestCase.java
+++ b/tests/hostside/java/android/virt/test/MicrodroidTestCase.java
@@ -16,7 +16,6 @@
package android.virt.test;
-import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
@@ -54,6 +53,9 @@
assertThat(runOnMicrodroid("ls", apkPartition), is(apkPartition));
final String apkIdsigPartition = "/dev/block/by-name/microdroid-apk-idsig";
assertThat(runOnMicrodroid("ls", apkIdsigPartition), is(apkIdsigPartition));
+ // Check the vm-instance partition as well
+ final String vmInstancePartition = "/dev/block/by-name/vm-instance";
+ assertThat(runOnMicrodroid("ls", vmInstancePartition), is(vmInstancePartition));
// Check if the native library in the APK is has correct filesystem info
final String[] abis = runOnMicrodroid("getprop", "ro.product.cpu.abilist").split(",");
diff --git a/virtualizationservice/src/aidl.rs b/virtualizationservice/src/aidl.rs
index 19e4877..8c5eb97 100644
--- a/virtualizationservice/src/aidl.rs
+++ b/virtualizationservice/src/aidl.rs
@@ -362,8 +362,7 @@
) -> Result<VirtualMachineRawConfig> {
let apk_file = clone_file(config.apk.as_ref().unwrap())?;
let idsig_file = clone_file(config.idsig.as_ref().unwrap())?;
- // TODO(b/193504400) pass this to crosvm
- let _instance_file = clone_file(config.instanceImage.as_ref().unwrap())?;
+ let instance_file = clone_file(config.instanceImage.as_ref().unwrap())?;
let config_path = &config.configPath;
let mut apk_zip = ZipArchive::new(&apk_file)?;
@@ -395,6 +394,7 @@
temporary_directory,
apk_file,
idsig_file,
+ instance_file,
apexes,
&mut vm_config,
)?;
diff --git a/virtualizationservice/src/payload.rs b/virtualizationservice/src/payload.rs
index 28ef502..a176e71 100644
--- a/virtualizationservice/src/payload.rs
+++ b/virtualizationservice/src/payload.rs
@@ -162,6 +162,7 @@
temporary_directory: &Path,
apk_file: File,
idsig_file: File,
+ instance_file: File,
mut apexes: Vec<ApexConfig>,
vm_config: &mut VirtualMachineRawConfig,
) -> Result<()> {
@@ -189,5 +190,12 @@
});
}
+ // instance image is at the second partition in the second disk.
+ vm_config.disks[1].partitions.push(Partition {
+ label: "vm-instance".to_owned(),
+ images: vec![ParcelFileDescriptor::new(instance_file)],
+ writable: true,
+ });
+
Ok(())
}