Run zipfuse in microdroid
zipfuse now runs in microdroid as a service. The source zip file path
and the mount point are fixed to /dev/block/by-name/microdroid-apk and
/mnt/apk, respectively.
To support that, microdroid_payload.json is amended to add
MicrodroidTestAppk.apk to the payload.img file. This eventually should
be done dynamically by the virt manager.
Bug: 186377508
Test: atest MicrodroidHostTestCases
Change-Id: I7a031ad442995dbd3cdc00a51a0e939c1589a7b2
diff --git a/microdroid/init.rc b/microdroid/init.rc
index f9ed986..3c46501 100644
--- a/microdroid/init.rc
+++ b/microdroid/init.rc
@@ -37,6 +37,9 @@
# Generate linker config based on apex mounted in bootstrap namespace
update_linker_config
+ mkdir /mnt/apk 0755 system system
+ start zipfuse
+
on init
# Mount binderfs
mkdir /dev/binderfs
diff --git a/microdroid/microdroid_file_contexts b/microdroid/microdroid_file_contexts
index 6d36e7c..369c700 100644
--- a/microdroid/microdroid_file_contexts
+++ b/microdroid/microdroid_file_contexts
@@ -366,6 +366,7 @@
/system/bin/migrate_legacy_obb_data\.sh u:object_r:migrate_legacy_obb_data_exec:s0
/system/bin/android\.frameworks\.automotive\.display@1\.0-service u:object_r:automotive_display_service_exec:s0
/system/bin/snapuserd u:object_r:snapuserd_exec:s0
+/system/bin/zipfuse u:object_r:zipfuse_exec:s0
#############################
# Vendor files
diff --git a/microdroid/microdroid_payload.json b/microdroid/microdroid_payload.json
index c5c49d0..287aabd 100644
--- a/microdroid/microdroid_payload.json
+++ b/microdroid/microdroid_payload.json
@@ -2,5 +2,9 @@
"system_apexes": [
"com.android.adbd",
"com.android.sdkext"
- ]
-}
\ No newline at end of file
+ ],
+ "apk": {
+ "name": "com.android.microdroid.test",
+ "path": "/apex/com.android.virt/app/MicrodroidTestApp/MicrodroidTestApp.apk"
+ }
+}