blob: c10f1bf910d035cda717958988224969fea7160f [file] [log] [blame] [view]
# Android Bootloader (ABL)
[ABL](https://source.android.com/docs/core/architecture/bootloader) is not a component of AVF, but
it plays a crucial role in loading the necessary AVF components and initializing them in a correct
way. This doc explains the responsibilities of ABL from the perspective of AVF.
## pVM firmware (pvmfw)
ABL is responsible for the followings:
* locating pvmfw binary from the pvmfw partition,
* verifying it as part of the [verified
boot](https://source.android.com/docs/security/features/verifiedboot) process,
* loading it into memory, and
* describing the region where pvmfw is loaded using DT and passing it to hypervisor.
See [ABL Support](../guest/pvmfw/README.md#android-bootloader-abl_support) for more detail.
ABL is also responsible for constructing the pvmfw configuration data. The data consists of the
following info:
* DICE chain (also known as BCC Handover)
* DTBO describing [debug policy](debug/README.md#debug-policy) (if available)
* DTBO describing [assignable devices](device_assignment.md) (if available)
* Reference DT carrying extra information that needs to be passed to the guest VM, e.g.:
* Hashtree digest of the
[microdroid-vendor.img](microdroid_vendor_modules.md#changes-in-abl).
See [Configuration Data](../guest/pvmfw/README.md#configuration-data) for more detail.
## Android
ABL is responsible for setting the following bootconfigs describing the status and capabilities of
the hypervisor.
* `androidboot.hypervisor.version`: free-form description of the hypervisor
* `androidboot.hypervisor.vm.supported`: whether traditional VMs (i.e. non-protected VMS) are
supported or not
* `androidboot.hypervisor.protected_vm.supported`: whether protected VMs are supported or not
Thee bootconfigs are converted into system properties by the init process.
See
[HypervisorProperties.prop](https://android.googlesource.com/platform/system/libsysprop/+/refs/heads/main/srcs/android/sysprop/HypervisorProperties.sysprop)
for more detail.