Skip to content

ELF Variant 1

Pre-release
Pre-release
Compare
Choose a tag to compare
@imbushuo imbushuo released this 31 Mar 00:38

I've updated my boot-shim (GitHub:imbushuo/boot-shim) to enable bootstrapping of random ARM32 ELF applications in Windows Boot Manager (UEFI) environment. There are a few requirements for such applications:

  • There must be a LOAD section has p_paddr and p_vaddr matches program entry point address (e_entry).
  • LOAD section must have p_paddr equals to p_vaddr (identity mapping requirements).
  • LOAD section must reside in device's usable memory region (not TZ apps, FrameBuffer, etc.) That means p_paddr must larger or equal (not likely) to device's memory base, and p_addr + p_memsz must not go out of device's memory region.
  • LOAD section must have p_memsz equals to p_filesz.
  • Only first LOAD section that meets these requirements will be loaded into memory.
  • e_machine must be EM_ARM.
  • e_type must be ET_EXEC.
  • Has name of emmc_appsboot.mbn in a firmware-recognized partition (it will try all partitions and use the first one available)

Currently post-processed Little Kernel meets these requirements (use the tool signlk from CodeAurora/Linaro). It boots LK on Lumia 950XL. Feedback welcomed.