[Android] T-Mobile G1でADP1版Donutを当ててしまってJailed状態になってしまった人のための救済策

T-Mobile G1にADP1版の公式Donutを当ててしまった方は、他のファームも当てられないしrootにもなれないし(コンソールではできますが)、b-mobile3gも繋がらないしで、途方に暮れている方もいらっしゃるのではないかと思います(あ、まあそれは私のことなんですが・・・)。

かくいう私も、ずいぶん前からG1をrooted phoneにしてしまったので、いざ、非rootのノーマル状態のAndroidから、update.zipが適用できない状態でどうやってrooted phoneに戻せばいいものなのか、すっかり忘却してしまっておりまして、思い出すのにかなりの時間を使ってしまいました。

最初に、手順をサマリーするとこんな感じです。今回は、私がやった「ADP1版DonutからCyanogenMod 4.1.999に戻す」という手順を想定しています。最初だけ読んで「あ、そっか」と思いだした方はその続きは読まなくても大丈夫かもしれないです。

ただ、単に別ファームに戻すだけですと、また同様のことがあったときにあたふたしてしまう(私のことです)ので、SPLの書き換えも行い、いざというときにはPCからUSB経由でリカバリーイメージの書き換えもできるようにしておきましょう。

以下の手順は、それ以外の方、例えば、root化しないで素直にAndroidをバージョンアップしてきて、今からrooted phoneにしたい、という方にも有効ですので、参考にしてみてください。
※ ただし私はdocomoのHT-03Aは持っていませんので、HT-03Aで同じことができるかは検証していませんので、ご注意ください。


手順のサマリー
(1) SPLでRC29のファームに戻す
(2) Cyanogen版リカバリーイメージの適用
(3) SPLイメージの書き換え(HardSPLの適用)
(4) CyanogenMod 4.1.999の適用

では、以下詳しい手順です。

(1) SPLでRC29のファームに戻す

・まずは、RC29のイメージファイルを調達してきてください。たぶん、「Downgrade RC29」とでもやればすぐ見つかると思います。

・次に、調達してきた「DREAIMG.nbh」ファイルを、FAT32(Windows用のフォーマット)形式で「物理フォーマット」(フォーマット時に「クイックフォーマット」を選択しない)したmicroSDカードのルートフォルダに入れます。

・microSDカードをG1にセットし、「カメラ」ボタンを押しながら起動します。

・カラーテストのような画面(SPL起動画面)から、グレーの背景で青字の画面に切り替わります。何かメッセージが出てきたら、指示にしたがってイメージを適用してください。プログレスバーのようなものが出てきて、イメージの適用が行われます。

※ このとき、「Image Not Found!」と一瞬表示されてSPL起動画面に戻ってしまった場合は、イメージファイルがうまく読み取れていません。フォーマットなど、再度確認してみましょう。

※ ちなみに、SPL起動画面で「Serial0」という表示が出ていれば、「通話(緑)」+「終話(赤)」+「MENU」でリブートできます。

・イメージの適用が完了したら、画面の指示に従ってリブートしてください。最近のファーム(1.5から?)では、初回起動時にサインイン(Googleアカウントを入力して各種サービスにIDを設定する)をスキップできるようになっていますが、RC29ではスキップできません。

ということで、b-mobile 3gの方は以下の情報をAPN設定に追加してサインアップして進みましょう。

apn dm.jplat.net
username bmobile@l3.jplat.net
password bmobile
mcc 440
mnc 10
(他は空欄でOK)

※ サインアップ後も繋がりっぱなしになるともったいないので、起動後はWiFiを設定して繋ぐなり、一旦Airplaneモードにするなり、速攻でAPNdroidをインストールして起動するなりしておくとよいですね。

(2) Cyanogen版リカバリーイメージの適用

次にCyanogen版リカバリーイメージを適用し、update.zipが普通に適用できるようにします。RC29のリカバリーイメージのままでいいのかもしれませんが、Cyanogen版はトラックボールでメニューが選択可能だったり、update.zip以外のファイル名のzipも適用できるようになっていて、かなり便利なのでおすすめです。

・Cyanogen版リカバリーイメージ(cm-recovery-1.4.img)を入手します。お馴染みのXDAさんところから入手しましょう。

[UPDATED 7/26 - v1.4] Pimped out recovery image with new features
http://forum.xda-developers.com/showthread.php?t=523558

