【教學】如何從原廠 / 完整 OTA 映像檔提取 boot.img 與 init_boot.img

在目前的 Android 作業系統環境中,若想取得 Root 權限,常見會透過 Magisk、KernelSU、KernelSU-Next 或 APatch 等工具來實作。這些工具雖然原理各異,但都有一個共通需求:需依其設計邏輯處理對應目前裝置韌體版本的 boot.img 或 init_boot.img,而這些需求也會隨著 Android 系統版本與工具模式而有所差異。

然而,取得這些映像檔的方式,會因韌體來源形式而有所不同。常見的韌體來源有兩種:原廠映像檔(Factory Image)完整 OTA 映像檔(Full OTA Image)。這兩者在提取 boot.img 或 init_boot.img 的操作流程與所需工具上,存在明顯差異。

由於各家廠商對於是否完整釋出原廠映像檔與完整 OTA 映像檔的策略各異,有時甚至僅流通經由玩家自行打包的非官方韌體包,故因此本文將以 Google Nexus 與 Pixel 裝置為範例,說明如何從官方提供的映像檔中提取 boot.img 與 init_boot.img,並搭配對應工具進行實作紀錄。

🔧 本文僅以 Windows 環境為操作基礎進行說明,其他系統平台暫不涵蓋。

Factory Image 與 Full OTA Image 差異說明

定義與來源比較

  • Factory Image (原廠映像檔)
    為裝置製造商(如 Google)釋出的完整系統映像檔,通常包含 bootloader、radio、system、vendor、boot.img、init_boot.img 等完整分割區映像。常用於恢復原廠或進行完整系統重刷。
  • Full OTA Image (完整 OTA 映像檔)
    為用於 OTA 升級的完整更新檔案,通常僅包含一個 payload.bin 檔案,其內封裝多個系統分割區映像,手機會透過內建更新機制解析與安裝。

提取方式差異

  • Factory Image 逐層解壓縮後即可看到多個 .img 檔案,如 boot.img、init_boot.img 等,能夠直接取得並進一步使用,操作簡便。
  • Full OTA Image 需額外使用如 payload-dumper-go 等工具解開 payload.bin,才能還原出各個映像檔。

實際應用便利性與限制補充

在刷機或取得 boot.img、init_boot.img 進行 Root 操作時,Factory Image 通常是最方便的來源,因為檔案結構清楚、內容完整,不需額外解包流程。

相對地,Full OTA Image 雖然也可用於提取映像檔,但必須經過額外處理,且還有一個常見限制需要特別注意:一般手機透過系統更新跳出的 OTA 通知,實際上多為「差分升級 (Incremental OTA)」。這類 OTA 所使用的 payload.bin 並非完整映像,而是針對舊版系統與新版系統之間的差異所產生的 Patch 資料,因此無法直接解出完整的 boot.img 或 init_boot.img,對於有刷機需求的使用者來說並不適用。

Factory Image 提取 boot.img 與 init_boot.img

前往 Google 官方韌體頁面

下載對應裝置與版本的 Factory Image

  • 請務必確認下載版本與手機當前版本一致
    本教學以 Pixel 8 Pro 的 Factory Image:Android 15.0.0(版本號 BP1A.250505.005.B1,May 2025)為範例。

解壓縮下載的 Factory Image 壓縮檔

從 Google 下載的 Factory Image 為 .zip 格式,解壓後會先出現一個資料夾(如 husky-bp1a.250505.005.b1),裡面包含另一個 zip 檔(如 image-husky-bp1a.250505.005.b1.zip),需再次解壓,才能看到 boot.img、init_boot.img 等實際映像檔。也就是說,實際映像檔會藏在第三層壓縮包中,操作時需連續解壓三層才能取得。

husky-bp1a.250505.005.b1-factory-xxxxx.zip 解壓後出現資料夾
資料夾內含 image-*.zip,需再解一次
最終可見 boot.imginit_boot.img 等檔案,即為 Root 工具常需處理的映像檔

準備映像檔以供使用

  • 若需要處理的是 init_boot.img,可將檔案上傳至手機儲存空間的 Download 資料夾,待後續透過工具進行 patch 操作。
  • 而 boot.img 多是要在 fastboot 模式下,處理過後再刷入手機。以一般操作習慣與流程,通常會將檔案解壓縮後放到像是 C:\platform-tools 底下備用。

此外,若尚不確定要使用哪一種映像檔,也可以先將 boot.img 與 init_boot.img 都解出來備妥,之後依所選用的 Root 工具需求再進行處理即可。

Full OTA Image 提取 boot.img 與 init_boot.img

前往 Google 官方韌體頁面

若無法取得 Factory Image,也可以改從 Full OTA Image 提取,以下從 Google 下載對應裝置與版本的 Full OTA Image

  • 請務必確認下載版本與手機當前版本一致
    本教學以 Pixel 8 Pro 的 Full OTA Image:Android 15.0.0 (版本號 BP1A.250505.005.B1,May 2025)為範例。

下載 payload-dumper-go 工具

下載 payload-dumper-go 的 Windows 編譯版本檔案

前往 payload-dumper-go GitHub Release 頁面,下載可在 Windows 下使用的最新編譯版本。

  1. 將壓縮檔解壓縮,取得 payload-dumper-go.exe
  2. 把 payload-dumper-go.exe 放到 C:\payload-dumper-go 資料夾中

解壓縮並準備 payload.bin

從 Full OTA Image 壓縮檔中,主要目標就是找到 payload.bin,然後從裡面萃取出 boot.img 與 init_boot.img。

  • 使用 WinRAR 或 7-Zip 開啟 OTA 壓縮檔(可直接瀏覽,不需整包解壓縮)
  • 找到並選取 payload.bin
  • 將其解壓縮至任意資料夾,例如 C:\payload-dumper-go
從 Full OTA Image 壓縮檔中找到 payload.bin
將 payload.bin 解壓縮至 C:\payload-dumper-go 資料夾中

執行 payload-dumper-go 並提取映像檔

payload-dumper-go 的執行過程畫面

打開命令提示字元,切換到 C:\payload-dumper-go,執行 payload-dumper-go payload.bin 指令,工具會自動解析 payload.bin,並開始提取各個映像檔。

extracted_ 開頭的資料夾會自動產生於工具目錄中

完成後,C:\payload-dumper-go 資料夾中會出現一個新資料夾,命名規則包含操作日期與隨機數字字串。

boot.img 與 init_boot.img 即可在解出來的資料夾中取得

進入該資料夾,就可以看到成功提取出來的 boot.img 與 init_boot.img。

提取映像檔的應用情境:Root、還原與救援

除了常見的 Root 操作需求外,成功提取出的 Stock boot.img 或 init_boot.img,其實還有兩個非常實用的應用情境:

  1. 還原用途
    若使用者原本進行過 Magisk 或其他 Root 工具的 patch 操作,但後續不再需要 Root,想將裝置恢復到未改動狀態,只要使用原始提取的 boot.img 或 init_boot.img 替換回系統,即可達到「解除 Root」與「回復原廠狀態」的目的
  2. 救援用途
    在 patch 過程中若因檔案損壞、操作錯誤或相容性問題,導致在刷入的 boot.img 或 init_boot.img 後,使裝置出現 bootloop、無法開機等異常情況,只要裝置還能進入 fastboot 模式,就可以透過 fastboot 指令重新刷入原廠 boot.img 或 init_boot.img,一般情況下系統就能正常啟動,達到緊急救援的效果。

這也是為什麼在進行任何 boot.img 或 init_boot.img 的修改前,保留原始映像檔是一個非常重要的基本動作

主機服務:金城事務所