2010.12.05

HT-03A にCyanogenMod を導入する

常用している携帯電話にHyper-JというカスタムROMを導入 してから、今までにやったことのメモ。

公開されているROM をいくつか試してみて、現在はCyanogenMod というカスタムROM になっている。

ROMの増量

「Radio とhboot を書き換えることで、メモリを増やすことができる」という話題に乗っかって、試してみた。

Android Custom Cookbook の記載を読むと、hboot 、またはSPLというのはPCで言うところのBIOS に相当して、radio は無線担当のアプリケーションで、起動後最初に読み込まれる。 互換性のない hboot とradio とを組み合わせると、最悪の場合起動しなくなる。

手元の携帯電話は、すでにSPLの変更 を 行っていたから、この時点でのSPL はEngineering SPL 1.33.2005 、radio は純正の radio 2.22.19.26l だった。これをSPL 1.33.0013d、radio 2.22.27.08 に、それぞれ書き換えることになる。

手順はNext K : メモリー増量の記録 で公開されているとおりで上手くいった。

はまる可能性がある場所として、あらかじめengneeringSPL に書き換えを行っておかないと、fastboot を携帯電話が受け付けないので、そもそも書き換えができないことに注意。SPL 1.33.0013 には、 「d」 がついたものとそうでないものとがあるけれど、リンク先の手順に従う場合、純正品のSPL (d 無しのほう) だとerase 命令を受け付けないので、エラーが出るかもしれない。

自分はSPL 1.33.0013d、radio 2.22.27.08 をそれぞれ焼いたあと、recovery-RA-sapphire-v1.7.0G から FR-Spoof-SPL-1-33-0013S.zip を焼いて再起動、 再度リカバリーから pubrom 1.0 を焼いて、 さらにezBiffTestKernel20101106-2708S.zip を重ね焼きして、上手くいった。

全て終了したあと、総メモリーが112.7MB になっていれば、手順は成功しているはず。

pubrom 1.1 RAMHack版

1.0 を改変することで快適に使えていたのだけれど、ROM のバージョンアップに伴い、作者の方がRAM 増量に対応したバージョンを公開してくれた。

リンク先の手順 に従うだけで、 リカバリーからSPL とradio の書き換えが行われて、最初から新しいSPL とradio に対応したROM を上焼きすることができた。

注意点としては「リカバリの再起動」 で、単純に電源を入れ直すのでなく、リカバリ画面から、home+back ボタンを押すことで、リカバリ -> リカバリへの 再起動ができる。知らないとはまるかもしれない。Next K : pubrom1.1 ramhack版を入れてみた で、やりかたが図解されている。

バージョンこそ違えど、同じROM だから、使い勝手はほぼ1.0 と同じ。recovery-RA-sapphire-v1.7.0 は、SDカードのパーティーション分けを行う機能があって、 あらかじめswap 用にパーティーションを切っておくと、起動時に自動的に認識してくれる。アプリケーションが落ちにくくなる。

とりあたまさんのおぼえがき で推奨された値に準じて、swap を256MB 、ext3 を1GB、残りをデータ用途にそれぞれ分割して、実際に256MB のswap が認識されているけれど、 この値については「もっと小さい方がいい」とか諸説あって、何が正しいのかよく分からない。

ここまでずっと、15MB のRAM 増量を前提にしてきたけれど、何かの理由で元に戻したいときにはSPL とradio を書き戻す必要がある。 hpcalcのつぶやきメモ HT-03AのRAM増量に必要なものでリンク先が公開されている。

CyanogenMod

pubrom 1.1 は日本語化も行き届いていて、普段使いする分にはもうなんの不満もなかったのだけれど、せっかくだからいろんな機能を試したくなった。

CyanogenMod はたぶん最も有名なカスタムROMで、ほぼ毎日のように更新されたROM が公開されていて、新しい機能が追加されていて、面白い。 英語圏のROM だけれど、日本語のフォントが同梱されていて、設定画面も翻訳されたものが入っていて、問題なく使用できる。

自分が焼いたのは、CM6.1-nighty-269、gapps-mdpi-tiny-20101020-signed、ez-nightly266-cm-2708port_S で、 radio-2.22.27.08、Official-SPL はそれぞれ、RAMHack版のpubrom 1.1 で焼いたものをそのまま踏襲した。

CyanogenMod の最新版は、こちら で公開されている。これは毎日のように更新される人柱版のほうで、 安定版はCyanogenMod のホームページ で公開されている。

CyanogenMod は、本体とは別にGoogle Addon を焼く必要があって、CyanogenMod のWiki からダウンロードできる。一番下のほうにある「Tiny」をダウンロードすれば大丈夫なはず。

このROM は、RAM の増量を行わない、従来のSPL とradio を対象にしているものなので、このまま焼いてもたぶん起動しない。 ezterry という方が対応したカーネルを公開 していて、 自分はez-nightly266-cm-2708port_S を焼いて上手くいったけれど、今はもうバージョンが上がっている。

リカバリーからwipe を行った後、CM6.1-nighty-269、gapps-mdpi-tiny-20101020-signed、ez-nightly266-cm-2708port_S をそれぞれこの順番で重ね焼きして、再起動を行うと上手くいった。

swap を有効にする

SDカード上に、せっかくswap パーティーションを切っているので、これをそのまま使い回したい。

Android でswap を有効にするやりかたはいくつかあって、Swapper2 というアプリケーションを使うと、SDカード上 のswap パーティーションも 認識させることができるのだけれど、ROM にパッチを当てると、アプリケーションを導入しなくてもいける。

Firerat ‘all in one’ patch というのが有名みたいで、 2ちゃんねるの過去ログ 179番に 使いかたが紹介されている。

一問一答形式で、やりたいことをコマンドラインで聞かれるから、それに答えていけば終了する。swap 有効化だけでなく、様々な機能を持ったファイルなんだけれど、 他の機能はよく分からないので用いていない。

CyanogenMod の設定

CyanogenMod は、ホーム画面の振るまいかたが非情に細かく設定できる。細かすぎて、正直何から手を付けていいのか分からないので、 ThxBiff というROMを公開している方の推奨設定をそのまま使わせてもらった。

ThxBiff の紹介ページ に設定が記載されている。

この環境でももう古い

CyanogenMod のNightly 版は、次から次へと新しいものが登場していて、今の設定でも、すでにもう古くなっている。Nightly 版のバージョンは272 まで 上がっているし、RAMHack 対応カーネルも、すでにNightly 271 の対応版が公開されている。

HT-03A には、CyanogenMod をはじめとしていくつものカスタムROM が公開されていて、メーカー純正、一番安定しているなんて言われている Official AOSP 2.2 OTA test3 にも、 今日になって日本語言語パックの追加 が行われた。

これからカスタムROMを焼くなら、こちらのほうがいいかもしれない。

2010.11.08

HT-03A 備忘録

普段は HT-03A というAndroid 携帯電話を常用していて、機能的にはこれで十分ではあったのだけれど、動作速度に不満があった。

電話をかけようとして、ホーム画面から電話を立ち上げるのにも数秒かかるし、たとえばメールを出したりネットを見たり、 何かのアプリケーションを立ち上げて、それが終了してからホーム画面に戻るのに10秒以上かかったり、 医局にあるいろんなスマートホンと比較して、この速度はちょっと我慢できなかった。

「ROM を入れ替えると快適になる」 という評判をあちこちで聞いて、同時に「失敗すると電話が一切使えなる」という警告に怯えて、 「Hyper-J 」という、安定しているという評判のカスタムROM を入れたのだけれど、使い勝手がずいぶん快適になった。 新しいスマートホンにはさすがにかなわないけれど、これなら十分に常用できて、当分は買い換えないでこのまま行こうと思えた。

一応お約束。煉瓦になっても当方は一切関知しません。自己責任の意味を理解できる方だけ先をお読み下さい

懸念していたこと

普段は病院との連絡に使っている携帯電話だから、カスタムROMに入れ替えて、そもそもそれが電話としてそのまま使えるのかどうか、 それが分からなくてちょっと困った。

ROM を実際に入れ替えてみて、基本的には今までどおり、電話としての機能は問題なく使えた。電話もかけられるし、 3G回線を使ったインターネットも、無線LANを使ったインターネットも今までどおり使えた。

