According to the leaked iBoot source code (from February 7, 2018), in apps/iBoot/iBoot.mk, defines the valid build styles as "RELEASE", "DEVELOPMENT", "DEBUG", and "SECRET" when building a copy of iBoot. 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.
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
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).
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).1415
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.16
In 2018, a portion of iBoot source code for iOS 9 was leaked on GitHub for various iPhone, iPad, iPod touch, and Apple 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.
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 the iPhone 2G and iPhone OS 1, the first release iBoot version was iBoot-159.
Hayes, Darren R. (2014-12-17). A Practical Guide to Computer Forensics Investigations. Pearson IT Certification. ISBN 9780132756150. 9780132756150 ↩
"Boot process for an Intel-based Mac - Apple Support". Apple Platform Security. https://support.apple.com/guide/security/boot-process-sec5d0fab7c6/web ↩
Ryan, 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. 9783662493014 ↩
Apple Inc. (May 2016). "iOS Security Guide" (PDF). apple.com. Archived (PDF) from the original on February 27, 2016. https://www.apple.com/business/docs/iOS_Security_Guide.pdf ↩
"Boot process for iPhone and iPad devices - Apple Support". Apple Platform Security. https://support.apple.com/guide/security/boot-process-for-iphone-and-ipad-devices-secb3000f149/web ↩
"Boot process for a Mac with Apple silicon - Apple Support". Apple Platform Security. https://support.apple.com/guide/security/boot-process-secac71d5623/web ↩
"iFixit Support: DFU Restore". iFixit. Retrieved 2019-09-29. https://help.ifixit.com/article/108-dfu-restore ↩
"*OS: iBoot" (PDF). https://newosxbook.com/bonus/iboot.pdf ↩
"The Early Boot Process". developer.apple.com. Retrieved 2017-08-26. https://developer.apple.com/library/content/documentation/Darwin/Conceptual/KernelProgramming/booting/booting.html ↩
"LLB". The Apple Wiki. 2023-09-10. Retrieved 2024-11-27. https://theapplewiki.com/wiki/LLB ↩
hoakley (2021-01-14). "M1 Macs radically change boot and recovery". The Eclectic Light Company. Retrieved 2024-11-27. https://eclecticlight.co/2021/01/14/m1-macs-radically-change-boot-and-recovery/ ↩
"iRecovery on GitHub". GitHub. https://github.com/libimobiledevice/libirecovery ↩
"iBoot information from the Apple Wiki". https://theapplewiki.com/wiki/IBoot_(Bootloader) ↩
"Memory safe iBoot implementation". Apple Platform Security. Apple. Retrieved 25 January 2023. https://support.apple.com/guide/security/memory-safe-iboot-implementation-sec30d8d9ec1/web ↩
"Apple confirms iPhone source code leak". BBC News. 9 February 2018. https://www.bbc.com/news/technology-43001911 ↩
"iBoot-87.1 on the iPhone 2G by mcg29 on Twitter". 6 March 2024. https://x.com/mcg29_/status/1765425989436199131/photo/1 ↩