CyanogenMod for IS01

あちこちの情報を真似して、参考にしてCyanogenMod for IS01の環境整備に取り組んでいます。

まずホームアプリ。1.6の頃は右メニューを表示しないホームアプリは標準ホームかADW for IS01しかなく、事実上ADW.Launcher一択でしたが、CM4IS01なら色々試せます。

is01next@blogさんお勧めのZeam Launcherや、こちらも評価の高いLauncher Proを試してみましたが、結局CM4IS01標準のADW.Launcherに戻しました。

これはパフォーマンスの問題ではなく操作性の問題です。ドロワーを開いたとき、ADW.Launcher以外のアプリはトラックボールでアイコンが選択できないのです。一回タッチしてやればトラックボールも利くようになります。これは私の環境では、1.6上のADW for IS01でも同じような状況でしたが、CM4IS01のADW.Launcherだけはドロワーを開いたときに最初からトラックボールでアイコンが選択できます。私はなるべく画面にタッチせずに操作したいのでADW.Launcherを選びました。軽さやメモリ使用量を重視されるならZeam Launcherが現時点ではベストな選択ではないでしょうか。

あと、Ks Launcher for 2.2も試したかったのですが、検索してもマーケットに現れませんでした。Sleipnir Mobile for Androidも出てこないんですが、皆さんもCM4IS01も同じですか?

壁紙はTK-Hatenaさんで紹介されていたものを加工して使っています。下段の金網の部分にショートカットを並べられるようにトリミングしました。壁紙の設定には「自動壁紙せっちゃん」を使っています。

続いて、2chのスレで話題の動作が俊敏になるスクリプトの導入。で、一応内容を検討してみました。この辺はLinuxに関する知識とかゼロな人なので、話半分に聞いてください。というか、間違ってたらこっそり教えてください。スクリプトを/system/etc/init.d/に置いた場合の動作を想定しています。上から順番に行きます。

・LowMemoryKillerの設定

[php]
echo “2560,4096,6144,12288,14336,18432” > /sys/module/lowmemorykiller/parameters/minfree
[/php]

メモリーが不足した時に,不要なプロセスを自動的に停止するしきい値を設定します。内容的には AutoKiller Memory Optimizerと同じことをやっています。設定値は(48,56,72)で、AutoKiller Memory Optimizerのプリセットの Optimum(40,50,60) と Strict(60,70,80)の中間くらいです。ハッキリ言ってどの値が適正値なのかよく判ってないですし(汗)搭載メモリ量の関係で機種によっても変わってくるんでしょうけど標準だと(20,22,24)なので、それよりは良いかと。ちなみに、AutoKiller Memory Optimizerを併用していて「Apply settings on boot」にチェックが入ってるとAutoKiller Memory Optimizerの設定で上書きされます。

・Swappinessの設定

[php]
echo “50” > /proc/sys/vm/swappiness
[/php]

スワップの頻度を設定します。既定値は60で、このスクリプトでは50に設定しようとしていますが、CyanogenMod設定でCompcacheを有効にすると30に設定されるので、そちらが優先されます。個人的には50は多いような気がするので、Compcacheを有効にしてる場合は気にしなくて良いかも。

・VFS キャッシュの設定

[php]
echo “10” > /proc/sys/vm/vfs_cache_pressure
[/php]

VFS キャッシュの埋め立て比率を設定します。さぁ、この辺から怪しくなりますよ(汗)。既定値は100で、このスクリプトでは10に設定しようとします。あまり使わないように、ということなんでしょうね。適正値は不明(爆)。

・ライトバック間隔(単位10m/s)の設定

[php]
echo “500” > /proc/sys/vm/dirty_expire_centisecs
[/php]

キャッシュ上に存在しているページの存在時間がこの値を超えた場合にライトバックされます。既定値は3000で、このスクリプトでは500に設定しようとします。これがちょっと不思議で、OS1.6のIS01では既定値通りの3000なのですが、CyanogenMod for IS01では200に設定されています。CM4IS01は既に何らかのチューニングがされているのかもしれません。適正値はやっぱり不明(爆)。

・pdflushデーモン起動間隔(単位10m/s)の設定

[php]
echo “1000” > /proc/sys/vm/dirty_writeback_centisecs
[/php]

pdflushの起動間隔を指定します。既定値は500で、このスクリプトでは1000に設定しようとします。間隔を長くしたいのですね。適正値はやっ(略)。

・フォアグラウンドでライトバック処理を開始するしきい値の設定

[php]
echo “90” > /proc/sys/vm/dirty_ratio
[/php]

キャッシュ上でまだディスクに書き込まれていないページの割合がこの値を超えた場合にpdfluashによるライトバックが優先度の高いフォアグラウンドプロセスで行われます。Linuxの既定値は40で、このスクリプトでは90に設定しようとします。Linuxの既定値は40ですが、IS01の既定値は10なので、やっぱり何かしらのチューニングが入ってるかもしれません。90%ということはほぼ実行されないということですよね。フォアグラウンドでの処理を行わないようにするのが、実はこのスクリプトの最大の特徴なのかもしれません。

・バックグラウンドでライトバック処理を開始するしきい値の設定

[php]
echo “5” > /proc/sys/vm/dirty_background_ratio
[/php]

