2011年7月8日 星期五

Android 金卡(GoldCard )製作圖文教學

  手裡的 HTC Legend 官方升級 2.2 已經半年多了,我想 HTC 應該也不會再次升級了,是時候開始研究如何刷機了,除非是有重大錯誤或著 HTC 高層忽然佛心來著..... 但機率應該非常小。寫下來做個紀錄,也希望圖文解說能幫到更多需要的人。

  先聊聊 Goldcard「金卡」是什麼;HTC 的韌體更新程式 RUU(ROM Update Utility)有一種確認 CID(Customer Identification)的檢查機制,阻擋了跨區域或跨版本的韌體升級。舉例來說檢查機制如果檢查到的是台灣販售的手機那麼香港版本的韌體就會出現無法使用的訊息。金卡的功能就是在手機使用的記憶卡裡寫入“引導資料”誤導更新程式(RUU)或手機 SPL 的 CID 檢查機制。

(實測已 OTA 2.2 的手機完成金卡後直接使用 Asia、HK 的 2.2 Froyo ROM RUU 是沒問題的)
(直接 RUU 降版本可能要 S-OFF 的手機,我的 S-ON 測試結果是出現“BOOTLOADER 版本錯誤"

25 Asia RUU 26 HK RUU
(Asia 版只有簡體中文 @@a 、 HK 版沒有台哥大的軟體 ^o^)

注意事項:
  將 SD 卡寫入金卡資料以我的經驗是不會讓 SD 內的資料損毀,但還是建議做好 SD 卡的備份。下載回來的 goldcard.img 只能給同一張卡使用(理論上不同手機可以用同一張卡),要是重新格式化為別種格式就要重複 HxD 的動作重新寫入 goldcard.img 中的引導資料。所以建議大家最好是單獨準備一張用不著的而且有牌子的 SD 卡(我是拿 HTC 附贈很囧的 2G 卡),免得玩得太 high 玩到手機變磚時還得急著重作。若 SD 卡出了什麼例如讀不到卡之類的意外,可以到
SD Association 下載 SD Formatter 重新格式化你的 SD 卡。

工具需求:
MicroSD 轉接卡:將 MicroSD 小卡轉大卡或是直接使用 USB 讀取的轉接卡。
讀卡機:轉接卡當然也要有讀卡機讀取了,當然轉 USB 的就不需要了。
HTC Sync:買手機都有附,要不然到 HTC 官網下載也行。
adb(Android Debug Bridge):下載
adb.zip 並解壓縮到 C:\ 底下。(檔案是從 Android SDK r12中取出,請安心服用)當然最好是直接安裝 Android SDK 以後刷機破解都用得著。(SDK安裝教學)。
HxD - Freeware Hex Editor and Disk Editor:
HxD 官方下載

環境需求:
SD卡的格式必須是FAT32。
電腦已安裝HTC Sync。
手機用原廠 USB 線連接電腦,選擇“僅充電”即可。
手機必須開啟「USB除錯中」。(設定→應用式→開發→選取USB除錯)
安裝 Android SDK 或下載 adb.zip 並解壓縮到 C:\ 底下。
安裝 HxD Editor。

開始製作:
  製作金卡第一個步驟取得CID有兩種,第一種的方式是從 Android Market 下載安裝檔案管理軟體。例如「ES 文件瀏覽器」或是「Astro File Manager」之類的文件管理器。安裝後點開「/sys/class/mmc_host/mmc0/mmc0:*/cid」(“ * ”數值每個機器都不同,如下圖使用 Astro 示範的上面綠框顯示)

19 ASTRO 20 Open As
21 Text 22 File editor
23 CID

  第二種方式是使用 adb(Android Debug Bridge)工具。從開始功能表 → 所有程式 → 附屬應用程式 → 命令提示字元;或是按下鍵盤上的 WIN+R 開啟「執行」視窗並輸入「cmd」開啟 Windows 的「命令提示字元」。
03 執行com
  將目錄指向 adb 所在位置,下圖中是安裝 Android SDK 後的正常位置;如果是直接下載 adb 的話就是指向你放的位置,例如放在 C:\ 底下則輸入 cd c:\adb 。指向目錄後輸入下面的指令執行:(輸入指令後看到圖中綠框那排字就表示手機連線正常)
adb shell

04 adb shell
  接著輸入下面指令後會出現一排數值,把 CID 數值標記複製到剪貼簿。
cat /sys/class/mmc_host/mmc0/mmc0:*/cid

05 標記06 取得CID

  這裡注意,上面指令中的 mmc0 最後的 0 也可能是 1 或者其他數字或者字母。如果你的不是 0,可以執行以下指令看看到底是什麼數字或者字母。
adb shell
cd /sys/class/mmc_host
ls mmc*

27 查mmc

  接下來打開瀏覽器到 http://hexrev.soaa.me/ 把你剛剛得到的 CID 輸入到對話框中。
07 輸入CID
  點擊 Submit 會得到另一個數值,請複製下來。
08 取得Hex
  打開 http://psas.revskills.de/?q=goldcard 後把剛才得到的那個一串值輸入到對話框中,填寫你有在使用的 Email ,輸入驗證碼然後點擊按鈕就會把金卡寄到你的信箱。
10 輸入Hex
  到你的信箱取得 goldcard.img 下載備用。
11 取得金卡

  打開之前安裝的 HxD Editor 點選 Extras → Open disk 會出現對話框。
12 HxD open disk
  選擇 Removable Disk1(電腦上不要有其他的卡或隨身碟),取消唯讀狀態。
13 SD
  接著再選取 Extras → Open disk image 打開對話框。
14 open image
  選取剛剛下載的 goldcard.img 檔案。
15
  保留 512 (Hard disks/Flppy disks)選項不變,按下 OK 。
16
  將 goldcard.img 視窗中的 00000000 到 00000170 全部選取複製到剪貼簿。
17
  將視窗切換到 Removable Disk 1 ,一樣將 00000000 到 00000170 全部選取後貼上剛剛複製的數值取代。
18

  最後記得存檔一切就都大功告成,可以準備大殺特殺... 喔不對... 應該是大刷特刷了。

參考資料來源:
Android SDK教學│孫傳雄談科技
http://blog.chinatimes.com/tomsun/

[HOWTO] Create a GoldCard - Bypassing the RUU/SPL CID check to Root/Downgrade
http://forum.xda-developers.com/showthread.php?t=572683

沒有留言: