অ্যান্ড্রয়েড অনুমতি

Android অনুমতিগুলি এমন নিয়ন্ত্রণ প্রদান করে যা ব্যবহারকারীর সচেতনতা বাড়ায় এবং সংবেদনশীল ডেটাতে একটি অ্যাপের অ্যাক্সেস সীমিত করে। অ্যান্ড্রয়েড 8.0 এবং তার নিচের সংস্করণগুলিতে অনুমতিগুলি কনফিগার করার মধ্যে অনুমোদিত তালিকা অন্তর্ভুক্ত রয়েছে, যেটি ছাড়াই বিশেষ সুবিধাপ্রাপ্ত অ্যাপগুলি অক্ষম করা হয়, এমনকি যদি সেগুলি priv-app পথে থাকে। Android 9 এবং উচ্চতর সংস্করণে, যে ডিভাইসটি সঠিকভাবে অনুমোদিত নয় এমন অ্যাপগুলি ব্যবহার করার চেষ্টা করে তা বুট হবে না।

অ্যান্ড্রয়েড 10 একটি ভূমিকার ধারণা প্রবর্তন করেছে, নির্দিষ্ট প্রয়োজনীয়তা এবং সুবিধার সাথে যুক্ত সিস্টেমের মধ্যে একটি অনন্য নাম। একটি নির্দিষ্ট উদ্দেশ্যে অনুমতি দেওয়ার জন্য অ্যাপগুলিকে ভূমিকা বরাদ্দ করুন এবং প্ল্যাটফর্ম কনফিগার সম্পদগুলি ব্যবহার করে ডিফল্ট ভূমিকাগুলি কনফিগার করুন৷

সম্ভাব্য ক্ষতিকারক অ্যাপস (PHAs) এর বিরুদ্ধে বর্ধিত সুরক্ষা উন্নত হয়

  • সম্ভাব্য ক্ষতিকারক অ্যাপ আচরণে স্বচ্ছতা।
  • অ্যাপ আচরণের উপর ব্যবহারকারীর নিয়ন্ত্রণ।
  • ব্যক্তিগত ডেটা ব্যবহার করার সময় অ্যাপ ডেভেলপারদের বিচক্ষণতা, অনুমতি দ্বারা সুরক্ষিত।

প্যাকেজ ইনস্টল এবং অনুমতি

অ্যান্ড্রয়েড 9 এবং তার নিচের সংস্করণে, প্যাকেজ ইনস্টলার এবং অনুমতি নিয়ন্ত্রণ কার্যকারিতা প্যাকেজইনস্টলার প্যাকেজে ( //packages/apps/PackageInstaller PackageInstaller ছিল। Android 10 এবং উচ্চতর সংস্করণে, অনুমতি নিয়ন্ত্রণ কার্যকারিতা একটি পৃথক প্যাকেজে থাকে, PermissionController ( //packages/apps/PermissionController )। চিত্র 1 দেখায় যে দুটি প্যাকেজ Android 10-এ কোথায় থাকে।

সিস্টেম অ্যাপের জন্য প্যাকেজ ইনস্টল এবং অনুমতি নিয়ন্ত্রণ কার্যকারিতা আলাদা করা এবং ব্যবহারকারী-ইন্সটল করা অ্যাপ ব্যবহার করে
চিত্র 1. Android 10-এ প্যাকেজ ইনস্টল এবং অনুমতি-নিয়ন্ত্রণ কার্যকারিতা

অনুমতি তালিকা এবং অ্যাক্সেস

Android 6.0 এবং উচ্চতর সংস্করণে, অ্যাপ্লিকেশানগুলি রানটাইমে বিপজ্জনক অনুমতিগুলিতে অ্যাক্সেসের অনুরোধ করে৷ অ্যান্ড্রয়েড 10 অ্যাক্টিভিটি রিকগনিশন (এআর) রানটাইম অনুমতি যোগ করে, যা ব্যবহারকারীকে বিপজ্জনক অনুমতি পরিবর্তন করতে বা অনুমতি দিতে অনুরোধ করে।

Android 8.0-এর জন্য আপনাকে /etc/permissions ডিরেক্টরিতে সিস্টেম কনফিগারেশন XML ফাইলগুলিতে বিশেষ সুবিধাপ্রাপ্ত অ্যাপগুলিকে সুস্পষ্টভাবে অনুমোদন করতে হবে। অ্যান্ড্রয়েড 9 এবং উচ্চতর, বিশেষাধিকারপ্রাপ্ত অনুমতিগুলিকে অবশ্যই অনুমোদিত তালিকায় থাকতে হবে বা ডিভাইসটি বুট করতে পারবে না৷

অভ্যন্তরীণ API দৃশ্যমানতা সীমিত করতে এবং অ্যাপগুলিকে দুর্ঘটনাক্রমে প্ল্যাটফর্ম লাইব্রেরিগুলি অ্যাক্সেস করা থেকে বিরত রাখতে, Android 7.0 নেটিভ লাইব্রেরির জন্য নেমস্পেস চালু করেছে৷ এটি সিস্টেম লাইব্রেরিগুলিকে অ্যাপ্লিকেশন লাইব্রেরি থেকে আলাদা করে এবং ডিভাইস নির্মাতারা তাদের নিজস্ব নেটিভ লাইব্রেরি যোগ করতে পারে।

অ্যান্ড্রয়েড 10 অ্যাপ থেকে শুরু করে ডিভাইসের স্ক্রীন কন্টেন্ট অ্যাক্সেস করার জন্য স্বাক্ষরের অনুমতি এবং ব্যবহারকারীর সম্মতি উভয়ই থাকতে হবে। বিশেষায়িত অ্যাপগুলি যেগুলি নীরব ক্যাপচার কার্যকারিতার উপর নির্ভর করে, যেমন একটি স্ক্রিনশট নেওয়া, পরিবর্তে মিডিয়াপ্রজেকশন ক্লাস ব্যবহার করা উচিত।

স্বচ্ছতা এবং গোপনীয়তা

Android 6.0 এবং উচ্চতর সংস্করণে, একটি ডিভাইস ফ্যাক্টরি MAC ঠিকানা Wi-Fi পরিষেবা প্রদানকারী এবং প্যাকেট বিশ্লেষক দ্বারা অ্যাক্সেস থেকে সুরক্ষিত। Android 10-এর অতিরিক্ত বিধিনিষেধগুলি অ্যাপগুলিকে অপরিবর্তনীয় ডিভাইস শনাক্তকারী (আইডি) অ্যাক্সেস করা থেকে সীমাবদ্ধ করে যদি না সেগুলি বিশেষাধিকারপ্রাপ্ত অনুমতিগুলির জন্য অনুমোদিত হয় ৷ ( কানেক্টিভিটি বিভাগটি ডিভাইস আইডেন্টিফায়ার সম্পর্কে একটি সম্পর্কিত আলোচনা প্রদান করে, কারণ এটি ক্যারিয়ারকে প্রভাবিত করে।)

অ্যান্ড্রয়েড 9 এবং তার নিচের সংস্করণে, অ্যাপগুলিতে অবস্থান অ্যাক্সেস দেওয়ার সময় ব্যবহারকারীরা অবিরাম পছন্দ করে। অ্যান্ড্রয়েড 10 থেকে শুরু করে, একটি ট্রাইস্টেট অবস্থানের অনুমতি বৈশিষ্ট্য ব্যবহারকারীদের একটি ডিভাইসের অবস্থানে অ্যাপ অ্যাক্সেসের অনুমতি দেওয়ার জন্য তিনটি বিকল্প দেয়। এই অনুমতির প্রয়োজনীয়তাগুলি লক্ষ্য SDK নির্বিশেষে Android 10-এর অ্যাপগুলিতে প্রয়োগ করা হয়।

Android 10 থেকে শুরু হওয়া অন্যান্য স্বচ্ছতা এবং গোপনীয়তা বৈশিষ্ট্যগুলির জন্য অনুমতিগুলি কনফিগার করুন৷

  • ব্যাকগ্রাউন্ড অ্যাক্সেস লোকেশন রিমাইন্ডার ব্যবহারকারীদের দেখায় যখন কোনো অ্যাপ ব্যাকগ্রাউন্ডে ACCESS_FINE_LOCATION অনুমতি ব্যবহার করে তাদের ডিভাইসের লোকেশন অ্যাক্সেস করে।
  • পরিচিতি-সম্পর্কিত ডেটা, পরিচিতি প্রদানকারী উপাদান দ্বারা পরিচালিত, ভিন্নভাবে অ্যাক্সেস করা হয়: অ্যাপগুলি ডাটাবেসের পরিচিতি সম্পর্কিত ডেটা থেকে লিখতে বা পড়তে পারে না। এটি কলার-সম্পর্কিত APIগুলিকে প্রভাবিত করে৷

স্ট্রীমলাইন কনফিগারেশন

অনুমতি কনফিগারেশন Android 6.0 এবং উচ্চতর জন্য সুগম করা হয়েছে.

  • init দ্বারা চালু করা পরিষেবাগুলির জন্য পরিবেষ্টিত ক্ষমতাগুলি একটি একক .rc ফাইলে পরিষেবা কনফিগারেশনের সমস্ত দিক রাখে। init দ্বারা চালু না হওয়া পরিষেবাগুলির জন্য ক্ষমতা নির্ধারণ করার সময়, পরিবর্তে fs_config.c ব্যবহার করে ফাইল সিস্টেমের ক্ষমতা কনফিগার করুন।
  • অ্যান্ড্রয়েড 7.x এবং নিম্নতর ডিভাইস-নির্দিষ্ট android_filesystem_config.h ফাইল ব্যবহার করে ফাইল সিস্টেমের ক্ষমতা এবং/অথবা কাস্টম ডিভাইস-উৎপাদক AIDs নির্দিষ্ট করতে Android IDs (AIDs) প্রক্রিয়া প্রসারিত করে। অ্যান্ড্রয়েড 8.0 এবং উচ্চতর ফাইল সিস্টেম ক্ষমতা প্রসারিত করার জন্য একটি নতুন পদ্ধতি সমর্থন করে৷
  • অ্যান্ড্রয়েড 8.0-এ, USB কমান্ডগুলি পরিচালনা করা ডিভাইস-নির্দিষ্ট init স্ক্রিপ্ট (HAL স্তরগুলির জন্য একটি প্রতিস্থাপন) থেকে বেরিয়ে একটি নেটিভ USB ডেমনে চলে গেছে। USB HAL ইন্টারফেস অবশ্যই Android 8.0 এবং উচ্চতর সংস্করণে লঞ্চ হওয়া প্রতিটি ডিভাইসে প্রয়োগ করতে হবে৷