මොනාද මේ ADB/Fastboot Commands?
සේරටම කලින්, මේක Post Series එකක් නෙ. TV Series වගේ තමයි මැදින් පැනලා බලන්න බෑ තේරෙන්නෑ. ඒ නිසා වහාම දුවන්න කලින් කොටසට. මෙන්න පහළ ලිංක් එක.
Bootloader එක කියන්නෙ මොකක්ද? Android Series - 1
ඔන්න පොරොන්දු ඉෂ්ඨ කිරීමට සූදානම. Bootloader ගැන Theory කොටස ඉගෙනගත්තට කට්ටියට Practical මුකුත් කියලා දෙන්න වුණේ නෑ නෙ. ඔන්න අද ඒකට අවස්ථාව. ඔක්කොටම කලින් කියන්න ඕන මේ දේවල් මම කියලා දුන්නයි කියලා උඩ පැනගෙන ගිහින් ෆෝන් එකේ මේවා කරලා මොකක් හරි වැරදීමක් වෙලා ෆෝන් එකට කෙළ වුණොත් මම වග කියන්නේ නැත.
ඒ වගේම මේ මොකක් කරන්නත් කලින් ෆෝන් එකේ බැකප් එකක් තියාගැනීම ගොඩක් වැදගත්. මොකද ෆෝන් එකට කෙළවුණොත් ආපහු එකක් ගන්න හරි පුළුවන් ඒත් දත්ත ආපහු එහෙම ගන්න බැරි වෙන්න පුළුවන්.
ආහ්, අනිත් එක. මේවා කරන්න පණ්ඩිතකම තිබුණට මදි. වීරයෝ වගේනෙ සමහරු Android කියන වචනෙ ඇහුණත් ඇති. ඒ වීරත්වය හොඳයි, හැබැයි ඒක පුස් වීර කමක් නම් වැඩක් නෑ නෙ. මේ අද කියලා දෙන්න යන කොටස සංකීර්නයි. තේරුම්ගන්න උත්සාහ කරන්න. එහෙම ලේසියෙන් මෙව්වා කරන්න පුළුවන් නම් හැමෝම Android Developers ලා වෙනවනෙ.
හොඳයි එහෙනම් අපි පාඩමට යමු.
ADB කියන අකුරු තුනෙන් කියවෙන්නේ Android Debug Bridge කියන එකයි. ඒ වචන ටිකෙන් ඔයාලට තේරෙනවා ඇති මේක තියෙන්නේ ෆෝන් එක Debug කරන්න, Debug කරනවා කියන්නේ දෝෂ නිරාකරණය කියන එක. දෝෂ නිරාකරණය කිරීමේ මේ පහසුකම භාවිතා කරලා පුළුවන් අපිට අපේ ෆෝන් වලට බරපතළ වෙනස්කම් කරන්න.
මේ දේවල් කරන්න ඔයාට ඕන වෙනවා පරිගණකයක්. ඒ වගේම ෆෝන් එක පරිගණකයට සම්බන්ධ කරන්න Data Cable එකක්. ඒ වගේම පරිගණකයට ස්ථාපනය කරන්න ඕන මෘදුකාංග ටිකක්. එයින් එක් මෘදුකාංගයක් තමයි Android SDK කියන්නේ. SDK කියන්නේ Software Development Kit කියන එක. ඒ වගේම ADB / USB Drivers / Fastboot Drivers වෙනම ඉන්ස්ටෝල් කරගන්න ඕන. සමහරවිට මේ මෘදුකාංග ඔයාට ජංගම දුරකථන නිෂ්පාදකයා ගේ නිළ වෙබ් අඩවියෙන් බාගත කරගන්න පුළුවන්.
Download SDK Platform Tools
මම අර උඩින් දුන්නේ ADB කමාන්ඩ්ස් රන් කරන්න ඕන වෙන Software tools ඩවුන්ලෝඩ් කරගන්න ලිංක් එක. හැබැයි මේක විතරක් මදි කියලා මතක තියාගන්න. විශේෂයෙන්ම ඔයා fastboot commands run කරවන්න බලාපොරොත්තු වෙනවා නම් අනිවාර්යෙන් Device එක හැදුව නිෂ්පාදකයාගේ අඩවියෙන් අදාළ Drivers බාගන්න.
නැත්නම් අදාළ මාදිලියට අවශ්ය කරන Drivers සහ Softwares ටිකක් හොයලා Download කරගෙන Install කරගන්න වෙනවා. ඊට පස්සෙ ඔයාට වැඩේ තවත් පහසු වෙන්න ADB drivers install වුණ folder එකට (android-sdk ෆෝල්ඩර් එකේ platform-tools තියෙන ෆෝල්ඩර් එකට) Environment Variables හදාගන්න ඔයා Windows පාවිච්චි කරන කෙනෙක් නම්. (ඔය කිව්ව ෆෝල්ඩර්ස් තියෙන්නේ C: drive එකේ. පහසුවෙන් හොයාගන්න පුළුවන්.) එතකොට වැඩේ ලේසියි. ඒවා හදන එක කතාවෙන් පිට නිසා පොඩ්ඩක් හොයලා බලන්න Environment Variables කියන එක ගැන. නැත්නම් හැම වෙලේම ඔය ෆෝල්ඩර් හොය හොය දුවන්න වෙනවා CMD ඕපන් කරන්න කලින්.
අනිත් දේවල් තමයි, ADB Commands run කරන්න නම් ඔයාගේ ෆෝන් එකේ Android Debugging ඔප්ෂන් එක ON කරන්න ඕන. ඒක තියෙන්නේ Developer Settings වල.
Developer Settings කියලා එකක් ෆෝන් එකේ නැත්නම් About Device කියන Settings Category එය යටතේ තියෙන Build Number කියන item එක උඩ 5 හෝ 7 වතාවක් එක දිගට tap කරන්න. එතකොට අදාළ කොටස මතු වේවි. ඒ වගේම, ඔයාගෙ ෆෝන් එක Root කරලා නම් ADB Root Access ලබා දෙන්න. ඒක SU App එකෙන් කරන්න පුළුවන්. (LineageOS වගේ Custom Rom එකක් පාවිච්චි කරන අයට SU අදාළ නෑ. Developer Settings වලින්ම පුළුවන්.)
ෆෝන් එක පරිගණකයට සම්බන්ධ කරලා මොකක් හරි ADB Command එකක් Run කරනකොට ෆෝන් එකෙන් අහයි, මේ Device එකෙන් ADB පහසුකම Allow කරන්නද කියලා. එතකොට ඒක Yes කරන්න. Tick එක දැම්මොත් ආයෙ ආයෙ අහන එකකුත් නෑ.
ADB Commands අපිට පාවිච්චි කරන්න පුළුවන් ෆෝන් එක Recovery mode එකේ හෝ ROM එකේ සාමාන්ය Boot අවස්ථාවේදීත්. ඒත් Fastboot commands භාවිතා කරන්න පුළුවන් Bootloader Mode එකේදී නොහොත් Fastboot mode එකේදී විතරයි. ඒ වගේම Fastboot commands වලට Android SDK එක ඕනෙත් නෑ. Drivers තිබුණම ඇති. අනික් විශේෂ කාරණාව තමයි බොහොමයක් fastboot commands දුවවන්න නම් Bootloader එක unlock කරන් ඉන්න ඕන. bootloader එක අන්ලොක් කරගන්නෙත් ඉතින් fastboot එකෙන්ම තමයි.
වැඩේට බහින්න කලින් මතක තියාගන්න, ADB Commands ඔක්කොම Case Sensitive ඒ කිව්වේ සිම්පල් අකුරු කැපිටල් අකුරු වෙනස් අකුරු විදියටයි ගන්නේ. A වෙනුවට a අකුර ගහන්න බෑ. ඒ වගේම Folder paths වල හිස් තැන් තිව්වොත් බඩු බනිස්. හිස් තැන් ගැන ADB Commands සලකා බලනු නොලැබේ. ඒ නිසා මොනා හරි ෆෝල්ඩර් හදනවා නම් හිස් තැන් නොතබන්න වගබලාගන්න. අනික මේ සිංහල භාෂාව එහෙම ADB එක දන්නෑ හොඳේ, ෆෝල්ඩර් වගේ ඒවා සිංහලෙන් නම් කරන්න ගිහින් කෙළවගන්න එහෙම එපා.
අර උඩින් කිව්ව වැඩ ටික කරලා ඉවර නම්, ෆෝන් එක සාමාන්ය පරිදි ඔන් කරලා පරිගණකයට සම්බන්ධ කරන්න. එතකොට ෆෝන් එකේ පෙන්වයි ADB Connect වුණා කියලා. ඒ වගේම ෆෝන් එකේ ADB Access allow කරන්නද කියලා ඇහුවොත් ඒක allow කරන්න. කලිනුත් ඒක කිව්වා. දැන් අපි Commands ටිකක් ඉගෙනගනිමු.
ගොඩක් ජනතාව Windows නිසා සහ ඔය Command Line වහ කදුරු වෙලා ඉන්නේ Windows උන්ට නිසා විශේෂයෙන් එයාලට මම කියලා දෙන්නම් මේක. ඔයා දැන් මම අර කලින් කිව්වා වගේ Environment Variables හැදුවා නම් කිසි ගැටළුවක් නෑ Command Prompt කොහෙ ඕපන් කරත් මේ Commands වැඩ. Environment Variables හදාගන්න අපොහොසත් වුණා නම් 😑 ADB ෆෝල්ඩර් එකට හෝ ගිහින් එතන Command Prompt එකක් ගන්න. නැත්නම් ADB folder එකට හෝ android-sdk ෆෝල්ඩර් එකේ platform-tools එකට CMD වලින් යන්න.
හරි කොහොමින් කොහොම හරි දැන් CMD එක ඕපන් කරගෙන නම් ඉන්නේ, ADB කනෙක්ෂන් එක පරීක්ෂා කරන්නත් එක්ක අපි අපේ පළමු කමාන්ඩ් එක ගහලා බලමු.
adb devices
මේකෙන් කරන්නේ දැනට Android Debug Bridge එකක් විදියට පරිගණකයට සම්බන්ධ වෙලා තියෙන උපාංග වල ලයිස්තුවක් ලබාගන්න එක. ඕක ටයිප් කරලා Enter එබුවම ඔයාගෙ ෆෝන් එකේ මොඩ්ල් නම්බර් එක හරි, නම හරි ඒ වගේ එකක් පෙන්නුවොත් වැඩේ ගොඩ.
මම මේ පහළින් දාන්නෙ මට ආව output එක. සමාවෙන්ඩ ඕන ඒ තියෙන්නේ Windows CMD එක නම් නෙවෙයි, ඒ ලිනක්ස් Terminal එකක්. ඔය output වෙනසක් නෑ වින්ඩෝස් වලත් එන්නෙ ඔහොමයි, මට Windows මගුලට නම් යන්න කියන්න එපා මේන් වැන්දා. බැරිම වැඩේ ඒක.
මෙතනින් එහාට මම කියන Commands වලින් සමහර ඒවා වලංගු වෙන්නේ කනෙක්ට් කරලා තියෙන්නේ එකම Android Device එකක් නම් විතරයි, කවුද ඉතින් එකපාරට තුන හතරක් ඔබන් ඕක කරන්නෙ. එහෙම ඔබන් කරන්න පුළුවන් එතකොට අදාළ device එකේ Serial එක ගහ ගහ නටන්න ඕන. එහෙම ඕනි නෑ නෙ.
මේකෙන් පුළුවන් Computer එකේ තියෙන APK එකක් ෆෝන් එකට ඉන්ස්ටෝල් කරන්න. මෙතන path_to_apk වෙනුවට අදාළ apk එක තියෙන ෆෝල්ඩර් path එක දෙන්න. නැත්නම් අදාළ apk එක platform-tools ෆෝල්ඩර් එකට දාගෙන ඉන්නකො. වැඩේ ලේසියි, එතකොට apk එකේ නම විතරක් ඇති. උදාහරණයක් විදියට,
adb install myapp.apk
මේක ගන්නකො. හරි අපි ඊළඟ එකට යන්.
1) Android device එකෙන් Computer එකට - pull
2) Computer එකෙන් Android Device එකට - push
මේ වැඩ දෙකට ගහන කෝඩ් වලත් වෙනසක් තියෙනවා.
1) adb pull remote local
2) adb push local remote
පේන්න ඇති නෙ වෙනස. ඔය remote සහ local කියන්නේ file paths. Remote කිව්වේ Android device එකට, local කිව්වේ computer එකට. උදාහරණයක් දෙන්නම්.
adb push photo.jpg /sdcard/photo.jpg
අර උඩ කෝඩ් එකෙන් වෙන්නේ පරිගණකයේ තියෙන Photo එකක් Android Device එකට (ෆෝන් එකට) කොපි කිරීම. ඊළඟට ටිකක් බරපතළ commands ටිකක් බලමු.
මේ කමාන්ඩ් එකෙන් ඔයාට පුළුවන් ඔයාගෙ ෆෝන් එක Recovery එකට බූට් කරන්න.
ඔන්න අපි ආස සහ වැඩිපුර බය හිතෙන Bootloader mode එකට නොහොත් fastboot mode එකට ෆෝන් එක බූට් කරගැනීමේ command එක.
හරි, හිතන්න එපා adb commands තියෙන්නේ මෙච්චරයි කියලා. මෙන්න ලිංක් එක, ඕන තරම් adb commands ඇති. බලාගන්නකො.
Android Debug Bridge (adb)
එහෙනම් අපි ADB commands මෙතනින් නවත්තලා යමු fastboot commands වලට.
මේවා run කරන්න නම් Android Device එක Bootloader mode නොහොත් fastboot mode එකේ තිබිය යුතුමයි.
fastboot devices
ADB එකේ වගේම මේ කෝඩ් එක රන් කරලා පුළුවන් සාර්ථකව සම්බන්ධ වෙලා තියෙන උපාංග බලාගන්න.
මේකෙන් පුළුවන් ෆෝන් එක සාමාන්ය විදියට (ROM එකෙන්) boot කරගන්න.
කියන්න දෙයක් නෑනෙ, මේකෙන් කරන්නෙ recovery එකට බූට් කරන එක.
මේකෙන් බලාගන්න පුළුවන් Bootloader එකේ තත්වේ. ඒ කිව්වේ ලොක්ද, අන්ලොක් ද කියන එක. Bootloader එක unlock නම්, True කියලා output එකක් එයි, lock නම් False කියලා output එකක් එයි.
මේකෙන් ඉතින් Bootloader එක අන්ලොක් වෙනවා Nexus devices වල නම්. ඒත් සාමාන්යයෙන් Bootloader එක unlock කරන්න ඔහොම ලේසියෙන් කෝඩ් එකක් ගහලා බෑ.
උදාහරණයක් විදියට Sony ෆෝන් එකක් නම්, එයාලට ඔයාගෙ IMEI එක දීලා, වගකීම් සහතිකය අවලංගු කරලා, එයාලගෙන් Key එකක් එහෙමත් නැත්නම්, ඔයාගෙ ෆෝන් එකේ bootloader එකටම විශේෂිත වුණ code එකක් ලබාගන්න ඕන. ඒ කෝඩ් එකත් ගත්තට පස්සේ
fastboot -i 0x0fce oem unlock 0x<insert your unlock code>
මෙන්න මේක ගහන්න වෙනවා, <insert your unlock code> වෙනුවට එයාලා දෙන කෝඩ් එක ගහන්නත් වෙනවා. ඔන්න, ඕකයි තත්වේ.
අනික බොහෝවිට ඔය කමාන්ඩ් එක ෆෝන් එකේ නිෂ්පාදකයා අනුව වෙනස් වෙනවා.
මේ කමාන්ඩ් එක තියෙන්නේ මොකටද කියලා බැලූ බැල්මටම වැටහෙනවා ඇති. මේ කමාන්ඩ් එක යොදාගෙන පුළුවන් අපිට පාටිෂන් වෙන වෙනම ෆෝමැට් කරගන්න, අපිට අවශ්ය file system එකකින්. වර්තමානයේ Linux මෙහෙයුම් පද්ධති වල නිතර භාවිතා වෙන ෆයිල් සිස්ටම් එක තමයි ext4 නොහොත් Fourth Extended File System. මේකෙන් තමයි අපි Android වලත් පාටිෂන් ෆෝමැට් කරන්නේ. පහළ උදාහරණයෙන් වැඩේ පැහැදිලි කරගන්න.
fastboot format:ext4 system
මේකෙන් වෙන්නේ සිස්ටම් පාටිෂන් එක ext4 file system එකෙන් ෆෝමැට් වෙන එක. බඩුම තමා. 😂 මෙහෙම කළාට පස්සේ ආයෙ system එක ෆ්ලෑෂ් නොකර ෆෝන් එක ඔන් කරනවා බොරු.
මේකෙන් කරන්නේ රිකවරි එකක් ෆ්ලෑෂ් කරන එක. ඩිවයිස් වලට අලුත් OS දානවා නම් (ROM flashing), zip flashing වගේ advanced වැඩ කරන්න නම් කස්ටම් රිකවරි එකක් ඕන. ඒ ගැන මම වෙනම ලියන බව කලින්ම පොරොන්දු වෙලා ඉන්නේ. ඉතින් ඒක අනිවාර්යයෙන්ම ලියනවා ඒ නිසා මෙතනදි ලොකු කතාවක් ඕන නෑ. <recovery.img> කියන තැනට එන්න ඕන ඔයා අලුතින් flash කරන්න යන Recovery එකේ නම. ඔයා හදන්නේ TWRP Recovery එක දාන්න නම් මෙන්න මේ වගේ එකක් තමයි කෝඩ් එක.
fastboot flash recovery twrp-3.0.1.2-falcon.img
වැඩි විස්තර අපි ඉදිරියේදී කතා කරමු.
මේකෙන් කරන්නේ Boot පාටිෂන් එකට ඩිස්ක් ඉමේජ් ෆයිල් එකක් ෆ්ලෑෂ් කරන එක බව ඔයාලට පේනවා ඇති. කලින් පෝස්ට් එකේදි මම ඔයාලට කියලා දුන්නා නෙ /boot පාටිෂන් එකේ තියෙන්නේ Kernel එක සහ ramdisk එක කියලා. දැන් තේරෙන්න ඕන ඔයාගෙ ෆෝන් එකට කර්නල් එක ෆ්ලෑෂ් කරනකොටයි මේ කමාන්ඩ් එක ගහන්නේ.
ඔතන <boot.img> වෙනුවට ඔයා ෆ්ලෑෂ් කරන්න යන Kernel එකේ image file එකේ නම තමයි දෙන්න ඕන. මෙන්න මේක උදාහරණයක්.
fastboot flash boot xt1032-kernel.img
අන්න දැක්කනෙ? ඕන්න ඔහොමයි වැඩේ වෙන්නේ.
මතක තියාගන්න, අපි සාමාන්යෙන් Custom Kernel flash කරන්නේ මේ විදියට නෙවෙයි, Recovery එක හරහා. මේ විදියට පුළුවන් Stock Kernel එක ෆ්ලෑෂ් කරගන්නයි.
fastboot -w
ඊට පස්සෙ අපි කමාන්ඩ් එකක් ගහනවා ROM එක ෆ්ලෑෂ් වෙන්න.
fastboot update <path/rom.zip>
ROM එකක් අපිට එන්නේ සාමාන්යයෙන් zip එකක් විදියට. (img file එකක් හදලා flash කරන අවස්ථා තියෙනවා.) අන්න ඒ zip එක තමයි අර කලින් කමාන්ඩ් එකෙන් ෆ්ලෑෂ් වෙන්නේ. උදාහරණයක් ගමු අපි සුපුරුදු ලෙසම.
fastboot update /rom/stock-lollipop-xt1032.zip
මතක තියාගන්න, මෙහෙම අපිට කස්ටම් රොම් එකක් ඉන්ස්ටෝල් කරන්න බැහැ. කස්ටම් රොම් එකක් ඉන්ස්ටෝල් වෙද්දි වෙන සමහර Process මේ විදියට Handle කරන්න බැහැ කියලා සරලව මතක තියාගන්න. අපි ඒවා කරන්නේ Recovery එකේ.
හරි, බොහොම හොඳයි... මම මෙතනින් මේ කතාව නිම කරනවා, fastboot commands ඉවර නිසා නෙවෙයි මට ඇති කියලා හිතෙන නිසා 😂 මේ මූලික ටික ඇති කෙනෙක්ට මේ ගැන හදාරන්න, ආසාව ඇති කරගන්න.
මම චුට්ටක් වත් කියලා දුන්නෙ නෑ නෙ ADB එකේ ඉඳන් Android Shell එකට පනින සිද්දි එහෙම. ආ... ඒවා හැම එකම කියලා දෙන්න මේකෙ ඉඩ නෑ පුතාලා. හොඳ හොඳ සෙල්ලම්, 😁 උවමනාව තියෙන එකා හොයාගනීවි.
එහෙනම් ඔන්න පොරොන්දු ඉෂ්ට කළා, ඊළඟට අරන් එන්නෙ Recovery ගැන. සැපටම 😂 ඒක අරන් එනකන්...
යන්න කලින් කියන්නෙ, මේ මොනා හරි කරලා ෆෝන් එක කෙළවාගැනීම සම්බන්ධව මම වග කියන්නෑ 😌 ඔයාලා මේවා කරන්න ගිහින් ෆෝන් එක කඩාගෙන මං ගාවට ඇවිල්ලා මට ඇඟිල්ල දික් කරොත්, මම බක බක ගාලා ඔයාට හිනා වෙන්නම්. ඔයාගෙ ෆෝන් එකට, ඔයා කරගන්න Modification ගැන පූර්ණ වගකීම ඔබ අතේ.
අනික් කාරණාව, ඔයාලා දන්න දේවල් අපිටත් කියලා දෙන්න, මට මඟහැරුණු යමක් ඇත්නම් එකතු කරන්න, මගේ පෝස්ට් වල වැරදි ඇත්නම් පෙන්නන්න, පහළින් කමෙන්ට් කරන්න. මගේ ලොකු සීන් නෑ. අපි හරි අහිංසක ළමයි. :D
ගිහින් එන්නම්, ජය වේවා!
Bootloader එක කියන්නෙ මොකක්ද? Android Series - 1
ඔන්න පොරොන්දු ඉෂ්ඨ කිරීමට සූදානම. Bootloader ගැන Theory කොටස ඉගෙනගත්තට කට්ටියට Practical මුකුත් කියලා දෙන්න වුණේ නෑ නෙ. ඔන්න අද ඒකට අවස්ථාව. ඔක්කොටම කලින් කියන්න ඕන මේ දේවල් මම කියලා දුන්නයි කියලා උඩ පැනගෙන ගිහින් ෆෝන් එකේ මේවා කරලා මොකක් හරි වැරදීමක් වෙලා ෆෝන් එකට කෙළ වුණොත් මම වග කියන්නේ නැත.
ඒ වගේම මේ මොකක් කරන්නත් කලින් ෆෝන් එකේ බැකප් එකක් තියාගැනීම ගොඩක් වැදගත්. මොකද ෆෝන් එකට කෙළවුණොත් ආපහු එකක් ගන්න හරි පුළුවන් ඒත් දත්ත ආපහු එහෙම ගන්න බැරි වෙන්න පුළුවන්.
ආහ්, අනිත් එක. මේවා කරන්න පණ්ඩිතකම තිබුණට මදි. වීරයෝ වගේනෙ සමහරු Android කියන වචනෙ ඇහුණත් ඇති. ඒ වීරත්වය හොඳයි, හැබැයි ඒක පුස් වීර කමක් නම් වැඩක් නෑ නෙ. මේ අද කියලා දෙන්න යන කොටස සංකීර්නයි. තේරුම්ගන්න උත්සාහ කරන්න. එහෙම ලේසියෙන් මෙව්වා කරන්න පුළුවන් නම් හැමෝම Android Developers ලා වෙනවනෙ.
හොඳයි එහෙනම් අපි පාඩමට යමු.
මොකක්ද මේ ADB/FASTBOOT කියන්නේ?
ADB කියන අකුරු තුනෙන් කියවෙන්නේ Android Debug Bridge කියන එකයි. ඒ වචන ටිකෙන් ඔයාලට තේරෙනවා ඇති මේක තියෙන්නේ ෆෝන් එක Debug කරන්න, Debug කරනවා කියන්නේ දෝෂ නිරාකරණය කියන එක. දෝෂ නිරාකරණය කිරීමේ මේ පහසුකම භාවිතා කරලා පුළුවන් අපිට අපේ ෆෝන් වලට බරපතළ වෙනස්කම් කරන්න.
මේ දේවල් කරන්න ඔයාට ඕන වෙනවා පරිගණකයක්. ඒ වගේම ෆෝන් එක පරිගණකයට සම්බන්ධ කරන්න Data Cable එකක්. ඒ වගේම පරිගණකයට ස්ථාපනය කරන්න ඕන මෘදුකාංග ටිකක්. එයින් එක් මෘදුකාංගයක් තමයි Android SDK කියන්නේ. SDK කියන්නේ Software Development Kit කියන එක. ඒ වගේම ADB / USB Drivers / Fastboot Drivers වෙනම ඉන්ස්ටෝල් කරගන්න ඕන. සමහරවිට මේ මෘදුකාංග ඔයාට ජංගම දුරකථන නිෂ්පාදකයා ගේ නිළ වෙබ් අඩවියෙන් බාගත කරගන්න පුළුවන්.
Download SDK Platform Tools
මම අර උඩින් දුන්නේ ADB කමාන්ඩ්ස් රන් කරන්න ඕන වෙන Software tools ඩවුන්ලෝඩ් කරගන්න ලිංක් එක. හැබැයි මේක විතරක් මදි කියලා මතක තියාගන්න. විශේෂයෙන්ම ඔයා fastboot commands run කරවන්න බලාපොරොත්තු වෙනවා නම් අනිවාර්යෙන් Device එක හැදුව නිෂ්පාදකයාගේ අඩවියෙන් අදාළ Drivers බාගන්න.
නැත්නම් අදාළ මාදිලියට අවශ්ය කරන Drivers සහ Softwares ටිකක් හොයලා Download කරගෙන Install කරගන්න වෙනවා. ඊට පස්සෙ ඔයාට වැඩේ තවත් පහසු වෙන්න ADB drivers install වුණ folder එකට (android-sdk ෆෝල්ඩර් එකේ platform-tools තියෙන ෆෝල්ඩර් එකට) Environment Variables හදාගන්න ඔයා Windows පාවිච්චි කරන කෙනෙක් නම්. (ඔය කිව්ව ෆෝල්ඩර්ස් තියෙන්නේ C: drive එකේ. පහසුවෙන් හොයාගන්න පුළුවන්.) එතකොට වැඩේ ලේසියි. ඒවා හදන එක කතාවෙන් පිට නිසා පොඩ්ඩක් හොයලා බලන්න Environment Variables කියන එක ගැන. නැත්නම් හැම වෙලේම ඔය ෆෝල්ඩර් හොය හොය දුවන්න වෙනවා CMD ඕපන් කරන්න කලින්.
අනිත් දේවල් තමයි, ADB Commands run කරන්න නම් ඔයාගේ ෆෝන් එකේ Android Debugging ඔප්ෂන් එක ON කරන්න ඕන. ඒක තියෙන්නේ Developer Settings වල.
Developer Settings කියලා එකක් ෆෝන් එකේ නැත්නම් About Device කියන Settings Category එය යටතේ තියෙන Build Number කියන item එක උඩ 5 හෝ 7 වතාවක් එක දිගට tap කරන්න. එතකොට අදාළ කොටස මතු වේවි. ඒ වගේම, ඔයාගෙ ෆෝන් එක Root කරලා නම් ADB Root Access ලබා දෙන්න. ඒක SU App එකෙන් කරන්න පුළුවන්. (LineageOS වගේ Custom Rom එකක් පාවිච්චි කරන අයට SU අදාළ නෑ. Developer Settings වලින්ම පුළුවන්.)
ෆෝන් එක පරිගණකයට සම්බන්ධ කරලා මොකක් හරි ADB Command එකක් Run කරනකොට ෆෝන් එකෙන් අහයි, මේ Device එකෙන් ADB පහසුකම Allow කරන්නද කියලා. එතකොට ඒක Yes කරන්න. Tick එක දැම්මොත් ආයෙ ආයෙ අහන එකකුත් නෑ.
ADB Commands අපිට පාවිච්චි කරන්න පුළුවන් ෆෝන් එක Recovery mode එකේ හෝ ROM එකේ සාමාන්ය Boot අවස්ථාවේදීත්. ඒත් Fastboot commands භාවිතා කරන්න පුළුවන් Bootloader Mode එකේදී නොහොත් Fastboot mode එකේදී විතරයි. ඒ වගේම Fastboot commands වලට Android SDK එක ඕනෙත් නෑ. Drivers තිබුණම ඇති. අනික් විශේෂ කාරණාව තමයි බොහොමයක් fastboot commands දුවවන්න නම් Bootloader එක unlock කරන් ඉන්න ඕන. bootloader එක අන්ලොක් කරගන්නෙත් ඉතින් fastboot එකෙන්ම තමයි.
වැඩේට බහින්න කලින් මතක තියාගන්න, ADB Commands ඔක්කොම Case Sensitive ඒ කිව්වේ සිම්පල් අකුරු කැපිටල් අකුරු වෙනස් අකුරු විදියටයි ගන්නේ. A වෙනුවට a අකුර ගහන්න බෑ. ඒ වගේම Folder paths වල හිස් තැන් තිව්වොත් බඩු බනිස්. හිස් තැන් ගැන ADB Commands සලකා බලනු නොලැබේ. ඒ නිසා මොනා හරි ෆෝල්ඩර් හදනවා නම් හිස් තැන් නොතබන්න වගබලාගන්න. අනික මේ සිංහල භාෂාව එහෙම ADB එක දන්නෑ හොඳේ, ෆෝල්ඩර් වගේ ඒවා සිංහලෙන් නම් කරන්න ගිහින් කෙළවගන්න එහෙම එපා.
අර උඩින් කිව්ව වැඩ ටික කරලා ඉවර නම්, ෆෝන් එක සාමාන්ය පරිදි ඔන් කරලා පරිගණකයට සම්බන්ධ කරන්න. එතකොට ෆෝන් එකේ පෙන්වයි ADB Connect වුණා කියලා. ඒ වගේම ෆෝන් එකේ ADB Access allow කරන්නද කියලා ඇහුවොත් ඒක allow කරන්න. කලිනුත් ඒක කිව්වා. දැන් අපි Commands ටිකක් ඉගෙනගනිමු.
ගොඩක් ජනතාව Windows නිසා සහ ඔය Command Line වහ කදුරු වෙලා ඉන්නේ Windows උන්ට නිසා විශේෂයෙන් එයාලට මම කියලා දෙන්නම් මේක. ඔයා දැන් මම අර කලින් කිව්වා වගේ Environment Variables හැදුවා නම් කිසි ගැටළුවක් නෑ Command Prompt කොහෙ ඕපන් කරත් මේ Commands වැඩ. Environment Variables හදාගන්න අපොහොසත් වුණා නම් 😑 ADB ෆෝල්ඩර් එකට හෝ ගිහින් එතන Command Prompt එකක් ගන්න. නැත්නම් ADB folder එකට හෝ android-sdk ෆෝල්ඩර් එකේ platform-tools එකට CMD වලින් යන්න.
(මේ ෆෝල්ඩර් දෙකක් දීලා තියෙන්නේ SDK එකයි Manufacture drivers පැක් එකයි දෙකම තියෙන නිසා. මෙයින් දෙකෙන් එකක් ඔයාට වැඩ කරයි. ඒත් platform-tools එකේ ඉඳන් fastboot commands ගහන්න ගියොත් අවුල් එන්න පුළුවන්. වැඩේ බැරි වෙන්නම පුළුවන්, මතක ඇතුව fastboot කමාන්ඩ්ස් ගහන්න කලින් Manufacture drivers වලට මූලිකත්වය දෙන්න. අවුල් ආවොත් Environment variables වලින් platform-tools ෆෝල්ඩර් එක අයින් කරලා දාලා Manufacture USB/fastboot drivers වලට විතරක් Environment Variables හදන්න, නැත්නම් Manufacture device drivers ෆෝල්ඩර් එකට CMD වලින් ගිහින් කෝඩ් රන් කරන්න. මේවා මේ ප්රායෝගික දේවල්, මේවා කට්ටිය කියලා දෙන්නෑ, වාත වෙලා හොයාගන්න ඕන. මම ඉතින් ඔන්නොහෙ කිව්වා.)දන්නවනෙ cd command එක ගහලා? අනේ දන්නැත්නම් පොඩ්ඩක් බලාගන්න google කරලා, ඒවා Android නෙවෙයි Windows කතා නේ.
හරි කොහොමින් කොහොම හරි දැන් CMD එක ඕපන් කරගෙන නම් ඉන්නේ, ADB කනෙක්ෂන් එක පරීක්ෂා කරන්නත් එක්ක අපි අපේ පළමු කමාන්ඩ් එක ගහලා බලමු.
Basic ADB Commands
මේකෙන් කරන්නේ දැනට Android Debug Bridge එකක් විදියට පරිගණකයට සම්බන්ධ වෙලා තියෙන උපාංග වල ලයිස්තුවක් ලබාගන්න එක. ඕක ටයිප් කරලා Enter එබුවම ඔයාගෙ ෆෝන් එකේ මොඩ්ල් නම්බර් එක හරි, නම හරි ඒ වගේ එකක් පෙන්නුවොත් වැඩේ ගොඩ.
මම මේ පහළින් දාන්නෙ මට ආව output එක. සමාවෙන්ඩ ඕන ඒ තියෙන්නේ Windows CMD එක නම් නෙවෙයි, ඒ ලිනක්ස් Terminal එකක්. ඔය output වෙනසක් නෑ වින්ඩෝස් වලත් එන්නෙ ඔහොමයි, මට Windows මගුලට නම් යන්න කියන්න එපා මේන් වැන්දා. බැරිම වැඩේ ඒක.
මෙතනින් එහාට මම කියන Commands වලින් සමහර ඒවා වලංගු වෙන්නේ කනෙක්ට් කරලා තියෙන්නේ එකම Android Device එකක් නම් විතරයි, කවුද ඉතින් එකපාරට තුන හතරක් ඔබන් ඕක කරන්නෙ. එහෙම ඔබන් කරන්න පුළුවන් එතකොට අදාළ device එකේ Serial එක ගහ ගහ නටන්න ඕන. එහෙම ඕනි නෑ නෙ.
Install an app
adb install path_to_apkමේකෙන් පුළුවන් Computer එකේ තියෙන APK එකක් ෆෝන් එකට ඉන්ස්ටෝල් කරන්න. මෙතන path_to_apk වෙනුවට අදාළ apk එක තියෙන ෆෝල්ඩර් path එක දෙන්න. නැත්නම් අදාළ apk එක platform-tools ෆෝල්ඩර් එකට දාගෙන ඉන්නකො. වැඩේ ලේසියි, එතකොට apk එකේ නම විතරක් ඇති. උදාහරණයක් විදියට,
adb install myapp.apk
මේක ගන්නකො. හරි අපි ඊළඟ එකට යන්.
Copy Files
ADB Commands වලින් අපිට පුළුවන් Phone එකට file/folder කොපි කරන්න. ඒ වගේම phone එකේ තියෙන file/folder එකක් computer එකට කොපි කරගන්න. මේ වැඩ දෙකට නම් දෙකක් භාවිතා වෙනවා,1) Android device එකෙන් Computer එකට - pull
2) Computer එකෙන් Android Device එකට - push
මේ වැඩ දෙකට ගහන කෝඩ් වලත් වෙනසක් තියෙනවා.
1) adb pull remote local
2) adb push local remote
පේන්න ඇති නෙ වෙනස. ඔය remote සහ local කියන්නේ file paths. Remote කිව්වේ Android device එකට, local කිව්වේ computer එකට. උදාහරණයක් දෙන්නම්.
adb push photo.jpg /sdcard/photo.jpg
අර උඩ කෝඩ් එකෙන් වෙන්නේ පරිගණකයේ තියෙන Photo එකක් Android Device එකට (ෆෝන් එකට) කොපි කිරීම. ඊළඟට ටිකක් බරපතළ commands ටිකක් බලමු.
Reboot into recovery
adb reboot recoveryමේ කමාන්ඩ් එකෙන් ඔයාට පුළුවන් ඔයාගෙ ෆෝන් එක Recovery එකට බූට් කරන්න.
Reboot to bootloader
adb reboot bootloaderඔන්න අපි ආස සහ වැඩිපුර බය හිතෙන Bootloader mode එකට නොහොත් fastboot mode එකට ෆෝන් එක බූට් කරගැනීමේ command එක.
හරි, හිතන්න එපා adb commands තියෙන්නේ මෙච්චරයි කියලා. මෙන්න ලිංක් එක, ඕන තරම් adb commands ඇති. බලාගන්නකො.
Android Debug Bridge (adb)
එහෙනම් අපි ADB commands මෙතනින් නවත්තලා යමු fastboot commands වලට.
Basic Fastboot Commands
මේවා run කරන්න නම් Android Device එක Bootloader mode නොහොත් fastboot mode එකේ තිබිය යුතුමයි.
fastboot devices
ADB එකේ වගේම මේ කෝඩ් එක රන් කරලා පුළුවන් සාර්ථකව සම්බන්ධ වෙලා තියෙන උපාංග බලාගන්න.
Reboot
fastboot rebootමේකෙන් පුළුවන් ෆෝන් එක සාමාන්ය විදියට (ROM එකෙන්) boot කරගන්න.
Reboot into recovery
fastboot reboot recoveryකියන්න දෙයක් නෑනෙ, මේකෙන් කරන්නෙ recovery එකට බූට් කරන එක.
Get blootloader status
fastboot oem device-infoමේකෙන් බලාගන්න පුළුවන් Bootloader එකේ තත්වේ. ඒ කිව්වේ ලොක්ද, අන්ලොක් ද කියන එක. Bootloader එක unlock නම්, True කියලා output එකක් එයි, lock නම් False කියලා output එකක් එයි.
Unlock bootloader
fastboot oem unlockමේකෙන් ඉතින් Bootloader එක අන්ලොක් වෙනවා Nexus devices වල නම්. ඒත් සාමාන්යයෙන් Bootloader එක unlock කරන්න ඔහොම ලේසියෙන් කෝඩ් එකක් ගහලා බෑ.
උදාහරණයක් විදියට Sony ෆෝන් එකක් නම්, එයාලට ඔයාගෙ IMEI එක දීලා, වගකීම් සහතිකය අවලංගු කරලා, එයාලගෙන් Key එකක් එහෙමත් නැත්නම්, ඔයාගෙ ෆෝන් එකේ bootloader එකටම විශේෂිත වුණ code එකක් ලබාගන්න ඕන. ඒ කෝඩ් එකත් ගත්තට පස්සේ
fastboot -i 0x0fce oem unlock 0x<insert your unlock code>
මෙන්න මේක ගහන්න වෙනවා, <insert your unlock code> වෙනුවට එයාලා දෙන කෝඩ් එක ගහන්නත් වෙනවා. ඔන්න, ඕකයි තත්වේ.
අනික බොහෝවිට ඔය කමාන්ඩ් එක ෆෝන් එකේ නිෂ්පාදකයා අනුව වෙනස් වෙනවා.
Format partitions
fastboot format:<file-system> <partition>මේ කමාන්ඩ් එක තියෙන්නේ මොකටද කියලා බැලූ බැල්මටම වැටහෙනවා ඇති. මේ කමාන්ඩ් එක යොදාගෙන පුළුවන් අපිට පාටිෂන් වෙන වෙනම ෆෝමැට් කරගන්න, අපිට අවශ්ය file system එකකින්. වර්තමානයේ Linux මෙහෙයුම් පද්ධති වල නිතර භාවිතා වෙන ෆයිල් සිස්ටම් එක තමයි ext4 නොහොත් Fourth Extended File System. මේකෙන් තමයි අපි Android වලත් පාටිෂන් ෆෝමැට් කරන්නේ. පහළ උදාහරණයෙන් වැඩේ පැහැදිලි කරගන්න.
fastboot format:ext4 system
මේකෙන් වෙන්නේ සිස්ටම් පාටිෂන් එක ext4 file system එකෙන් ෆෝමැට් වෙන එක. බඩුම තමා. 😂 මෙහෙම කළාට පස්සේ ආයෙ system එක ෆ්ලෑෂ් නොකර ෆෝන් එක ඔන් කරනවා බොරු.
Flash recovery
fastboot flash recovery <recovery.img>මේකෙන් කරන්නේ රිකවරි එකක් ෆ්ලෑෂ් කරන එක. ඩිවයිස් වලට අලුත් OS දානවා නම් (ROM flashing), zip flashing වගේ advanced වැඩ කරන්න නම් කස්ටම් රිකවරි එකක් ඕන. ඒ ගැන මම වෙනම ලියන බව කලින්ම පොරොන්දු වෙලා ඉන්නේ. ඉතින් ඒක අනිවාර්යයෙන්ම ලියනවා ඒ නිසා මෙතනදි ලොකු කතාවක් ඕන නෑ. <recovery.img> කියන තැනට එන්න ඕන ඔයා අලුතින් flash කරන්න යන Recovery එකේ නම. ඔයා හදන්නේ TWRP Recovery එක දාන්න නම් මෙන්න මේ වගේ එකක් තමයි කෝඩ් එක.
fastboot flash recovery twrp-3.0.1.2-falcon.img
වැඩි විස්තර අපි ඉදිරියේදී කතා කරමු.
Flash kernel
fastboot flash boot <boot.img>මේකෙන් කරන්නේ Boot පාටිෂන් එකට ඩිස්ක් ඉමේජ් ෆයිල් එකක් ෆ්ලෑෂ් කරන එක බව ඔයාලට පේනවා ඇති. කලින් පෝස්ට් එකේදි මම ඔයාලට කියලා දුන්නා නෙ /boot පාටිෂන් එකේ තියෙන්නේ Kernel එක සහ ramdisk එක කියලා. දැන් තේරෙන්න ඕන ඔයාගෙ ෆෝන් එකට කර්නල් එක ෆ්ලෑෂ් කරනකොටයි මේ කමාන්ඩ් එක ගහන්නේ.
ඔතන <boot.img> වෙනුවට ඔයා ෆ්ලෑෂ් කරන්න යන Kernel එකේ image file එකේ නම තමයි දෙන්න ඕන. මෙන්න මේක උදාහරණයක්.
fastboot flash boot xt1032-kernel.img
අන්න දැක්කනෙ? ඕන්න ඔහොමයි වැඩේ වෙන්නේ.
මතක තියාගන්න, අපි සාමාන්යෙන් Custom Kernel flash කරන්නේ මේ විදියට නෙවෙයි, Recovery එක හරහා. මේ විදියට පුළුවන් Stock Kernel එක ෆ්ලෑෂ් කරගන්නයි.
Flash ROM
fastboot mode එකේ ඉඳන් Stock ROM එක ෆ්ලෑෂ් කරන්නෙ මෙහෙමයි, මුලින්ම අපි ඩිවයිස් එක සුද්ද කරන් ඉන්න ඕන. ඒකට ගහනවා මෙන්න මෙහෙම.fastboot -w
ඊට පස්සෙ අපි කමාන්ඩ් එකක් ගහනවා ROM එක ෆ්ලෑෂ් වෙන්න.
fastboot update <path/rom.zip>
ROM එකක් අපිට එන්නේ සාමාන්යයෙන් zip එකක් විදියට. (img file එකක් හදලා flash කරන අවස්ථා තියෙනවා.) අන්න ඒ zip එක තමයි අර කලින් කමාන්ඩ් එකෙන් ෆ්ලෑෂ් වෙන්නේ. උදාහරණයක් ගමු අපි සුපුරුදු ලෙසම.
fastboot update /rom/stock-lollipop-xt1032.zip
මතක තියාගන්න, මෙහෙම අපිට කස්ටම් රොම් එකක් ඉන්ස්ටෝල් කරන්න බැහැ. කස්ටම් රොම් එකක් ඉන්ස්ටෝල් වෙද්දි වෙන සමහර Process මේ විදියට Handle කරන්න බැහැ කියලා සරලව මතක තියාගන්න. අපි ඒවා කරන්නේ Recovery එකේ.
***
හරි, බොහොම හොඳයි... මම මෙතනින් මේ කතාව නිම කරනවා, fastboot commands ඉවර නිසා නෙවෙයි මට ඇති කියලා හිතෙන නිසා 😂 මේ මූලික ටික ඇති කෙනෙක්ට මේ ගැන හදාරන්න, ආසාව ඇති කරගන්න.
මම චුට්ටක් වත් කියලා දුන්නෙ නෑ නෙ ADB එකේ ඉඳන් Android Shell එකට පනින සිද්දි එහෙම. ආ... ඒවා හැම එකම කියලා දෙන්න මේකෙ ඉඩ නෑ පුතාලා. හොඳ හොඳ සෙල්ලම්, 😁 උවමනාව තියෙන එකා හොයාගනීවි.
එහෙනම් ඔන්න පොරොන්දු ඉෂ්ට කළා, ඊළඟට අරන් එන්නෙ Recovery ගැන. සැපටම 😂 ඒක අරන් එනකන්...
යන්න කලින් කියන්නෙ, මේ මොනා හරි කරලා ෆෝන් එක කෙළවාගැනීම සම්බන්ධව මම වග කියන්නෑ 😌 ඔයාලා මේවා කරන්න ගිහින් ෆෝන් එක කඩාගෙන මං ගාවට ඇවිල්ලා මට ඇඟිල්ල දික් කරොත්, මම බක බක ගාලා ඔයාට හිනා වෙන්නම්. ඔයාගෙ ෆෝන් එකට, ඔයා කරගන්න Modification ගැන පූර්ණ වගකීම ඔබ අතේ.
අනික් කාරණාව, ඔයාලා දන්න දේවල් අපිටත් කියලා දෙන්න, මට මඟහැරුණු යමක් ඇත්නම් එකතු කරන්න, මගේ පෝස්ට් වල වැරදි ඇත්නම් පෙන්නන්න, පහළින් කමෙන්ට් කරන්න. මගේ ලොකු සීන් නෑ. අපි හරි අහිංසක ළමයි. :D
ගිහින් එන්නම්, ජය වේවා!
8 Comments
Comment කරාට කියෙව්වේ නෑ...
ReplyDeleteකමෙන්ට් එකම මදෑ ඉතින් :P
DeletePatta ❤️
ReplyDeleteThanks machan
DeleteIs there anyway to push ZIPs via Fastboot? (Without using a custom recovery like TWRP)
ReplyDeleteI'll reply you privately ma bro. :D
Deleteටුවිටරේ ලිංක් එක දැකල ආවෙ. මේව ටෙක් ඕයි. කියවන්න හිතෙන්නෑ
ReplyDeleteආව එකත් ඇති :P
Delete