Sunday, November 22, 2015

ext4 format system backup from command

Android ဖုန္းေတြမွာ system partition ကို yaffs ext2 ext4 UBIFS
ဆိုပီး format ၄ မ်ိဳးေလာက္ ရွိပါတယ္
yaffs ကိုေတာ႔ ဖုန္းေတာ္ေတာ္ နိမ္႔နိမ္႔ေတြမွာ သံုးပါတယ္
သူ႔ထက္ နည္းနည္းပိုျမင္႔တာ ext2 ပါ sony အနိမ္႔ဖုန္းေတြမွာ သံုးပါတယ္
ခု ေခတ္ အစားဆံုးကေတာ႔ ext4 format ေတြပါ
ဖုန္းအျမင္႔ အားလံုးနီးပါးကို ext4 format နဲ႔ ဖြဲႊစည္းထားပါတယ္
UBIFS ကေတာ႔ ေမာ္ဒယ္ျမင္႔ အရည္အေသြးနိမ္႔ ဖုန္းေတြမွာ သံုးပါတယ္
ဥပမာၾကည္႔ခ်င္ရင္ Y325-T00 မွာ ပါမယ္ ထင္ပါတယ္
က်ေနာ္တို႔ ext4 format နဲ႔ တည္ေဆာက္တဲ႔ ဖုန္းေတြကို system backup ယူၾကရေအာင္
ဖုန္း က root လုပ္ထားရပါမယ္
ext4 format နဲ႔႕ တည္ေဆာက္ထားတာ ျဖစ္ရပါမယ္
Command prompt ကေန ေအာက္ပါ command ေတြ ရိုက္ထည္႔လိုက္ပါ
adb shell
su
make_ext4fs
ေအာက္က အတိုင္း system က reply ျပန္ရင္ ရပါပီ
Expected filename after options
make_ext4fs [ -l <len> ] [ -j <journal size> ] [ -b <block_size> ]
[ -g <blocks per group> ] [ -i <inodes> ] [ -I <inode size> ]
[ -L <label> ] [ -f ] [ -a <android mountpoint> ]
[ -S file_contexts ]
[ -z | -s ] [ -t ] [ -w ] [ -c ] [ -J ]
<filename> [<directory>]
ဒါဆိုရင္ /system/bin ေအာက္မွာ make_ext4fs binary ရွိေနပီေပါ႔ဗ်ာ
ေနာက္တစ္ဆင္႕ က်ေနာ္တို႔ system partition ကို စစ္ေဆးပါမယ္
root@android:/ # df
df ဆိုတဲ႕ command ရိုက္ပါမယ္ disk free space ကို စစ္ေဆးတာပါ
Filesystem Size Used Free Blksize
/dev 234M 56K 234M 4096
/mnt/secure 234M 0K 234M 4096
/mnt/asec 234M 0K 234M 4096
/mnt/obb 234M 0K 234M 4096
/system 639M 584M 55M 4096
/data 1G 156M 1G 4096
/cache 369M 6M 362M 4096
/protect_f 8M 4M 4M 4096
/protect_s 8M 4M 4M 4096
/mnt/cd-rom 8M 8M 0K 2048
/storage/sdcard0 1G 11M 1G 16384
/mnt/secure/asec 1G 11M 1G 16384
System ရဲ႕ size က 639M ရွိပါတယ္
[ -l <len> ] ဆိုတဲ႔ေနရာအတြက္ က်ေနာ္တို႔တြက္ခ်က္လို႕ရတာက 639M ပါ
[ -b <block_size> ] အတြက္ system ရဲ႕ Block_Size ကေတာ႔ 4096 ပါ
[ -a <android mountpoint> ] အတြက္ က်ေနာ္တို႔ယူမယ္႔ mount point က system ျဖစ္ပါတယ္
က်ေနာ္တို႔ သံုးမယ္႔ command က
make_ext4fs [ -l <len> ] [ -b <block_size> ] [ -a <android mountpoint> ] <filename> [<directory>]
က်ေနာ္တို႔ လိုအပ္တဲ႔ေနရာေတြ အစားထိုးပါမယ္
ေအာက္ပါအတိုင္း ရလာပါမယ္
=======================
make_ext4fs –l 639M -b 4096 -a system /data/local/tmp/system.img /system
==================
အေပၚက command ကို ကူးခ်ပီး Enter ေခါက္ေပးလိုက္ပါ
==============
Creating filesystem with parameters:
Size: 670040064
Block size: 4096
Blocks per group: 32768
Inodes per group: 8192
Inode size: 256
Journal blocks: 2556
Label:
Blocks: 163584
Block groups: 5
Reserved block group size: 39
Created filesystem with 1788/40960 inodes and 151826/163584 blocks
================
ပီးသြားပီ ဆိုရင္ /data/local/tmp ေအာက္မွာ system.img နာမည္နဲ႕ သိမ္းပီးသား ျဖစ္ေနပါလိ္မ္႔မယ္
ဒီေနရာမွာ တစ္ခုေျပာစရာရွိတာက df ကို ရိုက္ၾကည္႔လိုက္လို႔ /system က /data ထက္ ပိုႀကီးေနရင္ /data ေအာက္မွာ သိမ္းလို႕ မရပါဘူး အဲ႕လိုဆိုရင္ေတာ႔ က်ေနာ္တို႔ backup Location ကို
/sdcard/system.img လို႔ေျပာင္းလဲ သတ္မွတ္ေပးဖို႕လိုပါမယ္
ခု က်ေနာ္တို႔ /data/local/tmp/system.img ကို permission ခ်ိန္းပါမယ္ ဒါမွ PCကေန ဆြဲထုတ္ရင္ permission error မတက္မွာပါ
chmod 444 /data/local/tmp/system.img
လို႕ေရးပီး Enter ေခါက္ေပးပါ ပီးရင္
exit
exit
ခုဆိုရင္ PC ေပၚ ျပန္ေရာက္ပါပီ PC ကေန system.img ကို ျပန္ ဆြဲထုတ္ပါမယ္
adb pull /data/local/tmp/system.img
အေပၚက command ရိုက္ပီး ခဏေစာင္႔ေပးပါ system.img ထြက္လာပါလိမ္႔မယ္
ဒါဟာ dd command သံုးပီး Block ကို dump လုပ္တာ မဟုတ္ပါဘူး
မူရင္းပါတဲ႔ make_ext4fs ကို သံုးပီး system backup ယူတာ ျဖစ္ပါတယ္

No comments:

Post a Comment