IS01で快適dountでramzswap×Froyo

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

全体的な下準備

http://mobilehackerz.jp/contents/Software/Android/IS01root
↑からIS01 rooterをとってきてインストール。
Terminal Emulatorをマーケットからとってきてインストール。
あとはRoot Explorerがあればいいかな、くらい。

備考:バックアップ

dountの端末エミュレーターからこいつらを入力。
$ 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のうちのどれかを代入

dount側を書き換える

前に下準備。
http://weboo-returns.com/download/android/ubi-compcache-0.2.img
上からファイルを落として、落としたubi-compcache-0.2.imgをubi.imgにリネーム*1、それを/sdcard直下において、dountを起動。rootをとってから、端末エミュレーターで以下を入力。
$ su
# flash_image boot_wr /sdcard/ubi.img
これで改変カーネル書き込み終わり。
dountの端末初期化はrecoveryとbootのバックアップを書き戻してから。そうでないと文鎮化する可能性大。
続けて、適当に/system/build.propに追記((表示は128MBの場合。1024*必要なMB数の数値を=以下に入力してください))。

ro.compcache.size=131072

そして、/sqlite_journals/is01root/autoexec.shに追記を。
右から順に、6MB, 8MB, 16MB, 60MB, 70MB, 80MBで設定した例で、起動時にrootをとりますので、不正なプログラム云々言われます*2

/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

変更後、rebootをかける。
これで、起動後すぐに出るエラー表示だけを消せばしっかりとramzswapが効いているはずです。
これで1クリックでramzswapとはいえ、しっかりswapを効かせて使えるようになりました。
では次の作業に。

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すれば大丈夫かと。


…はい、駆け足でしたね。
重要なのは、先にも書きましたけど、Compcache有効化Karnelに書き換えた後にdountの初期化はできないこと。
仮に初期化すると単なるモックアップになってしまう恐れがあります。
ですので、初期化の際は上にあるように、flash_imageで書き換えてrebootしてあげてから。
…たぶんおいしく初期化できます(断言しない)。

*1:あたしの環境下ではubi.imgが存在するので、ubic.imgでおきました

*2:具体的には、4段目の記述が起動時root所得のスプリクトです。うっとうしいと思う方は4行目先頭に# を入れておけば大丈夫かと