IS01を快適にデュアルブート

http://d.hatena.ne.jp/chumomo/20110714/1310655659の続き(ver.1)。
前回はdount×Froyoでした。今回もそうなんですが。
前回のdountではSwapが効きません。
ですので、それを効かそうではないか、というのが今回の試み。
何を今更…なんですがね。
むろん、以下の動作はすべて自己責任で。
あたしの環境下はBB07です。手法的にはBB09までならいけるような。

備考:バックアップ

初期状態でIS01 rooterを使ってroot奪取をして、端末エミュレーターからこいつらを入力。
$ su
# dd if=/dev/mtd/mtd0 of=/sdcard/is01rom/boot.img
# dd if=/dev/mtd/mtd2 of=/sdcard/is01rom/recovery.img
# dd if=/dev/mtd/mtd3 of=/sdcard/is01rom/splash.img
# dd if=/dev/mtd/mtd4 of=/sdcard/is01rom/ipl.img
これで/sdcard/is01romにboot・recovery・splash・iplがバックアップされました。

備考:バックアップの書き戻し

dountの端末エミュレーターから以下のように入力。
$ su
# flash_image ()_wr /sdcard/is01rom/().img
※括弧内はboot/recovery/splash/iplのうちのどれかを代入
※おそらく、swapは切っておいた方がよろしいかと。

dount側を書き換える

前に下準備。
http://www.megaupload.com/?d=QA6TOXY8
でファイルを落として、なかのimgファイルをubi.imgにリネーム(どうだったか忘れた)。直下にあるubi.imgを/sdcard直下において、dount起動。rootとってから、端末エミュレーターで以下を入力。
$ su
# flash_image boot_wr /sdcard/ubi.img
これで改変カーネル書き込み終わり。
dountの端末初期化はbootとrecoveryのバックアップを書き戻してから。そうでないと文鎮化します。
さぁ、続けて入力しますよ。
# dd if=/dev/zero of=/data/swapfile bs=1048576 count=128
これで/dataの直下にswapfileが作成(ちなみに128MB分)。
# mkswap /data/swapfile
# swapon /data/swapfile
はい、swaponできませんね(エラー文を吐くはず)。
これはもともとのカーネルの仕様でして、rebootをして、rootをとってから、swaponすれば動きます。

おまけ:Low memory killer

/sqlite_journals/is01root/autoexec.shに追記などを。
6MB, 8MB, 16MB, 60MB, 70MB, 80MB で設定した例で、起動時にrootをとります(なんで、不正なプログラム云々言われます)。

/sqlite_journals/is01root/_su 0 insmod /sqlite_journals/is01root/msm_nand_ex.ko
/sqlite_journals/is01root/_su 0 insmod /sqlite_journals/is01root/modules_enabler.ko
/sqlite_journals/is01root/_su 0 setprop rild.libpath `getprop rild.libpath2`
/sqlite_journals/is01root/su -c /sqlite_journals/is01root/boot.sh
echo "1536,2048,4096,15360,17920,20480" > /sys/module/lowmemorykiller/parameters/minfree

これに、GScript Liteを組み合わせ*1て、起動後2タッチでいろいろおいしくなります。

Froyoの構築

例によって以下のデータを調達して、/sdcardの直下においておきます。

  • CM6byDevRenax-06242011-IS01.7zの中の"system.tar"
  • CM6byDevRenax-06242011-IS01_patch2.7zの中の"cm4is01_boot.img"と"system_mod.sh"

そして続けてエミュレーターで入力。
# flash_image recovery_wr /sdcard/cm4is01_boot.img
# mkdir /data/cm4is01
# cd /data/cm4is01
# tar xvf /sdcard/system.tar
# sh /sdcard/system_mod.sh
# chmod 6755 /data/cm4is01/system/bin/fix_permissions_mod
# chmod 6755 /data/cm4is01/system/bin/fix_permissions
# ./system/bin/fix_permissions_mod
# mkdir data
# mkdir cache

Froyoの書き換え

Root Explorerから\data\cm4is01\system\build.propをOpen Text Editorで書き換え
media.stagefright.enable-player=true
media.stagefright.enable-meta=true
media.stagefright.enable-scan=true
media.stagefright.enable-http=true
の4行の先頭に「# 」を付ける。
# media.stagefright.enable-player=true
# media.stagefright.enable-meta=true
# media.stagefright.enable-scan=true
# media.stagefright.enable-http=true
そしてSave。
お好みでro.sf.lcd_density=xのxを180に変更。
そして
# reboot recovery

Froyo側のエミュレーターで入力

$ su
# fix_permissions

Froyo側の環境を整備

基本的には
http://d.hatena.ne.jp/is01next/20110716
などを参考。
日本語入力は↑のリンク先のとか、あるいはOpenPobox for IS01とか(扱いにくいけど)がいいかな。
フォントをdount側と統一したい人は、dount側の/system/etc/tmpの中身を.ttfにリネームして中身を確認しつつ、好きなフォントをDroidSansJapanese.ttfに再リネームして、Froyo側の/system/fontに転送してreboot_recoveryすれば大丈夫かと。


…はい、駆け足でしたね。
重要なのは、先にも書きましたけど、Hacked_Karnelに書き換えた後にdountの初期化はできないこと。
仮に初期化すると単なるモックアップになっちゃいます。
ですので、初期化の際はflash_imageで書き換えてrebootしてあげてから。

*1:swapon /data/swapfile でNeed suにチェックを入れてショートカットを作る。