Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

iBoot

From Wikipedia, the free encyclopedia
Stage 1 and stage 2 bootloader for Apple devices
iBoot
DeveloperApple Inc.
Initial releaseJune 29, 2007
Stable release
iBoot-11881.80.57~171 (RELEASE, iOS 18.3 RC and iOS 18.3.1)
Preview release
iBoot-11881.80.57~107 (RELEASE, iOS 18.3 beta 1)
Operating systemDarwin,macOS,[1]iPadOS andiOS[2]
Platformx86,ARM
TypeBoot loader
LicenseProprietary software

iBoot is the stage 1 and stage 2bootloader foriPhones,iPads,Apple silicon-based Macs, and theT2 chip in Intel-basedMacs with such a chip.[3][4] Compared with its predecessor, iBoot improves authentication performed in the boot chain.[2]

For Intel-based Macs with a T2 chip, the boot process starts by running code on the T2 chip from theboot ROM. That boot ROM loads and runs iBoot onto the T2 chip; iBoot loads thebridgeOS operating system onto the T2 chip and starts it; bridgeOS loads theUEFI firmware; UEFI firmware starts the main Intel processor and completes thePower-On Self Test process. The UEFI firmware loads boot.efi, which loads and starts the macOS kernel.[4] For Intel-based Macs with a T2 chip, the UEFI firmware may be callediBoot UEFI.

For iPhones, iPads, and Apple silicon-based Macs, the boot process starts by running the device's boot ROM, which is integrated into the device'sSoC. On iPhones and iPads withA9 or earlier A-series processors, the boot ROM loads theLow-Level Bootloader (LLB), which is the stage 1 bootloader and loads iBoot, and LLB is stored on an EEPROM; on iPhones and iPads with A10 or later processors, as well as Apple silicon Macs, the boot ROM loads iBoot, and LLB and iBoot are stored on NAND flash or internal SSD, which is a NOR-less boot flow.[5][6] If all goes well, iBoot will then proceed to load theiOS,iPadOS ormacOS kernel as well as the rest of the operating system.[7][8][9] If iBoot fails to load or fails to verify iOS, iPadOS or macOS, the bootloader jumps to DFU (DeviceFirmwareUpdate)[10] mode; otherwise it loads the remainingkernel modules. Forarm64 devices with iBoot, it will "jump" to the kernelcache (the kernel itself wrapped in the Image4 format), and boot off of it.[2][11]

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.[12]

Build styles

[edit]
icon
This articleneeds additional citations forverification. Please helpimprove this article byadding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "IBoot" – news ·newspapers ·books ·scholar ·JSTOR
(July 2025) (Learn how and when to remove this message)

According to the leaked iBoot source code (from February 7, 2018),[13] in apps/iBoot/iBoot.mk, defines the valid build styles as "RELEASE", "DEVELOPMENT", "DEBUG", and "SECRET" when building a copy of iBoot.[citation needed] These build styles define specific information when the bootloader is compiled, such as adding more debugging commands for finding issues on a developmental device, or performing hardware tests using the iBoot command prompt over serial.

Meanings

[edit]

RELEASE - A release version

DEVELOPMENT - A build that is used on developmental hardware, allows access to some developmental tools, such as the 'diags' command.

DEBUG - A build used for debugging iOS and other lower-level components

Features

[edit]

iBoot features a command prompt when in recovery, DFU, or restore mode (it is also in "DEBUG" builds of iBoot, but was never seen in future builds). Command availability depends on the type of iBoot being used, especially the build style (can be RELEASE, DEVELOPMENT, DEBUG, SECRET, etc.).[citation needed]

When using iBoot's command prompt, the included commands are used to manage the behaviour, such as its boot arguments (internally called the "boot-args" in the NVRAM), or if the startup command (fsboot) should be used when iBoot is automatically loaded (known as auto-boot).[14][15]

Memory safety

[edit]

