iBoot
iBoot is the stage 2 bootloader for all Apple products. It replaces the old bootloader, BootX. Compared with its predecessor, iBoot improves authentication performed in the boot chain.
Developer(s) | Apple Inc. |
---|---|
Operating system | Darwin, macOS, iPadOS and iOS |
Platform | x86, ARM |
Type | Boot loader |
License | Proprietary software |
For x86-based Macs, the boot process starts by running code stored in secured UEFI Boot ROM (stage 1). Boot ROM has two primary responsibilities: to initialize system hardware and to select an operating system to run (the POST and UEFI component). For ARM-based Macs, the Boot ROM does not include UEFI.
For iOS, iPadOS and ARM macOS, the boot process starts by running the device's Boot ROM. The Boot ROM loads the Low-Level Bootloader (LLB), which is the stage 1 bootloader and loads iBoot. If all goes well, iBoot will then proceed to load the iOS, iPadOS or macOS kernel as well as the rest of the operating system. If the iBoot fails to load or fails to verify iOS, iPadOS or macOS, the bootloader jumps to DFU (Device Firmware Update) mode; otherwise it loads the remaining kernel modules.
On x86 macOS, iBoot is located in /System/Library/CoreServices/boot.efi
. Once the kernel and all drivers necessary for booting are loaded, the boot loader starts the kernel’s initialization procedure. At this point, enough drivers are loaded for the kernel to find the root device.