อ่าน 4 นาที
ไอบูท
iBoot เป็น บูตโหลดเดอร์ขั้นที่ 1 และขั้นที่ 2 สำหรับiPhone , iPad , Mac ที่ใช้ชิป Apple Siliconและชิป T2 ใน Mac ที่ใช้ ชิปIntel เมื่อเปรียบเทียบกับรุ่นก่อนหน้า iBoot...
ไอบูท
| ไอบูท | |
|---|---|
| นักพัฒนา | บริษัท แอปเปิล อิงค์ |
| ปล่อย | 29 มิถุนายน 2550 |
| เวอร์ชันเสถียร | iBoot-11881.80.57~171 (รุ่นเผยแพร่, iOS 18.3 RC และ iOS 18.3.1) |
| รุ่นทดลองใช้งาน | iBoot-11881.80.57~107 (รุ่นเผยแพร่, iOS 18.3 beta 1) |
| ระบบปฏิบัติการ | ดาร์วิน , macOS , [ 1 ] iPadOSและiOS [ 2 ] |
| แพลตฟอร์ม | x86 , ARM |
| พิมพ์ | บูตโหลดเดอร์ |
| ใบอนุญาต | ซอฟต์แวร์กรรมสิทธิ์ |
iBoot เป็น บูตโหลดเดอร์ขั้นที่ 1 และขั้นที่ 2 สำหรับiPhone , iPad , Mac ที่ใช้ชิป Apple Siliconและชิป T2 ใน Mac ที่ใช้ ชิปIntel [ 3 ] [ 4 ]เมื่อเปรียบเทียบกับรุ่นก่อนหน้า iBoot ปรับปรุงการตรวจสอบสิทธิ์ที่ดำเนินการในห่วงโซ่บูต[ 2 ]
สำหรับ Mac ที่ใช้ Intel ที่มีชิป T2 กระบวนการบูตจะเริ่มต้นด้วยการรันโค้ดบนชิป T2 จากROM บูต ROM บูตนั้นจะโหลดและรัน iBoot ลงบนชิป T2; iBoot จะโหลด ระบบปฏิบัติการ bridgeOSลงบนชิป T2 และเริ่มต้นระบบ; bridgeOS จะโหลด เฟิร์มแวร์ UEFI ; เฟิร์มแวร์ UEFI จะเริ่มต้นโปรเซสเซอร์ Intel หลักและดำเนิน การ ทดสอบตัวเองเมื่อเปิดเครื่อง ให้เสร็จสมบูรณ์ เฟิร์มแวร์ UEFI จะโหลด boot.efi ซึ่งจะโหลดและเริ่มต้นเคอร์เนล macOS [ 4 ]สำหรับ Mac ที่ใช้ Intel ที่มีชิป T2 เฟิร์มแวร์ UEFI อาจเรียกว่าiBoot UEFI
สำหรับ iPhone, iPad และ Mac ที่ใช้ชิป Apple Silicon กระบวนการบูตจะเริ่มต้นด้วยการเรียกใช้ ROM บูตของอุปกรณ์ ซึ่งรวมอยู่ในชิป SoC ของอุปกรณ์ สำหรับ iPhone และ iPad ที่ใช้ โปรเซสเซอร์ A9หรือ A-series รุ่นก่อนหน้า ROM บูตจะโหลด...บูตโหลดเดอร์ระดับต่ำ (LLB) ซึ่งเป็นบูตโหลดเดอร์ขั้นที่ 1 และโหลด iBoot โดย LLB จะถูกเก็บไว้ใน EEPROM สำหรับ iPhone และ iPad ที่ใช้โปรเซสเซอร์ A10 หรือรุ่นที่ใหม่กว่า รวมถึง Mac ที่ใช้ Apple Silicon นั้น ROM บูตจะโหลด iBoot และ LLB และ iBoot จะถูกเก็บไว้ใน NAND flash หรือ SSD ภายใน ซึ่งเป็นกระบวนการบูตแบบไม่มี NOR [ 5 ] [ 6 ]หากทุกอย่างเป็นไปด้วยดี iBoot จะดำเนินการโหลดiOS,iPadOSหรือmacOSรวมถึงส่วนที่เหลือของระบบปฏิบัติการ [ 7 ] [ 8 ] [ 9 ]หาก iBoot โหลดไม่สำเร็จหรือตรวจสอบ iOS, iPadOS หรือ macOS ไม่สำเร็จ บูตโหลดเดอร์จะข้ามไปยังโหมด DFU (Device FirmwareUpdate)[10 ]มิเช่นนั้นจะโหลดโมดูลเคอร์เนลที่ เหลือ สำหรับarm64ที่มี iBoot ระบบจะ "กระโดด" ไปยัง kernelcache (เคอร์เนลเองที่ห่อหุ้มด้วยรูปแบบ Image4) และบูตจาก kernelcache นั้น [ 2 ] [ 11 ]
เมื่อโหลดเคอร์เนลและไดรเวอร์ทั้งหมดที่จำเป็นสำหรับการบูตแล้ว บูตโหลดเดอร์จะเริ่มขั้นตอนการเริ่มต้นของเคอร์เนล ณ จุดนี้ ไดรเวอร์ที่โหลดมาเพียงพอแล้วทำให้เคอร์เนลสามารถค้นหาอุปกรณ์รูทได้[ 12 ]
สไตล์การสร้าง
ตามซอร์สโค้ด iBoot ที่รั่วไหล (จากวันที่ 7 กุมภาพันธ์ 2018) [ 13 ]ใน apps/iBoot/iBoot.mk กำหนดรูปแบบการสร้างที่ถูกต้องเป็น "RELEASE", "DEVELOPMENT", "DEBUG" และ "SECRET" เมื่อสร้างสำเนาของ iBoot รูปแบบการสร้างเหล่านี้กำหนดข้อมูลเฉพาะเมื่อคอมไพล์บูตโหลดเดอร์ เช่น การเพิ่มคำสั่งดีบักเพิ่มเติมเพื่อค้นหาปัญหาบนอุปกรณ์สำหรับการพัฒนา หรือทำการทดสอบฮาร์ดแวร์โดยใช้พรอมต์คำสั่ง iBoot ผ่านพอร์ตอนุกรม
ความหมาย
เวอร์ชันสำหรับเผยแพร่ - เวอร์ชันสำหรับเผยแพร่
การพัฒนา - เวอร์ชันที่ใช้บนฮาร์ดแวร์สำหรับการพัฒนา จะช่วยให้สามารถเข้าถึงเครื่องมือสำหรับการพัฒนาบางอย่างได้ เช่น คำสั่ง 'diags'
DEBUG - โหมดการทำงานที่ใช้สำหรับการดีบัก iOS และส่วนประกอบระดับล่างอื่นๆ
คุณสมบัติ
iBoot มีหน้าต่างคำสั่ง (command prompt) เมื่ออยู่ในโหมดกู้คืน (recovery), DFU หรือ Restore (รวมถึงในเวอร์ชัน "DEBUG" ของ iBoot ด้วย แต่ไม่พบในเวอร์ชันต่อๆ มา) ความพร้อมใช้งานของคำสั่งขึ้นอยู่กับประเภทของ iBoot ที่ใช้งาน โดยเฉพาะอย่างยิ่งรูปแบบการสร้าง (อาจเป็น RELEASE, DEVELOPMENT, DEBUG, SECRET เป็นต้น)
เมื่อใช้พรอมต์คำสั่งของ iBoot คำสั่งที่รวมอยู่จะใช้ในการจัดการพฤติกรรม เช่น อาร์กิวเมนต์การบูต (เรียกภายในว่า "boot-args" ใน NVRAM) หรือหากควรใช้คำสั่งเริ่มต้น (fsboot) เมื่อ iBoot ถูกโหลดโดยอัตโนมัติ (เรียกว่า auto-boot) [ 14 ] [ 15 ]
ความปลอดภัยของหน่วยความจำ
Apple ได้แก้ไขชุดเครื่องมือคอมไพเลอร์Cที่ใช้ในการสร้าง iBoot เพื่อเพิ่มความปลอดภัยของหน่วยความจำตั้งแต่iOS 14การพัฒนาครั้งนี้ออกแบบมาเพื่อลดช่องโหว่การเสียหายของหน่วยความจำทั่วไป เช่นบัฟเฟอร์โอเวอร์โฟลว์ การโจมตีฮี ป ช่อง โหว่ความสับสนของประเภทและการโจมตีแบบใช้หลังจากปล่อยหน่วยความจำ การแก้ไขเหล่านี้อาจป้องกันไม่ให้ผู้โจมตีสามารถยกระดับสิทธิ์เพื่อเรียกใช้โค้ดที่เป็นอันตรายได้สำเร็จ เช่น การโจมตีที่เกี่ยวข้องกับการเรียกใช้โค้ดตามอำเภอใจ[ 16 ]
เหตุการณ์การรั่วไหลของซอร์สโค้ด
ในปี 2018 ส่วนหนึ่งของซอร์สโค้ด iBoot สำหรับiOS 9ถูกเผยแพร่บนGitHubสำหรับiPhone , iPad , iPod touchและApple Watchรุ่น ต่างๆ [ 17 ]จากนั้น Apple ได้ส่งคำขอลบลิขสิทธิ์ ( DMCA ) ไปยัง GitHub เพื่อลบ repository ดังกล่าว เชื่อกันว่าพนักงานของ Apple เป็นผู้รับผิดชอบต่อการรั่วไหล อย่างไรก็ตาม Apple ไม่ได้ยืนยันเรื่องนี้ เป็นที่ทราบกันว่าผู้ใช้ชื่อ "ZioShiba" เป็นผู้รับผิดชอบในการเผยแพร่ซอร์สโค้ด iBoot
ประวัติศาสตร์