Android 携帯は、アドレス帳機能はWeb 上に記録が残っているから、ROM を入れ替えて、Gmail のID とパスワードを入力すれば、 電話番号リスト、メールの記録、スケジュールについては、Web の側から勝手に書き戻されて、今までどおりに使えた。 今まで使っていたアプリケーションは全て消してしまったけれど、そもそもそれほどたくさん入れていたわけではないから、 それは問題にならなかった。

ROM の入れ替えを行う際に、事前に記録しておくべきことは、基本的に何もなかった。何か特別なID とか、パスワードのメモを忘れて、 「ROMの入れ替えには成功したけれど、電話機としては二度と使えなかった」という状況を恐れていたのだけれど、Gmail のID とパスワードさえ 覚えていれば十分だった。

手順の概要

必要なことのほとんど全ては、 Android Custom Cookbook というWiki に書かれていて、このとおりにやればROM の書き換えができた。 ただしこのページは、HT-03A 以外にもいくつかのAndroid 携帯に対応していて、同じ工程にいくつかの選択肢が用意されていて、初心者にはそれが怖かった。

自分がやったのは、以下の順番。

  1. AndroidSDK導入(Windows)
  2. Goldcard作成
  3. ダウングレード
  4. root 化
  5. RA-sapphire の導入
  6. Rom導入 HyperJ
  7. Titanium Backup の導入SPLの変更
  8. その他アプリケーションの導入

これはどちらかというと遠回りなやりかたで、もっと簡単にROM を変更する手順も紹介されているけれど、 このやりかたは比較的確実で、いざというときの後戻りがやりやすいように思う。

AndroidSDK導入

携帯電話本体と接続する、PC側にソフトを設定する。

基本的な流れは、 AndroidSDK導入(Windows) のとおりでいける。分かりにくい部分について、初心者向けの手順書 も準備されていて、とても親切にできている。

はまるのは以下の部分。

  • android-sdk の今のバージョンは、最初からUSBドライバーが入っているみたいで、ドライバーのダウンロードとインストールは、行わなくても大丈夫だった
  • 手順書の最初にEclipse の導入が記載されていているのだけれど、ROM を変更するに当たって、Eclipse がどこで使われているのがよく分からない。なくても大丈夫なのかもしれない
  • PCと携帯電話本体とを接続するときには、Android の「アプリケーション」 -> 「開発」 -> 「USBデバッグ」をチェックする必要がある。これだけやっておくと、後は無造作にUSBを接続するだけでリンクされる

Goldcard作成

Goldcard作成 の手順書の通りに行えば、同じものが作れるはず。

これを作らないでroot 化 する方法もあるけれど、このカードを作っておくと、ROM が固まって、携帯電話が立ち上がらなくなってしまったときに、 GoldCard から復活をかけられる。もしもの時に役に立つから、SDカードを1枚、これを作るために取っておいてもいいと思う。

ダウングレード

HT-03A に入っている、バージョン1.6 のOS から、root 化ができるバージョン 1.5へと書き戻す作業。

ダウングレードの手順書 に従って、GoldCard に myTouch3G 1.5 のROMを書き込む。DoCoMo の携帯電話ではなくなるけれど、このままでもGmail のID とパスワードがあれば、 普通に携帯電話として使える。

myTouchi 3G ではなく、DoCoMo 1.5 に戻すやりかた もあるみたいだけれど、試していない。

ダウングレードを行って立ち上げると、myTouchi 3G の初期画面に入れる。初期画面 から menu ボタンを押すと、APN 設定画面に入れるので、 BizホーダイのAPN設定 を書き込んで保存すると、Gmail の認証画面に進める。あとはGmail のID とパスワードを 入力すれば、Web 側からアドレス帳やスケジュールが書き戻されて、とりあえず「普通のスマートホン」として使うことができるようになる。

普通は「Bzホーダイ」で契約しているはずで、APN はmpr2.bizho.net のほうになるはず。

root 化

手順書 に記載されている、setupsu.apk を利用するやりかたが簡単だと思う。

nagamatu’s SetupSU at master – GitHub が、アプリケーションの管理ページになっているみたい。

この時点で、携帯電話は普通に使えるようになっているはずなので、Astro なり、ES ファイルエクスプローラー なり、ファイル管理アプリケーションを Android マーケットからダウンロードしておく。

