拿到 NEXUS 5,想要刷 4.4.1 並 root,正確步驟是什麼?

ROOT之後,再想刷CM等ROM,步驟又是什麼.感覺各種教程沒有給一個新NEXUS用戶(之前為IOS用戶)完整的操作步驟.


@Wayde Tse在評論里有指出一些錯誤

教程一般會忽略開發環境的準備。


這裡來一個僅從官方網站獲取資源的版本:

1,到Oracle的網站獲取Java Development Kit 7的最新版,裝之。

http://www.oracle.com/technetwork/java/javase/downloads/index.html


2,到Android主頁(http://android.com)獲取Android SDK。僅需要Android SDK Tools only,無需包含Eclipse IDE的完整IDE。

https://developer.android.com/sdk/index.html

3,打開Android SDK,下載USB驅動


4,打開你Nexus5的開發者模式,開啟usb調試。


5,用USB線把手機和電腦接上,手動指定安裝剛才下載好的Nexus5的usb驅動,當找到usb設備時,在Nexus5上允許你的這台電腦進行adb調試(這是Android 4.2引入的功能,用來防止未授權的訪問)。

你可能需要運行adb devices或者其它會使adb與手機通信的命令,才會顯示這個界面。

到此為止開發環境便設置好了。

這部分的關鍵是:

  • 獲得並安裝Nexus5的USB adb驅動

  • 獲得所需的adb工具,一共四個文件:

adb.exe
fastboot.exe
AdbWinUsbApi.dll
AdbWinApi.dll

如果自己有辦法搞定這兩個項目,那就無需安裝JDK/Android SDK,JDK在本例中僅用於運行Android SDK。

除了手動安裝驅動外,你也可以在電腦上裝個豌豆莢/xx手機管家的方式,讓它們替你做掉安裝驅動的工作。

--------以下是root--------

從這裡開始,你要為你的行動負全部責任

6,找到adb.exe的目錄,在當前目錄開啟一個控制台(或者說開啟一個控制台後把工作目錄轉移到adb.exe所在的目錄),控制台可以是cmd也可以是powershell。 cmd在形式上就是dos/win95/98時代的command。

7,在控制台用

adb reboot bootloader

重啟Nexus5至fastboot,如果是powershell,需要用

./adb reboot bootloader

這樣的unix風格,其中"."表示當前目錄。

截圖裡是powershell的風格,注意cmd採用dos風格,不認「./」。

如果是在linux系統,則每個目錄下真的存在文件名為"."的文件,表示「本目錄」,還有一個叫做".."的文件,表示「上一級目錄」。 dos的控制台也借鑒了這種風格,所以有:

cd..

在linux里,則是這樣,注意空格,說明".."真的是一個文件。

cd ..

8,這裡假設你會用fastboot:短按音量鍵做上下,短按電源鍵做確定。

在電腦的控制台用這個命令

fastboot oem unlock

解鎖bootloader。

這裡假設你明白解鎖bootloader的意義和風險(特別是保修的),對於Nexus5而言,解鎖bootloader會抹掉手機上的所有的用戶數據,包括/sdcard。Google Play Store曾以「鼓勵解鎖bootloader,從而喪失保修資格」的理由迫使CyanogenMod下線它們的CyaogenMod安裝器,儘管這個app本身並不違反Google Play的條款。

CyanogenMod Installer Application Removed from Play Store

bootloader除了達成啟動,並將系統引導權交給系統外,它還保護eMMC上某些區域(/system,/boot,/recovery,/radio以及別的某些區域)不會受到未授權修改。root需要往/system里寫點東西,而我們沒有Google用於OTA的證書私鑰,所以我們必須解開這個鎖。Nexus設備對開發人員非常友好,因此它的bootloader鎖允許被輕易解開。

9,到twrp/clockworkmod下載適用Nexus5的recovery image。

到cyanogenMod或chainfire下載最新的recovery格式(其實就是ota package格式)的superuser安裝包。chainfire的superuser叫做superSU。

以上的第三方recovery是用來讓你安裝自定義ota package的工具,官方的recovery一般只認官方格式且帶特定數字簽名的ota package。

這裡除了superSU外,都是自由軟體。

TWRP: http://teamw.in/twrp_view_all_devices
CWM: http://www.clockworkmod.com/rommanager

superSU http://download.chainfire.eu/supersu
CWM superuser http://download.clockworkmod.com/superuser/superuser.zip

10,繼續用fastboot,「fastboot flash recovery [剛才下載的recovery image的全名]「(不包括大括弧),如此剛才下載好的第三方recovery便替代了原始的官方recovery。

可以看到我的習慣,recovery下載之後改個名字,6043表示cwm recovery 6.0.4.3,mako表示Nexus4

11,到手機上操作(當然也可以用fastboot reboot recovery),重啟至recovery

12,進入recovery里的sideload,在電腦端的控制台運行"adb sideload [superuser ota package的文件名]",這樣root就做好了。

所謂root便是往手機里裝一個叫做superuser的軟體包。

superuser包含兩個組件,用來把進程許可權提升至root的su binary和管理用的superuser app。(這裡app指代android應用程序)

具體可以參考:

http://www.linuxidc.com/Linux/2012-06/62329.htm

你也可以事先將superuser ota package安裝包拷貝到手機里,在recovery里直接選擇這個zip文件安裝(注意第一項choose zip from /sdcard,這裡的"/"表示分區,分區名叫做「sdcard」,實際上它是Nexus5的eMMC晶元里的一個分區,Linux把它理解成一個目錄屬性的文件)

當你在windows xp且沒有裝windows media player的情況下,你無法通過mtp拷貝文件,此時可以用adb push。除此以外,你還可以用CWM recovery的usb掛載/sdcard的方法。

cwm6觸摸版本的sideload

13,重啟至system,無論在recovery里操作還是用adb reboot都可以。這個時候你的手機就能動用root了。

--

顯然前面的步驟還有些事項沒有說明。但是你也能注意到,這裡很多步驟都不是唯一的。多了解點,實際操作時便越不折騰。

繁瑣吧?

所以有刷機精靈,有xx一鍵root(商業軟體,我不相信它們安裝的superuser是安全的)


所以有cf autoroot CF-Auto-Root

---

所謂的刷機和安裝superuser原理相同,它用的通常也是ota package。

只不過為了不讓/data,/cache的舊文件干擾新的系統,在刷機以前我們需要做wipe。

所謂的factory reset/wipe/雙清便是格式化以上兩個分區。

而刷機包會自動完成/system,/boot(如果需要的話)分區的格式化。但是一般的習慣,刷機包不會格式化/data,ota package本身不知道你是把它拿來用作刷機的還是OTA的,就像superuser的ota package那樣。

所謂OTA更新無非是在不格式化/data的情況下直接安裝對應當前系統的ota package。

---

還有一種

當你想回到剛剛拿到Nexus5那一刻怎麼辦?

Google提供了工廠鏡像

https://developers.google.com/android/nexus/images

下載對應你設備的工廠鏡像,解壓,把前面提到的幾個adb組件放到同一個目錄(當然,你完全可以用PATH)。只需要這三個文件。

fastboot.exe
AdbWinUsbApi.dll
AdbWinApi.dll

想辦法重啟到fastboot,然後運行flash-all.bat。

這個方法會抹掉手機上的所有東西。

HTC的RUU也是採用相同原理。


沒事刷來刷去好玩嗎?不作死就不會死好吧。新買的手機好好琢磨琢磨怎麼用起來,別折騰。OTA升級到Android 4.4.1即可,還沒OTA就等著。3個月之內不需要去研究Root是怎麼回事。至於CM,呃,Nexus系列刷CM幹嘛?


How To Build CyanogenMod Android for Google Nexus 5 ("hammerhead")

Information: Google Nexus 5 ("hammerhead")


Nexus Root Toolkit


4.4.2已經推送,直接更新到4.4.2,然後root即可,不要刷來刷去


推薦閱讀:

小米 2 和 Nexus 4,哪個更值得買?
Nexus手機用戶如何很好地回答別人問這手機是什麼牌子的問題?
nexus設備本身為什麼都不注重解決android的碎片化問題呢?我主要是指屏幕的解析度和比例
索尼手機做工精良,業界評價甚高,為什麼銷量就是上不去?
為什麼 PC 多種多樣卻沒有碎片化的問題而 Android 有呢?有沒有可能開發出一個中間層來自動適配手機配置,減少開發者的工作,消滅碎片化?

TAG:Android開發 | Android | GoogleNexus |