Android Bootmeth
Android provides a mechanism for booting its Operating System from eMMC storage, described on source.android.com.
Android has strong requirements about partitioning layout which are described here. Because multiple partitions are required, this bootmeth only operates on whole mmc devices which have a valid partition table.
When invoked on a bootdev, this bootmeth searches for the misc
partition in order
to read the boot mode, which can be one of following:
- Normal
Boot the regular Android Operating System.
- Recovery
Boot a slimmed down Recovery Operating System. Can be used to factory reset the device or to apply system updates.
- Bootloader
Stay in U-Boot and wait for fastboot commands from the host.
After the boot mode has been determined, this bootmeth will read the slot suffix
from the misc
partition. For details about slots, see
the AOSP documentation.
When both the boot mode and the slot suffix are known, the bootflow is created.
When the bootflow is booted, the bootmeth reads the kernel, the boot arguments and
the vendor ramdisk.
It then boots the kernel using bootm. The relevant devicetree blob is extracted
from the boot
partition based on the adtb_idx
environment variable.
The compatible string “u-boot,android” is used for the driver. It is present if CONFIG_BOOTMETH_ANDROID is enabled.