2010-06-29

替 Magic 換上客製化韌體 (Android 1.5 to 2.1)

之前的改機動作,不外乎是透過工程版韌體的權限,趁機換掉 Boot Loader(到 SPL v1.76)、以及具備特異功能的 Recovery Image (RA v1.6.2),事後還原最終穩定的官方韌體 (Android v1.5)、裝上最後的更新,然後補上 root 權限。這樣的改機,說穿了韌體還是沒變、只多了 root 權限,並保留未來換韌體的彈性,用起來還是沒差,就只貪圖能夠裝需要 root 權限才能跑的好用工具。隨著一堆軟體推陳出新,市場上出現一堆只支援新版 Android 的應用程式,我那可憐還在 1.5 的 Magic 自然都不支援。後來 HTC 幾經拖延讓 Hero 從 1.5 升級到 2.1 後,其他更舊的手機大概都要被邊緣化了,這時想升級也沒法期待官方的火力支援,自力救濟可能比較快吧!

其實改機最困難的步驟之前已經完成了(就是做金卡、上歐版韌體、換 SPL 和 Recovery 這些),只要用客製化的 Recovery Image 開機,利用裡面提供刷韌體的功能、選擇想刷的韌體壓縮檔,執行下去就完成啦!換韌體的動作很簡單,困難的是怎麼選擇正確的客製化韌體、並確認基本功能的正常與否。之前遲遲不去換客製化韌體,是因為大部分這類韌體都是從別的手機 Porting 來的,因為硬體上的差異,在使用上多多少少都有缺陷,像什麼相機功能不正常啦、GPS 不能動、沒有中文輸入之類的,直到 HTC 發佈給 Hero 從 1.5 升到 2.1 的更新,神人們也取得了更好的素材,讓硬體上相當接近 Hero 的 Magic,能擁有更成熟穩定的客製化韌體。開刷之前,首先要先瞭解哪些韌體是適合自己手機的,因為在 XDA 上,客製化的韌體流派很多,從早期的 SuperHero、到最近的 Smoki,使用上都有一些限制,處理上不小心,輕則手機開不了機、嚴重一點就直接變磚塊了。開始之前,要先確定當下手機的各種版本資訊,把手機關機,按著返回鍵、然後再按電源鍵開機,這時候會進到 BIOS/Fastboot 的模式(這模式沒法抓圖,只好拿別人拍的照片):

仔細看一下上面那幾行,如果是照我之前的改機動作更新 SPL & 歐版韌體,版本資訊應該是:

SAPPHIRE PVT 32A ENG S-OFF H
HBOOT-1.76.2007 (SAPP10000)
CPLD-12
RADIO-6.35.08.29
Aug 21 2009,18:19:15

這裡透露了三個和選擇客製化韌體有關的資訊。首先,我的 Magic 是台灣中華電信綁約販售的,因此第一行型號上有個 32A,相對歐洲 Vodafone 販售的則是比較低規的 32B,硬體上的些微差異就會影響到韌體的相容性。其次,第二行標注了 HBOOT (SPL) 的版本,因為之前改機換過,所以當下是比較新的 1.76,如果是 HTC 原廠出貨、沒改過機甚至也沒上過任何更新,版本應該會停留在 1.33。第三個重要資訊是第四行的 RADIO 版本,換過歐版韌體後,RADIO 變成新的 6.35.0829(原來 Magic 好像是 6.35.0729),有些客製韌體會要求 RADIO 必須是更舊的 3.22,如果想刷這類韌體就必須先手動換 RADIO 降版號。有了這些資訊,就能判斷哪些韌體是適合自己手機使用的了,例如 XDA 上的置頂文章:[ROM][32A][6.35]Smoki x.x.x,表示這個 ROM 是適用於 32A、RADIO 6.35 的 Magic 手機,另一個流派:[Rom][32a][32b][3.22] CyanogenMod x.x.x,表示的則是適用 32A & 32B 型號、但限制 RADIO 必須是舊版 3.22 的。當然,刷機前還是要詳細閱讀文章裡提到的注意事項和步驟,才能確保刷機順利。

更新前每個人最擔心的,是如果刷了不喜歡,能不能還原啊!所幸我們用客製化的 Recovery,裡面提供和 Ghost 一樣、有備份和還原的機制,只要記憶卡空間還夠(大概要兩三百 MB),可以直接幫忙 Backup 整個手機的韌體和所有應用程式(包含簡訊紀錄),想還原只要指定特定備份,也能完整地復原回去。

進入 Recovery 模式 (關機,Home+Power 開機)、選 Backup/Restore、做 Nand Backup

