Android刷機

  • 2020 年 5 月 31 日
  • 筆記

刷機常識

1.數據備份
 首先刷機會清除手機能所有的用戶數據,因此做好數據備份十分重要。

  • 手機的雲服務功能,像是小米、華為、蘋果等等都有該功能,這種備份方式需要一個雲帳號,將手機數據存儲在雲端,這樣只要登錄帳號就可以看到備份的數據。
  • 電腦備份,把手機的數據備份在電腦里,這樣相對比較安全也比較具私密性。
  • U盤備份,OTG U盤是一種可以直接連接手機的U盤,可以直接把手機的數據拷貝到U盤裡。

2.Root許可權
  Android系統內核是基於Linux內核的(內核中保存著編譯時的各種配置資訊,包括全局函數和數據符號),Root是Linux內核最大的許可權所有者,如同window系統中的管理員用戶administrator用戶。Android系統越獄一般指的就是獲取Root許可權。
3.ROM包
  ROM包就好比電腦裝系統時所需的安裝盤,即手機的系統包。刷機就是把ROM包「刷」入到手機中,達到更新手機系統的目的。ROM包一般都是ZIP、RAR等壓縮包或其他後綴的樣式,依品牌和機型的不同而有所區別。
4.OEM鎖
  OEM解鎖就是啟用開發者選項。啟用了OEM解鎖之後,就可以在將手機連接到電腦,然後來在電腦上對手機進行一些操作。其許可權比「USB調試」高,更加底層,OEM鎖的功能包括管住BL鎖,OEM鎖在開發者選項中可手動打開。OEM不是BL鎖,一般的機型(比如小米、華為、oppo等)打開OEM鎖才可以解鎖BL鎖。BL鎖打開之後,OEM鎖即可無視了。
5.BL鎖
  BL是BootLoader的簡稱,指的是開機引導程式,BL鎖負責在開機時載入硬體的初始化程式,並啟動系統進程。在解開BL鎖之前,用戶是無法自由進行刷機操作和ROOT操作的更無法刷第三方ROM跟降級系統的操作。BL沒解鎖,刷韌體時需要校驗韌體的簽名資訊,那第三方的簽名自然是被拒絕了。
  不同版本可能要求的Bootloader版本不一樣(一般是Android版本越高要求的Bootloader版本也越高)。比如1.6版本的Bootlaoder和2.1版本的Bootloadr版本不一樣,也就不能隨便刷到2.1,但是如果刷的是1.6的民間ROM,那麼一般是沒問題的。也就是說,如果是刷相同的Android版本(比如官方1.6刷民間1.6),那麼是沒問題的,但是如果是要升級高版本(比如官方1.6刷民間2.1),這時候就要考慮Bootloader了。
關於BL鎖的更多資訊
6.adb工具
  adb即Android Debug Bridge(Android調試橋) tools。它就是一個命令行窗口,用於通過電腦端與模擬器或者真實設備交互。

刷機模式

1.Recovery
  Recovery是Android手機備份功能,指的是一種可以對Android機內部的數據或系統進行修改的模式(類似於windows PE或DOS)。在這個模式下可以,對已有的系統進行備份或升級,也可以在此恢復出廠設置。
  Recovery是一種卡刷,就是將刷機包放在sd卡上,然後在Recovery中刷機的模式。一般刷rom 之前最好wipe一下(wipe禽畜使用數據,只是抹除rom 以外的個人數據,不會影響rom 本身),
Twrp

2.Fastboot
  Fastboot即快速啟動,是Android系統的一種引導模式Fastboot是一種線刷,就是使用USB數據線連接手機的一種刷機模式。相對於某些系統(如小米)卡刷來說,線刷更可靠,安全。
  兩種進入Fastboot模式的方式

  • adb命令:adb reboot bootloader
  • 在手機關機的情況下同時按音量+(或音量-)和電源鍵。(不同機型按鍵不同)
    Fastboot比Recovery更加底層.即更加接近硬體層。

刷機過程

準備工作

  首先需要準備好刷機包,可以是自己編譯的,也可以是從別處拷貝的,但一定要確保刷機包適用於你的 Android 設備。然後解壓刷機包,解壓後我們可以得到 boot.img、recovery.img、system.img、bootloader 文件,正是這些文件構成了 Android 設備的系統。
  命令進入 fastboot 環境:adb reboot fastboot

命令執行流程

  在設備進入到 Fastboot 環境後,根據需求執行下面的命令進行刷機:

  fastboot  flashing  unlock    # 設備解鎖,開始刷機
  fastboot  flash  boot  boot.img    # 刷入 boot 分區。如果修改了 kernel 程式碼,則應該刷入此分區以生效
  fastboot  flash  recovery  recovery.img    # 刷入 recovery 分區
  fastboot  flash  country  country.img    # 刷入 country 分區。這個分區是開發組自己劃分的,別的 Android 設備上不一定有
  fastboot  flash  system  system.img    # 刷入 system 分區。如果修改的程式碼會影響 out/system/ 路徑下生成的文件,則應該刷入此分區以生效 
  fastboot  flash  bootloader  bootloader    # 刷入 bootloader
  fastboot  erase  frp    # 擦除 frp 分區,frp 即 Factory Reset Protection,用於防止用戶資訊在手機丟失後外泄
  fastboot  format  data    # 格式化 data 分區
  fastboot  flashing lock    # 設備上鎖,刷機完畢
  fastboot  continue    # 自動重啟設備