トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

Android/Xperia/DualBoot

Android/Xperia/DualBoot

デュアルブート(SD起動)まとめ

はじめに

xdaにて公開されていたzdzihu氏(通称マユゲさん)作のFreeX10 AlphaがSDカード上に置いたext2イメージファイルから起動していたのを見て、xRecoveryでバックアップしたイメージをSDカードに置いて同じように起動してみよう、というものです。

利点と欠点を踏まえた上であなたのスタイルに合わせて利用してください。

Special thanks to zdzihu!

SDブートの利点

  • 複数のROMをまとめて持ち歩ける
  • 文鎮化リスクの回避
  • バックアップが容易(SD上のファイルをコピーするだけ)
  • 本体FlashMemoryの延命
  • system領域、data領域のサイズが変更可能

SDブートの欠点

  • USB接続でSDカードに書き込みできない(しないほうがよい)
  • SDカードが遅いと動作がモッサリ

SDカード上のイメージから起動する方法

概要としては、xRecoveryでバックアップしたイメージはyaffs2イメージなので、ext2のイメージファイルを作成し、内容を移すだけです。

用意するもの

  • RootedなXperia
  • FreeX10 alpha付属のchargemon
  • MicroSDHC (高速な物がGood.)
  • あなたがsuなLinux環境
  • xRecoveryでバックアップしたイメージファイル
  • unyaffs

yaffs2.img→ext2.imgするコマンド例

あなたのLinuxマシンで実行してください。./backup内がxRecoveryで生成したイメージとします。

mkdir temp
dd if=/dev/zero of=system.img bs=1M count=256
mkfs.ext2 system.img
mount -o loop system.img temp
cd temp
../unyaffs ../backup/system.img
cd ..
umount temp

dd if=/dev/zero of=data.img bs=1M count=512
mkfs.ext2 data.img
mount -o loop data.img temp
cd temp
../unyaffs ../backup/data.img
cd ..
umount temp

TIPSと既知の問題点

  • mkfs.ext2の代わりにmke2fsでも大丈夫です。
  • ddのcount数を変えればイメージサイズを可変できます。
    • CustumROMだったらsystemは192くらいでも大丈夫。アプリを沢山入れたければdataを512以上取ることも可能。
    • SDカードの空きと相談して決めて下さい。
  • SDカードから起動したらSDカードをアンマウントできません。できたらむしろ、まずいですが。
  • /cacheは本体Flashを利用しているようなので、切り換える度に生成し直すのがもったいないです。cache.imgも用意しようか考え中。
    • そのままでも特に問題はないかもしれない。
  • zdzihu氏謹製のchargemonはSDカードマウント時にオプションにutf8を付け忘れているのでSDカード上の日本語ファイル名が化けます。utf8付けておいてあげてください。

やさいしいFAQ

  • Q: winなんですができますか?
    • A: 残念ながら、auの端末には対応しておりません。
  • Q: Cygwinでできませんか?
    • A:パーミッションが維持されないのでできないと思います。
  • Q: 実用で使えますか?
    • A: 実用しています。
  • Q: xRecoveryは使えなくなるんですか?
    • A: chargemon次第です。トリプルブートもできますし、本体Flashは完全にほっといてSDカード上の独立した複数のイメージに割り当てることも可能。ヒント:シェルスクリプトの条件分けで実行されるのはif〜fiの間。
  • Q: Bluetoothのペアリングが別々でめんどくさいんですが。
    • A: 一つの環境で必要なデバイス全部ペアリングさせて、TitaniumでBluetoothペアリングをバックアップ、他で復元。
  • Q: ドコモROMをSDから起動したらSDカードのファイルが見えないんですが。
    • A: # mount -o rw,noatime,nodiratime,utf8 -t vfat /dev/blk/mmcblk0p1 /mnt/sdcard
      • 一応マウントはできるけど壊れても知らない。
    • ramdisk.tarの内容を、通常にドコロムを起動したときのそれらからmount周りだけ修正したものに置き換るべきかもしれない。

FOR TEST ONLY

FreeX10b1_hfx4_ext2.zip(0)
TripNRaVeR_v045_ext2.zip(1)
chargemon.txt(2) (無:本体、画面:SD、ボタン:xRecovery)
empty_ext2.zip(0) (32,64,96,128Mの空イメージ詰め合わせ)
FreeX10b2_ext2.zip(0)(不動?system小さすぎたかも^^;)