Android刷機的一般步驟
1. 事前准備
先想好為什么要刷機?想清楚了嗎?真的想清楚了嗎!好的,我們應該打開一堆網頁,一堆對應自己機型的刷機教程帖,還要做好重要數據備份,確保“不成功,也不能成仁”。那就開始吧:
確定設備解鎖狀態
- Bootloader 界面:
$ fastboot oem get-bootinfo
1. Bootloader Lock State : UNLOCKED => 表示已經解鎖,可以刷機
2. Bootloader Lock State : LOCKED => 表示未解鎖,自行百度設備解鎖方法
一般需要在官網申請解鎖,並且需要等待 2~3 天的時間。
- 在手機可用的情況下,進入開發者選項,查看如下:
數據備份
- 建議使用 鈦備份:可對逐個應用以及系統數據(包括 WIFI 信息,系統設置,短信,聯系人,另外還有版本控制)進行備份,root 備份首選。
- Adb 備份
- TWRP 備份
配置電腦 Android 調試環境
打開一個終端,敲 adb
或者 fastboot
,如果未顯示異常,則說明已經配置好。如下:
$ adb --version
Android Debug Bridge version 1.0.40
Version 9.0.0_r3
Installed as /usr/bin/adb
若沒有配置,安裝軟件包:pacman -S android-tools
(Arch Linux ver.)
Windows 下載對應的工具包,解壓即可。不過需要配置一下路徑,或者直接把所有的文件都弄到解壓的文件夾下操作。
另說一下驅動,在 Linux 和 Mac OS 下,均不需要考慮驅動的問題。在 Windows 下,需要在網上找到相應設備的驅動,安裝好之后,才可以用 adb
進行刷機。這里一個顯式的標志是:
右鍵開始菜單 => 設備管理器 => ADB interface
如果有這個 ADB 設備,則說明設備驅動已經安裝好。
下載刷機包
這個就考驗個人搜索能力了。一般而言在各自機型的官方論壇上找:一加論壇,MIUI論壇都是不錯的選擇。
其次可以在 XDA 上找,這是個國外比較活躍的 Android 論壇,里面有很多大牛發各種第三方 Rom 包。一般熱門機型都可以在 XDA 上找到自己滿意的 Rom.
下載合適的 Recovery
推薦:TWRP. 專門做第三方 Rec 的團隊,首選!在這個網站上基本上可以下載到自己機型對應的 Rec.
2. 刷機
其實事前准備做得足夠好的話,刷機很簡單,而且風險非常低。
可以使用 MTP 協議事先將刷機包拷貝到手機存儲目錄 (一般是/storage/emulated/0/
,在 Rec 下的目錄結構可能會發生改變/sdcard
). 也可以在 Rec 下使用 adb
傳輸。但前提是你要有功能完備的 Rec. 一般官方的 Rec 非常簡陋,沒什么功能。所以我們首先得刷入第三方 Rec.
刷入第三方 Recovery
在確保手機與電腦正確(開啟USB調試)連接下,在命令行敲
$ adb devices
xxxxxx device
會列出所有已連接的 Android 設備。在高版本的 Android 系統中應該會彈出一個對話框詢問是否允許電腦調試本機,點擊一律允許即可。
確保手機已經解鎖,開機狀態連接電腦。在命令行輸入
$ adb reboot bootloader
手機會重啟進入 bootloader,也就是 fastboot 模式。
確保執行目錄里面有之前下載的 twrp-xxx.img
文件,命令行輸入
$ fastboot flash recovery twrp-xxx.img
即完成第三方 Rec 的刷入。
Note: 此時也可以選擇
fastboot boot twrp-xxx.img
臨時從第三方 rec 啟動
進入第三方 Recovery
在命令行輸入
$ fastboot reboot
重啟手機,然后同時按住電源鍵 + 音量下鍵
(有些手機不一樣,自行摸索) 進入 rec. 也可以等開機后輸入
$ adb reboot recovery
進入rec.
刷機
Twrp 的 rec 界面十分友好,可以設置語言時區等等。刷機之前先要清理(特別提醒:這里已經默認你做好備份了)。我們經常清理的有四個分區
system # 系統分區
data # 數據分區:應用數據(設置,帳號,習慣等)
cache/davik cache # 緩存分區:應用緩存,系統緩存
internal storage # 個人資料存儲:包含照片視頻音樂等所有個人資料
一般 internal storage
是不會動的,把其他三個分區清掉。
然后安裝刷機包,找到事先放好的刷機包位置,刷入,重啟!
Note: 或者事先沒有拷貝的話,確保命令執行目錄中有你的刷機包,使用
adb push aex-xxx-rom.zip /sdcard
即可將刷機包拷貝至手機存儲目錄。+++++++++++++++++++++++++++++++++++++++++++++++++
再或者,使用 ADB sideload 功能邊傳文件邊刷。具體操作在 rec 中:高級 => ADB sideload
然后再命令行輸入
adb sideload aex-xxx-rom.zip
即可開始刷機
完了!一般重啟需要一些時間,請耐心等待一下。
補丁(root包, gapps包)
Note: 注意刷包步驟:先 rom 包,后補丁包。不過還是建議刷完 rom 重啟一次,再進 rec 刷補丁包比較穩妥。
3. Troubleshooting
adb
或 fastboot
報錯:insufficient permission / permission denied
請按照 https://developer.android.com/studio/run/device 提示操作,唯一需要注意的是USB供應商ID. 可以用 lsusb
來判斷。
連接手機之前:
$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 8087:0a2b Intel Corp.
Bus 001 Device 003: ID 04f3:0c1a Elan Microelectronics Corp.
Bus 001 Device 002: ID 04f2:b5a3 Chicony Electronics Co., Ltd
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
連接手機之后:
$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 8087:0a2b Intel Corp.
Bus 001 Device 003: ID 04f3:0c1a Elan Microelectronics Corp.
Bus 001 Device 002: ID 04f2:b5a3 Chicony Electronics Co., Ltd
Bus 001 Device 041: ID 2717:ff48
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
這樣就可以判斷該設備的供應商 ID 為 2717.
然后重啟 udev
服務: udevadm control --reload
(Arch Linux ver.)
拔掉手機線重新插入,再用 adb devices
列舉一遍,就應該可以了。
Note: 另外可以嘗試使用 root 權限執行命令:
sudo adb
和sudo fastboot