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 # 自動重啟設備