Xperiaが意外と好調な様子の今日この頃、如何お過ごしでしょうか。
とはいえ、HT-03Aがおいら的にはベストサイズなので、Xperiaはサイズ的にどうなんだろうと、いまいち物欲がおこりません。今のところrootも取れないようなので、それだったらNexusOneのほうがいいですよねぇ。
HTCせんせーってばHT-03Aは放置プレイ中なのか、OSのバージョンアップも1.6止まりで次のアナウンスもないし。
2chの該当スレッドを見ていると、HT-03AでもカスタムROM入れるとそこそこ速くなるそうですし、最近はずいぶん安定して来ているようなので、うちでも導入してみることにしました。
元々、導入するつもりではいたのですが、基本的にWipe/Factory Resetが必要だというので、導入した後の環境再構築がめんどいなぁと今日までだらだら来たのですけれど、コムギドットネットさんで配布されているbackappsを使うと比較的楽に環境を戻せます。
以下、お約束ですが全ては個人の責任でおながいします。
カスタムROMを導入する前提として
- 本体のroot権限
- xda-developers(カスタムROMやツールの配布場所)のアカウント
- adb
が必要です。
他にカスタムROM関係をコムギドットネットさんがAndroid Custom Cookbookでまとめて下さっていますので、参照ください。backappsもこちらから入手します。
まずは、リカバリーユーティリティを入手します。リカバリーユーティリティはコムギドットネットさんの高機能リカバリユーティリティ RA-magic-v1.3.2に詳しく記載されていますが、現在のROMイメージをバックアップしたり、別のROMイメージを導入したりする際に必要になるユーティリティです。
上記記事中にあるxda-developersへのリンクからRA-sapphireを入手します。現在は1.6.2が最新版のようですので、
- recovery-RA-sapphire-v1.6.2G.img
をダウンロードしてSDカードにコピーします。(HT-03Aの場合は必ずファイル名にGと付いているものをダウンロードしてください。)コピー先はSDカードの直下(/sdcard)でOKです。
それから、おいらの環境では少し問題があった(後述)のでカスタムROMイメージも入手しておきます。
Hyper-jについてはコムギドットネットさんのカスタムRom/HyperJにあるリンクから
- HYPER_J_1.5.zip
- HYPER_J_1.5b_patch.zip
を入手して同様にSDカード直下(/sdcard)にコピーしておきます。
ついでに同じくコムギドットネットさんのツール/Backappsからbackapps_v0.37b.zipをダウンロードし、アーカイブの中にあるbackapps.shを取り出して同様にSDカード直下(/sdcard)にコピーしておきます。
次にパソコンとHT-03AをUSBケーブルで接続し、パソコンのコマンドプロンプトを起動してadb shell経由でflash_imageを使用してリカバリーユーティリティを書き換えます。
adb shell
$ su
# flash_image recovery /sdcard/recovery-RA-sapphire-v1.6.2G.img
「su」は標準ROMの場合に必要な操作で、adb shellしたときに最初に出力されたプロンプトが「$」の場合は必ずsuしてください。
このとき、
flash_image : not found
というメッセージが出力され、実行エラーとなる場合があります。これは、現在のHT-03Aにflash_imageコマンドが無い事をあらわします。詳細はplanetsquareの備忘録さんのリカバリユーティリティRA-sapphire-v1.5.2導入に記載されていますが、公式1.6+rootedにした際に云々らしいです。
リカバリーユーティリティ適用に方法としてはfastbootを使う方法もあるようですが、おいらの環境ではうまくいかなかったので、ダウンロードしておいたHyper-jのアーカイブ中にある/system/bin/flash_imageを取り出して使う事にしました。
まず、取り出したflash_imageをSDカードにコピーして、adb shellから/systemを読み書き権限付きでマウントしなおし、/system/binにflash_imageをコピーします。コピー後は/systemを再度リードオンリーでマウントしなおします。
adb shell
$ su
# mount -o remount,rw /dev/block/mtdblock3 /system
# cp /sdcard/flash_image /system/bin/flash_image
# cp /sdcard/flash_image /system/xbin/flash_image
# mount -o remount,ro /dev/block/mtdblock3 /system
(4/9追記)
試していないのであれですが、flash_imageを/system/binにコピーしなくても、/sdcardの下においた状態でフルパスで実行しても良い様な気もします。
adb shell
$ su
# /sdcard/flash_image recovery /sdcard/recovery-RA-sapphire-v1.6.2G.img
じゃ駄目かしらん。
# と思ったらパーミッションの関係で怪しげです(4/15)。
(追記ここまで)
この後、再度flash_imageを実行し、うまくいったことを確認したら
# reboot recovery
でリカバリーモードが立ち上がる事を確認します。以後、リカバリーモードで立ち上げるには、HT-03AをHOMEボタン(お家マーク)を押しながら電源を入れればOKです。
次に、backapps.shを-sオプション付きで起動し、現環境のバックアップを取ります。
adb shell
$ su
# sh /sdcard/backapps.sh -s [保存名]
-s オプションの後に保存名を指定する事ができます。保存名を付けない場合は「SAVE日付時分」となるようです。
完了するまでそれなりに時間が掛かります。また、ファイル名の関係からかバックアップできないものもあるようですが、見た感じキャッシュ関係のファイルのようなのでとりあえずエラーになっても気にしないことにしました。
バックアップが終了したらHT-03Aをリカバリーモードで立ち上げます。
リカバリーモードで立ち上がったら、
- Backup/Restore
メニューで現在のROMイメージをバックアップしておきましょう。タイミングによって失敗する事があるようですが、その場合は再度バックアップを行えば大丈夫だと思います。
おいらはNand + ext backupでバックアップを取ってみました。(extって何なんだろ?)バックアップは「/sdcard/nandroid/デバイスID/ROMフォルダ」に格納されるようです。フォルダ名は「BDS-日付-時分」のようになります。(多分ext分はBDES-日付-時分)
このROMフォルダ名は変更可能との事なので、restore時にどのROMイメージなのか分かりやすいように変更しておいた方がいいでしょう。
ちなみに、リカバリーモードのメニュー移動はトラックボールの操作で出来ます。選択はトラックボールクリック、前のメニューに戻る場合はバックボタンとなります。
次にWipeメニューから
- Wipe data/factory reset
を実行します。
Hyper-jの適用にはwipeの実行は必須ではないようですが、初回の起動に時間が掛かるようなので思い切ってwipeしたほうが楽です。おいらも試しにwipe無しでやってみたのですが案の定、30分以上待てど暮らせと起動しませんでした。
wipeが終了後、カスタムROMを適用します。
リカバリーモードのメニューに
- Flash zip from sdcard
という項目があります。この項目を選択すると、/sdcardにあるROMイメージの一覧が表示されるので、適用するROMイメージを選択して実行します。最終確認でHOMEボタンを押せば実行開始、そのほかのボタンを押すとキャンセルされます。今回はHYPER_J_1.5.zipを選択して適用します。
HYPER_J_1.5.zipの適用が終了したら、パッチを適用するため、同様の手順でFlash zip from sdcardメニューからHYPER_J_1.5b_patch.zipも適用します。(パッチの適用はwipe不必要)
適用patchの適用が終わったらリカバリーモードメニューの
- Reboot system now
を選択してHT-03Aを再起動します。
再起動は通常の再起動時よりも幾分時間が掛かります。起動後はGoogleアカウントの設定などを行います。
おいらはこの辺スキップして、backappsから環境を戻す事にしました。
adb shell
$ su
# sh /sdcard/backapps.sh -r
1. SAVE1004071043
Choose a Backapps (type in the number and press enter)...
backapps.shを-rオプションで起動すると、バックアップの一覧が表示されるので、どれを戻すか番号で指定します。
アプリケーションをapkからインストールしたりするようなので、バックアップ以上に時間が掛かります。また、なんらかの関係で復元に失敗するものもあるようですが、ある程度元に戻れば御の字なので、その辺は気にしないことにします。
使ってみた感じでは、マーケット経由のアプリケーション等は殆ど問題なく戻るようです。設定もWiFiの設定辺りは戻るのですが、全部が全部元に戻るという訳ではないようなので(どの程度なのかは時間がなくて確認できていないのですが)、必要に応じて設定をチェックしたほうがいいと思いますが、ここまで戻してもらえるならかなり助かりますよね。
おいらは3Gを使っていないので(SIMはMN705iに挿してます)あれですが、外で3Gを使いたいことも出てくるかと思うので、APNの設定なんかも要チェックですね。
とりあえず、以上でカスタムROMの導入は終了です。
導入後に気になった事については別のエントリーで。
コメント
初めまして、先月遅ればせながら HT-03A を入手、コムギドットネットさんのサイトを参考に rooted 1.6 で運用しています。
RA-sapphire の導入で同様問題にぶつかり flash_image のコピーでつまづいています。
cp /sdcard… でも /sdcard/flash_image … でも “Permission denied” ではじかれてしまいます。
どのように対処したら良いのか教えて頂けませんでしょうか?よろしくお願い致します。
LIANさん、こんばんは。
flash_imageがSDカードにコピーできないという事でしょうか?。
うちでは、Windows上でHYPER_J_1.5.zipからflash_imageを取り出し、WindowsマシンとusbでHT-03Aを接続してSDカードにコピーしました。
上記操作で問題なくflash_imageが使えましたのでお試しくださいませ。
LIANさん。
“Permission denied”ということなら、コピーは出来てるんですよね?。(ちゃんと読めよ>おいら)
Hyper-jにしてしまったので、公式1.6+rootedの中の状況が分からないのですが、
adb shell
$ su
# ls -l /system/bin/flash_image
としたときの表示はどうなりますか?。
うちのHyper-j上では
-rwxr-xr-x root shell 9676 2008-08-01 21:00 flash_image
となります。
実行権や所有者が合っていないのであれば、
adb shell
$ su
# mount -o remount,rw /dev/block/mtdblock3 /system
した後に、
# chown root:shell /system/bin/flash_image
# chmod 755 /system/bin/flash_image
# mount -o remount,ro /dev/block/mtdblock3 /system
で、実行できるようにならないでしょうか。
むくたさんへ、
早速のお返事ありがとうございます。書き方が悪くて申し訳ありません。
残念ながらコピーから出来ていません。コピーの際にも Permission ではねられ、
SD カードからの実行でもはねられてしまいます。
なんだか中途半端な状態で su 出来ている様な感じなのですが何かお分かりになりますでしょうか?
LIANさん。
>書き方が悪くて申し訳ありません。
いえいえ、そんなことは無いです。おいらは飲み込みが悪いので、変な事を書いていたら申し訳ありません。
現象をお聞きした限りでは、うまく管理者権限になれていないような感じですが、su実行でPermission deniedにならないのであれば、su自体は実行出来ていると思います。
ちなみに、suを実行した後はプロンプトが”$”から”#”に変わりますか?。
# su実行時にsu rootとやってみると、何か状況が変わるかもです。
それから、おいらの環境では必要なかったのでエントリーには記載していないのですが、コムギドットネットさんのエントリーではsu実行後に”mount -a”をするように記載がありますので、これも試してみてください。(特に再マウントは必要ないんじゃないかなと思って記述していないのですが)
また、可能かどうかわかりませんが、SDカード側にコピーしてあるflash_imageのパーミッションを変更して実行してみるのもありかもしれません。
adb shell
$ su
# chown root:shell /sdcard/flash_image
# chmod 755 /sdcard/flash_image
# /sdcard/flash_image recovery /sdcard/recovery-RA-sapphire-v1.6.2G.img
むくたさんへ、
su 実行時にプロンプトは “$” から “#” には変わりますが
su root でも何も変化がありませんでした。
# chown root:shell /sdcarad/flash_image
を実行すると
No such user ‘root:shell’
で実行できませんでした。
cp /sdcard/flash_image /system/bin/flash_image は、
cp: cannot create ‘/systembin/flash_image’: Permission denied
ではねられます。
/sdcard/flash_image recovery /sdcard/recovery-RA-sapphire-v1.6.2G.img は、
/sdcard/flash_image: permission denied
ではねられてしまいます。やっぱり何かダメなんでしょうかね? (@_@)
むくたさんへ、
なんか色々やっていたのでよく覚えていないのですが多分リカバリーモードでいじくり回していたら
/system/xbin に flash_image をコピーする事が出来ました。なぜ出来たかは不明です。 f(^_^;
そこで教えて頂いた chmod 755 を /system/xbin/flash_image で実行した後に
flash_image recovery /sdcard/recovery-RA-sapphire-v1.6.2G.img
すると実行できました!ありがとうございました。 m(_ _)m
LIANさん
お疲れ様でした~。カスタムROMデビューおめでとうございます。
他のBLOGを確認しましたが、公式ROM+rootedでのflash_imageのコピー先は/system/xbinとの記述なので、このエントリーの記述が間違いでした。(メモりながらやったんですけど(^^;)
混乱させてしまったようで申し訳ありませんでした。
むくたさんへ、
おかげでカスタム ROM を試してみる事が出来ました。バックアップも取れる様になったので安心して使う事が出来ます。
ありがとうございました。 m(_ _)m
[…] Hyper-Jのエントリには拙い文章にもかかわらずアクセスが結構あるようで、お役に立っていれば良いのですが。 […]