Merge "Add support for passing bootloader and disk images."
diff --git a/microdroid/Android.bp b/microdroid/Android.bp
index dc9a4bb..d0c6675 100644
--- a/microdroid/Android.bp
+++ b/microdroid/Android.bp
@@ -56,6 +56,7 @@
         "apexd",
         "debuggerd",
         "linker",
+        "linkerconfig",
         "servicemanager",
         "tombstoned",
         "cgroups.json",
@@ -91,6 +92,26 @@
     installable: false, // avoid collision with system partition's init.rc
 }
 
+logical_partition {
+    name: "microdroid_super",
+    sparse: true,
+    // TODO(b/181107248): remove this hard-coded value
+    size: "104857600",
+    groups: [
+        {
+            name: "mygroup",
+            // TODO(b/181107248): remove this hard-coded value
+            size: "80000000",
+            partitions: [
+                {
+                    name: "system",
+                    filesystem: ":microdroid",
+                },
+            ],
+        },
+    ],
+}
+
 bootimg {
     name: "microdroid_boot-5.10",
     ramdisk_module: "microdroid_ramdisk-5.10",
@@ -158,7 +179,28 @@
             deps: ["virt_device_prebuilts_kernel_modules-5.10-x86_64"],
         },
     },
+    deps: [
+        "microdroid_fstab",
+    ],
+    base_dir: "first_stage_ramdisk",
     type: "compressed_cpio",
+    symlinks: [
+        {
+            target: "etc/fstab",
+            name: "first_stage_ramdisk/fstab.microdroid",
+        },
+        {
+            target: "first_stage_ramdisk/lib",
+            name: "lib",
+        },
+    ],
+}
+
+prebuilt_etc {
+    name: "microdroid_fstab",
+    src: "fstab",
+    filename: "fstab",
+    installable: false,
 }
 
 prebuilt_etc {
diff --git a/microdroid/fstab b/microdroid/fstab
new file mode 100644
index 0000000..494f5b4
--- /dev/null
+++ b/microdroid/fstab
@@ -0,0 +1 @@
+system /system ext4 noatime,ro,errors=panic wait,first_stage_mount,logical
diff --git a/microdroid/init.rc b/microdroid/init.rc
index 3ad22f8..9500f7c 100644
--- a/microdroid/init.rc
+++ b/microdroid/init.rc
@@ -14,11 +14,18 @@
 on early-init
     start ueventd
 
+    # Generate ld.config.txt
+    exec -- /system/bin/bootstrap/linkerconfig --target /linkerconfig
+    chmod 644 /linkerconfig/ld.config.txt
+
     # Run apexd-bootstrap so that APEXes that provide critical libraries
     # become available. Note that this is executed as exec_start to ensure that
     # the libraries are available to the processes started after this statement.
     exec_start apexd-bootstrap
 
+    # Generate linker config based on apex mounted in bootstrap namespace
+    update_linker_config
+
 on init
     # Mount binderfs
     mkdir /dev/binderfs
diff --git a/microdroid/uboot-env.txt b/microdroid/uboot-env.txt
index 0ef66b8..cdd2c19 100644
--- a/microdroid/uboot-env.txt
+++ b/microdroid/uboot-env.txt
@@ -1,7 +1,11 @@
 # Static u-boot environment variables for microdroid. See b/180481192
 
+# Boot the device following the Android boot procedure
 bootcmd=boot_android virtio -
 
+# Kernel commandlines
+bootargs=rdinit=/bin/init_vendor panic=-1 androidboot.first_stage_console=1 androidboot.hardware=microdroid androidboot.boot_devices=10000.pci
+
 # 0:2 is the misc partition
 bootdevice=0:2
 bootdelay=0
diff --git a/virtmanager/Android.bp b/virtmanager/Android.bp
index e22550c..5ff5db4 100644
--- a/virtmanager/Android.bp
+++ b/virtmanager/Android.bp
@@ -1,3 +1,7 @@
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 rust_binary {
     name: "virtmanager",
     crate_name: "virtmanager",
diff --git a/virtmanager/aidl/Android.bp b/virtmanager/aidl/Android.bp
index 2782d45..ebe5624 100644
--- a/virtmanager/aidl/Android.bp
+++ b/virtmanager/aidl/Android.bp
@@ -1,3 +1,7 @@
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 aidl_interface {
     name: "android.system.virtmanager",
     srcs: ["**/*.aidl"],