Wednesday, February 3, 2016




Android Hacker တစ္ေယာက္ ျဖစ္လိုသည္ျဖစ္ေစ၊ Android Software Developer
တစ္ေယာက္အျဖစ္ရပ္တည္လိုသည္ျဖစ္ေစ၊ Android ဖုန္းျပဳျပင္ေရးနဲ႔ပါတ္သက္လို႔ 
Software က႑မွာ ကၽြမ္းက်င္ ပိုင္ႏိုင္လိုသည္ျဖစ္ေစ Android Internal လို႔ အမ်ား 
ေျပာၾကတဲ့ Android ရဲ့ အတြင္းပိုင္း ဖြဲ႔စည္း တည္ေဆာက္ပံုကို 
ဂဃနဏ နားလည္ထားဖို႔လိုအပ္ပါတယ္၊ 

တစ္ခ်ိဳ႕ ကိစၥနဲ႔ ျပႆနာေတြမွာ နားမလည္လည္း လုပ္လို႔ရတယ္ ေျဖရွင္းလို႔ရတယ္ဆိုေပမယ့္
တကယ့္လက္ေတြ႔ဘ၀မွာေတာ့ နားလည္လို႔ သိလို႔ ေျဖရွင္းလိုက္တာက ပညာရွင္ဆန္ပါတယ္၊

Android အတြင္းပိုင္းအလုပ္လုပ္ပံုကိုမွ ေကာင္းေကာင္းနားမလည္ေသးရင္
သင္ Android ကိုဘယ္ေလာက္ ကၽြမ္းတယ္ေျပာေျပာ ဒါက ေျပာင္လိမ္မႈႀကီးတစ္ခုထက္
ဘာမွထူးျခား သြားမွာ မဟုတ္တဲ့ အဆိုျပဳခ်က္သာလွ်င္ျဖစ္ပါလိမ့္မယ္၊ Tools တစ္ခ်ိဳ႕နဲ႔ 
ကုဒ္တစ္ခ်ိဳ႕က လတ္တေလာ ရင္ဆိုင္ေနရတဲ့ အခက္အခဲကို ေျပလည္သြားေစ တတ္ပါတယ္၊ 
ယာရီအေနနဲ႔ ထိုေျဖရွင္းခ်က္မ်ိဳးက ကန္႔ကြက္ စရာ မရွိသလို လူတိုင္းလည္း အသံုးျပဳပါတယ္၊ 
Tools ေတြက ပိုေကာင္းလာေလ အသံုးျပဳသူနဲ႔ လက္ေတြ႔လုပ္ငန္းစဥ္တို႔က ေ၀းလာေလပါပဲ၊
ဆင့္ကဲျဖစ္စဥ္ ၊ တည္ေဆာက္ပံု Architectur ၊ ရည္ရြယ္ ဖန္တီးခဲ့တဲ့ Scheme ၊ 
အသံုးျပဳသြားတဲ့ ဘာသာရပ္ စသျဖင့္ လက္ေတြ႔ကိုင္တြယ္လုပ္ေဆာင္ရ မယ့္ နားလည္မွျဖစ္မယ့္ 
အပိုင္းေတြကို Tools ေတြက တာ၀န္ယူလုပ္ေဆာင္သြားပါတယ္၊ ဒီေတာ့ ထိုျဖစ္စဥ္ေတြနဲ႔ 
အသံုးျပဳသူေတြက အလွမ္းေ၀းလာပါတယ္၊ ဒီအခ်က္ကပဲ နည္းပညာ ေလာကမွာ 
Back End Developer, Front End Developer နဲ႔ User ဆိုတဲ့ မတူညီတဲ့ အဆင့္ေတြကို 
သတ္မွတ္ ႏိုင္လာၾကပါတယ္၊ ဥပမာ အေနနဲ႔ monkeytest (Ghost Push) maleware နဲ႔ 
ပါတ္သက္ၿပီး batch Script ကိုထုတ္ေပးခဲ့တဲ့cmcm.com က batch code အခ်ိဳ႕ကို
အေျခခံၿပီး နည္းပညာ ေလာက က မတူညီတဲ့ အဆင့္ အခ်ိဳ႕ကို ေလ့လာၾကည့္ပါမယ္၊

User

User အေနနဲ႔ကေတာ့ cmcm.com က ထုတ္ေပးတဲ့ ကုဒ္ကို text editor တစ္ခုထဲကို
ထည့္ ၿပီးရင္ .bat extension နဲ႔ သိမ္း Adb နဲ႔ library ဖိုင္ ေပါင္း သံုးခုရွိရင္ .bat ဖိုင္ေပၚ
ခလစ္ႏွိပ္ၿပီး Run လိုက္တာနဲ႔ ကြန္ျပဴတာနဲ႔ ခ်ိတ္ဆက္ထားတဲ့ ဖုန္းက အတိုင္းအတာတစ္ခုအထိ 
virus ေတြကို သတ္ေပးသြားမွာပါ၊ ဒါက User အဆင့္ အလုပ္လုပ္ပံုပါ၊ 

User ေပၚမွာမွ နည္းနည္း ပိုကၽြမ္းက်င္တဲ့ User ေတြက လိုအပ္တဲ့ဖိုင္ေတြကို တည္ေဆာက္၊ 
ၿပီးရင္ အဲ့ဒီ့ ဖိုင္ေတြအားလံုးကို zip package တစ္ခုျဖစ္ေအာင္ ထုပ္၊ ၿပီးေတာ့ အဲ့ဒီ့ zip ဖိုင္ကို 
မွ်ေ၀ေပါ့၊ ဒီေတာ့ ေပးထားတဲ့ ကုဒ္ေတြကို အလုပ္ျဖစ္ေအာင္ မစီစဥ္တတ္သူေတြအတြက္ေတာ့ 
အားလံုး တစ္စုထည္းရတဲ့ package ကိုသံုးၾကတာေပါ့၊ ဒီ့ထက္ပိုၿပီးေတာ့ အကြက္ျမင္တဲ့ 
Users ေတြၾကေတာ့ အဲ့ဒီ့ လို ျပႆနာ ေျဖရွင္းတဲ့ ဖိုင္ေတြကို သီးသန္႔လိုက္ စု ၿပီးရင္ မ်ားျပားလွတဲ့ 
software packages ေတြကို ၀က္ဆိုဒ္မွာတင္ လိုတဲ့လူေတြက လာေဒါင္း ၊ 
၀က္ဆိုဒ္မွ ေၾကျငာတင္ ဘယ္ေနရာ ႏွိပ္မိႏွိပ္မိ ေၾကျငာစာမ်က္ႏွာကို ေရာက္သြား စသျဖင့္ 
Users ေလာက ၾကီးကလဲ လည္ပတ္မႈ အရွိန္အျမင့္ဆံုးနဲ႔ လည္ပတ္ေနၾကပါတယ္၊

Front-End Developer

Front End Developer နဲ႔ Back End Developer တို႔ဆိုတာက Web Technician ေလာကမွာ 
သံုးတဲ့ အသံုးအႏႈန္းေတြပါ ကၽြန္ေတာ္ ခဏငွားသံုးထားတာ၊ Web ေလာကမွာေတာ့ Front End 
ဆိုရင္ ရုပ္ထြက္ပိုင္းဆိုင္ရာ User Interface ကိုဖန္တီးတဲ့ HTML, CSS, HTML,CSS3,
JavaScript,Jquery တို႔လို ဘာသာရပ္ေတြကိုေခၚတာျဖစ္ၿပီးေတာ့ Back End ကေတာ့ 
Database နဲ႔ ခ်ိတ္ဆက္ ၿပီးျဖစ္ေစ User Interact လုပ္တဲ့ အေပၚမွာ မႈတည္ၿပီး Web site 
တည္ေဆာက္ပံုကို Dynamically ေျပာင္းလဲ ေပးႏိုင္ေအာင္ လိုအပ္တဲ့ ေဒတာေတြကို 
Database နဲ႔ ခ်ိတ္ဆက္ၿပီးျဖစ္ေစ Server Host မွာရွိတဲ့ ဖိုင္နဲ႔ ဖိုဒါေတြေပၚမႈတည္ၿပီး
 ျဖစ္ေစ ၀က္ဆို္ဒ္ အသြင္မျပင္နဲ႔ ေဖာ္ျပမယ့္ Data ေတြကိုေျပာင္းလဲ ေပးတဲ့ က႑ေပါ့၊ 
Mobile ေလာကမွာၾကေတာ့ Front End က အထက္က ေဖာ္ျပခဲ့တဲ့ cmcm.com ဆိုဒ္ကလို 
ေဒတာေတြကိုေလ့လာတယ္ ကိုယ္တိုင္လဲ ထြင္ႏိုင္ေအာင္ virsus ျဖစ္တည္ရာ 
လမ္းေၾကာင္းေတြကို ရွာေဖြတယ္၊ virus ရဲ့ ျဖစ္တည္ပံု ၊ အလုပ္လုပ္ေဆာင္ပံု ေတြကိုပါ 
နားလည္ေအာင္လုပ္တယ္၊ ၿပီးေတာ့ အဲ့ဒီ့ နားလည္မႈ ရွာေဖြေတြ႔ရွိမႈေပၚ အေျခခံၿပီးေတာ့ 
ကုဒ္တစ္ခ်ိဳ႕ေရးပါတယ္၊ အတိုင္းအတာ တစ္ခု အထိ virus ေတြကို သတ္ျပစ္ႏိုင္ၾကပါတယ္၊ 
ဒါကေတာ့ Front End Developer ေတြရဲ့ လုပ္ငန္းစဥ္ေပါ့၊

Back-End Developer

အမ်ားအားျဖင့္က front end developers ေတြက သူတို႔ရဲ့ ရပ္တည္မႈကို Back End 
Developers ေတြနဲ႔ သြားေရာေနတတ္ပါတယ္၊ ဒီလိုျဖစ္ရေအာင္ကလဲ Back End 
Development ရဲ့ တည္ရွိျဖစ္တည္ပံုက ေလးနက္တည္ျငိမ္လြန္းအားႀကီးလွပါတယ္၊ 
ဥပမာ အားျဖင့္ CMD မွာ ပံုမွန္အသံုးျပဳလို႔ရတဲ့ commands 84 ခုရွိပါတယ္၊ ဒီထဲမွာမွ 
telnet client ကို enable လုပ္ထားရင္သံုးလို႔ရႏိုင္တဲ့ telnet လို command မ်ိုဳးပါ 
ထည့္တြက္ရင္ command 100 ေလာက္ရွိမွာေပါ့ (အတိအက်မဟုတ္ပါ)၊ ဒီလိုပဲ adb နဲ႔ 
သီးသန္႔သံုးႏိုင္တဲ့ commands 50 ေက်ာ္ရွိပါတယ္၊ shell user အေနနဲ႔ဆိုရင္ေတာ့ 
270 ေက်ာ္ရွိ ၿပီး su commands ေတြကေတာ့ 380 ရွိပါတယ္၊ ဒါေတြကို အသံုးျပဳႏိုင္သူေတြက 
Front End Developer ေတြျဖစ္ၿပီး ဒါေတြကို ဖန္တီးသူေတြကေတာ့ Back End Developers 
ေတြျဖစ္ပါတယ္၊ adb , shell , subinary တို႔အားလံုးက ႀကိဳတင္ဖန္တီး တည္ေဆာက္ေပးၿပီးသား 
binaries ေတြျဖစ္ပါတယ္၊

Mobile ေလာကမွာလဲ Power User (front end developer) တစ္ေယာက္ျဖစ္ဖို႔ အတြက္ဆိုရင္
Android အတြင္းပိုင္းကို အေသးစိတ္နားလည္ထားဖို႔လိုအပါတယ္၊ Power User စစ္စစ္ျဖစ္သြားရင္ 
ကိုင္ပိုင္ Tools ေတြထုတ္ဖို႔ ျပႆနာ ေျဖရွင္းဖို႔ ဆိုတာ သူမ်ား သင္ေပးမွ မဟုတ္ဘဲ ကိုတိုင္ဖန္တီးတတ္လာပါၿပီ၊ 
ဒီေတာ့ Power User တစ္ေယာက္ျဖစ္ဖို႔ အတြက္ ဘာေတြကို ေလ့လာရမလဲ၊

1. Android File System မ်ား အေၾကာင္း

2. Android ဖုန္း boot တက္ပံုႏွင့္ ဖိုင္အဆင့္ဆင့္ တည္ေဆာက္ပံု

3. Backup ႏွင့္ Recovery တို႔အေၾကာင္း အေသးစိတ္နားလည္ထားျခင္း

4. Init ဘာသာရပ္ႏွင့္ Android အသက္ေသြးေၾကာ လုပ္ငန္းစဥ္မ်ား

5. Services (Daemon) မ်ားအလုပ္လုပ္ပံု

6. Android လံုျခံဳေရး

7. Linux မွ တဆင့္ Android အားေလ့လာျခင္း

8. Adb,shell,subinary တို႔အား ကၽြမ္းက်င္စြာ အသံုးျပဳပံု

အထက္က အခ်က္ေတြကေတာ့ Android Power User ျဖစ္ဖို႔ တစ္ခုမက်န္ အေသးစိတ္နားလည္ထားရမယ့္ 
အခ်က္ေတြပါ၊ ဒါက အကုန္ေတာ့ မဟုတ္ေသးဘူး၊ ႏို႔ေပမယ့္ အထက္က အခ်က္ေတြ နားလည္သြားရင္
Android software ကၽြမ္းက်င္အဆင့္ေရာက္သြားမွာပါ၊ အထက္က ေခါင္းစဥ္ေတြၾကည့္ရင္ နည္းေနသလို 
ျဖစ္ေနလိမ့္မယ္၊ ဒီလိုထင္ရတာက သူတို႔ထဲမွာ ပါ၀င္တဲ့ subjects ေတြကို အေသးစိတ္မသိေသးလို႔ပါ၊ 
အိုေက အခု အက်မ္းဖ်င္းအေနနဲ႔ ရွင္းျပမယ္၊

Android File System 

အရင္ဆံုး File system နဲ႔ partitions ေတြကို ဆိုလိုတာလဲ သိရမယ္၊ သိၿပီဆိုရင္ Android မွာ 
ဘာေၾကာင့္ အဲ့ဒီ့ လို Paritions ေတြခြဲျခားတည္ေဆာက္ထားရတာလဲ၊ ဘယ္လို လိုအပ္ခ်က္နဲ႔ 
အားသာခ်က္ေၾကာင့္လဲ သိရမယ္၊ ဘာေၾကာင့္ အျခား Partition System ျဖစ္တဲ့ MBR paritions 
system ကို မသံုးပဲ GUID parition table ကိုသံုးတာလဲ၊ အေသးစိတ္ လက္ေတြ႔ ဘယ္လိုသိႏိုင္မလဲ၊ 
Android မွာသံုးတဲ့ File storage system ေတြက ဘာေတြလဲ ၊ 
ဘာေၾကာင့္ YAFFS , Ext3, Ext4, F2F တို႔ ဆိုၿပီး flash file system ေတြကြာျခားသြားၾကတာလဲ၊ 
ကြာျခားမႈရဲ့ အဓိက အခ်က္ျဖစ္တဲ့ Chipset ေတြျဖစ္ေသာ MediaTek, Qualcomm တို႔ က 
file system အမ်ိဳးအစားေတြေပၚ ဘယ္လို သက္ေရာက္မႈရွိလည္း၊ Android Kernel က 
ေထာက္ပံ့ေပးထားတဲ့ file system အမ်ိဳး အစား ေတြက ဘာေတြလဲ၊ Standard Android Paritions 
ေတြက ဘယ္ အပိုင္းေတြျဖစ္ၿပီး Chipset နဲ႔ Vendor (ဖုန္းထုတ္သူ)တို႔ အသံုးျပဳတဲ့ paritions ေတြက 
ဘယ္အပိုင္းေတြလဲ၊ ဘယ္ paritions ေတြက root user အျဖစ္ mount တက္လဲ၊ 
ဘယ္ paritions ေတြက read only လဲ၊ mount paritions ေတြအေၾကာင္း လက္ေတြ႔ေလ့လာၾကည့္ျခင္း၊ 
ဘယ္ဖိုင္ေတြက pseudo file system ေတြလဲ၊ file system ထဲမွာ ပါ၀င္တဲ့ ဖိုဒါႏွင့္ ဖိုင္မ်ားႏွင့္ ဘာအတြက္ 
တစ္ခုစီကို အသံုးျပဳတာလဲ၊ emmc တည္ေဆာက္ထားပံုႏွင့္ ျပန္ေရးႏိုင္သည့္ ဘာသာရပ္၊ SoC Architectur 
အားနားလည္ျခင္း၊


အထက္ကက အခ်က္ေတြကေတာ့ Android File System ကို နားလည္ဖို႔ အတြက္ေလ့လာရမယ့္
အခ်က္ေတြျဖစ္ပါတယ္၊ အခ်ိဳ႕ အခ်က္ေတြက File Systems ကေန မွီခိုရေတာ့ တိုက္ရိုက္
မသက္ဆိုင္ေပမယ့္ နားမလည္လို႔ေတာ့မျဖစ္ဘူး၊ ဒီေတာ့ ေနာက္သင္ခန္းစာ မွာ စၿပီး ေလ့လာၾကမယ္၊
အပိုင္း ၁ ျဖစ္တဲ့ file system မွာ သင္ခန္းစာေပါင္း ၃၀ ပါရွိပါတယ္၊ ဒါက အပိုင္း ၁ အတြက္ေျပာတာပါ၊

မွတ္ခ်က္

1. သင္ခန္းစာ အားလံုးက အခမဲ့ ရမည္မဟုတ္ပါ၊ waiferkolar ေရးထားတဲ့ Android Hack ႏွင့္ 
Android Development စာအုပ္၀ယ္ယူထားသူေတြအတြက္ သင္ခန္းစာ အားလံုးေလ့လာဖို႔ 
က်ပ္ ၅၀၀၀ (ငါးေထာင္) ေပးသြားရွာျဖစ္ၿပီး၊ ေပးသြင္းပါက Computer Software တစ္ခုရရွိမွာျဖစ္ပါတယ္၊ 
ထို စာအုပ္ပံုစံ တည္ေဆာက္ထားတဲ့ Software အသံုးျပဳၿပီး သင္ခန္းစာ အားလံုကိုေလ့လာရမွာပါ၊

2. သင္ခန္စာေတြအားလံုးကို ျပည္ပမွ ဆရာမ်ား အြန္လိုင္းမွ မွ်ေ၀သည့္ ျပည္ပ ၀က္ဆိုဒ္မ်ား 

စာအုပ္မ်ား pdf မ်ားမွ ေလ့လာထားၿပီး တတ္ကၽြမ္းနားလည္ သမွ်ကို ျမန္မာ နားလည္ေအာင္ 
သင္ခန္းစာတစ္ခုစီအတြက္ Target တစ္ခုစီသာထား၍ ထို ရည္ရြယ္ခ်က္အား ရွင္းရွင္းလင္းလင္း 
နားလည္သေဘာေပါက္သြားေအာင္ သင္ၾကားေပးထားျခင္းျဖစ္ပါသည္၊

3. ကြန္ျပဴတာ Software တြင္ ပါ၀င္ေသာ သင္ခန္းစာေပါင္း 150 ျဖစ္ၿပီး ထိုသင္ခန္းစာ 150 ကို
ေလ့လာတတ္ေျမာက္ပါက Android အေၾကာင္း ေကာင္းစြာ နားလည္သေဘာေပါက္သြားမည္ဟု 
အာမခံပါသည္၊ သင္ခန္းစာေတြအတြက္ မရွင္းလင္းသည့္ အခ်က္မ်ားကို 
ေမးျမန္ရန္ A&Q service ကို ၀က္ဆိုက္တြင္ ေထာက္ပံ့ေပးထားၿပီး စာျဖင့္ ရွင္း၍ နားမလည္ပါက 
TeamViewer မွ တဆင့္ လက္ေတြ႔ရွင္းျပေပးပါမယ္၊