什麼是 Google Android Bootloader?
最近因為有些專案 ,都是用到 Google Android 作業系統。雖然 Google Android 作業系統出來很久了。但是對於不常使用 Google Android 作業系統的人,是不清楚 什麼是 Android Bootloader?所以就花點時間整理一下資料。
簡單來說,Bootloader(引導加載程序)是 Android 設備上最先啟動的一段程式碼。它在您按下電源鍵後,作業系統(Android OS)核心(Kernel)啟動之前運行。它的主要工作是進行硬體初始化,並載入作業系統核心到記憶體中,為整個 Android 系統的啟動做好準備。您可以將它想像成電腦的 BIOS/UEFI。沒有它,您的手機或平板就只是一塊沒有靈魂的硬體。
Android Bootloader 詳細說明表格如下:
總結
對於普通使用者來說,並不需要關心 Bootloader 的存在,只需享受穩定安全的官方系統即可。
然而,對於喜歡客製化、探索手機潛能的進階使用者而言,"解鎖 Bootloader" 則是玩機的第一步,它開啟了通往刷機、Root 等無限可能的大門,但同時也伴隨著失去保固和安全性降低的風險。在決定解鎖前,務必了解其背後的意義與後果。
Device Power On (設備開機)
這是整個流程的起點,當您按下手機的電源按鈕時。
Primary Bootloader (PBL) / Mask ROM (主要引導加載程序 / 掩模 ROM)
晶片廠商的初始程式碼: 這是燒錄在 SoC (System on a Chip) 內部 ROM 中的第一段程式碼,由晶片製造商 (如 Qualcomm, MediaTek) 編寫。
不可變動 (Immutable): 這部分程式碼是不可修改的,提供了設備啟動的最初信任根。
主要功能: 它會執行初步的硬體檢查,並載入第二階段的 Bootloader 到 RAM 中執行。
Secondary Bootloader (SBL) / Device Bootloader (次要引導加載程序 / 設備引導加載程序)
這是由設備製造商 (如 Samsung, Google, Xiaomi) 編寫和定制的部分,功能更為複雜。
信任鏈驗證 (Verify Chain of Trust): 這是 SBL 最關鍵的功能之一。它會使用加密雜湊 (cryptographic hashes) 和數位簽章 (digital signatures) 來驗證接下來要載入的軟體(如 Android Kernel、Recovery 模式)是否是官方、未被篡改的。
Locked 狀態: 如果 Bootloader 處於鎖定狀態,它只允許經過官方簽章驗證的軟體啟動。任何非官方的修改都會被拒絕,系統可能無法啟動或提示警告。
Unlocked 狀態: 如果 Bootloader 已經解鎖,這個驗證過程會被跳過或放鬆,允許刷入自定義的 ROM、Recovery 或取得 Root 權限。
硬體初始化 (Hardware Initialization - POST): SBL 會對設備的各個硬體組件 (如記憶體、儲存、螢幕控制器等) 進行更詳細的初始化,為作業系統的運行做好準備。
載入並驗證 Android Kernel (boot.img): SBL 會從儲存空間中找到 boot.img 檔案 (其中包含 Android Kernel 和 Ramdisk),將其載入到 RAM 中,並在鎖定狀態下驗證其完整性。
是否進入 Recovery 模式 (Yes/No Recovery Mode): SBL 會檢查使用者是否按下了進入 Recovery 模式的組合鍵。
Yes: 如果需要進入 Recovery 模式 (例如 TWRP, AOSP Recovery),SBL 會載入並啟動 Recovery OS。
No: 如果不需要,它將繼續啟動 Android Kernel。
Hand-off to Kernel (移交給核心): 當所有檢查和載入工作完成後,SBL 會將控制權移交給已經載入到 RAM 中的 Android Kernel。
Android Kernel & Ramdisk (Android 核心與 Ramdisk)
Android Kernel: 這是 Android 作業系統的核心,負責管理系統資源、行程、記憶體、檔案系統和設備驅動程式。
Ramdisk: 是一個位於 RAM 中的小型檔案系統,包含 init 程式和一些初始腳本,用於啟動 Android 的第一個使用者空間行程。
此階段,Kernel 會繼續更深層次的硬體初始化,並啟動第一個使用者空間行程 init。
Android OS Fully Loaded (Android 作業系統完全載入)
Init Process: init 程式會根據 init.rc 等腳本文件,啟動 Zygote、Dalvik/ART 虛擬機器、系統服務等,逐步構建整個 Android 環境。
最終,Android 使用者介面出現,設備完全可





留言
張貼留言