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"
+  }
+}