動きは上記と同じで、こちらはライトバックが優先度の低いバックグラウンドで行われます。Linuxの既定値は10で、このスクリプトでは5に設定しようとします。Linuxの既定値は10ですが、IS01の既定値は5なので、やっぱり何かしらのチューニングが入ってるかもしれません。この値を下げているのはバックグラウンドでのライトバックを頻繁に行わせようとしているんでしょうね。dirty_background_ratioの値はdirty_ratioの半分くらいが目安だそうなので、5:90というのはかなり極端なように見えます。やっぱりここがこのスクリプトの肝なのかも。

ここまで見て感じたのは、このS97ramscriptを導入して効果を体感された方はAutoKiller Memory Optimizerを未導入だった方が多いんじゃないかな、ということです。LowMemoryKillerの設定値以外はCyanogenMod for IS01でも大分変わってるようなので、AutoKiller Memory Optimizer導入済みの方にはそれほど劇的な効果は無いような気もします。

で、私の出した結論としては「よく判らないので、とりあえずそのまま使おう」でした(汗)。

dirty_background_ratioとdirty_ratioのアンバランスさは気になりますが、作成された方もそれなりに考えて作られたのでしょうから信じて使ってみます。

LowMemoryKillerの値の見直し、Swappinessの削除、空きメモリの下限値の引き上げ、そしてadb有効化を追加した、masatsu版のS97ramscriptはこんな感じになりました。

[php]
#!/system/bin/sh

echo 1 > /sys/devices/platform/msm_hsusb_periphera/qxdm_enable

if [ -e /sys/module/lowmemorykiller/parameters/minfree ]; then
echo “2048,4096,6144,14336,18432,22528” > /sys/module/lowmemorykiller/parameters/minfree
fi

if [ -e /proc/sys/vm/vfs_cache_pressure ]; then
echo “10” > /proc/sys/vm/vfs_cache_pressure
fi

if [ -e /proc/sys/vm/dirty_expire_centisecs ]; then
echo “500” > /proc/sys/vm/dirty_expire_centisecs
fi

if [ -e /proc/sys/vm/dirty_writeback_centisecs ]; then
echo “1000” > /proc/sys/vm/dirty_writeback_centisecs
fi

if [ -e /proc/sys/vm/dirty_ratio ]; then
echo “90” > /proc/sys/vm/dirty_ratio
fi

if [ -e /proc/sys/vm/dirty_background_ratio ]; then
echo “5” > /proc/sys/vm/dirty_background_ratio
fi

if [ -e /proc/sys/vm/min_free_kbytes ]; then
echo “20480” > /proc/sys/vm/min_free_kbytes
fi
[/php]

しばらくこれで様子を見ます。どこか致命的に変なところがあったら指摘していただけると嬉しいです。

6 thoughts on “CM4IS01の環境整備”

  1. こんにちは。いつも見させてもらっています。
    壁紙とてもかっこいいですね。
    編集後の壁紙をいただけないでしょうか?自分で編集しても、なかなか画像の通りの位置にならないので。
    後、解像度も教えてほしいです。よろしくお願いします。

  2. コメントありがとうございます。

    位置合わせは私も苦労しました。ドット単位で何回も何回もやり直しましたw
    解像度は960×480です。本文中にもありますが、設定には自動壁紙せっちゃんを使っています。

    壁紙はこちらにアップしましたので、よろしければダウンロードして下さい。

    パスワードは CM4IS01 です。

  3. ありがとうございます。
    せっちゃんで設定してみたのですが、なぜか画像の上中心部分だけ拡大されて設定されて、うまくできないです。
    CM4IS01では壁紙の設定はできないんでしょうか?

  4. CyanogenModで壁紙を設定しようとすると、コメントにあります通り、上半分だけが拡大されてしまうので、私はせっちゃんを使いました。

    せっちゃんを使っていても、再起動直後とか、一瞬拡大されることがありますが、しばらくすると適正に表示されます。

    アストロなどのファイラーで壁紙にしたい画像を送信(アプリによっては共有)して対象にせっちゃんを選ぶと綺麗に合わせてくれるはずです。

    他のアプリで設定しているとダメな場合もあるようなので、他のアプリの設定も見直してみてはいかがでしょうか?

  5. お書きの情報、大変参考になりました。ありがとうございます。
    Ks Launcher for 2.2ですが、私もマーケット検索しても現れませんでした。
    解決済みかもしれませんが、ググったところ、build.prop を編集して fingerprint を偽装するとよいことがわかりました。
    DevRenaxさんがTodoの最後にお書き(http://sites.google.com/site/cm4is01wiki/todo)の、
    「Market公開Appのすべての種類に対応するには
    ro.build.fingerprint=google/passion/passion/mahimahi:2.2.1/FRG83/60505:user/release-keys
    などのようにGoogleのホワイトリストに登録された物をbuild.propに記述すると良い」
    を実行したところ、私のIS01では、マーケットに現れるようになりましたよ。
    ご参考まで。

  6. コメントありがとうございました。

    アドバイスに従って、build.propを編集したところ、無事ダウンロードできるようになりました。

    Sleipnirもダウンロードできましたので色々試してみたいと思います。

    ありがとうございました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください