如何更新已 root 的 Nexus/Pixel 裝置 ( 2017/4/8 更新)

Android 正在更新… (Credit: ANDROID ASSISTER)
翻譯自 How to update a rooted Nexus device, 並且對部分內容進行了補充.

Google 正式為 Android 用戶提供每月的安全性更新, 這是大快所有人心的大好事. 然而對於已經把裝置 root 掉的使用者, 要做的事情就變得更多了 (因為 OTA 更新安裝前會檢查到你的韌體已經被「修改」過因此拒絕安裝).

對於已 root 裝置的使用者, 這裡提供一個有點麻煩但是並不難的方法.

你需要事先準備:

注意: 以下操作不會抹掉你的裝置上的資料 (不過有的系統設定可能會被還原), 但我仍然建議你先做好備份. 你的裝置或資料的任何損壞都與我無關. 而且在操作之前你最好熟悉一下 Android SDK tools 的使用方法.

解壓縮工廠鏡像 (factory image), 讓裝置進入 fastboot 模式 (一般是在關機狀態下按住「音量 -」和「電源鍵」), 然後按順序執行 (Android SDK tools):

fastboot flash bootloader bootloader-angler-angler-xx.xx.img
fastboot reboot-bootloader
fastboot flash radio radio-angler-angler-xx.xx.img
fastboot reboot-bootloader
fastboot flash boot boot.img
fastboot flash recovery recovery.img
fastboot flash system system.img
fastboot flash vendor vendor.img

如果你要刷入的系統鏡像在 Android 7.1.2 以下,請另外執行:

fastboot erase cache
fastboot flash cache cache.img

裝置現在應該已經能夠進入系統, 但 root 會消失.

因此我們需要將其再次 root. 讓裝置進入 fastboot 模式, 然後按順序執行 (Android SDK tools):

fastboot flash recovery twrp–x.x.x.x-angler.img
fastboot reboot-bootloader

然後在 fastboot 模式中選擇 Recovery Mode, 並刷入 SuperSU 的鏡像 (你可以adb push 將鏡像先上載到裝置). 重啟後, 你的裝置即已安裝最新版本的 Android 更新並且 root.


2017/4/8 更新: 敬告使用上述方法來升級 Android 的各位, 如果你發現 factory image 裏面沒有 cache.img (Google 從 Android 7.1.2 開始作出的調整), 那麼請不要執行下面這條命令:

fastboot erase cache

如果你已經是這條命令的受害者 (boot loop), 下載最後一個含有 cache.img 的 factory image (對於 Nexus 6P 是 N4F26U), 解壓縮出其中的 cache.img, 刷一次即可開機:

fastboot flash cache cache.img