microdroid: create payload disk image with system apexes
Virtualizationservice creates a pyload disk image only for "microdroid"
and it adds necessary system apexes automatically.
Removed those apexes from vm_config.json files in testapk and compos
apk.
Bug: 190503456
Bug: 192200378
Test: adb root && adb shell setenforce 0
Test: adb shell /apex/com.android.virt/bin/vm run-app \
/apex/com.android.compos/app/CompOSPayloadApp/CompOSPayloadApp.apk \
/apex/com.android.compos/etc/CompOSPayloadApp.apk.idsig \
assets/vm_config.json
Change-Id: I7d472ea0876f2571ca6767e2ba0b5773a951368b
diff --git a/compos/Android.bp b/compos/Android.bp
index 0cb6894..1eb6716 100644
--- a/compos/Android.bp
+++ b/compos/Android.bp
@@ -83,10 +83,3 @@
prefer_rlib: true,
apex_available: ["com.android.compos"],
}
-
-// TODO(b/190503456) Remove this when vm/virtualizationservice generates payload.img from vm_config
-prebuilt_etc {
- name: "compos_payload_config",
- src: "payload_config.json",
- filename: "payload_config.json",
-}
diff --git a/compos/apex/Android.bp b/compos/apex/Android.bp
index 9942e09..1fffa2e 100644
--- a/compos/apex/Android.bp
+++ b/compos/apex/Android.bp
@@ -48,6 +48,6 @@
],
prebuilts: [
- "compos_payload_config",
+ "CompOSPayloadApp.apk.idsig",
],
}
diff --git a/compos/apk/Android.bp b/compos/apk/Android.bp
index c6192b9..c5d0c31 100644
--- a/compos/apk/Android.bp
+++ b/compos/apk/Android.bp
@@ -3,7 +3,42 @@
}
android_app {
- name: "CompOSPayloadApp",
+ name: "CompOSPayloadApp.unsigned",
sdk_version: "current",
apex_available: ["com.android.compos"],
}
+
+// TODO(b/190409306) this is temporal until we have a solid way to pass merkle tree
+java_genrule {
+ name: "CompOSPayloadApp.signing",
+ out: [
+ "CompOSPayloadApp.apk",
+ "CompOSPayloadApp.apk.idsig",
+ ],
+ srcs: [":CompOSPayloadApp.unsigned"],
+ tools: ["apksigner"],
+ tool_files: ["test.keystore"],
+ cmd: "$(location apksigner) sign " +
+ "--ks $(location test.keystore) " +
+ "--ks-pass=pass:testkey --key-pass=pass:testkey " +
+ "--in $(in) " +
+ "--out $(genDir)/CompOSPayloadApp.apk",
+ // $(genDir)/MicrodroidTestApp.apk.idsig is generated implicitly
+}
+
+android_app_import {
+ name: "CompOSPayloadApp",
+ // Make sure the build system doesn't try to resign the APK
+ dex_preopt: {
+ enabled: false,
+ },
+ apk: ":CompOSPayloadApp.signing{CompOSPayloadApp.apk}",
+ presigned: true,
+ filename: "CompOSPayloadApp.apk",
+ apex_available: ["com.android.compos"],
+}
+
+prebuilt_etc {
+ name: "CompOSPayloadApp.apk.idsig",
+ src: ":CompOSPayloadApp.signing{CompOSPayloadApp.apk.idsig}",
+}
diff --git a/compos/apk/assets/vm_config.json b/compos/apk/assets/vm_config.json
index a8dca71..f9f1f90 100644
--- a/compos/apk/assets/vm_config.json
+++ b/compos/apk/assets/vm_config.json
@@ -13,22 +13,10 @@
},
"apexes": [
{
- "name": "com.android.adbd"
- },
- {
"name": "com.android.art"
},
{
"name": "com.android.compos"
- },
- {
- "name": "com.android.i18n"
- },
- {
- "name": "com.android.os.statsd"
- },
- {
- "name": "com.android.sdkext"
}
]
}
\ No newline at end of file
diff --git a/compos/apk/test.keystore b/compos/apk/test.keystore
new file mode 100644
index 0000000..2f024d8
--- /dev/null
+++ b/compos/apk/test.keystore
Binary files differ
diff --git a/compos/payload_config.json b/compos/payload_config.json
deleted file mode 100644
index 588ccca..0000000
--- a/compos/payload_config.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "apk": {
- "path": "/apex/com.android.compos/app/CompOSPayloadApp/CompOSPayloadApp.apk",
- "name": "com.android.compos.payload"
- },
- "system_apexes": [
- "com.android.adbd",
- "com.android.art",
- "com.android.compos",
- "com.android.i18n",
- "com.android.os.statsd",
- "com.android.sdkext"
- ],
- "payload_config_path": "/mnt/apk/assets/vm_config.json"
-}
\ No newline at end of file