Add instance creation to composd.
At startup we validate the files needed for the current instance exist
and are valid; if anything goes wrong we re-create them.
Bug: 186126194
Test: Manual, via composd_cmd.
Change-Id: Iaf19a74df14a91436c4cb4435f0286fa09307db8
diff --git a/compos/composd/src/composd_main.rs b/compos/composd/src/composd_main.rs
index 71e8125..3bd4121 100644
--- a/compos/composd/src/composd_main.rs
+++ b/compos/composd/src/composd_main.rs
@@ -22,8 +22,10 @@
mod odrefresh;
mod service;
+use crate::instance_manager::InstanceManager;
use android_system_composd::binder::{register_lazy_service, ProcessState};
use anyhow::{Context, Result};
+use compos_common::compos_client::VmInstance;
use log::{error, info};
fn try_main() -> Result<()> {
@@ -33,8 +35,10 @@
ProcessState::start_thread_pool();
- let service = service::new_binder();
- register_lazy_service("android.system.composd", service.as_binder())
+ let virtualization_service = VmInstance::connect_to_virtualization_service()?;
+ let instance_manager = InstanceManager::new(virtualization_service);
+ let composd_service = service::new_binder(instance_manager);
+ register_lazy_service("android.system.composd", composd_service.as_binder())
.context("Registering service")?;
info!("Registered service, joining threadpool");