2015年4月13日 星期一

用 Linux 完成 手機解鎖、刷 recovery、再刷 ROM 的實驗

.

因為想玩 Linux  fastboot,所以找了一台二手的 hTC Wildfire S  A510E。

<刷機有風險,宜謹慎進行>


實作的硬體條件:

1.hTC Wildfire S 手機。
2.USB 連接線。
3.PC/NB 從 USB 啟動   puppy linux (tahr-6.0.2_大甲溪_1.0)。


實作的軟體條件:

到 htcdev.com  (unlock bootloader) 取得 linux 版的 fastboot。


實作的步驟;

1.
卸下 hTC Wildfire S 電池再裝回。按住 VOL- 不放,再按 POWER ,進入 HBOOT。

2.
接好 USB 連接線。再設 HBOOT ,會看到紅色反白的 FASTBOOT USB 以及
藍色反白的 BOOTLOADER ;























3.
Linux 開終端機,輸入 fastboot devices 看看手機有沒有回應,例如;

root# ./fastboot devices
HT15CTR02026 fastboot

4.
輸入 fastboot oem get_identifier_token 取得  token,例如;

root# ./fastboot oem get_identifier_token
... INFO
INFO< Please cut following message >
INFO<<<< Identifier Token Start >>>>
INFO68E1A9FEA0EEF4FE1AFF1856B15BEDD0
INFO362D51218CC95EB43D145ECD5FB7D338
INFODBBC912F7A880B1263E9C04A85621630
INFOE26E38B9E367DBA0DD873E991455AC48
INFOAF63E77D2892CAB05F76797AB39829E5
INFOD61BC406275878B4A819259D0DBB1E14
INFO891CCF4468FA5DA383281CE3F7F8A2CF
INFO34ACAF3AC7D7E68FC0219329DB579E64
INFOAB3143DA4E8E472AD6C3F1F5367D947A
INFO7DCA4A189E67F049C60DED440FBAD31D
INFO65C1475D0CEE78E868C8D0BAEF0027C0
<<我刪掉一行,避免被誤用>>
INFO20D44D6E9FD9E9CA08CF7149A9E99A87
INFO006E75E8E250B92799353EFC238D696A
INFOB7C2C00FDEEC22727063360D41024872
INFOE852BC8797F73AD69CD93F68E9634890
INFO<<<<< Identifier Token End >>>>>
OKAY
root#

如果再打一次 fastboot oem get_identifier_token ,取得的  token 看來與第一次不同,
但都可以用:

root# ./fastboot oem get_identifier_token
... INFO
INFO< Please cut following message >
INFO<<<< Identifier Token Start >>>>
INFOAD9608D057D1E9E827AC8B2C66714EB8
INFOE02515C4482CFCC967E671830AF9EFA9
INFO20B91308D8AC17E59DBD4B93B8B4BF81
INFO070ED39F7D77224C712BDE6708692BE3
INFO90D401E5524AED6777F24D05977B226A
INFOCDFF70BCAEA4C7E5351A84C68AAD0EED
INFO59BEC397990260A7EF2F9F47A9C35655
INFOB9540A77426B5F79FA09B613F8BC377A
INFO8893DCCB8E5BAEF09FADC9EF03436E97
INFO8877394673CB69219D9C312281C1E5B1
INFO1D14BCEB499FB2EFD9898D59659A5738
<<我刪掉一行,避免被誤用>>
INFOD03CA3B5085135A0FB346ADF8CD9AA32
INFO18C94D24EA6116601B95A8EE9D62C1B8
INFOAB35A3BA8A8C0C6860ED9863415A581D
INFO91FEE900C01730D84D9AEF7A8EC7B4F8
INFO<<<<< Identifier Token End >>>>>
OKAY
root#


這是裁剪後的 token ;

<<<< Identifier Token Start >>>>
AD9608D057D1E9E827AC8B2C66714EB8
E02515C4482CFCC967E671830AF9EFA9
20B91308D8AC17E59DBD4B93B8B4BF81
070ED39F7D77224C712BDE6708692BE3
90D401E5524AED6777F24D05977B226A
CDFF70BCAEA4C7E5351A84C68AAD0EED
59BEC397990260A7EF2F9F47A9C35655
B9540A77426B5F79FA09B613F8BC377A
8893DCCB8E5BAEF09FADC9EF03436E97
8877394673CB69219D9C312281C1E5B1
1D14BCEB499FB2EFD9898D59659A5738
<<我刪掉一行,避免被誤用>>
D03CA3B5085135A0FB346ADF8CD9AA32
18C94D24EA6116601B95A8EE9D62C1B8
AB35A3BA8A8C0C6860ED9863415A581D
91FEE900C01730D84D9AEF7A8EC7B4F8
<<<<< Identifier Token End >>>>>


您要自己取得您自己手機的 token,然後貼入 htcdev.com 的一個窗口,遞交之後可以從
e-mail 收到  Unlock_code.bin。