備份完在記憶卡裡會有一個 nandroid 目錄,下面有手機序號子目錄、備份時間的次目錄,裡面放的幾個檔案就是整個手機的備份,要還原的話只要仿照上面備份的步驟,最後改選 Nand Restore,就能還原備份的系統啦!(備份選項有很多種,+ ext 指的是備份包含 App2SD 的分區資料,BART 則是另一種完整備份的方法,我沒試過,比較不出差異)

像我比較保守,即便有備份也懶得把檔案在記憶卡和電腦間搬來搬去,因此另外準備了一張新的 MicroSD 記憶卡來玩改機。一方面我想玩 App2SD(就是能把應用程式裝到記憶卡的工具、可以節省手機記憶體空間)、要搞重新分區 (Partitioning),其次也有網友反應玩新韌體時最好砍光記憶卡裡的檔案(甚至重新 Format),反正現在記憶卡便宜,原來的記憶卡就當備份(換記憶卡 Restore 就能復原),新卡就拿來亂搞吧!(沒錢買卡的只好先統統備份到電腦去、清空再亂搞你的記憶卡)

新記憶卡重新格式化後 (FAT32),插入手機、再次進到 Recovery 模式,先利用 Recovery 的分區功能割出一塊給 App2SD 用的空間:

1. "Partition sdcard"
2. "Partition SD"
3. 然後設定分割大小
  a. "Swap-size" (沒什麼用,設 0 MB)
  b. "Ext2-size" (App2SD 存放程式的空間,看你高興,設定 1024 MB 應該夠了)
  c. 剩餘的空間就是記憶卡剩下的可用容量...
4. "SD:ext2 to ext3" (轉換檔案系統,換成 ext3 就行了)

以上就完成 App2SD 的分割區準備了(你高興自己在電腦上做也行)。關掉手機,把記憶卡透過讀卡機接上電腦,把客製化韌體的檔案複製到記憶卡的根目錄(此時也可以順便用磁碟管理員看看剛剛的分區分割正不正確),就準備來刷機了。因應當下的版本資訊,以下用 Sanpei 這個 2.1 的韌體當範例(本來用 Smoki,不過版本更新太快又出很多小問題、所以又換回 Sanpei),先到作者發佈的網頁上找連結,作者更新很快,因此韌體相關的檔案也很多,不過大致分成兩種:一種是完整韌體、檔案差不多要一百多 MB,要刷之前應該先把手機和記憶卡資料清乾淨(專業術語:WIPE);另一種是更新檔,檔案約幾 MB,主要是給刷過完整韌體的人更新用的,更新完原有安裝的程式和資料都會保留。以 Sanpei 為例,現在最新版完整版為 2.1 alpha(差不多 100MB),後來又出了一些修正(JIT 啦超頻 OC 啦),因此刷韌體的步驟是先上完整版、再依序看個人需要上更新。下載完所需要的檔案後,統統複製到手機記憶卡的根目錄,把記憶卡插回手機,直接用 Recovery 模式開機。

進到 Recovery 模式,記得要先清光所有資料。選擇 Wipe、進一步先去清掉資料和設定 (Wipe data/factory reset)、再來是 Cache (Wipe Dalvik-cache)、要清一下剛剛的分割區也可 (Wipe SD:ext partition):

清乾淨後就要開始刷機啦~選擇 Flash zip from sdcard,指定第一個要刷的完整韌體壓縮檔 3pei_hero_2.1_alpha.zip,完成後其他更新有興趣自己再補上去,都刷完後 Reboot 重開手機,就可以準備迎接重獲新生的 Magic 吧(第一次開機要比較久)!

如果玩膩了這個流派的韌體,或是有問題用不順手,找到與手機相對應版本的其他韌體,只要反覆做「清空記憶卡檔案和目錄」、「複製韌體檔案到記憶卡根目錄」、「到 Recovery 模式 Wipe 和重刷韌體」,就能很輕鬆地體驗各種不同的客製化韌體。像另一個討論火熱的韌體 Smoki,從 0.6 開始我就刷過了,因為作者更新更快、動不動就有新更新,截稿前已經到 0.6.13.1 了!動手前一樣要注意想從那個版本開始,原則上就是找最新、需要 Wipe 的完整版,然後依序一個個補上之後 no wipe 的更新就行。如果覺得還是最後那份 1.5 的官方韌體習慣,只要插回備份的記憶卡、用 Recovery 模式 Restore,手機就能回到惡搞前的穩定狀態啦!難怪之前有人說,只要搞定 SPL & Recovery,要刷壞 Magic 應該還挺不容易的,一旦陷入玩客製韌體的世界,追著最新版或嘗試新服務新功能,實在是很難自拔啊~(本文的版本和連結請自行跟上 XDA 上的內容,那邊更新太快、本文一定跟不上啦~)

