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