EMONSTERのWindows MobileをAndroidに書き換える

EMOBILE(現Y!mobileEMONSTER S11HTは基本的にROM(内蔵フラッシュメモリ)からWindows Mobileが起動するが、ROMを書き換えることでAndroidを起動させることができる。ちなみに、ROMを書き換えずにWindows Mobile上からmicroSDカードに入れたAndroidを起動させる方法もある。

ROMの書き換え

ROMの書き換えは、カメラボタンを押したまま電源を入れると起動するSPLから、PCとUSB接続して、ROM Update Utilityと呼ばれるプログラムと書き換える内容が入ったNBHファイルで行う。

一般的なAndroid端末との違い

一般的なAndroid端末では、bootloaderを起動してrecovery領域にカスタムリカバリのimgファイルを書き込み、recovery領域からカスタムリカバリを起動して、boot領域とsystem領域にカスタムROMのzipファイルを書き込んで、boot領域からカスタムROMを起動する。
S11HTではbootloaderに相当するSPLを起動してOS領域にカスタムリカバリの機能を持つカーネルのNBHファイルを書き込み、OS領域からカスタムリカバリの機能を持つカーネルを起動した後、カスタムROMのtgzファイルを書き込むことで、以後はOS領域からカスタムROMが起動するようになる。

SPLの書き換え

標準のSPLは署名のないNBHファイルを書き込むことができない為、AndroidカーネルのNBHファイルなども書き込めるように、SPLそのものを署名のないNBHファイルを書き込むことができるHard SPL等に書き換える。
SPLからSPLを書き換えることはできないので、Windows Mobile上からJump SPL等の一時的にRAM上で動作するSPL(Soft SPL、SSPL等と呼ばれる)を起動させて、この上からSPLを書き換える。

Hard SPL 3.56のインストール

  1. HardSPL v3.07, v3.28, v3.29 and v3.56 by JockyWの「Attached Files」から「Kaiser-HardSPL-3.56.zip」をダウンロードする。*1
  2. HardSPL will not install - WHITE SCREEN: SOLVED (UPDATE 01. March 2008)の「Attached Files」から「JumpSPL1.93-KAIS.zip」をダウンロードする。*2
  3. Kaiser-HardSPL-3.56.zipを解凍して、KaiserCustomRUU.exeとKaiser-HardSPL-3.56.nbhが含まれていることを確認する。*3
  4. S11HTWindows Mobileが起動している場合は、電源ボタンを押し続けて「装置がオフになります。」と出たら「はい」をタップして電源を切る。
  5. S11HTからSIMカードmicroSDカードを抜いて、電源を入れる。
  6. S11HTとPCをUSB接続する。Windows 8.1の場合はActive Sync等のインストールを別途行う必要は無く、自動的にドライバ等がインストールされる。Windows Mobileバイス センターが起動したら、同意する→登録しないの順にクリックしてウィンドウを閉じる。
  7. JumpSPL1.93-KAIS.zipを解凍して、JumpSPL1.93-KAIS.exeをS11HT→\→My Documentsにコピーする。
  8. S11HTからスタート→プログラム→ファイル エクスプローラ→My Documents→JumpSPL1.93-KAIS.exeを実行する。「このプログラムの発行者は不明です。」と出たら「はい」をタップする。「KAISER JumpSPL v1.0」が起動したら「Continue」をタップする。
  9. S11HTの画面上部にKAIS140、SPL-1.93.Jump、CPLD-8と表示されて、下部にUSBの文字が出たら、USBケーブルを一旦抜いて5〜20秒後に再度接続する。Windows 8.1の「ハードウェアを安全に取り外してメディアを取り出す」に「Qualcomm CDMA Technologies MSM」があることを確認する。(無い場合は、USBケーブルを再度抜き差しするか、リセットボタンを押してやり直す。)
  10. KaiserCustomRUU.exeを実行する。「ユーザー アカウント制御」が出たら「はい」をクリックする。
  11. 「I understand the caution indicated above and have reviewed the Readme.」にチェックを入れて「Next」をクリックする。
  12. 「I completed the steps indicated above.」にチェックを入れて「Next」をクリックする。
  13. 「Current information about your PDA Phone:」が出たら「Update」をクリックする。
  14. 「Verify that you want to update the ROM version:」が出たら「Next」をクリックする。
  15. 「You are now ready to update your ROM image. This operation takes approximately 10 minutes.」が出たら「Next」をクリックする。
  16. S11HTに棒グラフが表示されるので、100%になるまで待つ。100%になったらS11HTが自動的に再起動する。
  17. 「Congratulations ! Your ROM update is now complete. Your PDA Phone is ready for use.」が出たら「Finish」をクリックする。
  18. 「プログラム互換性アシスタント」が出たら「閉じる」をクリックする。
  19. S11HTWindows Mobileが起動したら、電源ボタンを押し続けて「装置がオフになります。」と出たら「はい」をタップして電源を切る。
  20. S11HTのカメラボタンを押しながら電源を入れて、画面上部にKAIS140、SPL-3.56.Hard、CPLD-8と表示されるのを確認したら、リセットボタンを押して再起動する。

Android HTC gingerbread 2011-01-24のインストール

S11HTは製造元であるHTCでの名称がKaiserで、同系列のVogue、Kaiser、Polaris向けにAndroidが動作するカーネルVogue Linux」を公開したMartin氏も参加するAndroid HTCプロジェクトにて、Android 2.3のgingerbread 2011-01-24が公開されているので今回はこれを使用する。
ダウンロードするファイルは、Git→kernel-release→2.6.32にあるカーネルイメージの「VOGUIMG-320-FROYO-01-16-11.NBH」、Files→modulesにあるカーネルモジュールの「androidupdate.tgz」、Files→2011-01-24-gingerbreadにあるシステムファイルの「system-gingerbread-all-unodex-24-01-11_07.tgz」、Files→AtoolsReleaseにあるカーネルやシステムの設定変更ツールの「atools-1.3.0.py」となる。
Windows Mobile上からAndroidを起動する場合はカーネルイメージの代わりにFiles→2010-08-19にある「VaniljEclair_RLS11.zip」に含まれるカーネルの起動ツールである「haret.exe」(もしくはFiles→2010-02-20にある「haretinstall.zip」に含まれる「haret.exe」)、Git→kernelにあるカーネルの起動パラメータを記した「default-kaiser.txt」、Git→kernel-release→2.6.32にあるカーネルの「zImage-01-16-11」、Git→bootenvにあるカーネル起動時に使う初期RAMディスクの「initrd.lzma」(もしくはGit→kernel-releaseにある「initrd.lzma」)が必要になる。
S11HTのROMは256MBしか無く、gingerbreadの場合はsystemが128MBだと足りない上に、dataが76MBではGoogleアカウントの同期やアプリを追加だけで空き容量が足りなくなってしまう為、ROMはcacheとsystemのみに割り当て、dataはmicroSDカードにext2パーティションを作成して使うことにする。

microSDカードの準備

microSDカードに3つのパーティションを作成して、1番目をFAT32、2番目をExt2、3番目をLinux Swapにする。Windows等は1番目のパーティションしか見ないので、読み書きは従来通り行える。(今回はLinux SwapをS11HTのRAMと同じ128MB以上確保した上で、残りの容量を半分ずつFAT32Ext2に割り当てた。)

  1. MiniTool Partition Wizard Free Edition v9.0をインストールして起動したら「Launch Application」をクリックする。
  2. microSDカードの「(FAT32)」を右クリックして「Move/Resize」をクリックする。
  3. 「Partition Size」からdataとswapに割り当てたい分を減らして「OK」をクリックする。
  4. microSDの「(Unallocated)」を右クリックして「Create」をクリックする。「Warning」ダイアログが出るが「Yes」をクリックする。
  5. 「Create As」に「Primary」、「File System」に「Ext2」、「Partition Size」にdataに割り当てたい分を設定して「OK」をクリックする。
  6. microSDの「(Unallocated)」を右クリックして「Create」をクリックする。「Warning」ダイアログが出るが「Yes」をクリックする。
  7. 「Create As」に「Primary」、「File System」に「Linux Swap」を設定して「OK」をクリックする。
  8. 「Apply」をクリックする。「Apply Changes?」ダイアログが出るので「Yes」をクリックする。
  9. microSDカードのパーティションの書き換えが始まるので、しばらく待つ。
  10. 「Successful」ダイアログが出たら「OK」をクリックする。
  11. メニューから「General」→「Exit」の順にクリックして終了する。
Androidカーネルとシステムの準備

Android HTCプロジェクトで公開されている最新のカーネルはVogue用なのでAtoolsのNBH editorでKaiser用に変更する必要がある。他にも各種設定変更にAtoolsを使う。Atoolsの動作にはPythonが必要なので、Welcome to Python.orgの「Downloads」から「Download Python 2.7.9」をダウンロードしてインストールしておく。

  1. atools-1.3.0.py」をダブルクリックして起動すると、三角定規&ハサミアイコンのNBH editorが開く。
  2. フォルダアイコンで「VOGUIMG-320-FROYO-01-16-11.NBH」を開く。
  3. 「Device」を「Kaiser」、「Panel Type」を「3」に設定する。*4
  4. 「Alter CPU overclock settings」にチェックを入れて「CPU Overclock」を「500」MHzに設定する。*5
  5. 「Alter system and data Partition」にチェックを入れて「Cache Size」を「30」MBs、「System」を「184」MBsに設定する。*6
  6. 「Simple settings」にチェックする。*7
  7. 「Data」を「Sd partition p2」、「Swap」を「Sd partition p3」に設定する。*8
  8. FDアイコンで「KAISIMG.NBH」を保存する。
  9. 歯車&鉛筆アイコンでBoot script editorを開く。
  10. 「First Install」にチェックを入れる。
  11. FDアイコンで「install-seq.sh」を保存する。
  12. キーボードアイコンでKeymapperを開く。
  13. 「Device」を「Kaiser」に設定する。
  14. FDアイコンで「androidupdate.tar」を保存する。
  15. CD&FD&箱アイコンでMixerを開く。
  16. (+)アイコンで「androidupdate.tgz」を開く。(先ほど保存したandroidupdate.tarじゃないので注意!)
  17. (+)アイコンで「system-gingerbread-all-unodex-24-01-11_07.tgz」を開く。
  18. (+)アイコンで「androidupdate.tar」を開く。
  19. 渦巻きアイコンで開いたファイルを混合する。「Set a working directory!」と出たら「OK」をクリックする。「Please choose a directory, then select OK.」と出たら「OK」をクリックする。
  20. FDアイコンで「androidinstall.tgz」を保存する。
  21. 電源アイコンでAtoolsを終了する。
  22. microSDカード(のFAT32パーティション)にandbootフォルダを作成し、その中に今回作成した「androidinstall.tgz」と「install-seq.sh」をコピーする。
Androidのインストール
  1. KaiserCustomRUUv1.zipを解凍して、KaiserCustomRUU.exeと同じフォルダにKAISIMG.NBHをコピーする。
  2. S11HTWindows Mobileが起動している場合は、電源ボタンを押し続けて「装置がオフになります。」と出たら「はい」をタップして電源を切る。
  3. S11HTからSIMカードを抜いて、andbootフォルダを作成したmicroSDカードを入れて、カメラボタンを押しながら電源を入れる。
  4. S11HTの画面上部にKAIS140、SPL-3.56.Hard、CPLD-8と表示されて、下部にSerialの文字が出たら、PCとUSB接続するとUSBの文字に変わるので、Windows 8.1の「ハードウェアを安全に取り外してメディアを取り出す」に「Qualcomm CDMA Technologies MSM」があることを確認する。(無い場合は、USBケーブルを再度抜き差しするか、リセットボタンを押して再度やり直す。)
  5. KaiserCustomRUU.exeを実行する。「ユーザー アカウント制御」が出たら「はい」をクリックする。
  6. 「I understand the caution indicated above and have reviewed the Readme.」にチェックを入れて「Next」をクリックする。
  7. 「I completed the steps indicated above.」にチェックを入れて「Next」をクリックする。
  8. 「Current information about your PDA Phone:」が出たら「Update」をクリックする。
  9. 「Verify that you want to update the ROM version:」が出たら「Next」をクリックする。
  10. 「You are now ready to update your ROM image. This operation takes approximately 10 minutes.」が出たら「Next」をクリックする。
  11. S11HTに棒グラフが表示されるので、100%になるまで待つ。100%になったらS11HTが自動的に再起動されるので、起動時の「smart mobility」の文字が出たところでUSBケーブルを抜いておく。*9
  12. 「Congratulations ! Your ROM update is now complete. Your PDA Phone is ready for use.」が出たら「Finish」をクリックする。
  13. 「プログラム互換性アシスタント」が出たら「閉じる」をクリックする。
  14. S11HTの画面上部にペンギンが表示され、Linuxの起動メッセージが流れ始める。「Press and hold Volume Up or DPAD Center to launch installer」と表示されて3秒間キー入力待ちになるが、今回はスクリプトファイルのinstall-seq.shでインストールの指定を行うのでS11HTの中央ボタンを押してAndroid Installerを起動する必要は無い。
  15. インストールが終わると自動的にAndroidの起動が始まって、ブートアニメーションの後、ホーム画面になる。
  16. ブラウザボタンがホーム、okボタンが戻る、Windowsボタンがメニュー、メールボタンが縦画面/横画面切り替えに割り当てられている。ホーム画面からメニュー→Settings→Language & keyboard→Select language→日本語で日本語表示に切り替わる。

Windows Mobileに戻す

  1. EMONSTER S11HT 本体アプリケーションダウンロードからEMONSTER 本体アプリケーション Ver.2.6.881.0 JPN ソフトウェアアップデート ユーティリテ(S11HT_firm_V2_6_881_0_JPN.exe)をダウンロードする。
  2. S11HT_firm_V2_6_881_0_JPN.exeを7-Zip等で解凍して、ROMUpdateUtility.exeが含まれていることを確認する。
  3. S11HTWindows Mobileが起動している場合は、電源ボタンを押し続けて「装置がオフになります。」と出たら「はい」をタップして電源を切る。
  4. S11HTからSIMカードmicroSDカードを抜いて、カメラボタンを押しながら電源を入れる。
  5. S11HTの画面上部にKAIS140、SPL-3.56.Hard、CPLD-8と表示されて、下部にSerialの文字が出たら、PCとUSB接続するとUSBの文字に変わるので、Windows 8.1の「ハードウェアを安全に取り外してメディアを取り出す」に「Qualcomm CDMA Technologies MSM」があることを確認する。(無い場合は、USBケーブルを再度抜き差しするか、リセットボタンを押して再度やり直す。)
  6. ROMUpdateUtility.exeを実行する。「ユーザー アカウント制御」が出たら「はい」をクリックする。
  7. 「上記の表示されている注意を理解し、Readmeを参照しました。」にチェックを入れて「次へ」をクリックする。
  8. 「上記の手順を完了しました。」にチェックを入れて「次へ」をクリックする。
  9. PDA 電話についての現在の情報」が出たら「アップデート」をクリックする。
  10. 「ROM バージョンをアップデートしたいことを確かめてください」が出たら「次へ」をクリックする。
  11. 「ROM 画像をアップデートする準備ができました。」が出たら「次へ」をクリックする。
  12. S11HTに棒グラフが表示されるので、100%になるまで待つ。100%になったらS11HTが自動的に再起動する。
  13. 「おめでとうございます! ROM アップデートが完了しました。 PDA 電話を使用することができます。」と出たら「終了」をクリックする。

SPLを元に戻す

  1. EMONSTER S11HT 本体アプリケーションダウンロードからEMONSTER 本体アプリケーション Ver.2.6.881.0 JPN ソフトウェアアップデート ユーティリティ(S11HT_firm_V2_6_881_0_JPN.exe)をダウンロードする。
  2. 今回のために自作したNBtools 0.0.5a(nbtools_005a.zip)をダウンロードする。
  3. CustomRUU for Kaiserの「Attached Files」から「KaiserCustomRUUv1.zip」をダウンロードする。
  4. HardSPL will not install - WHITE SCREEN: SOLVED (UPDATE 01. March 2008)の「Attached Files」から「JumpSPL1.93-KAIS.zip」をダウンロードする。
  5. S11HT_firm_V2_6_881_0_JPN.exeを7-Zip等で解凍して、RUU_signed.nbhが含まれていることを確認する。
  6. nbtools_005a.zipを解凍して、make_spl.batと同じフォルダにRUU_signed.nbhをコピーして実行すると、SPL.nbhが作成される。
  7. KaiserCustomRUUv1.zipを解凍して、KaiserCustomRUU.exeと同じフォルダにSPL.nbhをコピーする。
  8. S11HTWindows Mobileが起動している場合は、電源ボタンを押し続けて「装置がオフになります。」と出たら「はい」をタップして電源を切る。
  9. S11HTからSIMカードmicroSDカードを抜いて、電源を入れる。
  10. Windows Mobileが起動したら、S11HTとPCをUSB接続する。
  11. JumpSPL1.93-KAIS.zipを解凍して、JumpSPL1.93-KAIS.exeをS11HT→\→My Documentsにコピーする。
  12. S11HTからスタート→プログラム→ファイル エクスプローラ→My Documents→JumpSPL1.93-KAIS.exeを実行する。「このプログラムの発行者は不明です。」と出たら「はい」をタップする。「KAISER JumpSPL v1.0」が起動したら「Continue」をタップする。
  13. S11HTの画面上部にKAIS140、SPL-1.93.Jump、CPLD-8と表示されて、下部にUSBの文字が出たら、USBケーブルを一旦抜いて5〜20秒後に再度接続する。Windows 8.1の「ハードウェアを安全に取り外してメディアを取り出す」に「Qualcomm CDMA Technologies MSM」があることを確認する。(無い場合は、USBケーブルを再度抜き差しするか、リセットボタンを押してやり直す。)
  14. KaiserCustomRUU.exeを実行する。「ユーザー アカウント制御」が出たら「はい」をクリックする。
  15. 「I understand the caution indicated above and have reviewed the Readme.」にチェックを入れて「Next」をクリックする。
  16. 「I completed the steps indicated above.」にチェックを入れて「Next」をクリックする。
  17. 「Current information about your PDA Phone:」が出たら「Update」をクリックする。
  18. 「Verify that you want to update the ROM version:」が出たら「Next」をクリックする。
  19. 「You are now ready to update your ROM image. This operation takes approximately 10 minutes.」が出たら「Next」をクリックする。
  20. S11HTに棒グラフが表示されるので、100%になるまで待つ。100%になったらS11HTが自動的に再起動する。
  21. 「Congratulations ! Your ROM update is now complete. Your PDA Phone is ready for use.」が出たら「Finish」をクリックする。
  22. 「プログラム互換性アシスタント」が出たら「閉じる」をクリックする。
  23. S11HTWindows Mobileが起動したら、電源ボタンを押し続けて「装置がオフになります。」と出たら「はい」をタップして電源を切る。
  24. S11HTのカメラボタンを押しながら、電源を入れる。
  25. S11HTの画面上部にKAIS140、SPL-3.06.0000、CPLD-8と表示されるのを確認したら、リセットボタンを押して再起動する。

*1:Windows Mobile 6.0ではHard SPL v1等が推奨されているが、Hard SPL 3.56でも問題なくWindows Mobile 6.0が起動する模様。

*2:新しいJumpSPL1.94だとS11HTでROMの書き換えを行う際、0%で止まってしまうことがある。

*3:KaiserCustomRUU.exeはCustomRUU for Kaiserの「Attached Files」にある「KaiserCustomRUUv1.zip」に含まれているものと完全に同じなので、どちらを使っても問題ない。

*4:Androidの画面表示がおかしい場合は「2」に設定する。

*5:500MHz程度のオーバークロックなら特に問題は無いと思うが、好みに応じて別にやらなくても良い。

*6:microSDext2パーティションを使わない場合は変更しなくても良いが、gingerbread等を使う場合はSystemを4MB以上増やすと良い。

*7:容量が違う互換バッテリー等を使っている場合は、そのバッテリーの容量を設定する。

*8:microSDext2パーティションを使わない場合は変更しなくても良い。

*9:今回インストールしたAndroidではadb接続が正常に動作しない上に、電源が切れた状態でUSBからの電源供給があると勝手に電源が入ってバイブレーションもsmart mobilityの文字も出ずに真っ白な画面が一瞬出た後、Androidのブートアニメーションが始まるまで画面が消えたままになる。