Pages

2010年8月28日

[ Android 系統 ] 製作一張「金卡」

HTC 為了避免使用者誤操作的情況下(例如,使用了錯誤的 RUU(ROM Update Utility,ROM 更新工具)來更新手機的 ROM)導致手機故障,因此加入了一些安全機制。但是對於想要自己刷 ROM 的人來說,這些安全機制就必須想辦法突破。


其中一道安全機制就是 CID(Customer Identification)檢查。CID 協助 RUU 辨識「這隻手機是否屬於我所能夠服務的對象」。例如,台灣區的 Desire 與歐洲區的 Desire 的 CID 就不同,所以無法拿歐洲區 WWE(World Wide English,國際英語)版本的 RUU 來更新台灣區的 Desire。

要破解這個限制的方法,就是製造一張金卡(Goldcard)。透過金卡,可以在使用手機內部的 Recovery image 來讀取 SD 卡上的 update.zip 更新系統時,或者是透過 RUU 更新時,暫時取得一個 SuperCID,無視於 CID 檢查(因為 SuperCID 的安全權限是無限制),進行 ROM 的更新。

想要刷機的人,手邊準備一張金卡是必備的。即使不使用金卡刷別的 ROM 到手機中,但是可以確保萬一自己操作不慎導致手機變成磚塊時,還有最後一條保命索可用。

製作成金卡的記憶卡,還是可以當成一般記憶卡使用。如果擔心當作日常記憶卡使用容易損毀,那麼就另外準備一張記憶卡。既然是當作保命索使用,請不要吝嗇,選用比較有知名的廠牌的記憶卡比較好。本文程序中使用的是 SanDisk 2GB MicroSD 記憶卡。

另外,為了確保金卡的製作能成功,製作過程中會透過 Desire 格式化該記憶卡。所以請備份該記憶卡上的資料。