setupsu.apkは、HT-03AとPCをUSBで接続、マウントした上で、SDカード上にコピーしておく。USBを外して、ファイルマネージャーでsetupsu.apk を 選択すると、「インストールしますか?」という選択肢が出現する。

インストールすると、アプリケーション一覧に「す設定」というアプリケーションが出現するので、 それをタップするとroot 化が完了、同時にbusy box という、Linux のコマンドを実行するためのアプリケーションがインストールされる。

root 化もまた、公式1.6からのダイレクトアップグレードを行う手順 が公開されていて、 こちらのほうが間違いなく速いのだけれど、「壊れたときに復活できる」手段が増やせる分だけ、延々と書いてきたやりかたを、 最初は行ったほうがいいんじゃないかと思う。

RA-sapphire の導入

ROM を書き換えるときには、「SDカード上にROMをコピー -> ホームボタンを押しながら電源オン -> リカバリモードからSDカード上のROMを本体に上書き」 という手順を取る。ROM の導入が可能になっているリカバリモード 上で動くアプリケーションを、あらかじめ入れておかないといけない。

手順書 で紹介されている RA-sapphire 以外にも、 FlashRecovery を用いた手順 が公開されているけれど、 最初のやりかたを行ったほうがいいように思う。RA-sapphire を用いた紹介記事のほうが多いから、トラブルになったときに、調べやすいような気がする。

RA-sapphire は、バージョンが v1.7.0 に上がっている。HT-03Aの場合、必ず末尾Gの物を使用しないといけない。無印のバージョンと、cyan の バージョンとがあるけれど、これは背景の色が違うだけで、機能は同じらしい。

ROM の導入

ROM の書き換えを行う前に、あらかじめ Home を押しながら起動 -> RA-sapphire 起動 -> NANDROID BACKUP で、 今の状態をバックアップしておくと、いざというときにとりあえず動く環境を書き戻せるかもしれない。

バックアップを取った後は、Rom導入の手順書 に 従っておけば、そのまま上手くいくはず。

自分は今回、 HyperJ というカスタムROMを使わせてもらった。 あらかじめ、SDカード上に HYPER-J-1.5.zip と HYPER-J-1.5b-patch-Black.zip とを置いておいて、RA-sapphire のFlash zip from sdcard から、この順番で 導入した後、最後に再起動を行うと、新しいROMの入ったスマートホンとして立ち上がってくれた。

Hyper-J は日本語化がきちんと行き届いているROMで、あらかじめBiz ホーダイのAPN 設定が書き込まれていたから、 特別な設定は何も必要なかった。

ここで上手く立ち上がらないと、画面は真っ暗なまま、うんともすんともいわなくなる。最初の起動は時間がかかるけれど、それでもせいぜい数分単位で、 起動画面はずっと表示されている。画面が真っ暗になるか、10分たっても起動しなかったら、どこかで失敗している可能性が高いと思う。

固まってしまったときには、裏ぶたを開けて電池を外すと、やり直すことができる。もう一度起動を試みて、いよいよ駄目だったときには以下を試す。

  • Home を押しながら起動 -> RA-sapphire 起動 -> NANDROID BACKUP から、バックアップした元のROM イメージを書き戻す
  • それでも無理なら、SD カードを事前に作ってあるはずのGoldCard に変更、HT-03Aの電源を切った後、ボリュームダウンを押しながら電源を入れFastbootモードに入る。 自動的にSAPPIMG.nbhが認識されるので、「Do you want to start up」と表示されたらトラックボールを押すと、まずはmyTouch3G の状態に書き戻せる

ROM の変更についても、「ROM Manager」 というアプリケーションを使ったやりかたが 紹介されていて、こちらのほうが圧倒的に簡単そうなんだけれど、ROMに乗ったアプリケーション上からROM 全体を書き換えるのはなんとなく怖くて、試していない。

Titanium Backup の導入とSPLの変更

この時点で、新しいROM イメージで立ち上がっているはずなので、以下の手順は蛇足ではある。

それでも強力なバックアップツールである Titanium Backup の導入 を行っておくと、 いざというときにいつでも調子のいいときの環境を書き戻せるので、入れておくと安心だと思う。

