什麼是 Bootloader?

如果你身邊有搭載Android作業系統的裝置,不妨試試看將手機「快速開機」選項取消,然後關機
同時按下「音量鍵下」+「開機」按鈕,就會出現Android系統的「Bootloader」囉!下圖是我的行動裝置(HTC E8)的Bootloader。

那Bootloader到底是什麼呢?根據Android Hacker's Handbook(Drake, J. J., Fora, P. O., Lanier, Z., et al. (2014). Android Hacker’s Handbook. Wiley.)這本書的解釋,如下所示。

Bootloader:
Stores the phone's boot loader program, which takes care of initializing the hardware when the phone boots, booting the Android kernel, and implememting alternative boot modes such as download mode.
 

Bootloader是一個當裝置首次開啟時,專門用於hardware-specific的程序,其目的為初始化裝置,提供最小化的裝置設定介面,然後尋找和開啟作業系統。簡單的說,就是初始化硬體設定,和選擇要進入的模式(例如:Recovery mode,download mode或直接載入Android kernel)。

在Android作業系統,只要你一按下開機鍵的瞬間,第一個跑的程式,就是Bootloader!下圖是Android正常的開機流程。

就我的理解和認知,Android裡的Bootloader,就相當於Linux裡的grub,就是所謂的啟動載入程式。

並不是電腦裡裝在主機板上的BIOS,仔細想一想就能了解。BIOS可以自行針對硬體設備更改設定,Bootloader只能選擇要啟動的程式,和針對軟體做更改。

通常,OEM都會將Bootloader上鎖,為什麼呢?

主要原因是:
當你從Bootloader進入Download模式下,透過fastboot指令或是一些工具就可以對手機進行刷機(Flash)的動作!在Google Nexus系列的裝置上,只要進入Bootloader,
透過指令"fastboot oem unlock",就可以解鎖,解鎖之後就可以透過"fastboot flash xxx xxx.img"進行刷機。

在其他廠牌的裝置上,因為牽扯到保固的問題,解鎖通常需要「特定的程序」,解鎖之後也會失去保固!

例如:在HTC裝置Bootloader解鎖的過程可以參考官方步驟。
HTCdev-Unlock Bootloader

留言

這個網誌中的熱門文章

程式語言常用之符號與詞彙 - 中英文對照

Repo 實用指令