
กระบวนการบูตสำหรับ Mac ที่ใช้ Apple Silicon
เมื่อเปิด Mac ที่ใช้ Apple Silicon อุปกรณ์จะดำเนินการกระบวนการบูตที่คล้ายกันอย่างมากกับกระบวนการบูตของ iPhone และ iPad

ชิปจะเรียกใช้โค้ดจาก Boot ROM ในขั้นตอนแรกของลำดับการตรวจสอบความน่าเชื่อถือ การบูตอย่างปลอดภัยของ macOS บน Mac ที่ใช้ Apple Silicon ไม่ได้ตรวจสอบยืนยันเพียงโค้ดระบบปฏิบัติการเท่านั้น แต่ยังรวมถึงนโยบายความปลอดภัยและแม้แต่ kext (รองรับ แต่ไม่แนะนำ) ที่กำหนดค่าโดยผู้ใช้ที่ได้รับอนุญาตอีกด้วย
เมื่อเปิดใช้ LLB (ซึ่งย่อมาจาก Low Level Bootstrap) ระบบจะตรวจสอบลายเซ็นและโหลดเฟิร์มแวร์ที่จับคู่กับระบบสำหรับคอร์ SoC ภายใน เช่น พื้นที่จัดเก็บข้อมูล จอภาพ การจัดการระบบ และตัวควบคุม Thunderbolt LLB ยังทำหน้าที่ในการโหลด LocalPolicy อีกด้วย ซึ่งเป็นไฟล์ที่ลงชื่อโดยหน่วยประมวลผล Secure Enclave ไฟล์ LocalPolicy จะอธิบายการกำหนดค่าที่ผู้ใช้เลือกไว้สำหรับการบูตระบบและนโยบายความปลอดภัยของรันไทม์ LocalPolicy มีรูปแบบโครงสร้างข้อมูลเหมือนกับวัตถุการบูตอื่นๆ ทั้งหมด แต่ LocalPolicy จะถูกลงชื่อภายในเครื่องโดยกุญแจส่วนตัวซึ่งมีให้เฉพาะภายใน Secure Enclave ของคอมพิวเตอร์บางเครื่องแทนการลงชื่อโดยเซิร์ฟเวอร์ส่วนกลางของ Apple (เช่น รายการอัปเดตซอฟต์แวร์)
LLB จะต้องค้นดู nonce จาก Secure Enclave ในส่วนประกอบพื้นที่จัดเก็บข้อมูลอย่างปลอดภัย เพื่อช่วยป้องกันการเล่นซ้ำของ LocalPolicy ก่อนหน้า ในการทำเช่นนี้ LLB จะใช้ Secure Enclave Boot ROM และตรวจสอบให้แน่ใจว่า Nonce ใน LocalPolicy ตรงกับ Nonce ในส่วนประกอบพื้นที่จัดเก็บข้อมูลอย่างปลอดภัย การทำเช่นนี้จะช่วยป้องกันไม่ให้ LocalPolicy เดิมที่อาจได้รับการกำหนดค่าสำหรับความปลอดภัยต่ำถูกปรับใช้กับระบบอีกครั้งหลังจากที่อัปเกรดความปลอดภัย ผลลัพธ์คือ การบูตอย่างปลอดภัยบน Mac ที่ใช้ Apple Silicon ไม่เพียงจะช่วยป้องกันการย้อนกลับของเวอร์ชั่นระบบปฏิบัติการ แต่ยังป้องกันการดาวน์เกรดนโยบายความปลอดภัยอีกด้วย
ไฟล์ LocalPolicy จะบันทึกว่าระบบปฏิบัติการได้รับการกำหนดค่าความปลอดภัยแบบเต็ม ความปลอดภัยลดลง หรือความปลอดภัยที่อนุญาต
ความปลอดภัยแบบเต็ม: ระบบจะทำงานเหมือนกับ iOS และ iPadOS และอนุญาตการบูตซอฟต์แวร์ที่มีให้ใช้ล่าสุดในขณะที่มีการติดตั้งเท่านั้น
ความปลอดภัยลดลง: LLB ถูกสั่งการให้เชื่อถือลายเซ็น “สากล” ที่รวมเข้ากับระบบปฏิบัติการ ซึ่งอนุญาตให้ระบบเรียกใช้ macOS เวอร์ชั่นเก่ากว่าได้ เนื่องจาก macOS เวอร์ชั่นเก่ากว่าจะมีช่องโหว่ที่หลีกเลี่ยงไม่ได้ โหมดความปลอดภัยนี้จึงได้รับการอธิบายว่าเป็นความปลอดภัยแบบลดลง นโยบายระดับนี้ยังเป็นระดับที่จำเป็นในการรองรับการบูตส่วนขยายเคอร์เนล (kext) อีกด้วย
ความปลอดภัยที่อนุญาต: ความปลอดภัยนี้จะทำงานเหมือนความปลอดภัยแบบลดลง ซึ่งจะใช้การตรวจสอบยืนยันลายเซ็นสากลสำหรับ iBoot และอื่นๆ รวมถึงยังบอก iBoot ว่าควรยอมรับวัตถุการบูตบางรายการที่ลงชื่อโดย Secure Enclave ด้วยกุญแจเดียวกันกับที่ลงชื่อ LocalPolicy นโยบายระดับนี้จะรองรับผู้ใช้ที่กำลังสร้าง ลงชื่อ และบูตเคอร์เนล XNU แบบกำหนดเองของตัวเอง
ถ้า LocalPolicy ระบุกับ LLB ว่าระบบปฏิบัติการที่เลือกทำงานในโหมดความปลอดภัยแบบเต็ม LLB จะประเมินลายเซ็นที่ได้รับการปรับให้เป็นส่วนตัวสำหรับ iBoot ถ้าระบบปฏิบัติการทำงานในโหมดความปลอดภัยลดลงหรือความปลอดภัยที่อนุญาต ระบบจะประเมินลายเซ็นสากล ข้อผิดพลาดเกี่ยวกับการตรวจสอบยืนยันลายเซ็นจะทำให้ระบบบูตไปยัง recoveryOS เพื่อให้ตัวเลือกการซ่อมแซม
หลังจาก LLB ส่งต่อไปยัง iBoot ระบบจะโหลดเฟิร์มแวร์ที่จับคู่กับ macOS เช่น เฟิร์มแวร์สำหรับ Neural Engine ที่ปลอดภัย, Always On Processor และเฟิร์มแวร์อื่นๆ นอกจากนี้ iBoot ยังดูข้อมูลเกี่ยวกับ LocalPolicy ที่ส่งมาจาก LLB อีกด้วย ถ้า LocalPolicy ระบุว่าควรมีคอลเลกชั่นเคอร์เนลเสริม (AuxKC) แล้ว iBoot จะค้นหา AuxKC บนระบบไฟล์ ตรวจสอบยืนยันว่าลงชื่อโดย Secure Enclave ด้วยกุญแจเดียวกันกับ LocalPolicy จากนั้นตรวจสอบยืนยันว่าแฮชตรงกันกับแฮชที่จัดเก็บอยู่ใน LocalPolicy ถ้า AuxKC ได้รับการตรวจสอบยืนยันแล้ว iBoot จะวาง AuxKC อยู่ในหน่วยความจำที่มีคอลเลกชั่นเคอร์เนลบูตก่อนที่จะล็อคพื้นที่หน่วยความจำแบบเต็มโดยครอบคลุมคอลเลกชั่นเคอร์เนลบูตและ AuxKC ด้วยการปกป้องความสมบูรณ์ของหน่วยประมวลผลร่วมของระบบ (SCIP) ถ้านโยบายระบุว่าควรมี AuxKC แต่หาไม่พบ ระบบจะดำเนินการบูตเข้าสู่ macOS ต่อไปโดยไม่มี AuxKC นอกจากนี้ iBoot ยังทำหน้าที่ตรวจสอบยืนยันแฮชรากสำหรับดิสก์โวลุ่มระบบที่ลงชื่อ (SSV) อีกด้วย ทั้งนี้เพื่อตรวจสอบให้แน่ใจว่าระบบไฟล์ที่จะต่อเชื่อมเคอร์เนลมีการตรวจสอบยืนยันความสมบูรณ์อย่างเต็มรูปแบบ