2010-05-03

歐洲工程版 ROM 還原成官方中文 ROM

其實 Magic 搭載 HTC 歐版官方韌體,已經是完整功能的手機(除了一些中文問題),但已經解開其封印,要做什麼應用都可以。不過坊間所有的「非官方韌體」,目前個人覺得都沒有 HTC 自己的官方韌體來得穩定完整(會有的問題包含藍牙不正常、沒有中文輸入法、相機應用怪怪的一堆有的沒的..),而且我解開封印的目的只是取得 root 身份,對於原有的韌體版本 (Android v1.5)、HTC 的 Sense UI、甚至中華電信預載的設定和軟體 (Ex. Hami、Plurk ..) 都覺得還不錯,因此最後決定換回官方中文韌體,並希望保留改機後有的 root 權限和非官方的自製映像檔。

要達到這個目標,首先要取得官方韌體。到 HTC 官網下載給中華電信客戶專用的韌體升級程式 (ChungHwa_3.03.751.4),下載後執行這個 RUU、但別急著下一步開始!安裝程式一執行會先解壓縮到系統的 Temp 目錄下(每台電腦和作業系統 Temp 目錄都不一定位置相同,預設 XP 的目錄在 C:\Documents and Settings\用戶名\LocalSettings\Temp,也可以到「控制台」、「系統」、「進階」、「環境變數」,查看你系統變數 Temp 是在那裡),找一個檔案 rom1.zip,把它複製出來並改名為 sappimg.zip,接著取消 RUU 安裝程式,此時已經取得還原官方中文韌體所需的檔案了。連接手機,把剛剛的那個 sappimg.zip,還有之前用過的 Recovery Image (recovery-RA-hero-v1.6.2.img) 複製到手機記憶卡的根目錄(待會要用),完成準備就要開始刷機啦! 請注意,更新過程之前裝過的軟體、設定和簡訊資料一樣都會消失,要備份資料的話記得先做好。手機關機,按著返回鍵、再按電源鍵開機,這樣會進到 Fastboot 模式,按音量鍵下 [VOL DOWN]、用滾輪中鍵選擇 Flash 剛剛的那個 sappimg.zip 開始更新,更新完再按滾輪中鍵重新開機,HTC 給中華電信的中文官方韌體就刷完啦!

不過,這個更新過程會再把以前我們刷過的 Recovery Image 一併蓋掉,少了這個 Recovery 未來會很不方便,所以我們要再把它刷回來!前一個步驟我們已經把神人自製的 Recovery Image 檔案給複製到手機記憶卡的根目錄了,手機關機,按著返回鍵按電源鍵開機,再進到 Fastboot 模式一次,這時候把手機連上電腦,利用 ADB (Android Debug Bridge) 工具裡面的 fastboot 程式,要來重刷 Recovery Image:

fastboot flash recovery recovery-RA-hero-v1.6.2.img

刷完以後下命令重新開機:

fastboot reboot

開完機 Recovery 就回來啦!到此為止,手機的狀況是:Boot Loader 維持在 SPL 1.76.2007 (因為沒有人會動到它),手機韌體刷回了 HTC 給中華電信的官方中文版(也就是沒改機前、Android v1.5 + HTC Sense UI 這個版本),中間被換掉的 Recovery 也換回來,看起來挺完美了吧!錯!因為換回官方韌體,root 權限又被堵起來啦!所以最後的步驟就是要再取回 root 權限!

之前因為是工程版、從頭到尾本來就是 root 身份,不過換回正式版韌體後就沒有那麼好啦!熟悉 Linux 的人都知道,儘量不用 root 登入能避免一些問題,但真的需要權限的時候,只要透過一個命令 su (switch user),就可以當場變身成管理者啦!同樣的原理,Android 為了避免 root 權限外流,採用兩個措施阻擋:首先讓系統目錄變成唯讀,然後砍掉 su 這個程式,一般使用者要變 root 就沒門啦!為了突破這個限制,只要我們能想辦法把 su 複製到系統裡,當有需要 root 權限存取的時候,透過使用者允許,就能執行 su 開放權限,root 權限才算是又拿回來。

