Pass adbd only when debug mode
If the VM is non-debuggable, com.android.adbd is unnecessary.
Bug: 205634664
Test: run vm with and without debug flag
Change-Id: I4893a0cdeac98bfaf938af9e6f258b42257bce63
diff --git a/virtualizationservice/src/payload.rs b/virtualizationservice/src/payload.rs
index ac8eec7..55eb19b 100644
--- a/virtualizationservice/src/payload.rs
+++ b/virtualizationservice/src/payload.rs
@@ -36,7 +36,8 @@
/// The list of APEXes which microdroid requires.
// TODO(b/192200378) move this to microdroid.json?
-const MICRODROID_REQUIRED_APEXES: [&str; 2] = ["com.android.adbd", "com.android.os.statsd"];
+const MICRODROID_REQUIRED_APEXES: [&str; 1] = ["com.android.os.statsd"];
+const MICRODROID_REQUIRED_APEXES_DEBUG: [&str; 1] = ["com.android.adbd"];
const APEX_INFO_LIST_PATH: &str = "/apex/apex-info-list.xml";
@@ -199,12 +200,13 @@
config_path: &str,
vm_payload_config: &VmPayloadConfig,
temporary_directory: &Path,
+ debug_level: DebugLevel,
) -> Result<DiskImage> {
let pm = PackageManager::new()?;
let apex_list = pm.get_apex_list(vm_payload_config.prefer_staged)?;
// collect APEX names from config
- let apexes = collect_apex_names(&apex_list, &vm_payload_config.apexes);
+ let apexes = collect_apex_names(&apex_list, &vm_payload_config.apexes, debug_level);
info!("Microdroid payload APEXes: {:?}", apexes);
let metadata_file = make_metadata_file(config_path, &apexes, temporary_directory)?;
@@ -257,7 +259,11 @@
}
// Collect APEX names from config
-fn collect_apex_names(apex_list: &ApexInfoList, apexes: &[ApexConfig]) -> Vec<String> {
+fn collect_apex_names(
+ apex_list: &ApexInfoList,
+ apexes: &[ApexConfig],
+ debug_level: DebugLevel,
+) -> Vec<String> {
// Process pseudo names like "{BOOTCLASSPATH}".
// For now we have following pseudo APEX names:
// - {BOOTCLASSPATH}: represents APEXes contributing "BOOTCLASSPATH" environment variable
@@ -274,6 +280,9 @@
.collect();
// Add required APEXes
apex_names.extend(MICRODROID_REQUIRED_APEXES.iter().map(|name| name.to_string()));
+ if debug_level != DebugLevel::NONE {
+ apex_names.extend(MICRODROID_REQUIRED_APEXES_DEBUG.iter().map(|name| name.to_string()));
+ }
apex_names.sort();
apex_names.dedup();
apex_names
@@ -294,6 +303,7 @@
&config.configPath,
vm_payload_config,
temporary_directory,
+ config.debugLevel,
)?);
vm_config.disks[1].partitions.push(Partition {