以下為操作程序(以下資訊來源為 http://theunlockr.com/2010/03/10/how-to-create-a-goldcard/

一,佈署 AndroidSDK

  1. 安裝 JRE(Java Runtime Environment)。可以從 這裡 這裡取得。請下載安裝 32bit(x86)版本。
  2. 取得 Android SDK。可以從 這裡 這裡取得。請下載 Windows 版本。下載檔案為一個 ZIP 壓縮檔,解開後,放置於一目錄中即可。在下述的操作說明中,是將 Android SDK 解壓縮後放置於 C:\AndroidSDK。若讀者放置於其他目錄,參照於下述說明操作時,請變更為自己設定的目錄。
  3. 安裝 HTC Sync。可以從 這裡 取得。
  4. 將 Desire 開機,插上 USB 連接線,與電腦連接。
  5. 如果是第一次連接,Windows 會提示找到新硬體,並且自動安裝驅動程式(此驅動程式由 HTC Sync 提供,因此需要先安裝 HTC Sync)。
  6. 將 Desire 與電腦斷開。
  7. 在 Desire 上,回到桌面,按下 [menu] 鍵,依序點擊「設定」,「應用程式」,「開發」,將「USB 除錯中」啟用。
  8. 將 USB 連接線插上 Desire,與電腦連接。
  9. 如果是第一次連接,Windows 會提示找到新硬體,並且自動安裝驅動程式。
  10. 安裝完成後,應該可以在裝置管理員看到一個項目名為「ADB Interface」,包含其中的是一個名為「My HTC」的裝置。
  11. 執行一個 cmd,切換到 Android SDK 放置的目錄(本文程序中使用的是 C:\AndroidSDK)中的 tools 目錄(C:\AndroidSDK\tools)。
  12. 執行 adb devices。
  13. 如果看到
    List of devices    attached
    HT**********       device
    其中星號的部份是序號(例如 HT0011VVCCDD),這就表示這階段工作準備完成。

二,準備 SD 卡

  1. 將 Desire 關機。然後將欲製作為金卡的記憶卡,放入 Desire 中。再將 Desire 開機。
  2. 在 Desire 上,回到桌面,按下 [menu] 鍵,依序點擊「設定」,「SD 卡與手機儲存」,「卸載 SD 卡」,然後使用「格式化 SD 卡」來格式化記憶卡。
  3. 確保「USB 除錯中」功能是啟用的狀態。
  4. 執行一個 cmd。
  5. 執行以下指令:
    c:
    cd \AndroidSDK\tools
    adb shell
    此時會發現提示符號變成 $(如果是已取得 root 權限的 Desire,提示符號會變成 ~#)
  6. 執行以下指令:
    cat /sys/class/mmc_host/mmc1/mmc1:*/cid會出現一組字串(長相類似 2c3d65432100a1b2)這組字串是這張記憶卡的 CID。注意,每張記憶卡都有自己的 CID根據網路文章,建議多執行幾次,並且確保出來的字串都一樣。以避免製作金卡失敗。抄下這組字串。
  7. 開啟瀏覽器,連接到 http://hexrev.soaa.me/。將步驟 6 抄下的字串,貼上輸入欄,然後按下「Submit」,會得到一組新字串。抄下這組新字串。
  8. 開啟瀏覽器,連接到 http://psas.revskills.de/?q=goldcard,在 Email 欄位填入一組可收附件的電子郵件,然後在 Repeat Email 欄位,重複填入同一組電子郵件。接著在 SD Card Serial (CID) 欄位,填入步驟 7 得到的新字串。請特別注意,步驟 7 得到的新字串前二碼為 0。接著在 What code is in the image 中,填入該欄位上面圖片中的驗證碼,接著按下「Generate Goldcard!」,就會產生一個適用於這張記憶卡的金卡映像檔,並且透過電子郵件寄送到 Email 欄位中填入的電子郵件信箱中。
  9. 收取步驟 8 指定的電子郵件信箱的信件,會有一封由 PSAS 寄發,標題為 Your generated G1 goldcard 的郵件,該郵件攜帶一個名為 goldcard.img 的附件。將 goldcard.img 另外儲存成一個檔案。
  10. 開啟瀏覽器,連接到 http://download.cnet.com/HxD-Hex-Editor/3000-2352_4-10891068.html?part=dl-HxDHexEdi&subj=uo&tag=button 下載 HxD Hex Editor,然後安裝 HxD Hex Editor。
  11. 將 Desire 關機,取出記憶卡。將記憶卡插入讀卡機,將讀卡機與電腦連接。為了確保操作順利,此時請確定作業電腦只有連接該張記憶卡為可移除裝置,沒有其他的記憶卡或隨身碟或外接硬碟正在連接中(以免操作失誤,造成其他可移除裝置無法使用)
  12. 確定可以在電腦中讀取步驟 10 連接的記憶卡後,開啟 HxD Hex Editor。注意,如果操作環境是在沒有關閉 UAC(User Access Control)的 Vista 或 7,請在 HxD Hex Editor 的 icon 上按右鍵,選擇「以系統管理員身份執行…」。
  13. 在 HxD Hex Editor 中,點擊「Extra」,然後點擊「Open disk…」。在 Open disk 視窗中,請選擇 Physical disks 的 Removable Disk 1,並且把 Open as Readonly 的勾取消。然後按下「OK」開啟。
    Untitled-1
    開啟時,會收到一個警告訊息。直接按「OK」關閉警告訊息。
  14. 在 HxD Hex Editor 中,點擊「Extra」,然後點擊「Open disk image…」。然後選擇步驟 9 所儲存的 goldcard.img 開啟。開啟後,會出現一個 Sector size 視窗。維持預設值(512 (Hard disks/Floppy disks)」,按下「OK」。
  15. 此時,會得到兩個頁籤:
    Untitled-2
  16. 點一下 goldcard.img 頁籤,按 [Ctrl] + [A]。此時 goldcard.img 的內容會呈現反白狀態。按 [Ctrl] + [C] 複製內容。
  17. 點一下 Removeable Disk 1,然後用滑鼠,從 Offset 00000000 開始,一路拉到 Offset 0000017F,如下圖:
    Untitled-3
    然後按下 [Ctrl] + [B],用 goldcard.img 的內容取代記憶卡同一區段的內容。
  18. 按下 [Ctrl] + [S] 儲存變更。
  19. 關閉 HxD Hex Editor。
  20. 金卡製作完成。

三,測試金卡

  1. 接續第二節步驟 19,將金卡抽離讀卡機(擔心的使用者,請記得先使用 Windows 的「安全移除裝置」),然後插回讀卡機。
  2. 在 Windows 中,開啟檔案管理員,然後雙擊金卡所在的可移除裝置。如果可以進入該磁碟,如同一個隨身碟般,可進行檔案操作,那麼就是製作成功。
  3. 如果雙擊金卡所在的可移除裝置,Windows 卻回應需要格式化該裝置,表示製作失敗。請重新製作。
特別要注意的是,每一張記憶卡都有自己的 CID,所以在第二節步驟 6 所讀出來的字串所製作出來的 goldcard.img,只能適用於該張記憶卡。如果要換一張記憶卡製作金卡,就必須產生新的 goldcard.img,並且利用新的 goldcard.img 的內容才行。

2 則留言:

匿名 提到...

我部desire開機停在HTC logo畫面, 可以按back+power button 入 Recovery 畫面. 入到去clear storeage, 部機boot完都係停在HTC logo畫面, 請問有否得救??
email: mingng101@yahoo.com.hk

Unknown 提到...

您好! 請問我在第12的步驟 執行 adb devices 得到的數據是沒有與手機連結!請問我該怎麼辦!
PS:我在FORMET手機記憶卡的時候,是透過USB連接到手機內部的記憶卡! 我好像不小心把手機內部的記憶體一起FORMET掉了! 導致我現在手機指出現黑底白字的HTC字樣! 螢幕四個角落有三角型驚嘆號! 無法進入任何模式... 請問有甚麼可以建議的嗎?