doraemon

doraemon

let's go write some rusty code and revolutionize the world!

Android玩機基礎知識

Android 玩機基礎知識#

筆記來源於哔哩哔哩極客灣視頻:玩機必看!帶你入坑安卓刷機

本教程只提供玩機之前應該了解的基礎框架和知識儲備,

具體操作仍然應該尋找具體教程,否則在玩機過程中會遇到很多麻煩的小問題無法解決。

相關網站:

安卓分區#

安卓手機中包含了數個分區

Boot 分區#

  • 存放有啟動和引導的文件,與開機啟動引導相關

  • 包含了操作系統的 Kernel (內核)Ramdisk (虛擬內存)

  • Root 操作就是修改在 Boot 分區

  • 如果 boot 分區被擦除或者損壞,手機就會卡在開機的第一屏

system 分區#

  • 存放安卓系統和系統應用

  • 系統分區包含了整個操作系統 與 系統軟件

  • 系統升級或者刷機很多時候都是在操作這個分區

  • system 分區損壞會卡在開機的第二屏

Vendor 分區#

與 system 分區相似的還有一個 Vendor 分區

  • 它包含了開發廠商定制的一些應用與庫文件

  • 很多廠商也會直接把 Vendor 分區這些文件放進 system 分區裡面,方便後期的更新和維護

Data 分區#

  • 數據分區存放用戶數據,包括應用、音視頻、圖片、系統設置等

  • 擦除 data 分區會清空用戶數據,但不會影響到手機的正常啟動

Cache 分區#

  • 安卓的緩存區

  • 緩存可以幫助你快速的打開系統最常訪問的數據和應用程序,不需要重複加載

  • 擦除緩存並不會影響個人數據,後續使用還是會自動生成

Recovery 分區#

  • 恢復分區包含一個簡易 Linux 系統用於恢復和維護手機

  • 可以用來恢復和更新其他分區的內容 (如擦除數據),類似於 Windows PE (Pre-installing environment)

AB 分區#

近年來出現了越來越多不存在 recovery 分區的手機,這是因為安卓從 7.0 開始引入了新的 OTA 升級方式,A/B System Updates(AB 分區)

這種升級方式把 boot 和 system 分區設置了兩套,SlotA SlotB ,平時用的 Slot 是主分區,另一個 Slot 是備用分區

這樣在系統升級的時候可以做到無縫升級,用戶可以邊用手機後台邊升級系統 (更新備份分區的內容),升級完成之後重啟手機,備份分區就會自動切換成主分區,若升級失敗系統無法啟動是就會切會之前的分區,缺點就是會佔用雙倍的 System 空間。

image

VA/B 分區#

為了解決空間佔用的問題,於是又出現了 AB 分區的改進版 OTA 升級方式, Virtual A/B System Updates (VA/B 分區),

兩代系統,相同文件共用,不同文件存於虛擬 A/B 分區,目前出廠搭載安卓 11 以上的機型普遍採用了 VA/B 分區

image

從玩機的角度來講 A/B 或者 VA/B 分區刷第三方 recovery 會比較麻煩一點,因為這兩種分區都把 recovery 分區並入了 boot 分區

image

Bootloader#

  • 如果把 recovery 比作 PE,fastboot 階段所屬的 bootloader 就相當於電腦上的 BIOS/UEFI
  • bootloader 顧名思義就是 引導 (boot) 加載器 (loader),長按電源鍵開機的那一刻起,bootloader 就已經開始工作了。
  • 在這段時間裡bootloader 會初始化手機裡的硬件設備,引導操作系統內核 (boot 分區裡的 Kernel)
  • 在引導後期我們可以選擇進入一個叫 fastboot 的階段 (一般長按電源 + 音量減鍵進入),這就是我們常說的刷機模式
  • fastboot 比 recovery 更加底層,fastboot 下可以把手機連接電腦,輸入命令來直接刷機。
  • 解鎖手機,注入 boot 鏡像,線刷系統等很多操作都要通過 fastboot 來進行。
  • bootloader 並不屬於某個系統分區,如果系統某個分區損壞導致手機變磚,一般可以進入 fastboot 救磚
  • 使用 fastboot 刷機一般稱為線刷(數據線連接電腦),使用 recovery 刷機一般稱為卡刷 (卡刷包下載到手機)

電腦手機環境配置#

fastboot#

  • 可以去安卓官方的鏈接下載電腦端用的 Android SDK ,SDK Platform Tools

  • Android SDK Platform-Tools 是 Android SDK 的一個組件。它包含與 Android 平台進行交互的工具,主要是 adbfastboot

  • 下載解壓後就能看到有 adb 和 fastboot 文件,在此文件目錄下打開終端就可以輸入命令對手機進行操作了

  • 如果不能檢測到設備就去電腦端設備管理器安裝 fastboot 驅動,驅動鏈接:玩機資源合集 (jamcz.com)

image

fastboot 常用命令#

#顯示fastboot設備
fastboot devices
#獲取手機相關信息
fastboot getvar all
#重啟手機
fastboot reboot
#重啟到bootloader
fastboot reboot-bootloader
#擦除分區
fastboot erase (分區名)
例:清除system分區:fastboot erase system
#刷入分區
fastboot flash (分區名) (分區鏡像)
例:將boot鏡像 "boot.img" 刷入boot分區:fastboot flash boot boot.img
#引導啟動鏡像
fastboot boot (分區鏡像)
例:啟動到recovery分區:fastboot boot recovery.img
#刷入ROM
fastboot update (刷機包)
例:將 update.zip 刷入:fastboot update update.zip
#解鎖Bootloader
fastboot oem unlock (參數視機型而定)

ADB(Android Debug Bridge)#

  • 連接電腦一般要打開手機開發者選項裡面的 USB 調試,也就是 ADB (安卓調試橋)。

  • ADB 是安卓提供給我們用於調試設備的命令行工具,借助 ADB 就可以在電腦端用各種命令來控制手機 (不需要 root)。

  • 比如如輸入命令給手機安裝軟件,調整手機分辨率,模擬按鍵點擊等好玩的操作。

  • 很多電腦端的手機工具箱,如搞機工具箱,都是基於 ADB 實現的

Root#

  • ADB 只能實現一些調試功能,想要實現更多功能就要借助 Root 權限了

  • 開發者選項裡打開 OEM 解鎖 (沒有就算了)

  • 想要 root 一般想要解鎖 Bootloader (bl 鎖),然後修改 boot 文件,刷入 magisk (修補後的 boot),root 的過程就相當於修改 boot 分區

  • 廠商為了保證手機安全一般會對 bootloader 上鎖,不解鎖 bootloader 就無法對分區進行修改

  • 不同品牌解鎖方式不同,這裡不詳細討論

root 方法#

想要 root 一般有兩種方法:

1. 通過第三方 recovery 來 root#

  • 官方 recovery 一般只有簡單的恢復功能,不會允許你亂刷東西
  • 想要實現類似 PE 的效果就要刷一個好用的第三方 recovery
  • 第三方 recovery 不光可以 root,還能刷內核,刷系統,備份數據等等
  • TWRP 是目前比較出名的第三方 recovery

2. 直接在 fastboot 裡刷 boot 鏡像#

magisk 獲取 root 的原理是對 boot 分區進行修補,在 recovery 裡可以直接操作,

但我們不用 recovery 也能提取當前系統的 boot 鏡像,交給 magiskAPP 進行修補完後再手動刷回系統。

boot 一般可以在刷機包裡面提取

線刷包一般解壓直接就能找到 boot.img 文件,卡刷包解壓後會有一個非常大的 payload.bin 文件,可以用 payload_dumper.exe 程序來解包,解包完成後就能找到 boot.img,把拿到的 boot 文件傳到手機裡,手機上裝好 magisk 的 APP, 打開之後點擊安裝,選擇修補一個文件,選擇 boot.img,修補完成後會把修補完的鏡像導出到 download 文件夾裡。把修補完的 boot 拷貝到電腦上,手機重啟到 fastboot 模式,使用 fastboot 命令 (fastboot flash boot) 刷入修補後的 boot 就可以獲取 root 權限了。

小米全機型全版本 ROM 下載地址:XiaomiROM.com - 小米 ROM 線刷包,卡刷包的最新及歷史版本下載

boot 管理工具 Magisk#

magisk 就是我們常說的面具,它不僅可以用來獲取 root 權限,還可以掛載各種模塊

magisk 實現 root 原理#

magisk 通過掛載一個和系統文件相隔離的 Magisk 分區來加載自己的內容,一切都在 bootloader 階段完成,在實現功能的同時可以讓系統分區 (system) 毫髮無損,所以可以隱藏 root。

image

9008 刷機 (EDL 串口線刷模式)#

一加與 OPPO 給的刷機 (線刷) 工具是基於 9008 的,9008 是高通平台更底層的刷機工具,不到萬不得已才會使用。

雖然 fastboot 線刷的方法可以解決大部分的軟件問題,但不可以刷寫一些更底層的東西,比如基帶串號。

有時候手機刷成黑磚,連 fastboot 都不能進入了,這個時候就只能使用 9008 模式刷機了。

9008 模式可以解決手機幾乎所有的軟件問題。

高通通用:QFIL 工具

image

聯發科通用:SP Flash 工具

image

MiFlash (Pro) 裡含有廠家定制 9008 刷機模式,加入了一些驗證機制,需要帳號授權才能使用 9008。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。