put constraints on vendor VM instance IDs and allocated instance IDs
Vendor IDs must start with FFFFFFFF and allocated IDs must start with
77777777.
We don't yet have a good strategy for avoiding instance ID collisions,
esp. across android partitions. This is just a stop gap to ensure we
have some options for solving the problem later.
Bug: 364629416
Test: TH
Change-Id: Icfe4b8c1fb20f3c825c33287c7446fceb7e88916
diff --git a/android/virtualizationservice/src/aidl.rs b/android/virtualizationservice/src/aidl.rs
index 1646117..e26cd4f 100644
--- a/android/virtualizationservice/src/aidl.rs
+++ b/android/virtualizationservice/src/aidl.rs
@@ -489,6 +489,9 @@
id.try_fill(&mut rand::thread_rng())
.context("Failed to allocate instance_id")
.or_service_specific_exception(-1)?;
+ // Randomly allocated IDs always start with all 7s to avoid colliding with statically
+ // assigned IDs.
+ id[..4].fill(0x77);
let uid = get_calling_uid();
info!("Allocated a VM's instance_id: {:?}..., for uid: {:?}", &hex::encode(id)[..8], uid);
self.try_updating_sk_state(&id);