2018 年我第一次接觸刷機,初出茅廬的我為我的小米平板 1 刷上了系統(tǒng) Lineage OS 15.1,并寫下了 使用 Mac 為小米平板刷 lineage OS。彼時自己對于刷機這個過程頗為生疏,只是小心翼翼的按照教程一步一步操作,生怕有一絲一毫不一致的地方,而其背后每一步驟的原因卻無從得知,故有意撰此文。一方面讓準備刷機的人多一個教程可以參考,另一方面藉此機會充實自己,了解一些 Android 開發(fā)知識,也算是滿足自己的好奇心罷。
出于知識內(nèi)容所限,本文僅討論線刷模式,不討論卡刷模式。
配置 Android SDK 的環(huán)境變量
SDK 的全稱叫做軟件開發(fā)工具包 (Software Development Kit) ,Android SDK 里面包含安卓軟件的開發(fā)工具,這些開發(fā)工具均在 SDK 的安裝目錄下,擁有它們我們才能對 Android 中的軟件進行安裝、卸載等相關(guān)操作。當我們在終端輸入指令要求啟動某個工具或應(yīng)用程序時,系統(tǒng)會優(yōu)先在當下的目錄中進行查找,如果沒有則會在系統(tǒng) Path 指定的路徑下進行查找;而我們配置環(huán)境變量的這個過程,就是把 SDK 的安裝目錄記錄在系統(tǒng) Path 的指定路徑中,讓我們在終端能夠直接使用 SDK 中的開發(fā)工具。該過程也叫做配置 ADB (Android Debug Bridge) 環(huán)境變量。
Mac 系統(tǒng)下的環(huán)境變量配置
參見:使用 Mac 為 Android 手機刷原生系統(tǒng)
Windows 系統(tǒng)下的環(huán)境變量配置
Windows 系統(tǒng)下由于其系統(tǒng)特點,目前(我知道的)有三種方案,將在以下展開,三種方法均適用于 Windows 10 系統(tǒng),其他系統(tǒng)可能有些出入,讀者可部分參考。
方案一:配置環(huán)境變量
參見:win10 如何配置 Android 開發(fā)環(huán)境變量
該方案和 Mac 系統(tǒng)下環(huán)境變量配置的原理一致,都是對系統(tǒng)進行操作。雖看起來步驟多,好處就在于一勞永逸,一次配置「終身」受用,除非你重裝了系統(tǒng),個人優(yōu)先推薦該方法。
方案二:快速安裝與使用 ADB
1 將 platform-tools 數(shù)據(jù)包解壓,進入解壓后的文件夾,按住 Shift 鍵的同時在空白處單擊鼠標右鍵,選擇「在此處打開命令窗口」(在 Win 10 創(chuàng)意者更新中被改為「在此處打開Powershell窗口」);
2 輸入 adb version 檢測環(huán)境變量配置是否完成;
這個方案相當偷懶,其實這個步驟并沒有實現(xiàn)系統(tǒng)的環(huán)境變量配置,只是提供了一個臨時的環(huán)境,但是無論如何這個方法是最方便的,而且對于新手而言非常友好。
方案二:直接訪問 SDK 目錄
1 將 platform-tools 放在一個接近硬盤根目錄如 C:\adb 這樣的地方便于訪問,這時我們需要訪問的目錄為 C:\adb\platform-tools;
2 在運行命令窗口中輸入 cmd 打開命令符窗口,并按下回車執(zhí)行;
3 輸入 cd adb\platform-tools ,并按下回車執(zhí)行,進入目錄;
4 輸入 adb version 檢測環(huán)境變量配置是否完成。
該方案和方案一比較像,都是偏向于臨時解決環(huán)境配置問題,但是都沒有實現(xiàn)系統(tǒng)的環(huán)境變量配置,因此每次使用時都要重新訪問一次 SDK 的所在目錄。
該方案看似簡單、容易操作,但弊端明顯,只有你在進入該目錄的情況下,才符合「環(huán)境變量已配置」的條件,不建議沒有代碼基礎(chǔ)的人操作。
解鎖 Bootloader
一般而言,每個 Android 設(shè)備都會有 Fastboot / Bootloader 模式,它是負責引導操作系統(tǒng)內(nèi)核啟動的引導程序,只有在該模式是無鎖的情況下,我們才能自由的 root 我們的設(shè)備、自定義或安裝一個更加好用的第三方 ROM 固件,否則很容易損傷設(shè)備。
與封閉的 iOS 系統(tǒng)不同, Android 系統(tǒng)是開源的,因而相應(yīng)的各大廠商所開發(fā)的 Fastboot / Bootloader 模式也各有不同。盡管系統(tǒng)是開源的,但是各廠商為了對自己的設(shè)備有著更多的支配權(quán),多數(shù)情況下都會對其 Fastboot / Bootloader 模式上鎖。這就是為什么我們在刷機教程里經(jīng)??吹?「Bootloader 解鎖」這一步了。
Bootloader 解鎖通用步驟
- 打開「開發(fā)者選項」,不同設(shè)備打開的方式不同,請讀者根據(jù)自己設(shè)備機型自行百度一下;
- 先后打開「USB 調(diào)試」與「啟用 OEM 解鎖」(沒有「啟用 OEM 解鎖」選項的設(shè)備則不用理會),該過程需要滿足網(wǎng)絡(luò)流(ke)暢(xue);
- 進入 Bootloader 界面等候;
- 打開 Terminal / CMD ,輸入 Bootloader 解鎖指令,并按下回車執(zhí)行;如果你的設(shè)備為 Android 5.0 及以下,則解鎖指令為
fastboot oem unlock;如果你的設(shè)備為 Android 6.0 及以上,則解鎖指令為fastboot flashing unlock; - 在設(shè)備端此時會彈出 Bootloader 解鎖的確認界面,使用音量鍵移動關(guān)標選擇確認,按下電源鍵開始解鎖;
- 解鎖后設(shè)備會被清除數(shù)據(jù)并重新啟動,待設(shè)備開機后檢查「USB 調(diào)試」選項;
- 重新進入 Bootloader 界面等候;
注意事項
- 解鎖 Fastboot / Bootloader 模式后,可能會使保修相關(guān)服務(wù)失效;
- 解鎖 Bootloader 的過程中,可能會還原設(shè)備一切資料,切記在此前做好資料備份工作;
- 解鎖 Bootloader 的過程中,有一定損壞設(shè)備的風險;
- 該 Bootloader 解鎖方式大體上對于 Android 設(shè)備通用,但是鑒于各廠商 Android 設(shè)備差異實在太大,建議如果有官方解鎖通道就先去申請官方解鎖,沒有解鎖通道再嘗試該方法。當然對于從來沒有放開 Bootloader 解鎖權(quán)限的品牌(可自行百度),還是該放棄放棄吧。
刷入第三方 Recovery
設(shè)備一般都會自帶一個官方初始的一個 Recovery ,其作用主要用于恢復出廠設(shè)置與OTA安裝/升級,但是由于官方 Recovery 不能識別第三方 ROM ,而第三方 Recovery 卻可以,所以我們一般在刷機之前都會先刷入第三方 Recovery 。
目前比較推薦的第三方 Recovery 是 TWRP,該項目是一個社區(qū)開源項目,掛載在 GitHub 上。也許你會發(fā)現(xiàn)之前也有人推薦過 CWM ,很遺憾的是,該項目已于2014年停止了維護,如果你用的設(shè)備型號比較老的話,可能會用到它。
刷入第三方 Recovery 的通用步驟
- 準備好設(shè)備匹配的第三方 Recovery 版本,后綴為.img;
- 重啟手機至 bootloader 模式,電腦端運行 Terminal/CMD;
- 輸入
cd 你的第三方 Recovery 文件路徑,并按下回車執(zhí)行,以此來定向第三方 Recovery 的文件位置,接著輸入 fastboot boot xxx.img(xxx 為具體的文件名),并按下回車執(zhí)行,此時 Recovery 已經(jīng)刷入,手機會重啟至 Recovery 相應(yīng)界面。
注意事項
- 該過程中需要定向 Recovery 的位置,故而如果你在 Windows 系統(tǒng)下的環(huán)境變量配置時用的是方案三,在這里會比較麻煩,解決方法是把你的第三方 Recovery 文件放在 platform-tools 目錄下,讓兩個目錄一致。
類原生 Android 系統(tǒng) ROM 推薦
Lineage OS
Lineage OS 是 Android 的最大售后市場分銷,以前稱為 CyanogenMod。2016年開源項目 CyanogenMod 被宣布停止,被復刻為 Lineage OS ,由原團隊 CyanogenMod 繼續(xù)開發(fā),源代碼于 GitHub 可用。
Resurrection Remix OS
Resurrection Remix OS 基于 LineageOS 15.1,包含大量附加功能和定制選項。因為它提供了許多功能,所以成為了 Android 設(shè)備最受歡迎的自定義ROM,源代碼于 GitHub 可用.
[圖片上傳中...(image-16481c-1586315721263-2)]
crDroid
crDroid 基于 Lineage OS,在此基礎(chǔ)上附加其他性能調(diào)整和額外功能,源代碼于 GitHub 可用。

Pixel Experience
Pixel Experience 基于 Android 開源項目 (AOSP) 與 Code Aurora 項目(CAF)開發(fā),由于 Pixel Experience 中包含谷歌全家桶,故而相比與其他 ROM 包來說要大些,源代碼于 GitHub 中可用。
Paranoid Android
Paranoid Android 的制作團隊就是 Oxygen OS 的制作團隊,該制作團隊的核心成員被 Oneplus 聘請,為 Oneplus 做 ROM 開發(fā),源代碼于 GitHub 中可用。
AOSPEXTENDED ROM
AOSPEXTENDED ROM 基于 Android 開源項目 (AOSP) 開發(fā),它提供了各種自定義特性和底層主題引擎,源代碼于 GitHub 中可用。
[圖片上傳中...(image-a2a04a-1586315721262-0)]
XOSP
XOSP 是基于 CyanogenMod 13 的 ROM ,混合了很多 Xperia 的特性,帶來不一樣的感受。因為是 Xperia + AOSP 的混合體,因此命名為XOSP。
魔趣 ROM
魔趣 ROM 基于 Android 開源項目 (AOSP) 開發(fā),Slogan 是「可能是中國最好的安卓開源系統(tǒng)」,源代碼于 GitHub 可用。
總結(jié)
這些是我這些天各種查資料總結(jié)到的,由于個人能力與知識水平所限,會存在一些不足之處。如前輩們發(fā)現(xiàn)文中有錯漏的問題,誠求各位不吝賜教。
附錄
常用 ADB 命令
| 代碼 | 含義 |
|---|---|
| adb reboot bootloader | 在 bootloader 模式下重啟 |
| adb push | 將文件從本地系統(tǒng)復制到 Android 手機的位置 |
| adb pull | 將文件從 Android 復制到您的系統(tǒng) |
| adb devices | 顯示所有連接的 adb 兼容設(shè)備 |
| adb backup | 備份 Android 設(shè)備 |
| adb install | 將應(yīng)用程序從系統(tǒng)的 apk 文件位置安裝到 Android 設(shè)備上 |
| adb reboot | 在正常模式下重新啟動 Android 手機 |
| adb connect | 通過 WiFi 網(wǎng)絡(luò)使用adb命令 |
| adb shell screencap | 獲取設(shè)備的屏幕截圖 |
常用 Fastboot 命令
| 代碼 | 含義 |
|---|---|
| fastboot devices | 顯示連接的 Android 設(shè)備的序列號 |
| fastboot oem unlock | 解開 bootloader 鎖(Android 5.0 及以下) |
| fastboot oem lock | 恢復 bootloader 鎖(Android 5.0 及以下) |
| fastboot flashing unlock | 解開 bootloader 鎖(Android 6.0 及以上) |
| fastboot flashing lock | 恢復 bootloader 鎖 |
| fastboot flash recovery (filename) | 在 bootloader 模式中向設(shè)備刷入文件 |
關(guān)聯(lián)閱讀:
參考鏈接
- 五步搞定 Android 開發(fā)環(huán)境部署——非常詳細的 Android 開發(fā)環(huán)境搭建教程
- How to quickly install and use ADB
- What are Android SDK Platform Tools & How to Use ADB and Fastboot
- 一貼解決幾乎一切刷機問題!adb 和 fastboot 命令簡易教程!
- [教程] 采用神盾內(nèi)核的lineageOS 14.1/ 15.1(更新至1103/1112)刷機教程 刷機常用知識 - 小米社區(qū)官方論壇
- Android Fastboot 與 Recovery 和刷機