iBoot
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/08/15 02:40 UTC 版)
![]() |
この項目「IBoot」は翻訳されたばかりのものです。不自然あるいは曖昧な表現などが含まれる可能性があり、このままでは読みづらいかもしれません。(原文:https://en.wikipedia.org/w/index.php?title=IBoot&oldid=1301143276 at 08:33, 18 July 2025)
修正、加筆に協力し、現在の表現をより自然な表現にして下さる方を求めています。ノートページや履歴も参照してください。(2025年8月) |
iBoot | |
---|---|
![]() |
|
Developer(s) | Apple |
Initial release | June 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 system | Darwin, macOS, iPadOS and iOS[1] |
Platform | X64, AArch64 |
Type | ブートローダ |
License | Proprietary software |
iBootは、ステージ2 ブートローダである。iPhone, iPad, Appleシリコン Mac, およびApple T2を搭載したインテルMac[2][3]で採用されている。 Compared with its predecessor, iBoot improves authentication performed in the boot chain.[1] Apple T2を搭載したIntel Mac では、ブートプロセスはboot ROMからT2チップ上でコードを実行することから始まる。そのboot ROMは、iBootをT2チップにロードして実行する。その次にiBootはbridgeOSをT2チップにロードし、起動する。そしてbridgeOSはUEFIファームウェアをロードする。UEFIファームウェアはメインIntelプロセッサを起動し、Power-On Self Testプロセスを完了させる。UEFIファームウェアはboot.efiをロードし、macOSカーネルをロードして起動する[4]。
iPhone、iPad、Appleシリコン搭載Macの場合、ブートプロセスはデバイスのブートROMを実行することから始まる。Apple A9またはそれ以前のAシリーズプロセッサを搭載したiPhoneやiPadでは、ブートROMはステージ1ブートローダであるLLB(Low-Level Bootloader)をロードし、iBootをロードする。Apple A10以降のプロセッサを搭載したデバイスやAppleシリコン搭載Macでは、ブートROMはiBootをロードする[5]。すべてがうまくいくと、iBootはiOS、iPadOS、macOSのカーネルと、オペレーティングシステムのその他のロードを進める[6][7][8]。iBootがiOS、iPadOS、macOSのロードに失敗したり、検証に失敗した場合、ブートローダはDFU(デバイスファームウェアアップデート)[9]モードにジャンプする[1][10]。
カーネルと起動に必要なドライバ全てがロードされると、ブートローダはカーネルの初期化手順を開始する。この時点で、カーネルがルートデバイスを見つけるために必要なドライバがロードされる[11]。
Apple A7以降を搭載したiPhoneやiPadでは、LLBとiBootはNANDフラッシュに保存される[12]。Apple M1以降を搭載したMacでは、LLBは内蔵SSDに保存される[13]。
ビルドスタイル
流出したiBootのソースコード(2018年2月7日)によると[14]、apps/iBoot/iBoot.mkでは、iBootのコピーをビルドする際に有効なビルドスタイルを「RELEASE」、「DEVELOPMENT」、「DEBUG」、「SECRET」と定義している。これらのビルドスタイルは、ブートローダがコンパイルされる際に特定の情報を定義する。例えば、開発中のデバイスの問題を見つけるためにデバッグコマンドを追加したり、シリアル経由でiBootコマンドプロンプトを使用してハードウェアテストを実行したりできる。
定義
RELEASE - リリース版
DEVELOPMENT - 開発用ハードウェアで使用されるビルドでは、「diags」コマンドなど、いくつかの開発用ツールにアクセスできる
DEBUG - iOSやその他の下位コンポーネントのデバッグに使用されるビルド
機能
iBootは、リカバリ、DFU、またはリストアモード時にコマンドプロンプトを表示する(iBootの「DEBUG」ビルドにも表示されるが、将来のビルドでは表示されなかった)。コマンドの使用可否は、使用するiBootのタイプ、特にビルドスタイル(RELEASE、DEVELOPMENT、DEBUG、SECRETなど)に依存する[要出典]。
iBootのコマンドプロンプトを使用する場合、含まれるコマンドは、ブート引数(NVRAMで内部的に「boot-args」と呼ばれる)や、iBootが自動的にロードされたときにスタートアップコマンド(fsboot)を使用するかどうか(自動ブートとして知られている)などの動作を管理するために使用される[15][16]。
メモリ安全性
AppleはiOS 14以降、メモリ安全性を向上させるため、iBootのビルドに使用されるCコンパイラのツールチェーンを変更した。この改良は、バッファオーバーフロー、ヒープ悪用、型混同の脆弱性、use-after-free攻撃など、一般的なメモリ破壊の脆弱性のクラス全体を軽減するように設計されている。これらの修正により、攻撃者が特権を不正に昇格させて、任意のコード実行を伴う攻撃など、悪意のあるコードの実行を防止できる可能性がある[17]。
コースコード漏洩事件
2018年、iOS 9のiBootソースコードの一部がGitHubに流出し、当時のiPhone、iPad、iPod touch、Apple Watchの各モデルが被害を受けた[18]。 その後、AppleはGitHubに対し、リポジトリの削除を求める著作権削除要請(DMCA)を出した。この流出にはAppleの従業員が関与していると考えられていた。しかし、Appleによって確認されたわけではない。iBootのソースコードの公開に関与したのは「ZioShiba」という名前のユーザであることがわかっている。
履歴

iBootの最も古いバージョンはiBoot-87.1で、2006年から2007年にかけ製造された、最初期のプロトタイプiPhoneに搭載されたものである[19]。このバージョンは、iBootの最初のバージョン(iBoot-99)と同じ機能を持っていたが、最終リリース前の機能は持っていなかった。このバージョンのiBootは、iBootの「最初期ベータ版」と考えられる。初代iPhoneとiPhone OS 1のリリースに伴い、最初にリリースされたiBootのバージョンはiBoot-159だった。
出典
- ^ a b c 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
- ^ Hayes, Darren R. (2014-12-17) (英語). A Practical Guide to Computer Forensics Investigations. Pearson IT Certification. ISBN 9780132756150
- ^ “Boot process for an Intel-based Mac - Apple Support”. Apple Platform Security. Template:Cite webの呼び出しエラー:引数 accessdate は必須です。
- ^ “Intelプロセッサ搭載Macのブートプロセス”. Appleプラットフォームのセキュリティ. Apple. 2025年8月9日閲覧。
- ^ “iPhoneおよびiPadデバイスのブートプロセス”. Apple Support. 2025年8月9日閲覧。
- ^ Apple Inc. (2016年5月). “iOS Security Guide”. apple.com. 2016年2月27日時点のオリジナルよりアーカイブ。 Template:Cite webの呼び出しエラー:引数 accessdate は必須です。
- ^ “iPhoneおよびiPadデバイスのブートプロセス”. Appleプラットフォームのセキュリティ. Apple. 2025年8月9日閲覧。
- ^ “Appleシリコン搭載Macのブートプロセス”. Appleプラットフォームのセキュリティ. Apple. 2025年8月9日閲覧。
- ^ “iFixit Support: DFU Restore” (英語). iFixit. 2019年9月29日閲覧。
- ^ “*OS: iBoot”. Template:Cite webの呼び出しエラー:引数 accessdate は必須です。
- ^ “The Early Boot Process” (英語). developer.apple.com. 2017年8月26日閲覧。
- ^ “LLB” (英語). The Apple Wiki (2023年9月10日). 2024年11月27日閲覧。
- ^ hoakley (2021年1月14日). “M1 Macs radically change boot and recovery” (英語). The Eclectic Light Company. 2024年11月27日閲覧。
- ^ Khandelwal (2018年2月8日). “Apple's iBoot Source Code for iPhone Leaked on Github” (英語). The Hacker News. 2025年7月9日閲覧。
- ^ “iRecovery on GitHub”. GitHub. Template:Cite webの呼び出しエラー:引数 accessdate は必須です。
- ^ “iBoot information from the Apple Wiki.”. Template:Cite webの呼び出しエラー:引数 accessdate は必須です。
- ^ “Memory safe iBoot implementation”. Apple Platform Security. Apple. 2023年1月25日閲覧。
- ^ “Apple confirms iPhone source code leak”. BBC News. (2018年2月9日)
- ^ “iBoot-87.1 on the iPhone 2G by mcg29 on Twitter.” (2024年3月6日). Template:Cite webの呼び出しエラー:引数 accessdate は必須です。
外部リンク
- Mac OS X Archived 2020年5月10日, at the Wayback Machine. - osxbook.com
- iBootのページへのリンク