VOL DOWN+HOME+POWERを同時に押し続ける。
ずーと押していると,三角の中に工事しているdoroid君が表示されて,「Downloading...」と表示が出てDownload Modeに入れる。
POWERボタンを押し続けると(8s以上),Download Modeから抜けてリブートする。
新しいROMやカスタムROMなんかをインストールするときに使われる。OdinでFlash ROMを書き換える場合も,このモードを使用する。
VOL UP+HOME+POWERを同時に押し続ける。
しばらく押していると画面が消えてロゴが出るんで,POWERを離すと,Recovery Modeに入れる。Recovery Modeから抜けるには,メニューから「reboot system now」を選択する。
Recovery Mode中では,VOL UP・DOWNで選択,HOMEで決定。
adbからだと,
adb reboot recovery
SC-02Bのterminalからだと,
reboot recovery
でも,Recoveryモードに入れる。
標準Recoveryの機能としては,
Flash ROMのバックアップは出来ないんで,カスタムRecoveryであるClockwork recoveryに変更した方が便利になる。
パーティション | サイズ | 説明 |
bml1 | 256KB | プライマリ・ブート・ローダー (boot.bin) |
bml2 | 256KB | PITファイル(最初の512byteを使用)ROMのパーテション情報 |
bml3 | 6400KB | /efs /dev/block/stl3(efs.rfs) IMEIとかの情報 |
bml4 | 1280KB | セカンダリ・ブート・ローダー linuxカーネルのロード等(Sbl.bin) |
bml5 | 1280KB | セカンダリ・ブート・ローダー(リカバリ,その他) |
bml6 | 1280KB | スプラッシュ画像なんかが入っている /mnt/.lfs /dev/block/stl6(param.lfs) |
bml7 | 7680KB | Linuxカーネル(zImage=kernel+initramfs) |
bml8 | 7680KB | ? |
bml9 | 293376KB | /system /dev/block/stl9(factoryfs.rfs) システム |
bml10 | 137216KB | /dbdata /dev/block/stl10(dbdata.rfs) パーソナルデータ |
bml11 | 35840KB | /cache /dev/block/stl11(cache.rfs)アプリ・キャシュ |
bml12 | 16384KB | (modem.bin) 電話用CPUファームウェア |
SC-02B(Galaxy S)では,cacheパーテーションなんかに内蔵Strage(NAND Memory)を使っているんだけど,ファイルシステムとしてはSamsung独自のRFSっていうのを使っているようだ。FATの拡張のようだが,どうもパフォーマンスが良くないのか,たまに端末の反応がなくなることがある。EXT4に変更すると,パフォーマンスが上がるみたいだ。
adbからかSC-02Bのterminal等を使って,以下のコマンドでバックアップする
# cd /sdcard/flashbackup # dd if=/dev/block/bml1 of=boot.bin # dd if=/dev/block/bml2 of=sc02bomkf2.pit # dd if=/dev/block/bml4 of=sbl.bin # dd if=/dev/block/bml5 of=recovery # dd if=/dev/block/stl6 of=param.lfs # dd if=/dev/block/bml7 of=zImage # dd if=/dev/block/stl9 of=factoryfs.rfs # dd if=/dev/block/stl10 of=dbdata.rfs # dd if=/dev/block/stl11 of=cache.rfs # dd if=/dev/block/bml12 of=modem.bin
PCにコピーする
> adb pull /sdcard/flashbackup/ .
バックアップしたファイルを使って,odin3で書き換えができるようにファイルを作成しておく。
> tar --format=ustar -cf SC02BOMKF2.tar zImage param.lfs dbdata.rfs factoryfs.rfs cache.rfs > md5sum -t SC02BOMKF2.tar >> SC02BOMKF2.tar > mv SC02BOMKF2.tar SC02BOMKF2.tar.md5 > > tar --format=ustar -cf MODEM_SC02BOMKF2.tar modem.bin > md5sum -t MODEM_SC02BOMKF2.tar >> MODEM_SC02BOMKF2.tar > mv MODEM_SC02BOMKF2.tar MODEM_SC02BOMKF2.tar.md5
SC-02Bには,512MBのNAND(OneNAND)Flash Memoryと16GBのeMMC*1が搭載されている。
各ROMのパーテーション情報。
512MB ROM | ||
300MB | /system | rfs |
100MB | /dbdata | rfs |
30MB | /cache | rfs |
16GB eMMC ROM | ||
1.8GB | /data | rfs |
14GB | /sdcard | fat32 |
# cd /sdcard # tar cfz /sdcard/external_sd/internal_sd.tar.gz ./ --exclude "external_sd"
# tar cvfz /sdcard/external_sd/data.tar.gz /data
なにげにfdiskをしてみたら,内蔵MMCのパーテーションが
/dev/block/mmcblk0p1 5 1672704 13381600 83 Linux Partition 1 does not end on cylinder boundary /dev/block/mmcblk0p2 1672705 1918464 1966080 83 Linux Partition 2 does not end on cylinder boundary /dev/block/mmcblk0p3 1918465 1944064 204800 83 Linux Partition 3 does not end on cylinder boundary
Partition 1 does not end on cylinder boundaryっていう警告を出している。たぶん動作に問題はないと思うが,多少パフォーマンスが落ちるのかも。なんとなく気持ちが悪いんで修正してみた。
adb shellして,fdiskを使って以下のようにパーテーションを再設定する。
# fdisk /dev/block/mmcblk0
以下のようになるように,全部のパーテションを削除し,全く同じStartとEndにして再度書きこむ。
Device Boot Start End Blocks Id System /dev/block/mmcblk0p1 5 1672704 13381600 83 Linux /dev/block/mmcblk0p2 1672705 1918464 1966080 83 Linux /dev/block/mmcblk0p3 1918465 1944064 204800 83 Linux
全く同じ位置・サイズにすると中のデータは破壊されないようだ。
新しくコメントをつける