SPLの変更も 同様で、HT-03A のROM を書き換えるときには必要ない手順だけれど、何かの拍子にROM が壊れて、通常起動も、ホームボタンを押しながらのリカバリモードも 立ち上がらない状態になっても、fastboot に入ってPCからRA-sapphire を書き戻せる 可能性が 残されるので、保険としてこれをやってもいいんじゃないかと思う。

その他

この時点で、HT-03A はずいぶん軽く動くようになって、変化を体感できる。できることは基本的に今までどおりで、 後は昔使っていたアプリケーションをAndroid マーケットからもう一度ダウンロードすれば、だいたい元の使い勝手で、 快適さだけ増した状態に持って行ける。

ただこれだけだとすこし寂しいので、以下の手順でCPUのクロック周波数を上げることにした。

  1. xda-developers という、Android のカスタムROMを作っている人たちの掲示板に行って、会員登録をしておく
  2. UNIVERSAL OVERCLOCK for ANY ROM– Wifi Fixed Version 2.0.1SetCPU for Root Users 2.0.4 をダウンロードしておく
  3. UNIVERSAL OVERCLOCK for ANY ROM をSDカード上にコピー、RA-sapphire でROM に上書き
  4. SetCPU をSDカード上にコピー、何か適当なファイル管理アプリケーションからインストール
  5. SetCPU 上では、最大825MHz までオーバークロックが可能な設定になっているけれど、作者の人は「652MHz」を推奨していた

オーバークロックは、やり過ぎて固まると起動できなくなる可能性があるので、あらかじめSetCPU のprofiles から「Charging/Full 」を 選択して、充電状態でのクロック周波数を480MHz 程度に設定しておくと安心材料が増える。オーバークロックしすぎて動かなくなったら、 充電状態のまま起動すると、クロック周波数が下がった状態で起動できるので、固まる前にSetCPU の設定を変更できるかもしれない。

自分の携帯電話は、Max 652MHz、Min 480MHzで今のところ安定している。

創造の生まれる場所

2ちゃんねるのROM 焼き板を眺めたのだけれど、掲示板の人たちは、誰もが人柱戦争に参加していて、 HT-03A は、落ちたり固まったりは当たり前、屍の山を作りながら、それでもみんな、できたばかりの危険なROM に手を出しては、 快適になったとか、文鎮になってしまったとか、レポートをどんどん上げて、とても楽しそうにしている。

Hyper-J は安定しているROM で、十分に早くて快適で、日本語情報が充実していて文句の付けようがないんだけれど、 掲示板では「Hyper-J は甘え」なんて書かれていて、たしかにそのとおりだと思った。

ありふれていること、見捨てられていること、小さなことというのが、創造の3要件なのだと思った。特に「失敗が許されないぐらいに大きな問題」には、創造的な問題解決というものはありえない。

HT-03A は、どこかNTT から「見捨てられた」携帯電話で、それほどたくさんは売れなかったみたいだし、 「Android はアップデートできるから、中身は常に最新です」なんてDoCoMo の人から勧められたわりに、 アップデートは1回だけだった。

この携帯電話は、それでも世界的にはそこそこの数が出ていて、後続の、もっと高性能な携帯電話に比べれば、 価格もそんなに高くなかったから、性能こそ平凡だけれど、詳しい人たちがたくさんいて、中身は別物に進化した。

携帯電話をゼロから作るためには大規模な工場が必要だし、OSを最初から作り出すのも大変そうだけれど、 「ROMをいいとこ取りして改良する」というのは、詳しい人であれば、個人でなんとか手が出る範囲で、 問題の大きさとしてちょうど良かったのではないかと思う。

結果としてHT-03Aは、性能こそ、Xperia やGalaxy に比べると、比べようもなく低い製品なのに、 先端を行っている人たちはGoogle の発表した最新のROMを焼いていて、CPUはオーバークロックされて、 ベンチマーク上は、Xperia の背中に手が届きそうで、まだまだとても面白い状況が続きそう。

ハードウェアの絶対的な差をひっくり返すことはさすがに無理だろうけれど、この携帯電話がここまでの性能を持っていたなんて、 作った人も予想していなかったんじゃないかと思う。

あと1年ぐらいはHT-03Aで頑張ってみる。