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.

iBoot
Developer(s)Apple Inc.
Operating systemDarwin, macOS, iPadOS and iOS
Platformx86, ARM
TypeBoot loader
LicenseProprietary 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.

Memory safety

Apple has modified the C compiler toolchain that is used to build iBoot in order to advance memory safety since iOS 14. This advancement is designed to mitigate entire classes of common memory corruption vulnerabilities such as buffer overflows, heap exploitations, type confusion vulnerabilities, and use-after-free attacks. These modifications can potentially prevent attackers from successfully escalating their privileges to run malicious code, such as an attack involving arbitrary code execution.

Source code leak incident

in 2018, a portion of iBoot source code for iOS 9 was leaked on GitHub, Apple then issued a copyright takedown request (DMCA) to GitHub to remove the repository. It was believed an Apple employee was responsible for the leak. However, this was not confirmed by Apple.

References

Tags:

Iboot Memory safetyIboot Source code leak incidentIbootApple IncBootX (Apple)Bootloader

🔥 Trending searches on Wiki English:

Russo-Ukrainian WarDonald GloverHenry VIIILisa (rapper)Stephen HawkingC (programming language)Liam NeesonX (2022 film)LondonDan HurleyThe Mandalorian (season 3)Snoop Dogg2023 Covenant School shootingEurovision Song Contest 2023United StatesAnnie LennoxRic FlairRolling Fork, MississippiDua LipaLaurence FishburneRoman Empire2023 World Baseball ClassicDave Stewart (musician and producer)EuropeThe MandalorianSian BrookeMarie AntoinetteJ. Robert OppenheimerPedro PascalOpinion polling for the next United Kingdom general electionSarah PaulsonDavid KoreshShadow and Bone (TV series)Lux PascalMalcolm XFall (2022 film)Jeremy RennerAmritpal SinghAtomic bombings of Hiroshima and NagasakiRamadanUEFA Champions LeagueShah Rukh KhanSlash (musician)2023 Africa Cup of Nations qualificationShou Zi ChewSylvester StalloneMarlon BrandoMarvel Cinematic UniverseMicrosoft 365Rupert MurdochAustin ButlerCass ElliotMarch 272023 Africa Cup of NationsN. T. Rama Rao Jr.Brooke ShieldsNazi GermanyStacy KeiblerMicrosoft Office MixJustine SiegemundBlythe DannerBlackpink2023 Miami OpenYouTube PremiumSuccession (TV series)Jason MomoaSalman KhanLuther (TV series)Scottish National PartySan Diego State Aztecs men's basketballList of highest-grossing filmsJason BatemanXXXXDiablo IVStephen Curry🡆 More