如何升級/降級 HTC One X 的 HBOOT

警告

刷機有變磚的風險,請自行負責刷機失敗的責任。

在前面的文章中,曾經提到了如何自己動手建立 CM9 或是 CM10.2 的 image 給 HTC One X 手機使用,但是並未提及最關鍵的步驟: 如何升級/降級 HBOOT

為何或說升級/降級 HBOOT 是非常關鍵的步驟呢?事實上,HTC 提供的 firmware 裡 面,用於 Android 4.0 (ICS) 和 Android 4.2 or 4.3 (JellyBean) 的 HBOOT 是 不相容的,因此若你想要使用 ICS 的版本,你就必須使用舊一點的 HBOOT,反之, 若你要使用 JellyBean,你就需要比較新的 HBOOT,兩者只能取其一。

除此之外,更改手機的 bootloader 是最危險的事情,沒弄好的話,你的手機很可 能就會無法使用,像個磚塊一樣。

行動前必看的幾個連結

要更改你的 HTC One X,或者說想要刷機刷的盡興,你必須要將你的手機進行解 鎖,請參考以下連結:

HTC One X Root 機教學 (含解鎖 Bootloader)

下面這個連結講解了關於 HTC OneX 更新 RUU 必備的資訊 必看

One X RUU 回覆 /Recovery/OTA 相關教學與疑難排解

從 OTA 檔案 中取得 RUU 以及 HBOOT

刷機用的 HBOOT 以及 RUU 可以從 OTA 的檔案中取得,以 AndroidFiles RUU (endeavor) 裡面的

OTA_ENDEAVOR_U_JB_45_S_hTC_Asia_TW_3.14.709.16-2.17.709.7_release_290501b59ldhm19jb48jdy.zip

檔案為例,可以看到這是一個提供給版本為 JellyBean 用的 OTA 檔案,因此裡 面的 HBOOT 也只能用在 JellyBean 上面,若將該 ZIP 檔案解開,可以獲得下 面的資料夾結構

coldnew@Sara ~/ota_endeavor $ tree -n -L 2
.
├── META-INF
│   ├── CERT.RSA
│   ├── CERT.SF
│   ├── MANIFEST.MF
│   └── com
├── firmware.zip
├── fotaBoot
├── patch
│   └── system
├── skin_fota
├── system
│   ├── app
│   ├── bin
│   ├── customize
│   ├── etc
│   ├── fonts
│   ├── framework
│   ├── lib
│   ├── usr
│   └── vendor
└── version.txt

14 directories, 7 files

裡面的 firmware.zip 就是 RUU 檔案,再解開來可以看到

coldnew@Sara ~/ota_endeavoru/firmware $ tree -n
.
├── android-info.txt
├── boot.img
├── hboot_1.31.0000.img
├── rcdata.img
└── recovery.img

0 directories, 5 files

裡頭的 hboot_1.31.0000.img 就是我們所需要的 HBOOT。

如果你想要 ICS 可用的 HBOOT,請點選連結

更新你的 HBOOT 或是 RUU

網路上可以看到很多懶人刷機用的工具,但是透過這類工具無法理解怎樣才能更 新 HBOOT,就讓我們用指令來處理吧 ~

以下命令按照順序進行:

將手機重開機到 fastboot 下

你可以使用 adb 命令,來讓你的手機切換到 bootloader 下,或者是按下 聲 音縮小 按鍵,並進行重開機。

coldnew@Rosia ~/endeavoru $ adb reboot-bootloader

將手機上鎖回去

要更新 RUU 或是 HBOOT 之前,必須要將已經解鎖的手機上所回去,因此請保留 好你解鎖用的 Unlocked_code.bin 檔案。

coldnew@Rosia ~/endeavoru $ fastboot oem lock
...
(bootloader) Lock successfully...
FAILED (status read failed (No such device))
finished. total time: 5.113s

進入到燒錄 RUU 模式

燒錄 RUU 會切換到另外一種 bootloader 下,使用以下命令進行切換。

coldnew@Rosia ~/endeavoru $ fastboot oem rebootRUU

將 firmware 燒錄進去

假設你要燒錄的 RUU 檔案名稱為 firmware.zip ,則使用如以下的命令進 行燒錄。

coldnew@Rosia ~/endeavoru $ fastboot flash zip firmware.zip
sending 'zip' (12878 KB)...
OKAY [  1.833s]
writing 'zip'...
(bootloader) shift signature_size for header checking...
(bootloader) checking model ID...
(bootloader) checking custom ID...
(bootloader) start image[boot] unzipping & flushing...
(bootloader) Format partition LNX done
(bootloader) [RUU]WP,boot,100
(bootloader) start image[recovery] unzipping & flushing...
(bootloader) Format partition SOS done
(bootloader) [RUU]WP,recovery,100
(bootloader) ERASE backup cid
OKAY [  2.469s]
finished. total time: 4.302s

重新開機

coldnew@Rosia ~/endeavoru $ fastboot reboot
rebooting...

finished. total time: 0.134s

重新解鎖

coldnew@Rosia ~/endeavoru $ fastboot flash unlocktoken Unlock_code.bin
sending 'unlocktoken' (0 KB)...
OKAY [  0.035s]
writing 'unlocktoken'...
(bootloader) unlock token check successfully
FAILED (status read failed (No such device))
finished. total time: 39.451s

將 recovery 燒上去

coldnew@Rosia ~/endeavoru $ fastboot flash recovery openrecovery-twrp-2.6.3.0-endeavoru.img
sending 'recovery' (6972 KB)...
OKAY [  1.046s]
writing 'recovery'...
(bootloader) Format partition SOS done
OKAY [  0.602s]
finished. total time: 1.649s