・入手したファイル(cm-recovery-1.4.img)をmicroSD上の適当な場所(ここではmicroSDのルートフォルダとします)にコピーします。

・このあとコマンド入力で利用するため、telnetソフトをMarketからインストールします(そのものずばりtelnetという名前のソフトがあります)。

・旧Androidのバグを使って、telnetdを起動します。手順は以下のとおり。

参考)以下のページがかなり詳しいので、こっちを見てやるのもおすすめです。
How to root a T-Mobile G1 and myTouch 3G Android phone
http://androidandme.com/2009/08/news/how-to-root-a-t-mobile-g1-and-mytouch-3g-android-phone/

1. HOME画面で[Enter]を2回投入後、telnetd[Enter]と入力。Contacts画面に切り替わって、そこに大きく「telnetd」と出ますが、それでOKです。[Enter]しても何も起こらないように見えますが、問題ないので、そのままHOME画面に戻ってください。

2.先ほどインストールしておいた「telnet」を起動します。接続先はデフォルトのままで(localhostの23番ポート)でOKですので、接続してください。

3. 以下のコマンドを順に入力します。

mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
cd sdcard
flash_image recovery cm-recovery-1.4.img
cat cm-recovery-1.4.img > /system/recovery.img

以上が実行できたら、そのままtelnetで「reboot」とすればリブートがかかりますが、次の作業の準備をするため、一旦、telnetを終了しておきましょう。

(3) SPLイメージの書き換え(HardSPLの適用)

T-Mobile G1のSPL(ブートローダ的なもの?)は、PCからのUSB接続に対応していないため、ADP1ならできる「fastbootコマンドを使ったPC経由でのリカバリーイメージの書き換え」ができません。今回の手順で無事にCyanogenModに書き換われば必要ないかもしれませんが、いざというときのために、SPLのイメージを入れ替えて、リカバリーイメージの書き換えが自由にできるようにしておきましょう。

・HardSPL(デフォルトのものからカスタマイズされたSPLイメージ)をダウンロード

この手の作業をするなら激しく有用と思われる以下のページ(正直、分かる方は私エントリなんて読まなくてもこの辺を読めば問題ないと思われます)から、HardSPL(splhard1_update_signed.zip)をダウンロードします。しかしまあこういうページがGoogle Codeの中にあるというのが、なんかフリーダムですね。

Install_Hard_SPL - android-roms - How To: Install the Hard SPL
http://code.google.com/p/android-roms/wiki/Install_Hard_SPL

・splhard1_update_signed.zipをダウンロードしたら、microSDのルートフォルダに配置します。前の手順でCyanogen版リカバリーイメージを当てた方は、ファイル名をリネームする必要はありません。

・G1をリブートまたは電源投入します。リカバリーコンソールに入るため、HOMEキーを押しながら起動してください。

・リカバリーコンソールが起動したら、「 [Alt+A] apply any zip from sd 」を選択して、先ほどダウンロードしたsplhard1_update_signed.zipを適用します。

・リブート時に、「カメラ」ボタンを押しながら起動し、先ほどまでのカラーテストみたいな画面ではなく、Androidマスコットが表示される白地の画面が出ることを確認してください。これが、HardSPLの起動画面です。

(4) CyanogenMod 4.1.999の適用

あとは、以下のページにあるCyanogenさんの説明に従って、CyanogenMod 4.1.999を適用するだけです。

[ROM] CyanogenMod - Keeping You Legal For Less (BETA) [UPDATED 10/6 - v4.1.999]
http://forum.xda-developers.com/showthread.php?t=567610

一応、ここにも説明を書いておきますと、

HTCのページから、ADP1版の「Donutイメージ(signed-dream_devphone_userdebug-ota-14721.zip)」をダウンロードしてmicroSDにコピー
・上記ページから、CyanogenMod 4.1.999のイメージをダウンロードしてmicroSDにコピー
・リカバリーコンソールを起動
・まず[Alt+W]でデータを消去
・「apply any zip from sd」でADP1版のイメージを適用
・再起動せずに(勝手にリブートがかかるかもしれませんが、HOMEキーを押したままにしておき、OSを起動させないようにして再びリカバリーコンソールを起動)、そのまま「apply any zip from sd」でCyanogenMod 4.1.999のイメージを適用

以上で、めでたくADP1版Donut(その他の非rooted phone)からCyanogenMod 4.1.999に戻ることができます。

コメント