Skip to content

Draft: starqltechn: automate dualbooting with u-boot

Dual boot PostmarketOS and Android with u-boot! It works by placing an additional u-boot FIT image, and a script into overridden initramfs. Mentioned script is used to find and select image to boot. User should enable dual-boot explicitly by enabling commented deviceinfo options, and placing vendor boot image into device /boot directory, running 'pmbootstrap init' and specifying vendor boot image location, if building locally.

deviceinfo_bootimg_override_initramfs:

  • add android_boot_image.itb - u-boot FIT image assembled, using extracted kernel and ramdisk from vendor image.
  • add find_image_and_boot.itb - u-boot FIT image with a script to find and boot needed image.

Set couple new options:

  • deviceinfo_bootimg_override_header_info_using_vendor_image="true" This overrides boot image header values, written in deviceinfo, by extracted values from vendor image. This mainly needed to trick trustzone.

  • deviceinfo_bootimg_vendor_android_boot_image="vendor_boot.img" We're counting on vendor image to be on device's /boot directory in a file with that name.

  • deviceinfo_bootimg_vendor_device_tree_identifiers="qcom,msm-id\s=\s<0x141\s0x20001>; qcom,board-id\s=\s<0x08\s0x0e>;" Identifiers to find a dtb, used by stock bootloader in vendor's boot image file.

See also related MRs: mkinitifs boot-deploy

Merge request reports