5.
輸入 fastboot flash unlocktoken Unlock_code.bin 就可將手機解鎖,例如;

root# ./fastboot flash unlocktoken Unlock_code.bin
sending 'unlocktoken' (0 KB)... OKAY
writing 'unlocktoken'... INFOunlock token check successfully
OKAY
root#


6.
將來有需要,可以再度上鎖,例如;./fastboot oem lock



HBOOT 的最上一行本來顯示 LOCKED;之後就會顯示 UNLOCKED 或 RELOCKED。



7.
解鎖後,可以用 fastboot 刷入不同的 recovery,例如:


# ./fastboot flash recovery twrp-2.3.3.0-marvel.img
sending 'recovery' (4744 KB)... OKAY
writing 'recovery'... OKAY
#


以下是兩個 Recovery 實例。


TWRP TeamWin Recovery v2.3.3.0:






















ClockworkMod Recovery v5.0.2.8:(初次接觸,這個可能比較直覺)






















然後就可透過  recovery 來刷各種 ROM。

但是在刷其他ROM之前,建議一定要用上面介紹的 Recovery 來備份本來的ROM。



fastboot 的功能當然不只這些,但是對大部分的使用者,能夠解鎖、刷 recovery、
再刷 ROM,相信就很夠用了。


fastboot 的其他功能,再研究吧。





附:參考資料

進入 HBOOT 後,如果手機有插 SD卡,它自動檢查SD卡,並嘗試載入
PG76DIAG.zip
PG76DIAG.nbh
PG76IMG.zip
PG76IMG.nbh
四個檔案。






















網路上有可以將 S-ON 變成 S-OFF 的 zip 檔,下載後,將它改名為 PG76IMG.zip 放入
SD卡,用這個流程,就可以進行刷入的動作。




有病毒警告的ROM

這個是台灣論壇提供下載連結的 wildfire S ROM :
Marvel_hTC_Asia_TW_2.26.709.2.zip

這個是中國論壇提供下載連結的 wildfire S ROM :
hTC_g-13_台版_2.26.709,2.zip

兩者檔名不同,但是檔案大小一樣,兩個都被 AVIRA 掃出病毒警告。
(system/app/Superuser.apk。 andrioid/Rootor.WI)

網路第三方提供的ROM,可別以為它們都是安全的。



一個沒有病毒警告的版本,google:ROM2.14台灣版本。(雖是2.14.709.1舊版,但可以
在刷完後進行網上更新)。


我的經驗:

ROM2.14台灣版本 +   原廠 recovery = 可以線上更新到 2.26.709.2。

ROM2.14台灣版本 +   CWM recovery 5.0.2.8 =  線上更新失敗

修改後的 ROM2.14台灣版本 (例如移除 apk、換字型)+   原廠 recovery  =  線上更新失敗

所以,

您的 Wildfire S 刷 CWM recovery 5.0.2.8 再刷 Android 4.0、 4.1、 4.2、 4.4 各版本之後,
想刷回原版該怎麼做?

我的步驟:
1.
先經 CWM recovery 5.0.2.8 刷入未修改的 2.14.709.1台灣版ROM。

2.
再刷原版 recovery (google:srecovery235.img)取代 CWM recovery 5.2.0.8。

3.
Wildfire S插好SD卡,啟動後,進行線上更新到 2.26.709.2。





記憶體不足的問題

說明例:將 2G SD 格式化為 1.5G fat32 + 512M ext3,在 Linux 下很容易檢視:

















解決記憶體不足的途徑有多種選擇,底下是四個例子:

1.
經 CWM recovery 安裝 Sense5-marvel-2803.zip,它是 android 4.2.2版;已經 rooted。

此版從 google play 安裝 GMail ,會因記憶體不足而失敗。

此時就要經 CWM recovery 安裝 Data2sdV2withA2sdremover_by_jikantaru.zip,

之後,可用記憶體會變成:





























363M 夠安裝一些實用小app了。


2.

cm-9.1.0-CRYPTOMILK-ALPHA9-marvel.zip (android 4.0.4)
再刷
Data2sdV2withA2sdremover_by_jikantaru.zip































3.
還有,


CWM 6.0.5.3 recovery

cm-11-20150308-NIGHTLY-marvel.zip (android 4.4.4)(在wipe過程中,512M ext3會變成 ext4)
再刷
CronMod-INT2EXT4+_signed.zip
也可以增大可用記憶體空間。




4.
先刷
EQDKP5.2.zip (android 2.3.5,已rooted)
再刷
Data2SDInstallerES.zip

擴充後的內部記憶體:































EQDKP5.2 的 ICON下方文字看起來比較清楚。介面與原版2.3.5類似,但有所不同,
喜不喜歡,那就看個人喜好了。

關於 EQDKP5.2 的更多資訊:
http://forum.xda-developers.com/showthread.php?t=1865976






PART II









.




沒有留言: