আসসালামু আলাইকুম।
অন্যান্য ধর্মাবলম্বী ভাইদের প্রতি রইল অনেক অনেক শুভেচ্ছা ও অভিনন্দন।
অনেকদিন পরে আজকে আবার হাজির হলাম নতুন একটি পোস্ট নিয়ে। এই পোস্টটি অনেক আগেই করার জন্য প্রস্তুত করেছিলাম, কিন্তু ভুলে পোস্টের ফোল্ডারটি ডিলিট হয়ে যাওয়ায় বিরক্তিতে আর হাত লাগাইনি। আজ আবার নতুন করে প্রস্তুত করলাম। আজকের পোস্টটির বিষয় সম্পর্কে ট্রিকবিডিতে আগে বেশি কোনো পোস্ট হয়নি খুব সম্ভব। যাও হয়েছিল, তাতে দেখেছি ভিন্নতা রয়েছে। তাই এটি ট্রিকবিডিতে অনন্য!
ApkTool. অনেকেই এর নাম শুনেছেন নিশ্চয়ই। অনেকে হয়তোবা এর ব্যবহারও করেছেন Android App ভার্সন, যার সম্বন্ধে ট্রিকবিডিতে ইতিমধ্যেই পোস্ট করা হয়েছে। কিন্তু এটির পিসি ভার্সন-ই প্রধান। হ্যাঁ, এটির সম্বন্ধেই কথা বলতে আজকের এই পোস্ট।
ApkTool? সেটা আবার কি জিনিস? অনেকের মনেই হয়তো এই প্রশ্নটা ইতিমধ্যে উঁকি দিয়েছে। ApkTool হলো এক প্রকার Android Reverse Engineering Tool. এটির মাধ্যমে কোনো Android app-কে Decompile এবং পুনরায় Compile অথবা Unpack এবং Repack করা হয়। যারা কোনো অ্যাপের মধ্যে পরিবর্তন সংঘটিত করতে চান, তাদের জন্য অত্যন্ত গুরুত্বপূর্ণ টুল এটি। এটির মাধ্যমে আপনি কোনো System অ্যাপকে কোনো নির্দিষ্ট অ্যান্ড্রয়েড ফোনের Framework এর সাথে মিলিয়ে Decompile এবং Compile করতে সক্ষম হবেন। এক্ষেত্রে আপনার framework-res.apk নামক অ্যাপটি ApkTool এ ইন্সটল করে নিতে হবে। যাই হোক, আজকে দেখাব ApkTool-কে কিভাবে উইন্ডোজে ইন্সটল করবেন এবং framework-res.apk ইন্সটল করে কিভাবে কোনো অ্যান্ড্রয়েড অ্যাপকে Decompile ও Compile করবেন। মূলত, কোনো সিস্টেম অ্যাপ এডিটের ক্ষেত্রে এই ApkTool এর বিকল্প নাই। আপনারা অ্যান্ড্রয়েডের Apk Editor অ্যাপ দ্বারা অনেক অ্যাপই এডিট করতে পারবেন, কিন্তু কোনো সিস্টেম অ্যাপ এডিট করতে চাইলে বিভিন্ন সমস্যার মুখোমুখি হতে হবে। আর তাছাড়া, অন্য স্মার্টফোনে চালানোর জন্য কোনো এক স্মার্টফোনের সিস্টেম অ্যাপ পোর্ট করতে তো ApkTool এর জুড়ি নেই।
ApkTool ইন্সটল ও এ নিয়ে কাজ করতে আপনার পিসিতে অবশ্যই জাভা (Java) ইন্সটল করা থাকতে হবে। JDK (Java Development Kit) না থাকলেও চলবে, তবে JRE (Java Runtime Environment) থাকতেই হবে। যাদের ইন্সটল করা আছে, তাদের জাভা-র ভার্সন যেন অবশ্যই 1.7 বা এর থেকে অধিক হয়। ভার্সন জানা না থাকলে আপনার Command Prompt ওপেন করে তাতে java -version কমান্ডটি রান করিয়ে জেনে নিন। আর যাদের ইন্সটল করা নেই, তারা নিম্মের লিংকে গিয়ে আপনার পিসির bit অনুসারে লেটেস্ট ভার্সনটা ডাউনলোড করে ইন্সটল করে নিন।
Download Java Runtime Environment (JRE)
★ইন্সটলেশন পদ্ধতিঃ
এবারে ApkTool ইন্সটলেশনের কাজ শুরু। প্রথমে নিম্মের কোডগুলো Copy করে আপনার Notepad-এ Paste করুন, Save করুন apktool.bat নামে।
এরপরে নিম্মের লিংকে গিয়ে .jar এক্সটেনশনসহ ApkTool এর সর্বশেষ রিলিজপ্রাপ্ত ভার্সনটি ডাউনলোড করুন। ডাউনলোড হওয়ার পরে নাম যাই থাক না কেন Rename করে apktool.jar নামে সেভ করুন।
Download ApkTool.jar
এখন আবার নিম্মের লিংকে গিয়ে .exe এক্সটেনশনসহ ফাইলটি ডাউনলোড করে নিন। এটার ক্ষেত্রেও নাম যাই থাক না কেন aapt.exe নামে সেভ করুন।
Download aapt.exe
এখন আপনার কাছে ৩টি ফাইল আছে- apktool.bat, apktool.jar ও aapt.exe. সবগুলোকে Cut করে C:\Windows ডিরেক্টরিতে নিয়ে Paste করুন। এগুলোকে আপনি আপনার পছন্দমতো অন্য কোনো ডিরেক্টরিতে রাখতে চাইলে সেই ডিরেক্টরির path আপনার Environment Variables System এর Path ভ্যারিয়েবলে যোগ করে নিন; না পারলে বলতে পারেন, পোস্ট আরও বড় করতে চাচ্ছি না বলে এখানে দেখাতে পারলাম না, দুঃখিত।
★ব্যবহার পদ্ধতিঃ
কোনো নির্দিষ্ট ফোনের মডেল অনুযায়ী কোনো সিস্টেম অ্যাপ Decompile এবং Compile এর জন্য ঐ ফোনের framework-res.apk নামক অ্যাপটি ApkTool এ ইন্সটল করে নিতে হয়।
এজন্য প্রথমেই কাজ হলো আপনার Folder Options এ গিয়ে View ট্যাবের আন্ডারে Show hidden files, folders and drive নামক অপশনটি সিলেক্ট করে Apply দিয়ে আপনার সকল হিডেন ডিরেক্টরি উন্মুক্ত করা।
এরপরে আপনার C:\Users\ABCD\AppData\Local এ যান, যেখানে ABCD হলো আপনার পিসির Administration অ্যাকাউন্টের নাম। উক্ত ডিরেক্টরিতে গিয়ে apktool নামে একটা নতুন ফোল্ডার তৈরি করুন, তার মধ্যে প্রবেশ করে আবার framework নামে আরেকটা নতুন ফোল্ডার তৈরি করুন।
এই কাজটা প্রয়োজন হয় তাদের ক্ষেত্রে যাদের framework-res.apk নামক অ্যাপটি ApkTool এ ইন্সটলেশনে ইন্সটলেশন ডিরেক্টরি অটো তৈরি করতে সমস্যা দেখায়। তবুও সকলেরই করে নিতে দোষ কি!
এবারে framework-res.apk নামক অ্যাপটি পেতে যেকোনো রুট ম্যানেজার দিয়ে আপনার ফোনের framework-res.apk নামক অ্যাপটি Copy করে পিসিতে নিয়ে আসুন; একটা নতুন ফোল্ডার তৈরি করে সেখানে রাখাই ভালো, হ-য-ব-র-ল অবস্থা হবে না। রুট ডিরেক্টরিতে framework-res.apk নামক অ্যাপটির অবস্থান হলো /system/framework. এ কাজটি সরাসরি পিসির Command Prompt দ্বারাও করা যায় ADB বা Android Debug Bridge ইন্সটল করা থাকলে; তবে সেটা আমি দেখাচ্ছি না কারণ এই পোস্টের মাধ্যমে আমি চাচ্ছি আপনাদের কাছে সহজতর উপায়টিই তুলে ধরতে এবং Command Prompt এর ব্যবহার যত কম করে পারা যায়, সেটা করতে। কারণ অনেকেই আছেন যারা Command Prompt এর commanding এবং এর ব্যবহারকে ভয় পায়।
যাই হোক, framework-res.apk অ্যাপটি আপনার পিসিতে নেয়া হলে সেটি যে ডিরেক্টরিতে আছে সেই ডিরেক্টরিতে আপনার Command Prompt খুলুন। এক্ষেত্রে আশা করি আমার পূর্বের একটি পোস্ট আপনাদের সহায়তা করতে সক্ষম হবে-
লিনাক্সের মতো উইন্ডোজের যেকোনো ড্রাইভ বা ডিরেক্টরি থেকে Command Prompt চালু করুন।
framework-res.apk নামক অ্যাপটির ডিরেক্টরিতে Command Prompt রান করা হলে তাতে নিম্মের কমান্ডটি টাইপ করে Enter চেপে রান করান-
apktool if framework-res.apk
ইন্সটলেশন কমপ্লিট হলে নিচের মতো দেখাবে এবং ইন্সটলেশন ডিরেক্টরি হবে C:\Users\ABCD\AppData\Local\apktool\framework–
Framework তো ইন্সটল করা সম্পন্ন হলো, এবার কিভাবে কোনো সিস্টেম অ্যাপ বা সাধারণ অ্যাপ ডিকম্পাইল করবেন! আমি এখানে framework-res.apk অ্যাপটি দ্বারাই দেখাচ্ছি কিভাবে এটিকে ডিকম্পাইল করতে হয়। আপনারা অন্য কোনো অ্যাপকে ডিকম্পাইল করতে Command Prompt এ কমান্ডের ক্ষেত্রে শুধু framework-res.apk এর স্থলে আপনার বাছাইকৃত অ্যাপের নাম দিবেন।
ডিকম্পাইল করার ক্ষেত্রে নিম্মের কমান্ডটি রান করান-
apktool d framework-res.apk
ডিকম্পাইল করা হয়ে গেলে যেখানে আপনার অ্যাপটি রয়েছে, সেই ডিরেক্টরিতে গিয়ে দেখুন ঐ অ্যাপের নামে .apk এক্সটেনশন ছাড়া একটি ফোল্ডারে অ্যাপের সকল source code ও অন্যান্য assets সমূহ রয়েছে।
এখন আপনার যেখানে খুশি, নিয়মানুযায়ী পরিবর্তন ঘটান। বিভিন্ন ফাইল ওপেন করতে স্বাভাবিকভাবে উইন্ডোজে ইন্সটলকৃত প্রোগ্রামসমূহের বাইরেও অনেক প্রোগ্রামের প্রয়োজন হয়, সেগুলো পেতে গুগলে ঘাঁটাঘাঁটি করুন। ইচ্ছেমতো পরিবর্তন করা হয়ে গেলে অ্যাপটি আবার Rebuild বা Compile করতে Command Prompt এ নিচের কমান্ডটি রান করান-
apktool b framework-res.apk
আপনার অ্যাপটি Rebuild করা হয়ে গেলে উক্ত অ্যাপের নামের ফোল্ডারের ভিতরে গিয়ে দেখুন নতুন একটি ফোল্ডার এসেছে dist নামে যার মধ্যে রয়েছে আপনার compile করা অ্যাপটি।
এখনই অ্যাপটি ইন্সটল করার চিন্তা করবেন না, কাজ কিছুটা আরো বাকি আছে। এখন আপনার অ্যাপটি Sign করতে হবে। Sign করার ক্ষেত্রে Command Prompt এর দ্বারা যে ব্যবস্থাটি রয়েছে সেটার জন্য আপনাকে আরো একটি প্রোগ্রাম ইন্সটল করতে হবে এবং Command Prompt এ রান করাতে হবে দু-তিন লাইনের একটি কমান্ড; যেটা আপনাদের কাছে বিরক্তিকর মনে হবে। তাই এই signing এর কাজটা সহজভাবে সম্পন্ন করতে আমার উপদেশ হলো কোনো Android App ব্যবহার করা। এক্ষেত্রে আপনারা Zip Signer অথবা MiXplorer নামক ফাইল ম্যানেজার এর Mix Signer প্লাগিন অ্যাপটি ব্যবহার করতে পারেন। এগুলোর মাধ্যমে কোনো অ্যাপ sign করা খুবই সহজ। Zip Signer দ্বারা কোনো অ্যাপ sign করা নিয়ে ট্রিকবিডিতে পূর্বে একটি পোস্ট রয়েছে, খুঁজে দেখতে পারেন; এনিয়ে আমি ভবিষ্যতে কোনো পোস্ট করতে চেষ্টা করবো। Sign করা হয়ে গেলেই আপনি অ্যাপটি ইন্সটল করতে পারবেন।
কমান্ডগুলোর স্ট্রাকচারটি হলো- [apktool] [কোনো নির্দিষ্ট কমান্ড] [অ্যাপের সঠিক নাম] . যেখানে if দ্বারা কোনো অ্যাপকে ApkTool এ ইন্সটল করা হয়, d দ্বারা কোনো অ্যাপকে Decompile বা Unpack করা হয় এবং b দ্বারা কোনো অ্যাপকে Compile বা Rebuild করা হয়। আমি যদিও আপনাদেরকে বেসিক কমান্ডগুলোর ব্যবহার দেখিয়েছি, তারপরেও ApkTool এর আরো অনেক কমান্ড রয়েছে। সেগুলো দেখতে চাইলে Command Prompt এ apktool লিখে রান করান।
পোস্টটি ভালো না লাগলে দুঃখিত। কোনো ভুল পেলে দয়া করে জানাবেন, আমি অতি শীঘ্র তা সংশোধন করতে চেষ্টা করব; শুধু-শুধু কমেন্টে নিন্দনীয় ভাষা ব্যবহার করে নিজের বংশ সম্বন্ধে অন্যদেরকে খারাপ কিছু ভাবনার সুযোগ দিবেন না।
আমার দ্বারা পোস্টকৃত কোনো পোস্টে কমেন্ট করতে এলে ইংরেজি ব্যবহার করতে চাইলে ভালোভাবে করবেন, তা নাহলে বাংলাটা যেভাবে পারেন সেভাবেই করুন। কারণ nc, tnx, wlcm এধরণের ফালতু কোনো কমেন্ট পাওয়ার জন্য আমি মনে করি না আমি কোনো বিশৃঙ্খল-অগোছালো লেখা লেখি; আমি লেখি আমি যা জানি সেটা জানানোর জন্য।
ধন্যবাদ।।।