เวอร์ชัน iBoot ที่เก่าแก่ที่สุดเท่าที่ทราบคือ iBoot-87.1 ซึ่งพบในต้นแบบรุ่นแรกๆ ระหว่างการผลิต iPhone ในปี 2549–2550 [ 18 ]มีคุณสมบัติเหมือนกับเวอร์ชัน iBoot รุ่นแรกที่ทราบ (iBoot-99) ยกเว้นว่าไม่มีคุณสมบัติใดๆ ก่อนการวางจำหน่ายเวอร์ชันสุดท้าย เวอร์ชัน iBoot นี้อาจถือได้ว่าเป็น "เบต้ารุ่นแรก" ของ iBoot หลังจากวางจำหน่ายiPhone รุ่นแรกและiPhone OS 1เวอร์ชัน iBoot ที่วางจำหน่ายครั้งแรกคือ iBoot-159
ดูเพิ่มเติม
ลิงก์ภายนอก
- Mac OS X ถูกเก็บถาวรเมื่อวันที่ 10 พฤษภาคม 2020 ที่Wayback Machineที่ osxbook.com
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ ไอบูท
iBoot เป็น บูตโหลดเดอร์ขั้นที่ 1 และขั้นที่ 2 สำหรับiPhone , iPad , Mac ที่ใช้ชิป Apple Siliconและชิป T2 ใน Mac ที่ใช้ ชิปIntel เมื่อเปรียบเทียบกับรุ่นก่อนหน้า iBoot...
สไตล์การสร้าง
ตามซอร์สโค้ด iBoot ที่รั่วไหล (จากวันที่ 7 กุมภาพันธ์ 2018) [ 13 ] ใน apps/iBoot/iBoot.
ความหมาย
เวอร์ชันสำหรับเผยแพร่ - เวอร์ชันสำหรับเผยแพร่
คุณสมบัติ
iBoot มีหน้าต่างคำสั่ง (command prompt) เมื่ออยู่ในโหมดกู้คืน (recovery), DFU หรือ Restore (รวมถึงในเวอร์ชัน "DEBUG" ของ iBoot ด้วย แต่ไม่พบในเวอร์ชันต่อๆ มา) ความพร้อมใช้งานของคำสั่งขึ้นอยู่กับประเภทของ iBoot ที่ใช้งาน โดยเฉพาะอย่างยิ่งรูปแบบการสร้าง...