Apple has modified theC compilertoolchain that is used to build iBoot in order to advancememory safety sinceiOS 14. This advancement is designed to mitigate entire classes of common memory corruption vulnerabilities such asbuffer overflows,heap exploitations,type confusion vulnerabilities, anduse-after-free attacks. These modifications can potentially prevent attackers from successfullyescalating their privileges to run malicious code, such as an attack involvingarbitrary code execution.[16]

Source code leak incident

[edit]

In 2018, a portion of iBoot source code foriOS 9 was leaked onGitHub for variousiPhone,iPad,iPod touch, andApple Watch models,[17] 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. It is known that a user by the name of "ZioShiba" was responsible for the publication of the iBoot source code.

History

[edit]
iBoot-87.1, the earliest known version of iBoot running on production hardware over serial. Screenshot by mcg29 onTwitter.

The earliest known version of iBoot was iBoot-87.1, seen on very early prototypes during the iPhone's production in 2006–2007.[18] It had the same features as the first known version of iBoot (iBoot-99), except it not having features before the final release. This version of iBoot could be considered the "first early beta" of iBoot. Following the release of theiPhone 2G andiPhone OS 1, the first release iBoot version was iBoot-159.

See also

[edit]

References

[edit]
  1. ^"Darwin 9.2 Source Code".Apple Inc. Archived fromthe original on September 21, 2020. RetrievedJanuary 19, 2020.
  2. ^abcRyan, Peter Y. A.; Naccache, David; Quisquater, Jean-Jacques (2016-03-17).The New Codebreakers: Essays Dedicated to David Kahn on the Occasion of His 85th Birthday. Springer.ISBN 9783662493014.
  3. ^Hayes, Darren R. (2014-12-17).A Practical Guide to Computer Forensics Investigations. Pearson IT Certification.ISBN 9780132756150.
  4. ^ab"Boot process for an Intel-based Mac - Apple Support".Apple Platform Security.
  5. ^"LLB".The Apple Wiki. 2023-09-10. Retrieved2024-11-27.
  6. ^hoakley (2021-01-14)."M1 Macs radically change boot and recovery".The Eclectic Light Company. Retrieved2024-11-27.
  7. ^Apple Inc. (May 2016)."iOS Security Guide"(PDF).apple.com.Archived(PDF) from the original on February 27, 2016.
  8. ^"Boot process for iPhone and iPad devices - Apple Support".Apple Platform Security.
  9. ^"Boot process for a Mac with Apple silicon - Apple Support".Apple Platform Security.
  10. ^"iFixit Support: DFU Restore".iFixit. Retrieved2019-09-29.
  11. ^"*OS: iBoot"(PDF).
  12. ^"The Early Boot Process".developer.apple.com. Retrieved2017-08-26.
  13. ^Khandelwal, Swati (8 February 2018)."Apple's iBoot Source Code for iPhone Leaked on Github".The Hacker News. Retrieved2025-07-09.
  14. ^"iRecovery on GitHub".GitHub.
  15. ^"iBoot information from the Apple Wiki".
  16. ^"Memory safe iBoot implementation".Apple Platform Security. Apple. Retrieved25 January 2023.
  17. ^"Apple confirms iPhone source code leak".BBC News. 9 February 2018.
  18. ^"iBoot-87.1 on the iPhone 2G by mcg29 on Twitter". 6 March 2024.

External links

[edit]
Versions
Mac OS X
OS X
macOS
Predecessors
Applications
Core
applications
Developer
Tools
Xcode
Former
Former
Utilities
Discontinued
Technologies,
user interface
Deprecated
Discontinued
  • Italics denote upcoming products.
  •  Category
Processes
Bootingfirmware
Types
Interfaces
Implementations
Hybrid firmware bootloader
Bootloaders
Implementations
Partition layouts
Partitions
Utilities
Software
Hardware
Network boot
ROM variants
Related
Retrieved from "https://en.wikipedia.org/w/index.php?title=IBoot&oldid=1323008069"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp