淘新聞

IT之家科普:安卓刷機基礎知識

對安卓手機玩家來說,刷機可謂是一門必修課,而對小編來講,刷機更是一種“娛樂方式”。相信仍有讀者對刷機的中一些概念不是特別熟悉,不過不用擔心,今天,IT之家就給大家講講安卓刷機的那些事兒。

什麼是Bootloader

我們的電腦每次開機自檢以及硬體初始化都是通過BIOS來完成的,這也是我們的電腦加電之後所載入的第一個軟體,而我們的安卓手機中並沒有BIOS,這就需要Bootloader來充當BIOS的角色了。

和BIOS類似,當我們的安卓手機加電之時,最先執行的一段代碼便是Bootloader,它可以完成設備基本硬體的初始化,載入系統內核,從而啟動系統。

很多手機廠商往往會給自家手機的Bootloader加鎖,當Bootloader被鎖住時,你的手機便只認可官方的固件,如果Bootloader發現手機中的系統不是被指定的,就會阻止其啟動,所以從表面上看,鎖Bootloader帶來的後果,便是它“不能愉快地刷機了”。

那麼問題來了,廠商為什麼要這麼做?原因主要有以下這麼幾點:

一、安全和穩定

官方的固件通常都是經過重重測試的,能夠可靠地運行,而很多協力廠商固件則可能出現各種各樣的問題,其導致的後果輕則影響用戶體驗,重則直接讓手機成磚,所以為了手機的安全和穩定,廠商會為Bootloader加鎖。

二、差異化的用戶體驗

市面上的很多手機都有自己的一套UI,比如三星的TouchWiz,HTC的Sense,錘子的SmartisanOS以及魅族的Flyme,定制UI不僅使得他們的產品特點更加鮮明,有些時候,定制UI更是移動互聯網的“入口”,而如果用戶可以自由地刷機,手機廠商便會淪為“代工廠”,丟掉了自己的特色不說,移動互聯網的“入口”也會被他人搶佔。

三、運營商的利益

很多安卓手機為運營商的定制機,裡面會內置一些無法卸載的運營商軟體或服務,而如果解鎖了Bootloader,這些軟體和服務便可被輕易卸載,運營商的利益就會受損,有些和運營商合作緊密的手機廠商當然不希望看到此等事情的發生,所以就會鎖定Bootloader。

又來一個問題,既然想刷機就要先解鎖Bootloader,那我該怎麼解鎖呢?

手機的生產廠商不同,其解鎖Bootloader的方式自然不同,一般來說,解鎖Bootloader有“官解”和“強解”兩種方式。“官解”,顧名思義,就是“官方解鎖Bootloader”,一些開明的廠商雖然鎖定了Bootloader,但是仍然會提供一些管道來使你可以解鎖Bootloader,這種管道或是發送郵件申請解鎖,或是通過論壇申請解鎖,或是通過其他方式聯繫官方申請解鎖。“強解”,當然就是強制解鎖了,當官方不提供Bootloader解鎖管道時,可以利用手機當中的一些軟體漏洞來強制解鎖Bootloader,不過這種解鎖方式並不安全,如果不到迫不得已,還是不要這麼做的好。

如果你想瞭解解鎖Bootloader的具體方式,則可以在搜尋引擎當中搜索關鍵字:你的手機品牌+你的手機型號+解鎖Bootloader。

需要注意的是,有些品牌的手機解鎖Bootloader即意味著你的手機自動放棄保修。

什麼是Recovery

雖然它們之間並不完全相同,不過你可以簡單地把安卓手機的Recovery理解為電腦的“Windows PE”。Recovery,中文是“恢復”的意思。當你手機的作業系統被損壞,不能正常啟動時,Recovery通常不會受到影響,這時你可以通過手機廠商預設的複合鍵進入Recovery。在Recovery中,你可以執行刷入固件、清除資料/緩存等操作。有時,手機廠商會為你的手機提供系統OTA升級,這也需通過Recovery來刷入。

每台手機在出廠時均預置廠商官方的Recovery,不過這類Recovery的限制比較多,通常你只能用它刷入官方指定的固件,而如果你想刷官方之外的ROM,協力廠商Recovery則是必不可少的。

協力廠商Recovery可以自由地刷入協力廠商ROM,除此之外,有些協力廠商Recovery還有調整分區大小、檔管理甚至雙系統管理功能。

需要注意的是,有些協力廠商Recovery不支持手機廠商官方固件的OTA升級。

小編常用的Recovery是TWRP,你可以點擊這裡進入他們的官網詳細瞭解。

什麼是Fastboot

Fastboot和Recovery有一些相似之處,不過它比Recovery更加接近底層,有著比Recovery更高的許可權。通過Fastboot來刷機也是一種可行的方案,剛剛我們提到的協力廠商Recovery便是通過Fastboot刷入的。

接下來,我們來說一下如何通過Fastboot刷入Recovery。

首先,你需要準備好協力廠商Recovery,這通常是一個img格式的檔;

另外,你的電腦中需要有adb/fastboot工具;

通過手機廠商預設的複合鍵,你可以進入Fastboot模式,不同的手機廠商,其預設的複合鍵也不盡相同,想瞭解更多資訊,你可以在搜尋引擎搜索你的手機廠商+手機型號+如何進入Fastboot。

當以上條件滿足後,你可以打開adb命令列,使用命令:

fastboot flash recovery [Recovery路徑和檔案名].img

來刷入Recovery。

什麼是底包

在一些加了Bootloader鎖的手機當中,你通常不能直接刷入協力廠商ROM,然而沒關係,“曲線救國”的路子還是有的。既然可以刷入官方的固件,那我們就先刷個官方的認可的固件進去,然後再通過卡刷的方式刷入自訂的升級包,以實現自訂功能或自訂UI。在這種情況下,先行刷入的固件通常是高度精簡的“純淨版”官方固件,這種包就被稱為底包。

現在的手機廠商已經不再嚴格地鎖Bootloader了,通常會提供解鎖Bootloader的管道,所以一般的刷機已經不需要先行刷入底包了,不過如今有個別的ROM或系統在刷入之前仍需先刷入底包。比如小米4在刷SailfishOS的時候,就需要先刷入 CyanogenMod 12作為底包。

什麼是ROM

有些國內的安卓定制系統開發商或開發者經常會陷入自己的產品是“UI”還是“OS”的爭論當中,為了避免糾紛,或者出於謙虛的考慮,他們通常會稱自己的產品為“ROM"。

所謂ROM,全稱為Read Only Memory,翻譯成中文就是“唯讀存儲”,類似於電腦中的硬碟。在手機刷機時,我們會將唯讀存儲鏡像(Read Only Memory Image)寫入唯讀存儲,這個唯讀存儲鏡像就是我們所說的“ROM包”。需要注意的是,雖然ROM被稱作“唯讀存儲”不過手機中的ROM晶片從硬體層面上來講並不是唯讀的,所謂的唯讀,只是軟體對這塊分區進行了許可權的設置。因為針對手機的安卓系統通常使用唯讀存儲鏡像(Read Only Memory Image)的方式發佈,雖然嚴格意義上這種說法並不準確,不過習慣上,我們將ROM包指代為系統刷機包。

什麼是內核

內核,顧名思義,這是我們的手機種作業系統的核心,它提供作業系統最基本的功能。我們手機當中的存儲、記憶體、設備驅動、檔案系統、網路通信,均由內核負責管理。簡單地說,它是作業系統與硬體溝通的“橋樑”。

有些人可能聽說過一種說法,叫“刷內核”,那麼問題來了,為什麼要刷內核呢?

有時我們只為手機刷入ROM還是不夠的,因為這些ROM當中的內核可能並不具備某些功能。有時我們需要實現CPU超頻或實現按兩下喚醒,這就需要刷入具有相應功能的內核,以使作業系統和手機硬體順利地溝通。有時如果你的手機出現了發熱或者耗電的情況,那麼刷入一個具有更加良好的電源管理能力的內核也是很好的辦法。需要注意的是,內核要和自己手機的ROM相對應,如果刷了不合適的內核,則可能造成手機無法正常啟動。

什麼是基帶

所謂基帶,就是手機主機板上的一塊負責無線信號的解調、解擾、解擴和解碼工作的晶片或電路,相當於我們在通過寬頻上網時用到的“數據機”,我們在手機上能夠打電話、發短信、上網,這都要多虧基帶的存在。

那麼問題來了,有時我們會聽到“刷基帶”這種說法,明明基帶是硬體,那“刷基帶”是怎麼回事?

實際上,基帶作為硬體,必然要通過軟體的方式與作業系統進行溝通。只有軟硬體相結合,基帶才能正常工作。所謂的刷基帶,就是通過軟體來微調參數,以使基帶硬體可以更好地和作業系統配合工作。

比如我們買了一台非國行的手機,它可能會出現“水土不服”的症狀,我國的網路情況可能和國外並不相同,那麼我們在使用非國行的手機時就可能會遇到不能正常打電話、不能正常發短信或者不能正常上網的問題。在這時,我們就可以刷入能使非國行的手機基帶硬體與我國的網路相適應的基帶軟體,以解決該手機與我國網路“水土不服”的問題。

什麼是刷機

所謂的刷機,就是通過一些手段來增加、刪除或者替換手機中的系統檔,這些檔可以是開機動畫、可以是穀歌服務、可以是內核、可以是基帶,當然了,也可以是整個系統。

有些人可能會問了,竟然還可以通過刷機的手段來刪除系統檔?

當然可以。比如你想刪除手機中通過一般的手段不能直接刪除的穀歌服務套件,這就需要要刷入穀歌服務套件的“卸載包”。所謂的“卸載包”是一段腳本,這段腳本可以在你刷機的過程中運行,以刪除穀歌服務套件。

為什麼刷機

早期的安卓系統比較簡單粗糙,功能並不完善,使用者介面也不好看,這時,就有一些開發者團隊或開發者個人在原生安卓的基礎之上進行修改,發行協力廠商刷機包,以實現對原生安卓功能的完善,或實現對UI的定制。那個時候,我們刷機的原因是我們用到的安卓太簡單。

如今的安卓已經相當完善,早已不能和當年同日而語,我們為什麼還要刷機呢?

其實現在很多人刷機的目的和當年已經完全不同,當年,他們刷機是為了“做加法”,而現在,他們刷機是為了“做減法“。

如今有很多手機廠商預裝的安卓系統被過度定制,它們或不符合Android Material Design的設計標準,或過於臃腫,運行緩慢,越來越多的人選擇刷機,是因為他們用到的定製版安卓太複雜。所以網路上會有“官方精簡版”ROM的出現,原生安卓也收到越來越多人的追捧。

另外,當有些手機廠商不再為旗下某款手機提供安卓大版本的升級時(比如不再提供Android 5.1向Android 7.1的升級),有些協力廠商開發者便會挑起這個重擔,為其適配最新版的安卓系統。很多人為了體驗到新版安卓,便會為自己的手機刷入這些協力廠商開發者製作的刷機包。

還有些人刷機的目的並不是要換系統,比如由於一些特殊的原因,大多數的國行手機並沒有預裝穀歌服務套件,而我們想用上穀歌服務套件,可以通過刷機的方式刷入“GApps包”。

我的手機能否刷機

一台手機能不能刷機是由多方面的因素決定的,這需要手機廠商和開發商/開發者的共同努力。

如果手機廠商嚴格鎖死Bootloader,不管怎樣都不肯提供Bootloader的解鎖管道,那自然不會有太多的協力廠商ROM可刷。

如果一台手機,其Bootloader沒有上鎖,但其過於冷門,銷量可憐,用戶太少,協力廠商開發商/開發者沒有動力為其開發刷機包,自然也不會有太多的協力廠商ROM可刷。

小編經常關注的安卓ROM有LineageOS、Mokee、SmartisanOS、MIUI和Flyme,如果你想瞭解他們的ROM是否針對你的手機做了適配,則可以通過以下連結來訪問他們的官方網站。

LineageOS官方網站:點擊這裡;

