1. XBL¶
The second-stage bootloader (XBL, loaded and authenticated by PBL):
structural reverse engineering of xbl_a.bin (LUN1) and its companion
images, and the bounded hand-off contract XBL presents to ABL. The
boot-chain and exception-level narrative is in Boot chain and exception-level hand-off (PBL → XBL → ABL); the
signing chain is in Secure boot and image signing.
1.1. Container and segment layout¶
xbl_a.bin is an AArch64 ELF EXEC, entry ``0x14817908``, 16
program headers, 0x380000 bytes on disk. It executes largely from
IMEM/SRAM (0x146xxxxx–0x1497xxxx) plus DDR working windows
(0x807xxxxx), and carries the UEFI firmware volume to be placed at
0x9FC00000.
PH |
vaddr |
file size |
flags |
role |
|---|---|---|---|---|
0 |
— ( |
|
|
MBN header + per-segment SHA-384 hash table |
1 |
|
|
|
boot metadata (UEFI region) |
2 |
|
|
|
XBLCore / SBL loader code (entry |
3–8, 10 |
|
(bss/data) |
|
XBLCore data / heap / stacks (IMEM + |
7 |
|
|
|
EL1→EL3 SMC gateway — The EL3 “Sec” monitor and the EL1 hand-off |
9 |
|
|
|
runtime GOT / cross-module PLT region — Charger-type detection and the unreachable fedl/LED branch |
11 |
|
|
|
embedded UEFI firmware volume — Embedded UEFI firmware volume, Platform config (uefiplat.cfg) |
12 |
|
|
|
XBL “Sec” — EL3 secure monitor (entry |
13 |
|
|
|
SBL1/charger/ |
14–15 |
|
(bss/data) |
|
DDR working data |
Two companion partitions carry XBL-adjacent state, documented on their own
pages: the signed xbl_config mini-archive (Companion image — xbl_config) and the
mutable cdt/ddr/uefivarstore partitions (Platform state partitions: cdt, ddr, uefivarstore).
1.2. Signing envelope¶
The image is authenticated by its MBN hash segment (PH0: header +
per-segment SHA-384 table) plus a signature over that segment. On this unit
the chain is the public Qualcomm test key and SEC_BOOT is not
fused, so the xbl_a envelope is re-computable — except, by inference,
the EL3 “Sec” segment (PH12): its structural match to the Firehose
programmer’s nested EL3 monitor, which Firehose fuse read and secure-boot confirmation proves is
signature-enforced unconditionally, suggests the same independent
enforcement here, though this has not been directly tested against XBL Sec
itself (Boot chain and exception-level hand-off (PBL → XBL → ABL)). Cert
subjects, fingerprints and the ECDSA-P384/SHA-384 algorithm are in
Secure boot and image signing.
- 1.2.1. XBL → ABL hand-off contract (bounded)
- 1.2.2. The EL3 “Sec” monitor and the EL1 hand-off
- 1.2.3. Embedded UEFI firmware volume
- 1.2.4. Platform config (
uefiplat.cfg) - 1.2.5. Companion image —
xbl_config - 1.2.6. Platform state partitions: cdt, ddr, uefivarstore
- 1.2.7. Charger-type detection and the unreachable fedl/LED branch