Add a parameter for extra apks to payload config
Users can pass extra apks and corresponding idsigs to the VM, by setting
extra_apks property to the payload config.
Bug: 205224817
Test: add extra_apks, vm run-app, see /dev/block/by-name/extra-apk-0 and
/dev/block/by-name/extra-idsig-0
Change-Id: I7908788a163d6ff7b90bb008fc326eb23d1611bb
diff --git a/vm/src/main.rs b/vm/src/main.rs
index 87bcda7..d53305b 100644
--- a/vm/src/main.rs
+++ b/vm/src/main.rs
@@ -33,6 +33,9 @@
const VIRTUALIZATION_SERVICE_BINDER_SERVICE_IDENTIFIER: &str =
"android.system.virtualizationservice";
+#[derive(Debug)]
+struct Idsigs(Vec<PathBuf>);
+
#[derive(StructOpt)]
#[structopt(no_version, global_settings = &[AppSettings::DisableVersion])]
enum Opt {
@@ -73,6 +76,10 @@
/// in the VM config file.
#[structopt(short, long)]
mem: Option<u32>,
+
+ /// Paths to extra idsig files.
+ #[structopt(long)]
+ extra_idsigs: Vec<PathBuf>,
},
/// Run a virtual machine
Run {
@@ -138,20 +145,30 @@
.context("Failed to find VirtualizationService")?;
match opt {
- Opt::RunApp { apk, idsig, instance, config_path, daemonize, console, log, debug, mem } => {
- command_run_app(
- service,
- &apk,
- &idsig,
- &instance,
- &config_path,
- daemonize,
- console.as_deref(),
- log.as_deref(),
- debug,
- mem,
- )
- }
+ Opt::RunApp {
+ apk,
+ idsig,
+ instance,
+ config_path,
+ daemonize,
+ console,
+ log,
+ debug,
+ mem,
+ extra_idsigs,
+ } => command_run_app(
+ service,
+ &apk,
+ &idsig,
+ &instance,
+ &config_path,
+ daemonize,
+ console.as_deref(),
+ log.as_deref(),
+ debug,
+ mem,
+ &extra_idsigs,
+ ),
Opt::Run { config, daemonize, console } => {
command_run(service, &config, daemonize, console.as_deref(), /* mem */ None)
}