is01でcompcacheを有効にしてメモリ不足を解消する方法
2chのis01root板でcompcacheを有効にするカーネルが話題になっているのに我慢できず、ついに一線を越えてしまった。
以下、一連の手順についての備忘メモ。ベースバンドバージョンは01.00.09。PCに繋ぐことなく、is01だけでできてしまう。偉大なる先人の方々に感謝。
1. root奪取アプリを入れる
IS01 rooter
http://blog.mobilehackerz.jp/2010/11/au-is01root010009-is01.html
Superuser
http://jp.androlib.com/android.application.com-noshufou-android-su-jAiEn.aspx
2.modules_enablerを入れる
えぬえす工房 » IS01関連の自作ファイルのまとめ
http://blog.ns-koubou.com/archives/19
ダウンロードした modules_enabler を /sqlite_journals/is01root/ に移動させ、/sqlite_journals/is01root/autoexec.sh を以下のように記述してis01を再起動。
#!/system/bin/sh /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`
【参考】recovery領域のバックアップ (2011/3/9追記)
端末エミュレータで su でroot権限をとった後に以下のコマンドを入力。sdカードにrecovery(mtd2.bin)がバックアップされる。
dd if=/dev/mtd/mtd2 of=/sdcard/mtd2.bin
3.compcacheを有効にするカーネル(ubi-compcache-0.2.img)を入れる
IS01 で compcache (ramzswap) を有効にする(2) | Weboo! Returns.
http://yamashita.dyndns.org/blog/is01-compcache-ramzswap-2/
ダウンロードした ubi-compcache-0.2.img を /sdcard/ に置き、端末エミュレータで su でroot権限をとった後に以下のコマンドを入力。
flash_image recovery_wr /sdcard/ubi-compcache-0.2.img
これでrecovery領域に ubi-compcache-0.2.img が書き込まれた。事前にrecovery領域のバックアップを取っていた方がいいのだが、思いっきり忘れていた(大汗)。まあ、boot領域に書き込んだ訳でもないからいいやと思うことにする。
4.compcacheを有効にする
端末エミュレータで su でrootを取って、以下のコマンドを入力。GScript Lite に保存しておくのが楽だし、間違いがないし、お勧め。
reboot recovery
なお、普通に電源を入れ直したり再起動したりする場合は、標準のカーネルが立ち上がるので安心。改変カーネルでis01を起動している時に、systemを変にいじったり、オールリセットとかしたりしなければ、文鎮化する可能性は低いと思われる。
compcacheが有効かどうかは、端末エミュレータで free と打ち込めば分かります。 swap の数値が0でなければ成功。
compcacheの調整をするには、/system/build.prop の適当な場所に以下のように記述。(私は64MBに設定してる)
ro.compcache.size=65536
5.Low memory killer の値の変更
カーネルを入れ替えたのだから、再起動時に自動的に Low memory killer の値も変更する。root権限が必要なので、/sqlite_journals/is01root/boot.sh も自動実行させる。
/sqlite_journals/is01root/autoexec.sh にを以下のように記述する。Low memory killer を、6MB, 8MB, 16MB, 60MB, 70MB, 80MB で設定した例。
#!/system/bin/sh /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
6.作業するにあたっての便利アプリ等
- Ghost Commander (ファイル操作アプリ。root拡張。定番)
- sheditor (エディタ。is01向けなのでとても使いやすい)
- GScript Lite (コマンド保存実行アプリ。root拡張。ファイルはsdカードにも保存可能)
- 端末エミュレータ (コマンド実行アプリ。root拡張。定番)
Ghost Commander と sheditor と GScript Lite 、そして標準ブラウザがあれば、一連の作業は可能。(GScript Lite は、端末エミュレータの代わりになる)
なお、一連の作業を行う前に、下記サイトを熟読した。
IS01 root化と諸々の作業メモ - コムギドットネット
http://komugi.net/archives/2010/12/06205920.php
7.compcacheの効果
compcacheを有効化した最大の理由はPDFビューワ。
Jコミの漫画を読むためのPDFビューワを探しているのだが、なかなかいいアプリがない。Documents To Go を我慢して使っていたのだが、解像度の悪さに嫌気がさし、VuDroid というアプリを入れてみたところ、操作性も解像度も良かったので乗り換えることに。ただし、すぐに落ちてしまうので、これはこれでストレスが溜まる。(落ちても自動的にしおりが入るのが救い)
VuDroid
http://code.google.com/p/vudroid/
やはりis01の搭載メモリで高解像度の大容量PDFを楽しむのは難しいのか。そんなとき、評判のいいcompcacheを有効にするカーネルの存在を知った。
メモリ対策として従来までの、
- ワンセグやケータイアップデートなど不用なプリインストールアプリやサービスをリネームして起動させない
- Low memory killer を、6MB, 8MB, 16MB, 60MB, 70MB, 80MB に設定
に加えて、
- compcacheを64MBに設定
したことで、VuDroid でJコミの漫画をPDFで快適に見れるようになった(でも、やっぱり落ちることはあるけど)。
Low memory killer と compcacheの最適な設定値を探さねば。