手機關機,這次要進入 Recovery 模式 (Home+Power),此時再把手機透過 USB 接上電腦,我們要用 ADB 工具把檔案暗渡陳倉進手機去,開 DOS 視窗執行以下命令:

adb shell mount /system
adb push su /system/bin/
adb shell chmod 4755 /system/bin/su
adb push Superuser.apk /system/app/
adb shell reboot

以上命令分別是 mount 系統目錄、把 su 複製進系統並更改檔案權限、把 Superuser.apk 這個程式安裝到手機上(這是用來協調其他應用程式呼叫 su 使用的,這兩個檔案可以在這裡下載),最後重新開機。讓手機乖乖重新開機完(這時候和電腦還接著),我們透過 ADB 來測試一下 root 權限是不是搞定了,開 DOS 視窗執行以下命令:

adb shell

這時候的系統提示符號還是 $,代表是一般使用者,接著執行:

su

剛剛安裝的 Superuser.apk 這時候在手機上會跳出提示,告訴使用者有人在做 su 的 request,選擇 [Always Allow] 允許通過後,系統的提示符號就會變成 #,代表 su 成功重新拿回 root 權限啦!

沒動 SPL,所以進到 Fastboot 看到的資訊和之前是一樣的,而此時的系統資訊變成:

「設定」、「關於手機」的手機資訊

有了 root 權限,接下來就可以裝一堆 Android Market 上宣告需要 root 權限才能執行的應用程式(像是看得到付費軟體的 Market Enabler、必裝的自動記憶體管理程式 Auto Memory Manager ..),享受著原來就習慣的官方韌體並且擁有解除封印的能力。

參考文章:Tsubasa~翼 官方Rom+root刷機詳細教學+懶人下載包

回應: 18

匿名 提到...

hi 您好,

關於這檔案,rom1.zip我一直找不到,
是哪裡有問題嗎?
我收尋了整個電腦也沒有?

可以協助幫忙嗎

Unknown 提到...

不好意思 請問一下
在這樣的狀況下 rooted + 官方1.5
請問您知道如何安裝APP2SD嗎
我看到的都是包在rom裡面的做法
謝謝

Abin 提到...

To sheng-wen:
我自己也是採用包在 ROM 裡的作法,手動安裝太麻煩。此外,官方 1.5 核心是不支援的,如果想用,只能使用非官方的韌體。

Unknown 提到...

謝謝你的回答
那可不可以請問一下你現在使用的是哪一個自製韌體呢
有沒有什麼已知問題
不好意思喔 因為好多種自製rom
實在不知道怎麼選呢
謝謝

Abin 提到...

To sheng-wen:
最早我刷 Smoki,不過他它改版速度太快、還塞了不少第三方的軟體,後來我改用 Sanpei 2.1 加上 LED 修正,感覺和用官方韌體的感覺一樣,穩定和完整程度都很不錯。現在在期待下一版、整合 JIT 後聽說執行效能會更好。

Unknown 提到...

請問一下 Sanpei 2.1 有內建 APP2SD嗎?
謝謝

Abin 提到...

To sheng-wen:
有,不過你要先手動用 recovery 模式下提供的 partitioning 功能先做記憶卡裡的分割區,記憶卡裡有了分割區後,什麼都不用做,Sanpei 2.1 刷完開機 App2SD 就自己在動作了。這時候可以上 Android Market 下載一套叫「系統資訊」的程式,它會顯示你 App2SD 後實際使用記憶卡分區的空間有多少。
App2SD 感覺是把記憶卡的空間和手機空間做連結,所以你裝軟體的時候,手機空間還是會用一部分、記憶卡分割區也會用一部分,並不是完全都安裝在 SD 上面,感覺上還是沒那麼好用。

匿名 提到...

