Remove idsig from the CompOS APEX
idsig is generated by virtualization service.
Bug: 211070105
Test: atest ComposHostTestCases
Change-Id: I3ffa6980f6aa09e12981fd17ea3760e6cad08549
diff --git a/compos/composd/src/instance_starter.rs b/compos/composd/src/instance_starter.rs
index 8189fe0..91a0e61 100644
--- a/compos/composd/src/instance_starter.rs
+++ b/compos/composd/src/instance_starter.rs
@@ -26,7 +26,7 @@
use compos_aidl_interface::binder::{ParcelFileDescriptor, Strong};
use compos_common::compos_client::{VmInstance, VmParameters};
use compos_common::{
- COMPOS_DATA_ROOT, INSTANCE_IMAGE_FILE, PRIVATE_KEY_BLOB_FILE, PUBLIC_KEY_FILE,
+ COMPOS_DATA_ROOT, IDSIG_FILE, INSTANCE_IMAGE_FILE, PRIVATE_KEY_BLOB_FILE, PUBLIC_KEY_FILE,
};
use log::{info, warn};
use std::env;
@@ -51,6 +51,7 @@
instance_name: String,
instance_root: PathBuf,
instance_image: PathBuf,
+ idsig: PathBuf,
key_blob: PathBuf,
public_key: PathBuf,
vm_parameters: VmParameters,
@@ -59,14 +60,16 @@
impl InstanceStarter {
pub fn new(instance_name: &str, vm_parameters: VmParameters) -> Self {
let instance_root = Path::new(COMPOS_DATA_ROOT).join(instance_name);
- let instant_root_path = instance_root.as_path();
- let instance_image = instant_root_path.join(INSTANCE_IMAGE_FILE);
- let key_blob = instant_root_path.join(PRIVATE_KEY_BLOB_FILE);
- let public_key = instant_root_path.join(PUBLIC_KEY_FILE);
+ let instance_root_path = instance_root.as_path();
+ let instance_image = instance_root_path.join(INSTANCE_IMAGE_FILE);
+ let idsig = instance_root_path.join(IDSIG_FILE);
+ let key_blob = instance_root_path.join(PRIVATE_KEY_BLOB_FILE);
+ let public_key = instance_root_path.join(PUBLIC_KEY_FILE);
Self {
instance_name: instance_name.to_owned(),
instance_root,
instance_image,
+ idsig,
key_blob,
public_key,
vm_parameters,
@@ -124,6 +127,8 @@
let _ = fs::create_dir(&self.instance_root);
self.create_instance_image(virtualization_service)?;
+ // Delete existing idsig file. Ignore error in case idsig doesn't exist.
+ let _ = fs::remove_file(&self.idsig);
let compos_instance = self.start_vm(virtualization_service)?;
let service = &compos_instance.service;
@@ -170,9 +175,13 @@
.write(true)
.open(&self.instance_image)
.context("Failed to open instance image")?;
- let vm_instance =
- VmInstance::start(virtualization_service, instance_image, &self.vm_parameters)
- .context("Starting VM")?;
+ let vm_instance = VmInstance::start(
+ virtualization_service,
+ instance_image,
+ &self.idsig,
+ &self.vm_parameters,
+ )
+ .context("Starting VM")?;
let service = vm_instance.get_service().context("Connecting to CompOS")?;
Ok(CompOsInstance { vm_instance, service, lazy_service_guard: Default::default() })
}