Add VM ID database and maintenance functionality
Convert `VirtualizationServiceInternal` to support both the
`IVirtualizationServiceInternal` interface and (optionally) the
`IVirtualizationMaintenance` interface.
Support for the latter has state held in a `maintenance::State` item,
holding both:
- A reference to the device's Secretkeeper instance
- An SQLite database of VM IDs and the corresponding (user_id, app_id).
The latter is implemented in a new maintenance::vmdb submodule.
Bug: 294177871
Test: virtualizationservice_test
Change-Id: I0c2f482252bc97dfdb75dd2e3a43883ab0eb3a77
diff --git a/virtualizationservice/Android.bp b/virtualizationservice/Android.bp
index 5dd1e0f..fc7fcd2 100644
--- a/virtualizationservice/Android.bp
+++ b/virtualizationservice/Android.bp
@@ -5,7 +5,10 @@
rust_defaults {
name: "virtualizationservice_defaults",
crate_name: "virtualizationservice",
- defaults: ["avf_build_flags_rust"],
+ defaults: [
+ "avf_build_flags_rust",
+ "secretkeeper_use_latest_hal_aidl_rust",
+ ],
edition: "2021",
srcs: ["src/main.rs"],
// Only build on targets which crosvm builds on.
@@ -36,11 +39,13 @@
"libhypervisor_props",
"liblazy_static",
"liblibc",
+ "liblibsqlite3_sys",
"liblog_rust",
"libnix",
"libopenssl",
"librand",
"librkpd_client",
+ "librusqlite",
"librustutils",
"libstatslog_virtualization_rust",
"libtombstoned_client_rust",
@@ -67,7 +72,10 @@
rust_test {
name: "virtualizationservice_test",
- defaults: ["virtualizationservice_defaults"],
+ defaults: [
+ "authgraph_use_latest_hal_aidl_rust",
+ "virtualizationservice_defaults",
+ ],
test_suites: ["general-tests"],
data: [
":test_rkp_cert_chain",