参照ページ
初期状態
fastbootモードの画面に示されるファームウェア等の初期バージョンは次のとおり。
DREA*** PVT 32B
HBOOT-0.95.2000
CPLD-4
RADIO-1.22.14.11
Sep 2 2008
Serial0
この「Dream」は、eBayで手に入れた(発送元は香港のようだった)ものだが、
ボディはAndroid Dev Phone 1のボディデザインとは異なり
前面上部にT-Mobileのロゴがあるにもかかわらず、
すでにroot取得済みで、
Superuser.appではなくSuperUser Whitelistというアプリが入っており、
Settings > About phone > Model numberの項目には
Android Dev Phone 1と表示される、というものである。
搭載されていたAndroidのバージョンは1.5だったが、
上記引用に示されるradio imageのバージョンは
参照ページによるとadp1のAndroid 1.1に対応したものである。
また、HBOOTのバージョンも
(参照ページによると)adp1のデフォルトのHBOOTバージョンである0.95.3000とは異なる。
このように、本稿で作業の対象とした「Dream」は、
製品版のHTC DreamないしT-Mobile G1とはファームウェアに違いがあることには
注意されたい。
リカバリの書換え
「一般の」DreamではDangerSPLとかEngineeringSPLとかが入っていないと
fastboot flash recovery ...
ができないらしいが、このDreamではUSB接続したPCから
fastboot flash recovery recovery-RA-dream-v1.7.0.img
を実行すると一発で問題なく書き込めて、問題なく起動した。
どのSPLとradioを入れれば文鎮化を避けられるかの検討
SPL
Dream用のSPLは
DangerSPL
とか
HardSPLとかEngineering SPLとか
いろいろあるみたいだ。どれにするかはいま調査中。
機能的にはDangerSPLまたはHardSPLがよさそうで、
- fastbootが可能な点は両者に共通している。
- HardSPLは.nbhファイルのフラッシュ時にCarrier IDをチェックしない
(ので異なるキャリアの.nbhイメージを入れられる)という点でアドバンテージがある。
- DangerSPLは/cacheパーティションのメモリを減らして/dataパーティションを拡張する
(for CyanogenMod5/6 ready)。
という具合になっている。
なお、DangerSPLはMagicのEngineeringSPLのひとつ(1.33.2005)をDreamに移植したもの
という触れ込みだが、ダウンロードしてイメージを比べてみたところ、
両者はまったく同じものであった。
radio imageとSPL、radio imageとOSの相性
- まず、
DangerSPLのページ
からは、DangerSPLは特定のradioを必要とするようにも読めるが、
まだ同じページにはradio 1.x, 4.x, 6.xはダメ・ゼッタイとも書かれていて、
対応するradio imageには一定の幅があるようにも読める。
- 一方、
HTC Developer Center: Flashing your Android Dev Phone with a Factory System Imageのダウンロード欄
には、Androidのバージョンに応じてradio imageが指定されており、
OSのバージョンもSPLを選ぶということが分かる。
- また、
Radio_Update - android-roms - How To: Install a Radio Update. - Android ROMs will host updates to the OS both Custom and Offical. - Google Project Hosting:
にも
カスタムROMとradio imageの対応表があり、ここでもやはり
カスタムROMのベースとなったAndroidのバージョンに対応して
radio imageのバージョンが決まっているように見える。
- しかし1.1対応のradio imageでADP用Android 1.5が動いている本機の現状からすれば、
OSとSPLとの対応関係はある程度の幅をもつものなのかもしれない。
- かりにOSが起動できなくなっても、
OS本体(mtdエリア)はリカバリが起動しさえすれば書換えられるが、
SPLとradioの相性はリカバリの起動にも影響し、文鎮化を招く可能性があるので恐ろしい。
結論
本節ここまでに上げたページの対応を見ていると、
radio 2.22.19.26i
にしておくとDangerSPLに対応し、かつAndroid 1.5と1.6にも対応していることになる。
HardSPLには対応するradioは指定されていないが、
上記3.の表とDangerSPLは同じサイトで紹介されているので、
3.の表にあるradioのバージョンすべてに対応しているのではないかと思われる。
また、HTC Dream: DangerSPL - CyanogenMod Wiki: > 3. Installation > 3.2 Prerequisite
にはT-Mobile/USについては2.22.19.26iの代わりに
2.22.23.02を用いるようにとの記述もある。
- そこで、
- DangerSPLとradio 2.22.19.26i
- HardSPLとradio 2.22.19.26i
のいずれかを用いる。
- なお、本機にT-Mobileのロゴが刻印されていることを考慮に入れると、
- DangerSPLとradio 2.22.23.02
- HardSPLとradio 2.22.23.02
の組み合わせも試す価値がある。
(2011-07-22)
HardSPLを入れてみる
radioは初期状態のまま、HardSPLを入れてみる。
HardSPLはupdate.zip形式になっているので簡単だ。
- HardSPLのzipファイル
を/sdcardにコピーする。
- リカバリを起動する。
- Flash zip from sdcard でHardSPLのzipファイルを選んでインストールを開始
- リブートしてインストールを継続。
リカバリも、OSも、問題なく起動した。
HardSPL適用後のfastbootモード画面は次のとおり。
DREA*** PVT 32B
HSPL10.95.3000
CPLD-4
RADIO-1.22.14.11
Oct 20 2008
FASTBOOT
ADP1 Android 1.6のインストール
二つの方法の違い
参照ページの一番目
によると、次の2つの方法がある。
| 方法 | ダウンロードするファイル |
1 | update.zipによる方法 | Recovery Image Package |
2 | fastbootによる方法 | System Image Package |
両方のファイルをダウンロードして調べてみると、
両者間には次のような違いがあることがわかる。
パーティション | Recovery Image Package(方法1) | System Image Package(方法2) |
boot | o | o |
recovery | x(*1) | o |
radio | o | x(*2) |
system | o | o |
userdata | x(*3) | o |
上記のうち、System Image Packageにおけるradioイメージの欠如(*2)については
参照ページの一番目
に記述があるが、
Recovery Image Packageにおけるrecoveryとuserdataの欠如(*1,*3)については
同ページでは触れられていない。
今回は、リカバリは書換えないつもりなので*1は
問題にならないが、*3の理由がわからないのは気持が悪い。
またradioイメージは別に書きこむので、*2も問題にならない。
そこで今回は方法2の手順を若干改変して実施することにする。
(2011-07-24)
手順
radioイメージのフラッシュ
radio 2.22.19.26i
はすでにupdate.zip形式なので、リカバリからこれを適用する。
- radio 2.22.19.26i
をSDカードのルートへコピー。
- 端末をリカバリモードで再起動。
- Flash zip from sdcardを選ぶ
- 先ほどコピーしたradio...zipを選ぶ。
- homeキーを押して確認に応えると適用が始まる。
- home + back キーを押すとradioイメージの書き込みが始まる。
- 自動的にリブートがかかる。
bootイメージとsystemイメージのフラッシュ
system image package 14721
は、各パーティションの .img ファイルをアーカイブしただけのものである。
これは
fastboot update ...
で適用可能らしいが、今回はこの方法はとらない。
アーカイブを展開し、そこに含まれる個別の .img ファイル(必要なもののみ)を
fastboot flash <PartitionName> <ImageFileName>
でフラッシュする。
- system image package 14721を、母艦PCの適当な場所に展開し、その場所へ移動する。
- 端末をfastbootモードで再起動。
- 必要ならuserdataとcacheパーティションを消去
fastboot erase userdata
fastboot erase cache
今回は1.5から1.6へのアップグレードだったので、これは行わない
(参照ページ1のここ
にも、
アップグレード時のみこれらを省略して良いと書いてある)。
- bootイメージをフラッシュする。
fastboot flash boot boot.img
bootイメージのフラッシュはすぐ済む。
- systemイメージをフラッシュする。
fastboot flash system system.img
systemイメージのフラッシュは数十秒の時間がかかる。
その間なにも表示されないがあわてないこと。
- recoveryは先だって入れたものをそのまま使いたいのでフラッシュしない。
またuserdataも上に書いた理由で今回はフラッシュしない。
- 端末をリブート
fastboot reboot
作業終了後のSettings > About phone のバージョン等の部分は次のとおり。
![adp1-DRC83.png adp1-DRC83.png](https://f.orzando.net/wiki/index.php?plugin=ref&page=DreamSapphire%2FDreamAdp1Donut&src=adp1-DRC83.png)
不具合
adb shell以外でsuが失敗する
症状
adb shellのもとではsuコマンドでスーパーユーザになれるが、それ以外の場合
(ターミナルエミュレータからsu実行 or アプリから直接)には
スーパーユーザになれない。
失敗した方法
次の方法及びその組み合わせはうまく行かなかった。
- Superuser Whitelistをマーケットからインストール(インストール失敗)
- 前バージョン(ADP1 1.5)のsuコマンドへ置き換え
- www.magicandroidapps.com
から取得したsuコマンドへ置き換え
(これは部分的に成功。ただしwhitelistの操作ができず)
- 前バージョン(ADP1 1.5)のバックアップから /system/app/Superuser.apk を導入
成功した方法
ただし、リカバリがRA-dream-1.7.0だと、updater-scriptのsignatureエラーになって
導入できないので、リカバリを
recovery-clockwork-2.5.0.7-dream.img
に置き換えてから改めて導入する。
(2011-07-25)
Tag: HTC Dream T-mobile G1 Donut