Saturday, November 21, 2015

Android Phoneတစ္လံုးကို read/write ရေအာင္ mount ျပဳလုပ္ျခင္း

က်ေနာ္တို႔ Android phone ေတြကို root ျပဳလုပ္တယ္ဆိုတာ
က်ေနာ္တို႕လိုခ်င္တဲ႔ အပိုင္းကို read/write လုပ္လို႕ ရခ်င္လို႔ ျဖစ္ပါတယ္ ။ Superuser လိုခ်င္လို႔ su binary ထည္႔ခ်င္လို႔ဆိုတာေတြထက္ ပိုပီးေလးနက္ပါတယ္။
ဆိုလိုတာက root ျပဳလုပ္ျပီးSuperuser access ရေနတာေတာင္ partitions ေတြကို read/write permission မရေသးဘူးဆိုရင္ က်ေနာ္တို႔ root ျပဳလုပ္ရတဲ႕ အက်ိဳးကိုမခံစားရေသးပါဘူး။
အရင္ဆံုးဖုန္းထဲမွာ rootexplorer.apk သြင္းပီးေလ.လာၾကည္႔ၾကရေအာင္ လိုအပ္သူမ်ားေအာက္မွာေဒါင္းပါ
RootExplorer APK Download
ဖုန္းထဲမွာသြင္းပီးပီဆိုရင္ RE apk ထဲ၀င္လိုက္ပါ။ ေအာက္ပါအတိုင္းေတြ႕ရပါလိမ္႔မယ္။

အေပၚနားေလးမွာ Mounted as r/o ဆိုတဲ႔ စားသားေလးကို ေတြ႕ရပါလိမ္႔မယ္။ ဆိုလိုတာက read only system နဲ႔ mounted ျဖစ္ေနတယ္လို႔ ေျပာတာပါ။ ဒီအေျခအေနမွာ က်ေနာ္တို႔ Android OS တစ္ခုလံုးကို ဘာမွ ထိ လို႔ မရပါဘူး။ ေဘးမွာပါတဲ႔ Mount R/W ဆိုတဲ႔ဟာေလး ႏိွပ္ေပးလိုက္ပါ။ တကယ္လို႔ rooted device ဆိုရင္ Superuser တက္လာပီး root access ေတာင္းပါလိမ္႔မယ္။ ႏွိပ္လဲဘာမွ မေတာင္းဘူးဆုိရင္ ဖုန္းကို အရင္ Root လုပ္ေပးဖို႕လုိပါလိမ့္မယ္။
Root Access ေပးလိုက္တာနဲ႔ Mounted r/w ဆိုပီး ျဖစ္သြားပါလိမ္႔မယ္။ ဒါဆိုရင္ က်ေနာ္တို႔က root Directtory ကို rw ရေအာင္ mount လုပ္လိုက္ႏိုင္ပီ ျဖစ္ပါတယ။

အိုေက ေနာက္တစ္ဆင္႔ ….
က်ေနာ္တို. System ဖိုဒါထဲ ၀င္လိုက္ပါ Mounted ကို rw ျဖစ္ေအာင္ ထပ္ေျပာင္းပါ။ ရရင္ က်ေနာ္တို႔ system partition ကို ကလိလို႔ ရပါျပီ။
ဒါဟာ သာမန္ဖုန္းေတြ အေနနဲ႔ ေျပာျပတာပါ။

ခု က်ေနာ္ေျပာခ်င္တဲ႔ အပိုင္း လာပါေတာ႔မယ္။
ဖုန္းထုတ္လုပ္သူေတြဟာ google က ေပးတဲ႔ Security အျပင္ သူတို႔ ကိုယ္ပိုင္ Security ေတြနဲ႔ပါ သူတို႔ဖုန္းေတြကို ကာကြယ္ထားတတ္ပါတယ္
Samsung SE Linux enforcing
Huawei set_immutable
Sony ric kernel security တို႔ဟာ နာမည္ႀကီးၾကပါတယ္။
ခု က်ေနာ္တို႔ Huawei ရဲ႕ set_immutable ကို ေလ႔လာၾကည္႔ၾကရေအာင္ပါ။
အရင္ဆံုး Huawei က root ေဖါက္ပီး ဘယ္လိုကလိကလိ မပ်က္ရေလေအာင္ set_immutable ဆိုတဲ႔ binarty ကို သံုးလိုက္ပါတယ္
သူ႔ binary ကို မပ်က္စီးရေလေအာင္
/system/bin/set_immutable အေနနဲ႕ မထားပဲ
/sbin/set_immutable အေနနဲ႕ boot partition ထဲမွာ သြားထည္႔ထားပါတယ္။ RE apk ကေန sbin ဖိုဒါထဲသြားၾကည္႔ရင္
အေပၚကပံုလို ျမင္ရပါမယ္။ အဲ႔ဒီset_immutableကို enable { 1 }
လုပ္ထားရင္ /system ေအာက္ကset_immutable.listထဲမွာ register လုပ္ထားတဲ႔ ဖိုင္ေတြကို read write မရေအာင္ ပိတ္ထားေပးပါတယ္ ၊ set_immutable.listထဲမွာေတာ႔
အေပၚကဖိုင္ေတြ ပါပါတယ္၊။ အဲ႔ေတာ႔
/system/bin ေအာက္ကဟာေတြ
/system/build.propဖိုင္ /system/etcေအာက္ကဖိုင္ေတြ
/system/fontsေအာက္ကဖိုင္ေတြ ျပင္လို႔ မရေတာ႔ပါဘူး
နမူနာအေနနဲ႔ ေျပာျပတာပါ အဲ႔ဒီ List ထဲမွာပါသမွ် ဘာမွ ျပင္လို႔ မရပါဘူးပထမအရင္ဆံုးဖုန္းကို root လုပ္ပါ
Command line ကေန ျပင္ပါမယ္
suေခၚလိုက္လို႔ # ေပၚလာပီဆိုရင္ ေအာက္က command ေတြ တစ္ေၾကာင္းရိုက္ Enter တစ္ခါေခါက္ပီးset_immutableကိုျဖဳတ္လိုက္ရပါမယ္ ဒါမွသာ system partition ကို fully read write လုပ္လို႔ရမွာပါ
အရင္ဦးဆံုးbusyboxကို /data/local/tmpေအာက္ကိုပို႔ပါမယ္
Busyboxမရွိေသးသးမ်ားဒီေနရာမွာေဒါင္းယူပါ
adb push busybox /data/local/tmp/busybox
shellယူပါမယ္
adb shell
suကိုေခၚပါမယ္
su
ေနာက္တစ္ဆင္႔ /data/local/tmpေအာက္ကbusyboxကိုအလုပ္လုပ္လို႔ ရေအာင္ permission အျပည္႔ ေပးပါမယ္
chmod 777 /data/local/tmp/busybox
ေနာက္တစ္ဆင္႔ set_immutableကို kill လုပ္ပါမယ္
set_immutable 0
system Directory ေအာက္ကိုသြားပါမယ္
cd system
busyboxရဲ႕ chattrကိုသံုးပီး system ေအာက္မွာရွိသမွ်ဖိုင္ေတြကိုအရင္ ျဖည္ပါမယ္
/data/local/tmp/busyboxchattr -R -i *
/system ေအာက္ကset_immutable.listကိုသီးသန္႔ ျဖည္ပါမယ္
/data/local/tmp/busyboxchattr -i set_immutable.list
ခုဆိုရင္ အဲ႔ဒီset_immutable.listကိုဖ်က္လို႔ရမယ္႔ permission က်ေနာ္တို႔ ပိုင္သြားပါပီrmကိုသံုးပီးအပီးတိုင္ ဖ်က္ပါမယ္
rmset_immutable.list
တစ္ကယ္လို႔ က်ေနာ္တို႔ အေပၚကrmအလုပ္မလုပ္ဘူးset_immutable.listမဖ်က္ဘူးဆိုရင္ /system ကို r/w ရေအာင္ mount လုပ္ယူရပါမယ္
/data/local/tmp/busybox mount -o remount,rw -t auto /system
ဒါဆိုရင္ က်ေနာ္တို႔ set_immutable binary ကိုအပီးတိုင္ ဖ်က္ခ်ႏိုင္ျခင္းမရွိေပမယ္႔ အဲ႔ဒီ binary အလုပ္မလုပ္ေတာ႔ပါဘူး system ျဖစ္ေစ root directory ျဖစ္ေစ read write ရသြားပါပီ
သင္ခန္းစာရဲ႕ အႏွစ္ခ်ဳပ္ အေနနဲ႕ root လုပ္ထားရံုနဲ႕ system read write မရပါဘူး R/W မရေအာင္သီးသန္႔ ပိတ္ထားတာေတြ ရွိရင္ သီးသန္႔နည္းေတြသံုးပီးထပ္လိုက္ရပါတယ္
တစ္ဆင္႔ကူးယူေဖၚျပျခင္းမျပဳပါရန္ ေတာင္းပန္ အပ္ပါသည္။

No comments:

Post a Comment