Galaxy Sのroot化からプチフリ対策まで(内蔵NAND、マイクロSD利用)

投稿日時 8月 11th, 2010 by juggly 投稿カテゴリ » Galaxy S
キーワード:
コメントは受け付けていません。

Galaxy Sに関しては後発組な私ですが、Galaxy Sのroot化、プチフリ(lagfix)までの一連の手順をここに残しておこうと思います。

Galaxy Sのroot化

Galaxy Sのroot化にはいくつか方法、アプリ、ツールが存在するのですが、ここではGalaxy Sの内蔵メモリに「update.zip」を保存し、リカバリモードを使ってroot化するという手順を説明します。これはGalaxy Sの標準ファームウェアでもSamsung Firmwaresで公開されたファームウェア(JP3を除く)で動作するものです。Odin3は利用しません。

update.zip ダウンロード

1.ダウンロードしたZIPファイルをマイクロSD(/sdcard直下)に保存し、Galaxy Sの電源を切ります。

2.ボリュームアップとホームボタンを押しながら電源ボタンを押し、”Samsung Galaxy S”という文字が表示されたら電源ボタンを離します(ボリュームアップとホームボタンは押したまま)。するとリカバリモードが起動します。それか、PCとGalaxy Sを接続した状態でコマンドプロンプトを起動、「adb reboot recovery」を実行してもリカバリモードで起動します。

3.リカバリモードのメニューに、”apply: /sdcard/update.zip”という項目があるので、ボリュームダウンを一度押して移動し、ホームボタンを押して書き込みます。書込み後、Galaxy Sが自動的に再起動します。

4.起動後、Androidマーケットから「busybox」をインストールします。

プチフリ対策

以前も書きましたが、Galaxy Sには内蔵NAND(/dev/block/stl)とは別に内部SDメモリ(/dev/block/mmcblk0)が搭載されています。内部SDメモリは、大容量なのですが低速だと言われており、さらにその領域にアプリキャッシュを保存して動作するためアプリによっては動作が遅かったり、日本語入力中に3秒程度フリーズしたりする”プチフリ”、”ラグ”、”ストール”と言われる現象が発生します。初期のEeePCと似たような現象。

このプチフリ対策、今回は内蔵NANDにアプリキャッシュを移動させて運用する方法とClass6以降のマイクロSDに移動させて運用する方法の二通りを紹介したいと思います。どちらもメリット・デメリットありますが、比較的簡単に無理なく行えるということで良く利用されている手法です。他にもいろんな方法がXDAなどで議論されていますのでそのうちもっと簡単、確実、安全、高速なアプリの動作という方法が出てくると思います。

内蔵NANDを利用する方法(/dbdata)

本来、/data/dataに保存されているアプリのキャッシュを、高速な内蔵NAND(/dbdata)に移動させる方法です。高速なのですが/dbdata自体128MBでしかパーティションが切られていないのでアプリを入れすぎたり、大きなサイズのアプリを使ったりすると容量オーバーで使えなくなったりします。
1.Galaxy SとPCを接続し、adbコンソールに入ります。そして、次のコマンドを実行。

mv /data/data /data/data.bak
cp -rp /data/data /dbdata
ln -s /dbdata/data /data/data
reboot

マイクロSDを利用する方法(/disk)

こちらの方法は、内蔵NANDが低容量なのを解消するために考案された方法で、マイクロSDに二つのパーティションを作成し、第二パーティションをext3かext4でフォーマット、標準カーネルではそのファイルシステムはマウントできないので、Odin3で対応するカーネルに変更、その時、起動時に/diskに第二パーティションがマウントされるように起動スクリプトも一緒に変更されます。

マイクロSDのパーティション割り
問題なのはこのパーティション割りです。手元にLinux環境があればfdisk、mkfsでプチフリ対策用のマイクロSDを作成できるのですが・・・。HT-03Aをお持ちでしたら、HT-03A+CMリカバリで作成できます。私もその方法でプチフリ対策用のマイクロSDにしました。

今回利用したのは、Kingmax Class10 4GBのマイクロSDHCカードです。



1.このマイクロSDをHT-03Aに挿してリカバリモードで起動、そしてコンソールモードにしてadbコンソールからアクセスし、次のコマンドを実行

parted /dev/block/mmcblk0

2.おそらくFATでフォーマットされ、パーティションが一つ作成されていますので、printコマンドを打ってそのパーティション番号を確認し、パーティション番号を指定して「rm <パーティション番号>」でそれを削除します。

print
rm1

3.今回はプチフリ対策ように二つのパーティションを準備します。第一パーティションがをFAT32、第二パーティションをext3かext4にします。ext3よりもext4の方が高速ですので今回はext4にしました。そのコマンドを書きます。

mkpartfs primary fat32 0 3000
mkpartfs primary ext2 3000 4000
quit
upgrade_fs ←ext3ならここでストップ
tune2fs -O extents,uninit_bg,dir_index /dev/block/mmcblk0p2
e2fsck -fpDC0 /dev/block/mmcblk0p2
reboot

これで第一パーティションに3GB程度のFAT32領域(/sdcard/sdにマウントされ、普通の外部SDメモリとして利用できます)。

カーネルの入替え
ここでは、ext4に対応したカーネルを入替えます。入替はOdin3を使って行います。

ext4に対応したカーネルをダウンロードします。ダウンロード

ダウンロードしたカーネルのファイル名は「Kernel_GalaxyS_mimo_ext4_v4.tar」です。

1.Odin3を起動し、”PDA”に先ほどダウンロードしたカーネルを指定します。(PITファイルは不要)

2.Galaxy Sの電源を切り、バッテリー、マイクロSD,SIMカードを外し、バッテリーだけを戻す。そして、ボリュームダウン、ホームボタンを押しながら電源ボタンを押し、ダウンロードモードで起動させます。

3.Galaxy SとPCを接続し、Odin3の”Start”ボタンを押して書込み開始。書込み後、Galaxy Sが再起動します。起動したら端末の電源を切って先ほど作成したマイクロSDとSIMカードを戻して再度起動します。

起動後、PCと接続してadbコンソールでmountを実行すると、

/dev/block/mmcblk1p2 /disk ext4 rw,noatime,nodiratime,barrier=1,data=ordered 0 0

このような形で/diskのext4ファイルシステムがマウントされていることが確認できていると思います。

アプリキャッシュ(/data/data)の移動
先ほど内蔵NANDを利用した場合と同じ要領でアプリキャッシュを/diskに移動します。

mv /data/data /data/data.bak
cp -rp /data/data /disk
ln -s /disk/data /data/data
reboot

これで完了。利用するマイクロSDの品質やClassによってプチフリ具合が変わりますが、Class6以上のマイクロSD+ext4で構築すれば、プチフリ問題はほぼ解決すると思います。

かなり雑な説明で不備も多いかと思いますが、詳しくは各項目に張ったリンクなどを参照の上操作するようにしてください。

関連する記事一覧

1週間の人気記事ベスト5

    None Found