最後老話一句,世界上不會有所謂的「完美」韌體,每家流派每個版本通常有一好沒兩好,維持最新版不一定是最棒的,端看個人的需求有沒有被滿足,如果追著最新版一直刷,可能面臨三天兩頭就要 Wipe 的命運(一旦 Wipe、所有軟體和設定就要重來,簡訊也沒了,就和重灌電腦一樣),玩客製化韌體還是要能自制,不然還是會走火入魔啊!

PS. Sanpei 文章有提示,換新版韌體之後,記得也要把已經裝過的 HTC Sync 升級到新版,不然裝置可能會發生辨識不到的狀況。原來的版本好像是 2.0.18 之類的,最少要換到 2.0.25 ,記得要更新一下。

參考文章:
MAGIC 2.1 ROM 點點名
苦求升級無方~Magic 大補帖 (升級完美Android 2.1繁體中文版)
[ROM][6.35] Sanpei's HERO Sense, OCed version/almost everything like HTC official ROM

回應: 16

tommy 提到...

你好~我也是magic使用者,請問可以代為升級2.2嗎?費用是多少?

Abin 提到...

To tommy:
首先,2.2 韌體還不是很完整(相機、攝影有問題,輸入法和中文還要調整),再者,我這是不提供什麼改機和升級服務的,有需要的話請自己去 Yahoo 拍賣或是 Mobile01 上找,印象中有人提供這類服務。

匿名 提到...

刷機成功, 不過HTC SYCN 認唔番部機..

carso 提到...

作者已經移除這則留言。

carso 提到...

不好意思, 我又來留言了, 昨天我是用台灣官方網站最新版本的 HTC Sync v2.0.33
但是在更新韌體之後, 電腦就無法成功辨識 Magic, 連 adb devices 都看不到
今天把 v2.0.33 移除, 改安裝 v2.0.25, 神奇的是這樣子就可以看到 "My HTC"
而且 adb devices 也找得到 Magic 了
不過還是有其他裝置無法成功辨識, 但那已經不影響我平時的運作了
我比較好奇的是: 照理說, v2.0.33 應該是比 v2.0.25 更新的版本, 為何反而認不到呢?
百思不得其解...
(昨天的發言如果造成了您的困擾, 還請見諒)

匿名 提到...

請問magic官方1.5的ROM有辦法使用app2sd嗎? ps.root以開啟

Abin 提到...

To carso:
我自己也是裝 2.0.25 的版本,所以我也不知道為什麼新版不行 XD
非官方韌體就是這樣,像認不到的裝置,就是「共用行動網路」的數據機驅動程式,這部份非官方韌體就沒辦法幫忙開發,自然要用手機內建的共用方式讓電腦透過 USB 接手機上網就沒辦法做到了!(不過可以用 Wifi Tether 之類的來做)
不知道其他的非官方韌體有沒有類似的限制.. (smoki, froyo ..)

Abin 提到...

To anonymous:
官方 1.5 + root 是不能做 app2sd 的,要支援這個「一定」只能用修改過的非官方韌體

carso 提到...

我改機最主要的目的是讓magic可以變身為無線AP
不然我的macbook接著magic也不能上網 Orz...
本來只是純粹要拿回root權限,但是又看到了您分享 Android 1.5 to 2.1 的文章
忍不到就直上 Android 2.1
目前用起來是覺得比先前官方 1.5 慢了一點,而且也比較耗電?
電力問題不知是不是我的錯覺,performance比較慢是蠻明顯的
害我又有點想降回 1.5,但是又有些小軟體不支援 1.5,例如:Facebook for Android v1.3 =.=

Unknown 提到...

"To anonymous:
官方 1.5 + root 是不能做 app2sd 的,要支援這個「一定」只能用修改過的非官方韌體"

了解!!問題好像卡在開機的時候不能自動掛載ext2格式的sd卡

Unknown 提到...

請問 Jit 的意思是什麼呀

匿名 提到...

你好:
Recovery模式消失,造成無法更新( Remote not allow),應如何恢復?

匿名 提到...

你好~想請問一下
有辦法還原到原本的1.5嗎?

匿名 提到...

你好請問已刷完3pei_hero_2.1_alpha.zip這個成功後,並已使用一段時間。再要再刷其他的JIT OC超頻的話,也是要重新WIPE一次嗎?謝謝!

Unknown 提到...

abin大,我想請問
sanpei的ROM不能用setcpu調整頻率嗎?
我發現調整後,最大值跟最小值仍然是預設的576/384
有辦法我把最小值調整的再小些嗎?

運動創傷 提到...

頭痛,似乎很難。

張貼留言

歡迎留言或發表意見,不過要理性不做人身攻擊。匿名的朋友得到回應的速度會比較慢喔~
發問相關的禮貌和規矩請先參考這篇文章,不當留言、和本文無關的回應可能會被直接刪除無視喔!