GingerBreadの食べさせ方:Milestone

先日MilestoneをAndroid 2.3.5にアップデートしましたが、そのやり方をまとめておきます。
(自分向けメモだったりしますが)

必要なもの(ファイル名はこれを書いている現在のもの)
CyanogenMod 7 for Milestoneのファームウエアファイル(update-cm-7.1.0-*-Milestone-signed.zip、*部はファームウエアバージョンにより異なる)
Google Apps(GMailGoogle Mapsなど)導入用ファイル(gapps-gb-20110828-signed.zip)
Google Talkのアップデートファイル(gapps-gb-20110828-newtalk-signed.zip)
これらのファイルはここから入手できます。
OpenRecovery Mod 3.3 for Milestone(Milestone向けカスタム版OpenRecovery:OpenRecovery-3_3.zip )
このファイルはここから入手できます。


ROM焼きの手順
OpenRecovery ModのZIPファイルを解凍し、解凍してできた「OpenRecovery」フォルダ内にある「Updates」フォルダにファームウエアファイル、Google Apps関連ファイルをコピー。
OpenRecoveryフォルダと「Update.zip」ファイルをMicroSDカードにコピーし、Milestoneに挿す。
カメラシャッターボタンを押しながら電源ON(出荷時導入OSがAndroid 2.0/2.0.1のモデル)
キーボードのXキーを押しながら電源ON(出荷時導入OSがAndroid 2.1のモデル)
し、リカバリーモードで起動。
リカバリーメニューから端末をハードリセット(Wipe data/Factory reset)し、キャッシュ消去(Wipe cache partition)を実行。
リカバリーメニューから「Apply sdcard:update.zip」を実行。
OpenRecoveryが起動する(起動しない場合については後述)。
現在インストールされているファームウエアをバックアップするために「Nandroid→Backup」を実行。
(特に現在Motorola Software Updateを使い公式な手段でアップデートしたファームになっている場合は忘れないように:元に戻せなくなるため)
Apply Updateを実行。
CyanogenMod 7 for Milestoneのファームウエアファイル、gapps-gb-20110828-signed.zip、gapps-gb-20110828-newtalk-signed.zipの順にアップデートを適用。
Wipe data/Factory reset、Wipe cache partition、Wipe Dalvik Cacheを実行し端末をリセット。
Reboot Systemを実行し端末を再起動。


これでアップデート完了です。


場合によってはリカバリーメニューから「Apply sdcard:update.zip」を実行しても「Signature verification failed」というエラーが出てOpenRecoveryを起動できないことがあります(私は最初これでハマってしまい、しばらく放置していました)。

この場合は
Vulnerable recovery for Motorola Milestone(vulnerable_recovery_only_RAMDLD90_78.zip)
このファイルはここから入手できます。
RSD Lite(モトローラ端末用ROM焼きツール)
このファイルの在処はググって探してください(私は以前リーク版ファームを焼いた時に入手したものを利用)。
を入手し、RSD LiteとMilestoneのUSBドライバをPCにインストールしておきます。
MilestoneをMicroUSBケーブルでPCに接続してRSD Liteを起動。
Vulnerable recoveryのZIPファイルを解凍してできるSBFファイルを指定し、それをMilestoneに書き込む。
を行なった後にリカバリーメニューから「Apply sdcard:update.zip」を実行すればOpenRecoveryが起動するはずです。
その後は上記の通りの手順でアップデートを続行すればOK。


このトラブルですが、アップデート前に利用しているファームがモトローラ公式版で、root化にSuperOneClickなどのツールを利用している場合に発生するようです(私の場合がまさにそう)。
リーク版ファーム、カスタムROMを利用している場合はそれらを導入する際にVulnerable recoveryを導入するのでこのエラーが出ることはないはずです。


最後にいつものお約束ですが、やってみる際には自己責任でお願いします。