
Proses boot untuk Mac dengan Apple silicon
Saat Mac dengan Apple silicon dinyalakan, Mac melakukan proses boot yang sangat mirip dengan iPhone dan iPad.

Keping mengeksekusi kode dari ROM Boot pada langkah pertama di rantai kepercayaan. Boot aman macOS di Mac dengan Apple silicon bukan hanya memverifikasi kode sistem operasinya, tetapi juga kebijakan keamanan dan bahkan kext (didukung, walau tidak dianjurkan) yang dikonfigurasi oleh pengguna yang disahkan.
Saat diluncurkan, LLB (singkatan dari Bootloader Level Rendah) lalu memverifikasi tanda tangan dan memuat firmware pasangan sistem untuk inti intra-SoC seperti penyimpanan, layar, manajemen sistem, dan pengontrol Thunderbolt. LLB juga bertanggung jawab untuk memuat LocalPolicy, yang merupakan file yang ditandatangani oleh Prosesor Secure Enclave. File LocalPolicy menjelaskan konfigurasi yang telah pengguna pilih untuk boot sistem dan kebijakan keamanan runtime. LocalPolicy memiliki format struktur data yang sama dengan semua objek boot lainnya, tapi ditandatangani secara lokal oleh kunci pribadi yang hanya tersedia dalam Secure Enclave komputer tertentu, dan bukan ditandatangani oleh server Apple pusat (seperti pembaruan perangkat lunak).
Untuk membantu mencegah pemutaran ulang LocalPolicy sebelumnya, LLB harus mencari nilai anti-pemutaran ulang dari Komponen Penyimpanan Aman yang terpasang di Secure Enclave. Agar dapat dilakukan, LLB menggunakan ROM Boot Secure Enclave dan memastikan bahwa nilai anti-pemutaran ulang di LocalPolicy sesuai dengan nilai anti-pemutaran ulang di Komponen Penyimpanan Aman. Ini membantu mencegah LocalPolicy lama—yang mungkin telah dikonfigurasi untuk keamanan yang lebih rendah—agar tidak diterapkan ulang ke sistem setelah keamanan ditingkatkan. Hasilnya adalah boot aman di Mac dengan Apple silicon membantu melindungi terhadap bukan hanya pembalikan versi sistem operasi, tetapi juga terhadap penurunan kebijakan keamanan.
File LocalPolicy memeriksa apakah sistem operasi dikonfigurasi ke keamanan Penuh, Dikurangi, atau Permisif.
Keamanan Penuh: Sistem berperilaku seperti iOS dan iPadOS, dan hanya mengizinkan boot perangkat lunak yang diketahui sebagai yang terbaru dan tersedia saat penginstalan.
Keamanan Dikurangi: LLB diteruskan untuk memercayai tanda tangan “global” yang dibundel dengan sistem operasi. Ini memungkinkan sistem untuk menjalankan versi macOS yang lebih lama. Karena versi macOS yang lebih lama memiliki kerentanan yang belum diperbaiki, mode keamanan ini disebut Dikurangi. Ini juga level kebijakan yang diperlukan untuk mendukung ekstensi kernel boot (kext).
Keamanan Permisif: Sistem berperilaku seperti Keamanan Dikurangi, yang menggunakan verifikasi tanda tangan global untuk iBoot dan lebih tinggi, tapi juga memberi tahu bahwa iBoot harus menerima beberapa objek boot yang ditandatangani oleh Secure Enclave dengan kunci yang sama dengan yang digunakan untuk menandatangani LocalPolicy. Level kebijakan ini mendukung pengguna yang membuat, menandatangani, dan melakukan boot kernel XNU khususnya sendiri.
Jika LocalPolicy menandakan ke LLB bahwa sistem operasi yang dipilih dijalankan di Keamanan Penuh, LLB akan mengevaluasi tanda tangan yang disesuaikan untuk iBoot. Jika Keamanan Dikurangi atau Keamanan Permisif dijalankan, iBoot mengevaluasi tanda tangan global. Kesalahan verifikasi tanda tangan apa pun menyebabkan sistem di-boot ke recoveryOS untuk memberikan pilihan perbaikan.
Setelah LLB meneruskan ke iBoot, iBoot memuat firmware yang dipasangkan dengan macOS seperti firmware untuk Neural Engine Aman, Prosesor Selalu Nyala, dan firmware lainnya. iBoot juga melihat informasi mengenai LocalPolicy yang diteruskan dari LLB. Jika LocalPolicy menandakan bahwa harus terdapat Kumpulan Kernel Pembantu (AuxKC), iBoot akan mencarinya di sistem file, memverifikasi bahwa AuxKC ditandatangani oleh Secure Enclave dengan kunci yang sama dengan LocalPolicy, dan memverifikasi bahwa hash-nya sesuai dengan hash yang disimpan di LocalPolicy. Jika AuxKC diverifikasi, iBoot meletakkannya ke memori dengan Kumpulan Kernel Boot sebelum mengunci bidang memori penuh yang mencakup Kumpulan Kernel Boot dan AuxKC dengan Perlindungan Integritas Koprosesor Sistem (SCIP). Jika kebijakan menandakan bahwa AuxKC harus ada tetapi tidak ditemukan, sistem melanjutkan boot ke macOS tanpa AuxKC. iBoot juga bertanggung jawab untuk memverifikasi hash root untuk volume sistem yang ditandatangani (SSV), untuk memeriksa bahwa sistem file yang akan dipasang kernel diverifikasi integritasnya secara penuh.