2010年7月22日木曜日

「SD-EXT復活の日」・・・だからナニ?

ひさしぶりの更新になってしまいました。
Froyo界にも色々と動きがあった様ですが、指をくわえて傍観してました。
SPFも3.0.3がでてますね。
その他にもいくつか新ROMが出たようですが、なかなか時間が取れずにいました。
そんな中でもひとつだけ、試したことがあるので書いておきます。

“sd-extパーティションをつかえるようにする”

Froyoになってから、忽然とその消息をけしてしまった“sd-ext”ですが、一体どこへ行ってしまったのか?
どうしたら、再び私たちの前にその姿を現してくれるのだろうか?
元気でやっているだろうか? 風引いてないだろうか?
あれからずっと、様々な思いが私の胸中を渦巻いていました。
また、戻ってきてくれたらuserinit.shが簡単に使えるようになるのではあるまいか?
そんな思惑もあり、sd-ext有効化の道を模索してました。

SPFのフォーラムのトップにありました。
Apps2sd sur Ext (現在はSPFの作者がフランス語で書いたページにリンク)

一応このページにあるようにすると、なんだか良く解らんうちにsd-extがファイラーから可視化され、使えるようになっていました。
ついでにダルビックキャッシュとかもextの方にチャッカリ移動してたりして。
作業の最後の方で、アプリをsd-extの方へ移動するかどうかも一つひとつ聞いてきて「ウゼェ」と思いました。
そして、頼んでもいやしないのに、コッソリと「SWAP有効」になってるではないか!?
なんだコレ!? と。
よく解りません。

そして、最大の魂胆であったuserinit.shはというと、使えます。
・・・が、イマイチ使い物にならない。orz


しかも、sd-ext本来の目的“Apps2sd”は本体メモリーに十分過ぎるほどの容量があり、わざわざSDカードにアプリを入れる意味がありません。
それに、SDカードは本体メモリーよりも遅いのでアプリの読み込み時の遅延に繋がる恐れもあったりします。

まぁ、やった意味なーいじゃん! と。(取り敢えずSwap有効になったので良しとする)


そもそも、userinit.shというものは/system/etc/init.d/20userinit で定義されて、「sd-extにuserinit.shがあれば読んできて実行しろ!」と。
つまり、userinit.shに書いてあるスクリプトの一行づつをターミナルで実行したのと同じことになる訳です。
20userinit自体も結局はスクリプトで、書いてある一行一行が実行されsd-extを見に行ってます。
実は、init.dフォルダ全体がそういったスクリプトファイルばかりで、端末の起動時にスクリプトファイル名の頭についた数字の小さい順に実行していきます。
Apps2sd sur Extに書いてあるパッチを適用すると、20userinitのあとに99completeというファイルが出来ています。
こいつはそんなに悪いヤツではなさそうです。
しかし、SPF3.0.2に21compcacheというファイルが最初から含まれています。
どうやらこいつらが20userinitより後に実行されるせいでuserinit.shでの実行内容を上書きしてしまい、コンプキャッシュを上手くコントロール出来ないようです。

実際にuserinit.shでコンプキャッシュ32MBを有効にしようとすると、81MBのコンプキャッシュができています。(勿論、何もしないとデフォでSwap有効の為“free”でみると合計の容量になってます)
それは、21compcacheで何を血迷ったか81MBのコンプキャッシュを作るようにスクリプトが書かれているからです。
コンプキャッシュ81MBで使ってみましたが、あまりの実行領域の少なさに、折角のFroyoもだいなしです。
そんな訳で、実用するにはそこら辺のスクリプトファイルの書き換えをするか、ファイルの実行順序を変えてやるかしてやらなければなりません。
しかし、そんなことするならuserinit.shなんてまどろっこしいことするまでもなく、init.dに直接スクリプト書けばい~んでね?

0 件のコメント:

コメントを投稿