How to remove any permission from an Android app.
আসসালামু আলাইকুম।
অন্যান্য সকল ধর্মাবলম্বী ভাইদের জানাই অনেক-অনেক শুভেচ্ছা ও অভিনন্দন।
এ বিষয় নিয়ে আমার গত পর্বটি যারা মিস করেছেন এবং এখন সেটার বিষয়েও আগ্রহী, তারা নিচের লিংকটিতে প্রবেশ করুন-
অ্যান্ড্রয়েডের যেকোনো অ্যাপ হতে অবাঞ্চিত বা অপ্রয়োজনীয় পারমিশন রিমোভ করার উপায়। [পর্ব – ১]
গতপর্বে দেখিয়েছিলাম পিসির সাহায্যে কি করে কোনো অ্যান্ড্রয়েড অ্যাপের যেকোনো অপ্রয়োজনীয় ও সন্দেহজনক পারমিশন রিমোভ করা যায়। প্রতিশ্রুতি মতো আজ দেখাব একই কাজ কিভাবে অ্যান্ড্রয়েড ব্যবহার করে সম্পন্ন করা যায়। পিসি দ্বারা যে পদ্ধতি আমি দেখিয়েছি সেটা যতটা ঝামেলাপূর্ণ বা কষ্টকর মনে হয়, তার চেয়ে অ্যান্ড্রয়েড দ্বারা যে পদ্ধতি দুটি দেখাব উভয়ই তুলনামূলকভাবে কম কষ্টকর মনে হবে বলে আশা করি।
অ্যান্ড্রয়েডের প্রথম পদ্ধতিতে দেখানোর কথা ছিল Lucky Patcher অ্যাপ ব্যবহার করে পারমিশন রিমোভ ও দ্বিতীয় পদ্ধতিতে Apk Editor এর ব্যবহার। যাদের কাছে অ্যাপ দুটি নেই তারা নিম্মের ডাউনলোড লিংক হতে ডাউনলোড করে নিতে পারেন-
অ্যাপ দুটি অ্যান্ড্রয়েড ব্যবহারকারীদের জন্য এমনভাবে প্রয়োজনীয়তার অংশ জুড়ে আছে যে এ দুটো প্রায় সবাই-ই চিনবেন আশা করি।
আমি এ পোস্টে আপনাদেরকে উদাহরণ হিসেবে দেখানোর সুবিধার্থে বহুল পরিচিত Ludo King গেমসটার সন্দেহজনক স্টোরেজ পারমিশনটাকে ডিজেবল করা দেখাব।
উপরের চিত্রে Ludo King এ যতগুলো পারমিশন চাওয়া হয়, সেগুলো দেখানো হয়েছে। তার মধ্যে সর্বনিম্মের পারমিশনটি হলো স্টোরেজ অ্যাক্সেস পারমিশন-
android.permission.WRITE_EXTERNAL_STORAGE
READ_EXTERNAL_STORAGE পারমিশনটিও এর অন্তর্ভুক্ত। এগুলোর কাজ হচ্ছে বিনা অনুমতিতে প্রয়োজন ব্যতিত অন্যের ফাইলগুলোতে ঢুঁ মারা এবং হাবিজাবি অ্যাডভারটাইজমেন্ট ডাউনলোড করা। তাই আমি চাচ্ছি এ পারমিশনটাকে Ludo King অ্যাপটা থেকে বাদ দিতে।
এই বাদ দেওয়ার ক্ষেত্রেই আমি দুটি উপায় এখানে দেখাব। প্রথমে Lucky Patcher দিয়েই শুরু করছি।
☞ Way to remove any permission from an android app using Lucky Patcher:
অবশ্যই Lucky Patcher টি আপনার অ্যান্ড্রয়েডে ইন্সটল থাকতে হবে এবং ওপেন করতে হবে। ওপেন করার পরে নিচ থেকে Rebuild & Install বাটনে ক্লিক করে আপনার কাঙ্খিত অ্যাপটা খুঁজে বের করুন। অ্যাপটার উপরে আলতো একটা ট্যাপ করুন, একটা ডায়ালগ বক্স আসবে। সেখান হতে Rebuild এ ট্যাপ করুন।
পরের ডায়ালগ বক্সে APK with changed Permissions and Activities সিলেক্ট করুন।
এ ধাপটা মূল ধাপ হিসেবে বিবেচিত। উপরের ধাপটির পরে যে আরেকটি ডায়ালগ বক্স আসবে, সেখানে ওই অ্যাপটির পারমিশন ও অ্যাক্টিভিটি গুলো দেখা যাবে। সকল পারমিশনগুলো সবুজ রং বিশিষ্ট থাকবে। অ্যাক্টিভিটিগুলো অন্য রঙের থাকবে, এগুলো ইগনোর করতে হবে। সবুজ রঙ বিশিষ্ট পারমিশনগুলোর মধ্য হতে দেখুন আপনার কাছে অপ্রয়োজনীয় পারমিশনটি বা পারমিশনগুলো কোথায় আছে। সেগুলোর উপরে একটা ট্যাপ করে ডিজেবল করুন, এতে রঙ পরিবর্তন হয়ে লাল হয়ে যাবে। এভাবে অনাকাঙ্খিত পারমিশনগুলো লাল করুন। আমার ক্ষেত্রে Ludo King এর উদাহরণ-
উপরে আমি স্টোরেজ পারমিশন ডিজেবল করে দিয়েছি। এখন উক্ত ডায়ালগ বক্সের নিম্মাংশের Rebuild The App এ ট্যাপ করে দু-এক মিনিট অপেক্ষা করুন, অ্যাপের সাইজ অনুসারে সময় কম বেশি লাগবে। অ্যাপ রিবিল্ড হয়ে গেলে নতুন এক ডায়ালগ বক্স আসবে Rebuild Summary টাইটেলের।
এ ডায়ালগ বক্স হতে দেখে নিন আপনার অ্যাপটি রিবিল্ড হয়ে কোথায় গিয়ে জমা হয়েছে। সেখানে গিয়ে অ্যাপটি ইন্সটল করে ফেলুন সন্দেহজনক পারমিশন ব্যতিরেকে।
☞ Way to remove any permission from an android app using Apk Editor:
Apk Editor ওপেন করে আপনার যে অ্যাপটির পারমিশন রিমোভ করতে চাচ্ছেন সেটার ওপরে ট্যাপ করুন, Full Edit (RESOURCE RE-BUILD) সিলেক্ট করুন।
স্ক্রিনের নিম্মাংশ হতে Manifest ট্যাবে ট্যাপ করুন।
এখানের AndroidManifest.xml ফাইল হতে আপনি যে পারমিশনটি দূর করতে চান, সেই পারমিশন বিষয়ক লাইনটি খুঁজে বের করুন। আমার Ludo King এর ক্ষেত্রে-
এবারে সেই লাইনটির উপরে কয়েকসেকেন্ড আলতো চেপে ধরে রাখুন (যাকে ‘ট্যাপ এন্ড হোল্ড’ বলে)। নিম্মের মতো ডায়ালগ বক্সটি আসবে।
উক্ত ডায়ালগ বক্স হতে Delete this Line সিলেক্ট করুন। এরপরে উপরে ডান কোণা হতে Build বাটনে ট্যাপ করুন।
কোনো ভুল কর্ম সম্পাদন না করিয়া থাকিলে কোনো Error আসিবার সম্ভাবনা নাই।
অ্যাপটি রিবিল্ড হয়ে গেলে দেখবেন সেই অযাচিত পারমিশনটি আর অ্যাপটার সাথে বাস করছে না, ছেড়ে-ছুঁড়ে চলে গেছে।
যারা এ বিষয়ের প্রথম পর্বটি দেখেছেন, তারা Apk Editor এর অংশটা দেখে কনফিউজড হতে পারেন এই ভেবে যে- প্রথম পর্বে পারমিশনটাকে অচল করতে লাইনের মূল অ্যাট্রিবিউট এর পাশে নতুন এক অ্যাট্রিবিউট ও ভ্যালু (tools:node=”remove”) যোগ করেছি, সে একই কাজটা কেন এখন করলাম না? অথবা Apk Editor এ করা পদ্ধতির মতো লাইন ডিলেট কেন পিসির সেই Apk Studio তে করলাম না? যেহেতু উভইটিতেই তো AndroidManifest.xml ফাইলটার এডিটের কাজ করেছি!
এক্ষেত্রে জবাব হলো- উভয় ক্ষেত্রে উল্টিয়ে করলে রিবিল্ডের সময় ইরোর আসতো। Apk Studio সফটওয়্যারটি AndroidManifest.xml এর কোনো লাইন সরাসরি ডিলেট সহ্য করবে না, লাইনটার সাথের কো-সোর্স কোডগুলোও ডিলেট করতে হবে। এসকল কোড Smali ফোল্ডারের বিভিন্ন Java ফাইলের মধ্যে আছে, যেগুলো খুঁজে-খুঁজে ডিলেট করা দুরূহ কাজ। শুধু পারমিশন লাইনটা ডিলেট করে দিলে অ্যাপ রিকম্পাইল হবে না। তাই এক্ষেত্রে tools:node=”remove”-ই ব্যবহার করতে হবে।
আবার, Apk Editor-ও tools:node=”remove” সহ্য করতে পারে না, সে পারমিশন ডিলেটের ক্ষেত্রে AndroidManifest.xml ফাইল হতে পারমিশন সম্পর্কীয় লাইনটার ডিলেটই সাপোর্ট করে; যেকথা অ্যাপটার Help পেজে উল্লেখ আছে। আশা করি কনফিউশনটা দূর করতে সক্ষম হয়েছি।
পারমিশন রিমোভের ক্ষেত্রে যে তিনটা পদ্ধতি বা উপায় আমি দেখিয়েছি দুই পর্বে, সেগুলো সকল অ্যাপের ক্ষেত্রে কাজ নাও করতে পারে। তবে অধিকাংশ অ্যাপই বাধ্য হবে তার অপরাধী সঙ্গী পারমিশনটাকে নিজ কাঁধ হতে ঝেড়ে ফেলতে। কিছু-কিছু অ্যাপ সঠিকভাবে নাও চলতে পারে রিবিল্ডের পরে, সেক্ষেত্রে কিছু করার নেই ভাগ্যকে মেনে নেয়া ছাড়া!
পোস্টটি ভালো না লাগলে দুঃখিত। কোনো ভুল পেলে দয়া করে জানাবেন, আমি অতি শীঘ্র তা সংশোধন করতে চেষ্টা করব; শুধু-শুধু কমেন্টে নিন্দনীয় ভাষা ব্যবহার করে নিজের বংশ সম্বন্ধে অন্যদেরকে খারাপ কিছু ভাবনার সুযোগ দিবেন না।
ধন্যবাদ।।।