Mokee官方網站:點擊這裡;

SmartisanOS官方網站:點擊這裡;

MIUI官方網站:點擊這裡;

Flyme官方網站:點擊這裡。

如何刷機

刷機的方式不止一種,我們來一一介紹。

通過線刷

恢復原廠固件一般使用這種方式。線刷,顧名思義,就是通過資料線把手機連接到電腦,再在電腦上進行刷機操作。在進行線刷時,通常需要將手機重啟到Fastboot模式,再通過fastboot flash命令來刷入img格式的ROM鏡像。

需要注意的是,有些手機廠商提供的原廠固件恢復鏡像可能不是img格式的,刷入方法也可能不是通過fastboot flash命令,甚至有些手機廠商有專門的適用于PC的原廠固件恢復工具,具體的線刷方法還要以官方的說明為准。

通過卡刷

原廠固件的OTA升級或者通過協力廠商Recovery刷協力廠商ROM通常採用這種方式。所謂的卡刷,就是通過“存儲卡”來刷機。早期的安卓手機的內部存儲空間相對較小,把刷機包放置於存儲卡中刷機是當時比較通行的一種做法,隨著手機內部存儲空間越來越大,越來越多的手機不再提供存儲卡插槽,此時,就只能把刷機包放置於手機的內部存儲空間來刷機了。不過由於歷史的原因,“卡刷”的說法一直流傳至今,把刷機包放置於手機的內部存儲空間來刷機也可以稱作“卡刷”。在進行卡刷時,通常需要將zip格式的刷機包放置於手機的內部存儲或者存儲卡當中,再通過原廠Recovery或協力廠商Recovery將其刷入。

通過旁載入

一些Recovery還提供了旁載入功能。如果你的手機不能插存儲卡,也無法將手機以媒體存儲模式連接到電腦,刷機包傳不進來,而電腦可以識別你手機的adb連接,這時就可以借助旁載入來刷機了。

首先,你需要在Recovery當中開啟“從adb sideload讀取刷機包”的功能,再在電腦中打開adb命令列,通過命令:

adb sideload [刷機包路徑和檔案名].zip

來刷機。

嚴格來講,旁載入仍可算作卡刷,它的原理是通過sideload命令將刷機包推送到你的手機裡。

刷出問題怎麼辦

通常來講,刷過機後第一次開機需要較長的時間,這段時間你只需要耐心等待,如果一切順利,它會成功開機的。如果等待時間超過15分鐘,這就可能不大正常了,你需要檢查以下事項:

如果你是卡刷,你需要在刷機之前執行“雙清(清除data以及cache)”操作,如果在刷機之前沒有雙清,那麼在刷機之後你可能會遇到手機無法啟動的問題。

請確認你刷了正確的刷機包,如果你刷入的刷機包沒有針對你的手機進行適配,那麼在刷機之後你可能會遇到手機無法啟動的問題。

請確認刷機包刷入完整,如果你在刷機的過程中斷開手機與電腦的連接(卡刷或旁載入)或者切斷手機的電源(線刷),那麼在刷機之後你可能會遇到手機無法啟動的問題。

如果你在卡刷之前執行了雙清操作,沒刷錯包,刷入的包也是完整的,但是刷後仍然無法開機,你則需要再次嘗試刷入該包。

如果再次刷入後手機仍然無法開機,請考慮換個刷機包。

如果你在卡刷的過程中遇到了導致刷機進程停止的錯誤(比如Error7),請考慮換個Recovery。

如果你嘗試了很多不同的Recovery之後仍會在卡刷的過程中遇到導致刷機進程停止的錯誤,請考慮換個刷機包。

如果刷入新ROM後可以正常開機,但是在使用過程中遇到耗電量巨大、手機無信號的問題,請考慮單獨刷入內核或基帶。

如果你試遍了所有的Recovery和刷機包,手機在刷機後仍然無法開機或者在開機之後仍有個別功能異常,請通過fastboot命令列或官方提供的刷機工具來線刷。

如果你的手機通過卡刷和線刷均無法恢復正常使用,請聯繫售後進行維修,或者考慮換個手機。