Linux, 工作, 生活, 家人

Android

Android Dev Phone 升級 Eclair (2.1)

其實 Android 升級也不是像想像中麻煩, 但是升級之前需要做很多準備工作, 如果不是熟門熟路的話, 會不知道在做什麼, 但是如果熟悉了以後, 換 ROM 大概就像喝水一樣容易 .

以下就是我花一堆時間升級得到的心得. 希望對大家有用

本文章僅適用於 ADP1 (Android Dev Phone 1), 其他不適合.
其他相同的機型有 HTC Magic 和 T-Mobile G1

* 免責聲明: 任何改機行為皆有極大風險, 請自負風險, 本人不負任何責任 *

名詞解釋

先知道名詞是很重要的, 要不然連 Keyword 都 Search 不到 :p

IPL: Initial Program Loader

為一個小的 Loader, 主要負責 initial DRAM, CPU 等, 找到的資料有說到 SPL 刷死掉了以後, 可以靠 IPL 救.
不過這看起來要拆機了.

SPL : Second Program Loader

在 IPL 之後載入的 Loader. Loader 的角色有點像是 PC 的 Bios
SPL 可以燒 nbh(應該是每台機器的 key, 開發機不需要去弄這個), 提供 Fastboot 更新介面(等一下會提)
更新 SPL 風險是非常高的, 請確定你的手機型號之後再更新
進入 SPL 的方法, 關機時, 按住 camera + Power 鍵(掛電話鍵) 就可以進入 SPL

Fastboot:

進入 SPL 後, 可以切至 Fastboot mode, 可以透過 USB + Fastboot 的程式更新特定區域的 image .
這是當 Recovery 不能用的時候, 拿來緊急救援用的.

Recovery:

recovery
系統提供一個 Recovery mode, 這個 Recovery 是一個簡化的 Linux 系統, 內含一個 busybox 及其他的 tool
主要是用來更新 ROM 及其他開發者提供的功能. 像是 SPL 也是可以從 Recovery 內救.
以我目前使用的 RA-Dream 來說, 支援以下的功能

  • Reboot
  • Goto Console
  • USB-MS (摸擬成一個 USB Mass Storage, 就是讓 Android 變成 USB Flash 模式.
  • Backup/Restore : nandroid, 可以備份/回復 Nand, 常常換系統者必備.
  • Flash Zip from SD (這功能就是可以更新大部份的 ROM 了)
  • Wipe : 清除資料
  • Partition SDCard : 現在有的 ROM 支援 APP2SD, 尤其是 Eclair (2.1) 的系統一定要 APP2SD 才可以使用.
  • Shutdown

幾乎所有燒機的功能都包含在內了, 之前可能會有人找到 cm-recovery-1.4, 不過那個功能比 RA-Dream 差太多了.

進入 Recovery 的方法, Home + Power On Key.

RADIO:

這一般指的是 GSM 部份的 Radio Code. 因為 GSM 都是自己跑一部份專有的 Code.

ROM:

通常講到 ROM 都是講到 Android 主系統, HTC 有協助 Google 開發系統, 也有很多第三方放出來的 ROM 可以用, 如果很愛刷 ROM 換系統, 或是自己 compile 都是可行的

第三方比較有名的有

2.1

1.6

APP2SD:

ADP1 的 Flash 只有 192MByte, 所以放 Application 不太夠, 所以大家就將腦筋動到 SD Card 上.
這個功能就叫 APP2SD. 在 Linux 下不過就只是一個 shell script.

早期 APP2SD 要自己弄,
現在新的 ROM 都支援 APP2SD, 更新的 2.1 都一定要啟動 APP2SD 才能使用

有了這些基礎知識以後, 接下來就是準備開始動手了.

* 免責聲明: 任何改機行為皆有極大風險, 請自負風險, 本人不負任何責任 *

準備

Android SDK 提供了 adb shell command 的功能 (要啟動到 recovery)
fastboot 提供了在 SPL 狀況下可以更新 image 的機會.

更新 Recovery.img

我個人喜歡用 RA-Dream 先下載 recovery-RA-dream-v1.6.2.img 然後存到 SDCard 內.

重開機按 Home + Power On 進入 recovery mode.

在 PC 端進入 adb mode

[shell]
# adb shell
切至 ADP
$ su
# mount -a
# flash_image recovery /sdcard/recovery-RA-dream-v1.6.2.img

[/shell]

如果要用 Fastboot 升級也是可以, 但是要先更新 SPL. 那更麻煩…..

[shell]
# fastboot devices (確認 devices)
# fastboot flash recovery recovery-RA-dream-v1.6.2.img
[/shell]

更新 Radio Image

如果不是 2.22.19_26I, 請更新你的 Radio Image, 可以啟動進 SPL 看一下現在的版本

可以從 HTC 下載 2.22.19_26I, sapphire-port-dream 也有一份 

ota-radio-2_22_19_26I.zip 下載之後放到 SDCard 內, 然後重開機進入 Recovery mode.
如果這邊更新 Ra-dream recovery.img 己經成功了, 那就可以直接進 Recovery Mode, 切進 USB-MS mode, 就會變成 Mass Storage, 可以直接從電腦傳檔案進去.
用 flash zip from SD 的功能, 就會列出來, 直接選擇就可以.
解壓完重開機即可.

這就是我愛用 Ra-dream recovery.img 的原因 XD

更新 SPL

第一件事情就是要確認機器的版本, 這是一張 SPL 的圖案, 這是改過的
SPL

[text]
DREAM PVT 32B ENG S-OFF
HBOOT-1.33.2005 (DREA10000)
CPLD-4
RADIO-2.22.19.26I
[/text]
第一行是 PVT 32B 是代表這隻是 Google ADP1 (Dream/Tmobile G1)
第二行是目前 SPL 的版本, DREA***** 英國, DREA10000 美國, DREA11000 歐洲
第四行是 Radio 的版本
更新完 SPL 就可以裝第三方的 Android ROM, 但是 HTC 版的就不能用了. 如果要用, 就要降級

以下是更多的說明

SPL Info
– The G or H at the end identify if it’s a Google or HTC SPL
– ENG : Engineering version
– SHIP : Shipment version
– DEV : Development version (ION)
– S-off and S-on : Security on and off (writing directly to nand or not) , most probably not SPL linked.
– PVT 32A : 288MB RAM / Qualcomm MSM7200a
– PVT 32B : 192MB RAM / Qualcomm MSM7201a
– CPLD XX : What does this mean?

我目前是使用 Danger SPL

下載後丟到 SD Card, 進入 Recovery Mode, 然後用 Flash zip from SD card 就可以.

備份系統

當然我就會講, 進入 Recovery Mode, 選 Backup/Restore 的功能, 選 NAND Backup 即可.
(其實我是沒有在 backup 的 (爆))

規劃 SDcard

我選用的這一版 Recovery 有 Partition SD Card 的功能

但是我當時是用 Linux 去預先規劃, 以我 2G SD Card 為例

Partition 1 : FAT32 :  1.4GByte
Partition 2: ext3 : 500MByte
Partition 3: Linux Swap : 96MBytes

Partition 2 也可以選用比較新的 ext4, 不過這就要比較新版的 ROM 才支援這個功能, 一般來說, 使用 ext3 是支援度最廣的.

升級 ROM

接下來就是下載 ROM 了.
以 2.1 為例

2.1

點進去後找到 ROM 下載, 丟到 SDCard 內

然後選 flash zip from SD.

以 CyanogenMod-5 為例, 會下載
update-cm-5.0.7-DS-test1-signed.zip
gapps-ds-ERE36B-signed.zip
丟進去一起 Flash zip from SD 就好了, 如果是從 1.5/1.6 升級上來, 那記得先 wipe data. 這樣比較不會出問題.

如果是 2.1 的話, 第一次啟動可能需要 5~15 分鐘, 需要耐心等候.

有了 RA-Dream 省了很多事情, 所有的動作都可以 Flash zip from SD.
而新的 ROM 都支援 APP2SD. 所以很多網路上的文件都不太適用了.

然後這麼方便的結果就是 ROM 一直換一直換…..

目前用到 CaNNoN202 這個不錯, CyanogenMod-5 也可以.

KiNgxsKxKlair功能很強, 但是問題很多, 連 Google Applications 都啟動不了.
不過可以看一下 HTC Legend(?) 大概的樣子是長得什麼樣. 我覺得很炫就是了 🙂

目前的缺點就是..
我的 Camera 不知道為什麼都沒有辦法再使用了, 不知道是 Hardware 的問題還是 Software 的問題.
不過之前 ADP1 早就被我玩爛了(大概是自己編kernel的關係), 所以這也不是缺點了 (默)…

Ref.

4 留言

  1. kiko555

    您好,
    看完您整理過後的升級步驟,
    相當佩服您的耐心啊~~

    嗯~是這樣的,我手邊也有一台ADP1,
    背殼是有機器人圖樣,也就是google當時出的實驗機,
    我也是照相功能不行運作,
    如果沒記錯,我是在刷過歐洲版G1後才不能照相的。

    不知您之後是否有解決照相的問題呢?

  2. Ap

    您好!想請問我安裝完後等了一個小時多仍無法進入系統,且回到Recovery讀不到SD卡…
    目前手機顯示 FASTBOOT狀態顯示:
    DREAM PVT S-on
    HBooT1.33.2005
    CPLD-4
    RADIO-2.22.19.26I
    想向您請教方法是否有方法改回S-off ?
    謝謝。

發佈留言