Split CompOS interface in two
One service for system server (which will become stable), one for
internal calls from odrefresh (which will probably go away soon).
Test: compos_cmd forced-compile-test
Bug: 199147668
Change-Id: Ia7024e18fe1708eafb673a68b944c3f011715f11
diff --git a/compos/composd/src/composd_main.rs b/compos/composd/src/composd_main.rs
index 671ed16..f9751c3 100644
--- a/compos/composd/src/composd_main.rs
+++ b/compos/composd/src/composd_main.rs
@@ -21,6 +21,7 @@
mod compilation_task;
mod instance_manager;
mod instance_starter;
+mod internal_service;
mod odrefresh;
mod service;
mod util;
@@ -30,6 +31,7 @@
use anyhow::{Context, Result};
use compos_common::compos_client::VmInstance;
use log::{error, info};
+use std::sync::Arc;
fn try_main() -> Result<()> {
android_logger::init_once(
@@ -39,12 +41,16 @@
ProcessState::start_thread_pool();
let virtualization_service = VmInstance::connect_to_virtualization_service()?;
- let instance_manager = InstanceManager::new(virtualization_service);
- let composd_service = service::new_binder(instance_manager);
+ let instance_manager = Arc::new(InstanceManager::new(virtualization_service));
+ let composd_service = service::new_binder(instance_manager.clone());
register_lazy_service("android.system.composd", composd_service.as_binder())
- .context("Registering service")?;
+ .context("Registering composd service")?;
- info!("Registered service, joining threadpool");
+ let internal_service = internal_service::new_binder(instance_manager);
+ register_lazy_service("android.system.composd.internal", internal_service.as_binder())
+ .context("Registering internal service")?;
+
+ info!("Registered services, joining threadpool");
ProcessState::join_thread_pool();
info!("Exiting");