您好,小弟遇到刷機失敗狀況,請教您是否有解決方法...
原本已經成功刷機非官方韌體sanpei Hero 2.1,
想改成歐洲工程版官方ROM,於是裝上金卡並直接執行歐版RUU Europe_3.04.401.2,
但最後顯示更新失敗,即停在fastboot畫面,按任何鍵均無反應,
不得已只好強制斷電,結果不論如何開機(Home+Power 或 返回鍵+Power 或 Power),
都停在fastboot畫面,附圖 http://tw.myblog.yahoo.com/jw!ayrbpFDCQ0.nF2Zb6w--/photo?pid=5,
接上USB確認過電腦與手機連線,但是adb devices又找不到裝置,
請問是否變磚了,或請教板大有解救方法嗎?
感謝~~

匿名 提到...

問題已解決,不好意思,打擾了

匿名 提到...

請問台灣大哥大使用者有需要下載"中華電信客戶專用的韌體升級程式"嗎?因為中華電信預設的軟體無法使用,那還有下載的必要嗎?謝謝

                             oxygenheaven

Abin 提到...

To oxygenheaven:
那個官方韌體不是只有「中華電信預設的軟體」,還包含了很多新的 Driver、HTC Sense、HTC Widget,算是一個重大更新。在這篇文章裡,主要是用來「還原成官方韌體」,而 HTC 官網也只有提供這個給中華電信用的。所以還原成官方中文韌體,就只有這個中華電信的版本。
除非你弄得到 HTC 給台哥大客製過的官方韌體,不然就只能用這個檔案,不過裡面會跑出一堆不能用的程式罷了~(有 root 權限的話也是可以砍掉那些程式)
如果你不想還原回官方韌體,那麼可以直接上 2.1/2.2,這個還原的步驟可以跳過。

匿名 提到...

您好ABIN:
  我今天卡在"利用 ADB (Android Debug Bridge) 工具裡面的 fastboot 程式,要來重刷 Recovery Image:"
  我下了指定以後,會跳出error:cannot load'recovery-RA-hero-v1.6.2.img',我確定那個程式我有複製到根目錄,請問你知道問題在哪嗎?可以給我一點建議嗎?謝謝你


                                 oxygenheaven

匿名 提到...

您好ABIN:
  我又有新進度卡關了,請聽我娓娓道來。原本我是卡在上一篇留言的位置,然後我去MOBILE 01爬文,有人的作法是將"recovery-RA-hero-v1.6.2.img"這個檔案存在ADB的TOOLS裡面,我試做,結果就成功了。
  再來繼續參考你的文章,進入 Recovery 模式,開始下指令,但是第一個指令"adb shell mount /system"我就失敗了,跳出device or resource busy,然後我又去MOBILE 01爬文,有人的作法是將第一個指令改為"adb remount",我照做,結果是成功,第二三四五指令都與你的相同,但是我在第三個指令又卡住了,請問我的步驟哪邊出了問題?還是有其他的步驟出錯,麻煩你指點迷津阿,感謝!

                oxygenheaven

匿名 提到...

dear abin:
   在我重新試了很多很多遍之後,他奇蹟似的成功了,所以我又往下一個步驟邁進了,thank you


                             oxygenheaven

shihliang 提到...

請教執行完後,其餘與最後的系統資訊都一樣,只有核心版本是2.6.27-5469d459,與上面的結果有差異,需要重做嗎?謝謝。

Abin 提到...

To shihliang:
2.6.27-5469d459 版本資訊應該是 2.6.27, 而後面那串應該是 hash 檢查碼,不一樣應該沒關係。

匿名 提到...

rom1.zip我一直找不到,
是哪裡有問題嗎?
我收尋了整個電腦也沒有?

可以協助幫忙嗎?

Sandriux 提到...

真的很抱歉...但我現在遇到個大問題
在那段

"手機關機,按著返回鍵、再按電源鍵開機,這樣會進到 Fastboot 模式,按音量鍵下 [VOL DOWN]、用滾輪中鍵選擇 Flash 剛剛的那個 sappimg.zip 開始更新"

我進入Fastboot模式後就只有四種選項,但任何一種都沒有辦法讓我選擇sdcard裡面的東西。
而且我連Home+Power這個都失效了,每次這樣按,就會呈現hTC Magic這個開機畫面的字樣,然後就不動了...
不知道還有什麼方式可以讓我刷回原本的1.5呢? 不好意思打擾了^^"

張貼留言

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