Pixel 手機升級保留基帶和資料
Andoird Pie (9.0) 早在今年 8 月 6 號就正式釋出了,但是一直沒有去更新升級自己的 Pixel XL,怕太折騰,剛好中秋在家有空,於是就研究了下如何保留資料與基帶通過線刷升級到新系統。

Android Pie On Essential Phone
00 為何要保留基帶?
我們知道 Pixel 手機根本就沒考慮過國內的電信運營商,因為根本就無法通過正常銷售渠道抵達國內的使用者,所以呢,顯而易見地對國內網路的支援就不是很好。比如中國電信直接就無法使用,需要通過某些手段才能開啟電信4G。Pixel 剛出的時候,還需要花一筆錢請人『破解』才能使用,當然,現在有些『破解』手段已經被公佈了,比如 『 ofollow,noindex">Pixel 破解電信 4G 記錄 』 以及 『 Pixel 開啟完美電信4G支援,雙清保留 』(謹慎嘗試,注意先備份資料)。
其實所謂的『破解』只不過是在手機基帶的網路通訊模組中加入需要支援的運營商而已。而當我們通過原廠映象刷機的時候,如果直接刷則會把原來的基帶給覆蓋掉,導致需要重新『破解』,所以這個時候如果能有刷機的同時保留基帶的方法,那麼我們就不需要重新『破解』了。同理,在使用 OTA 更新的時候,如果基帶發生了更新,那麼系統更新後我們的『破解』也會失效。
綜上,為了避免重新『破解』的麻煩,我們需要保留基帶,當然最好也保留資料。
01 操作步驟
進行如下操作前,請先把手機中的重要資料備份好,否則一切後果自負!
-
首先確保你的手機已經解鎖,如果沒解鎖的第一次解鎖後資料會丟失。
-
把對應你的 Pixel 型號的原廠映象下載好,下載地址: Factory Images ,比如我是 Pixel XL,那麼對應的目前最新的系統就是 9.0.0 (PPR2.180905.006, Sep 2018)
-
把下載好的 zip 檔案解壓出來,裡面有幾個檔案,分別是:
bootloader*.img radio*.img flash-all.sh flash-all.bat image*.zip
-
在解壓後的資料夾中新增
andoird-into.txt
檔案,其中內容為:require board=marlin|sailfish
如果是 Pixel 2 或 Pixel 2 XL,則對應的為:
require board=walleye|taimen
這一步的目的是替換系統映象中的
andoird-info.txt
這樣就可以跳過 bootloader 以及 baseband 的版本檢測了。 -
修改
flash-all.sh
,新增命令,刪除系統映象中的userdata.img
(如果存在的話)以及用我們上一步新建的檔案去更新android-info.txt
,這裡的image*.zip
改成你下載的系統映象名稱就好:# remove userdata.img and update andoir-info.txt zip -d image*.zip userdata.img zip -u image*.zip android-info.txt
註釋掉更新基帶的命令,同樣這裡的
radio*.img
是你下載的映象中的 radio 檔案的名稱:# fastboot flash radio radio*.img
去掉更新系統的預設清除資料選項
-w
(wipe):fastboot update image*.img
最後,修改後的
flash-all.sh
是這樣的(Pixel XL 9.0.0 (PPR2.180905.006, Sep 2018)):#!/bin/sh if ! grep -q dtbo.sig $(which fastboot); then echo "fastboot too old" exit 1 fi # remove userdata.img and update andoir-info.txt zip -d image-marlin-ppr2.180905.006.zip userdata.img zip -u image-marlin-ppr2.180905.006.zip android-info.txt fastboot flash bootloader bootloader-marlin-8996-012001-1804121206.img fastboot reboot-bootloader sleep 5 fastboot update image-marlin-ppr2.180905.006.zip
-
接下來手機連線電腦,進入 fastboot 模式:
adb reboot bootloader
-
執行
flash-all.sh
:sh flash-all.sh
大致就這麼簡單了,另外附上指令碼輸出的日誌:
zip warning: name not matched: userdata.img # 說明我們的系統映象沒有 userdata.img zip error: Nothing to do! (image-marlin-ppr2.180905.006.zip) updating: android-info.txt (stored 0%) Sending 'bootloader_b' (32384 KB)OKAY [0.901s] Writing 'bootloader_b'(bootloader) Valid bootloader version. (bootloader) Flashing active slot "_b" (bootloader) Flashing active slot "_b" OKAY [ 10.058s] Finished. Total time: 11.069s rebooting into bootloaderOKAY [0.009s] Finished. Total time: 0.010s extracting android-info.txt (0 MB) to RAM... -------------------------------------------- Bootloader Version...: 8996-012001-1804121206 Baseband Version.....: 8996-012761-1612201801 Serial Number........: HT69P0203795 -------------------------------------------- Checking productOKAY [0.050s] extracting boot.img (30 MB) to disk... took 0.161s archive does not contain 'boot.sig' archive does not contain 'boot_other.img' archive does not contain 'dtbo.img' archive does not contain 'dt.img' archive does not contain 'odm.img' archive does not contain 'product.img' archive does not contain 'product-services.img' archive does not contain 'recovery.img' archive does not contain 'super.img' extracting system.img (1940 MB) to disk... took 10.183s archive does not contain 'system.sig' extracting system_other.img (313 MB) to disk... took 1.830s archive does not contain 'system.sig' archive does not contain 'vbmeta.img' extracting vendor.img (260 MB) to disk... took 1.454s archive does not contain 'vendor.sig' archive does not contain 'vendor_other.img' Sending 'boot_b' (30993 KB)OKAY [0.851s] Writing 'boot_b'OKAY [0.661s] Sending sparse 'system_b' 1/4 (524284 KB)OKAY [ 15.063s] Writing sparse 'system_b' 1/4OKAY [7.493s] Sending sparse 'system_b' 2/4 (524284 KB)OKAY [ 14.819s] Writing sparse 'system_b' 2/4OKAY [6.191s] Sending sparse 'system_b' 3/4 (524284 KB)OKAY [ 14.819s] Writing sparse 'system_b' 3/4OKAY [4.490s] Sending sparse 'system_b' 4/4 (413888 KB)OKAY [ 10.964s] Writing sparse 'system_b' 4/4OKAY [6.595s] Sending 'system_a' (321188 KB)OKAY [8.458s] Writing 'system_a'OKAY [5.895s] Sending 'vendor_b' (266504 KB)OKAY [7.021s] Writing 'vendor_b'OKAY [4.284s] Setting current slot to 'b'OKAY [0.404s] Rebooting Finished. Total time: 125.766s
重啟之後,新系統大概需要 4~5 分鐘載入,然後進入系統後等待配置完畢就可以愉快地使用啦!
03 注意事項
刷機之前一點要記得備份資料,重要的話說多少遍都不為過。
按照以上步驟操作,雖然資料和基帶可以保留,但是 root 許可權還是會丟的(因為系統都被覆蓋了嘛!),但是從我個人的使用體驗來看,Andoird 9.0 不 root 使用起來體驗也非常的棒。看你個人的使用方式了吧,我覺得還是先用一段時間看看再決定要不要 root~ ୧(﹒︠ᴗ﹒︡)୨
祝大家中秋御快,闔家歡落~ 蛤蛤 ~
參考:
- 不丟電信破解,線刷最新版谷歌軟體的方法