রানটাইম অনুমতি

অ্যান্ড্রয়েড .0.০ এবং উচ্চতর ক্ষেত্রে, অ্যান্ড্রয়েড অ্যাপ্লিকেশন অনুমতিগুলির মডেলটি ব্যবহারকারীদের জন্য অনুমতিগুলি আরও বোধগম্য, দরকারী এবং সুরক্ষিত করার জন্য ডিজাইন করা হয়েছে। মডেলটি অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলিকে একটি ইনস্টল-টাইম অনুমতি মডেল থেকে একটি রানটাইম অনুমতি মডেলটিতে বিপজ্জনক অনুমতিগুলি ( প্রভাবিত অনুমতিগুলি দেখুন ) সঞ্চারিত করে :

  • ইনস্টল-সময় অনুমতি

    ( অ্যান্ড্রয়েড 5.1 এবং নিম্ন ) ব্যবহারকারীরা কোনও অ্যাপ্লিকেশন ইনস্টল করা বা আপডেট করার সময় বিপজ্জনক অনুমতি দেয়। ডিভাইস নির্মাতারা এবং ক্যারিয়ারগুলি ব্যবহারকারীকে অবহিত না করে অ্যাপ্লিকেশনগুলিকে প্রিগ্রেন্টেড অনুমতি দিয়ে ইনস্টল করতে পারে।

  • রানটাইম অনুমতি

    ( অ্যান্ড্রয়েড .0.০ - ৯ ) ব্যবহারকারীরা যখন অ্যাপটি চলছে তখন কোনও অ্যাপকে বিপজ্জনক অনুমতি দেয়। যখন অনুমতিগুলির জন্য অনুরোধ করা হয় (যেমন অ্যাপ্লিকেশনটি কখন চালু হয় বা যখন ব্যবহারকারী কোনও নির্দিষ্ট বৈশিষ্ট্য অ্যাক্সেস করে) অ্যাপ্লিকেশানের উপর নির্ভর করে তবে ব্যবহারকারী নির্দিষ্ট অনুমতি গ্রুপগুলিতে অ্যাপ্লিকেশন অ্যাক্সেসকে মঞ্জুরি / অস্বীকার করে। OEM / ক্যারিয়ারগুলি অ্যাপ্লিকেশনগুলি প্রিনস্টল করতে পারে, তবে ব্যতিক্রম প্রক্রিয়াটি না চালালে তারা অগ্রিম অনুমতির অনুমতি নিতে পারে না। ( ব্যতিক্রমগুলি তৈরি করা দেখুন))

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

রানটাইম অনুমতিগুলি অ্যাপ্লিকেশনগুলিকে ব্যবহারকারীর সম্মতি ব্যতিরেকে ব্যক্তিগত ডেটাতে অ্যাক্সেস পেতে বাধা দেয় এবং অ্যাপ্লিকেশনগুলি যেগুলি চাচ্ছে বা মঞ্জুর করা হয়েছে তার ধরণের অতিরিক্ত প্রসঙ্গ এবং দৃশ্যমানতার সাথে তাদের সরবরাহ করে। রানটাইম মডেলটি বিকাশকারীদের যাতে অ্যাপ্লিকেশনগুলিতে অনুরোধকৃত অনুমতিগুলির প্রয়োজন হয় তা বুঝতে সহায়তা করে এবং আরও স্বচ্ছতা দেয় যাতে ব্যবহারকারীরা তাদের দেওয়া বা অস্বীকার সম্পর্কে আরও ভাল সিদ্ধান্ত নিতে পারে।

প্রভাবিত অনুমতি

অ্যানড্রয়েড and.০ এবং তার বেশি বয়সের জন্য রানটাইম অনুমতিগুলির মডেলটি ব্যবহার করতে বিপজ্জনক অনুমতি প্রয়োজন। বিপজ্জনক অনুমতিগুলি READ_CALENDAR উচ্চ-ঝুঁকির অনুমতি (যেমন READ_CALENDAR ) যা অনুরোধকারী অ্যাপ্লিকেশনগুলিকে ব্যক্তিগত ব্যবহারকারীর ডেটাতে অ্যাক্সেস দেয় বা কোনও ডিভাইসে নিয়ন্ত্রণ দেয় যা ব্যবহারকারীর উপর নেতিবাচক প্রভাব ফেলতে পারে। বিপজ্জনক অনুমতিগুলির একটি তালিকা দেখতে, কমান্ডটি চালান:

adb shell pm list permissions -g -d

অ্যান্ড্রয়েড .0.০ এবং উচ্চতর সাধারণ অনুমতিগুলির আচরণ পরিবর্তন করে না। এগুলি হ'ল সাধারণ, সিস্টেম এবং স্বাক্ষরের অনুমতি সহ অ-বিপজ্জনক অনুমতি। সাধারণ অনুমতিগুলি SET_WALLPAPER নিম্ন-ঝুঁকির অনুমতি (যেমন SET_WALLPAPER ) যা অনুরোধকারী অ্যাপ্লিকেশনগুলিকে বিচ্ছিন্ন অ্যাপ্লিকেশন-স্তরের বৈশিষ্ট্যগুলিতে অন্যান্য অ্যাপ্লিকেশন, সিস্টেম বা ব্যবহারকারীর সর্বনিম্ন ঝুঁকির সাথে অ্যাক্সেস দেয়। অ্যানড্রয়েড 5.1 এবং নিম্ন রিলিজের মতো, সিস্টেমটি স্বয়ংক্রিয়ভাবে ইনস্টলেশনের সময় একটি অনুরোধকারী অ্যাপ্লিকেশনটিকে সাধারণ অনুমতি দেয় এবং ব্যবহারকারীকে অনুমোদনের জন্য অনুরোধ করে না। অনুমতি সম্পর্কিত বিশদগুলির জন্য, <সংক্ষেপণ> উপাদান ডকুমেন্টেশন দেখুন।

অ্যান্ড্রয়েড 10 এ কঠোর এবং নরম বিধিনিষেধ

বিপজ্জনক হওয়ার পাশাপাশি, অনুমতিটি কঠোর-সীমাবদ্ধ বা নরম-সীমাবদ্ধ হতে পারে। উভয় ক্ষেত্রেই, সীমাবদ্ধ অনুমতিটি অবশ্যই শ্বেত তালিকাভুক্ত করা আবশ্যক। শ্বেত তালিকাভুক্ত কঠোর বিধিনিষেধগুলি অ-শ্বেতাযুক্ত তালিকাভুক্ত নরম বিধিনিষেধের চেয়ে আলাদা আচরণ করে:

  • ( কঠোর বিধিনিষেধ ) অ্যাপ্লিকেশনগুলিকে শ্বেত তালিকাভুক্ত নয় এমন অনুমতি দেওয়া যাবে না।
  • ( নরম সীমাবদ্ধতা ) শ্বেত তালিকাভুক্ত অ্যাপস তাদের অনুরোধের নির্দিষ্ট অনুমতি অনুযায়ী আচরণ করে। অনুরোধের অনুমতি পাওয়ার জন্য পাবলিক ডকুমেন্টেশনে আচরণটি বর্ণিত হয়েছে।

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

শ্বেত তালিকাটি ইনস্টলেশনের সময় হয় এবং কখন হয়

  • অ্যান্ড্রয়েড 9-থেকে -10 আপগ্রেড করার সময় একটি অ্যাপ্লিকেশন ইতিমধ্যে ইনস্টল করা আছে।
  • একটি অনুমতি প্রিগ্রেন্ট করা হয় বা একটি অ্যাপ্লিকেশন পুনরায় ইনস্টল করা হয়।
  • অনুমতিটি শ্বেত তালিকাতে ইতিমধ্যে সংজ্ঞায়িত এমন ভূমিকার জন্য অনুমতি প্রয়োজন।
  • ইনস্টলার (যেমন গুগল প্লে স্টোর) সাদা-তালিকাভুক্ত হিসাবে অনুমতিটি চিহ্নিত করে।

ব্যবহারকারীরা ম্যানুয়ালি শ্বেতলিস্ট অনুমতি অনুমতি করতে পারবেন না।

প্রয়োজনীয়তা

রানটাইম অনুমতির মডেল সেটআপ প্রক্রিয়ার অংশ হিসাবে ডিভাইসে বিতরণ করা প্রাক ইনস্টলড অ্যাপ্লিকেশন এবং অ্যাপ্লিকেশন সহ সমস্ত অ্যাপ্লিকেশনগুলিতে প্রযোজ্য। অ্যাপ্লিকেশন সফ্টওয়্যার প্রয়োজনীয়তা অন্তর্ভুক্ত:

  • রানটাইম অনুমতি মডেল অ্যান্ড্রয়েড 6.0 এবং উচ্চতর চলমান সমস্ত ডিভাইস জুড়ে অবশ্যই সামঞ্জস্য হতে হবে। এটি অ্যান্ড্রয়েড সামঞ্জস্যতা টেস্ট স্যুট (সিটিএস) পরীক্ষা দ্বারা প্রয়োগ করা হয়।
  • অ্যাপ্লিকেশনগুলিকে অবশ্যই রানটাইমের সময় ব্যবহারকারীদের অনুমতি দেওয়ার জন্য অনুরোধ জানাতে হবে। বিশদ জন্য, অ্যাপ্লিকেশন আপডেট করা দেখুন । ডিফল্ট অ্যাপ্লিকেশন এবং হ্যান্ডলারের ক্ষেত্রে সীমিত ব্যতিক্রম মঞ্জুর করা যেতে পারে যা ডিভাইসের প্রত্যাশিত অপারেশনের জন্য মৌলিক ডিভাইস কার্যকারিতা মৌলিক সরবরাহ করে। (উদাহরণস্বরূপ, পরিচালনা করার জন্য ডিভাইস এর ডিফল্ট ডায়লার অ্যাপ ACTION_CALL বিস্তারিত জানার জন্য ফোনের অনুমতি অ্যাক্সেস থাকতে পারে।), দেখতে ব্যতিক্রম তৈরি করা হচ্ছে
  • প্রিললোড হওয়া অ্যাপ্লিকেশনগুলিতে বিপজ্জনক অনুমতি রয়েছে অবশ্যই এপিআই স্তরের 23 টি লক্ষ্য করে রানটাইম অনুমতি মডেল বজায় রাখতে হবে maintain এটি হ'ল, অ্যাপ্লিকেশন ইনস্টলেশন চলাকালীন UI প্রবাহকে অবশ্যই PermissionController এর AOSP বাস্তবায়ন থেকে বিচ্যুত করা উচিত নয়, ব্যবহারকারীরা প্রাক-ইনস্টল করা অ্যাপ্লিকেশনগুলির বিপজ্জনক অনুমতিগুলি বাতিল করতে পারে এবং এই জাতীয় কিছু।
  • হেডলেস অ্যাপ্লিকেশনগুলিকে অনুমতিগুলির জন্য অনুরোধ করতে বা প্রয়োজনীয় অনুমতি রয়েছে এমন কোনও অ্যাপ্লিকেশনটির সাথে ইউআইডি ভাগ করতে অবশ্যই একটি ক্রিয়াকলাপ অবশ্যই ব্যবহার করা উচিত। বিশদ জন্য, হেডলেস অ্যাপ্লিকেশন দেখুন

অনুমতি স্থানান্তর

অ্যান্ড্রয়েড x.০ এর অ্যাপ্লিকেশনগুলিতে অনুমোদিত মঞ্জুরিগুলি অ্যান্ড্রয়েড .0.০ বা উচ্চতর আপডেট করার পরে অনুমোদিত হয়, তবে ব্যবহারকারীরা যে কোনও সময় এই অনুমতিগুলি প্রত্যাহার করতে পারেন।

একটি অ্যান্ড্রয়েড 9-থেকে-10 আপডেটে, সমস্ত কঠোর-সীমাবদ্ধ অনুমতিগুলি শ্বেত তালিকাভুক্ত করা হয়। অগ্রভাগ / পটভূমি বিভাজনের অনুমতিগুলি বাস্তবায়নের বিশদগুলির জন্য, অনুরোধ পটভূমির অবস্থানের সূচনা দিয়ে Android 10 গোপনীয়তার পরিবর্তন দেখুন change

মিশ্রণ

অ্যান্ড্রয়েড .0.০ এবং উচ্চতর অ্যাপ্লিকেশন রানটাইম অনুমতিগুলির মডেলকে একীকরণ করার সময়, আপনাকে অবশ্যই নতুন মডেলটির সাথে কাজ করতে প্রিনস্টল অ্যাপ্লিকেশনগুলি আপডেট করতে হবে। আপনি মূল অ্যাপ্লিকেশনগুলির জন্য ব্যতিক্রমগুলি সংজ্ঞায়িত করতে পারেন যা মূল কার্যকারিতার জন্য ডিফল্ট হ্যান্ডলার / সরবরাহকারী, কাস্টম অনুমতিগুলি সংজ্ঞায়িত করতে এবং PermissionController অ্যাপ্লিকেশনটিতে ব্যবহৃত থিমটি কাস্টমাইজ করতে পারে।

অ্যাপ্লিকেশন আপডেট করা হচ্ছে

সিস্টেম ইমেজের অ্যাপ্লিকেশনগুলি এবং প্রাক-ইনস্টল করা অ্যাপ্লিকেশনগুলি স্বয়ংক্রিয়ভাবে প্রিগ্রেটেড অনুমতিগুলি হয় না। আমরা আপনাকে বিকাশকারী নির্দেশিকা ব্যবহার করে প্রয়োজনীয় অ্যাপ্লিকেশন পরিবর্তন করতে প্রিনস্টিনযুক্ত অ্যাপ বিকাশকারীদের (ওএম, ক্যারিয়ার এবং তৃতীয় পক্ষ) সাথে কাজ করতে উত্সাহিত করি। বিশেষত, আপনাকে অবশ্যই নিশ্চিত করতে হবে যে ব্যবহারকারীরা যখন অনুমতি প্রত্যাহার করেন তখন ক্র্যাশ এবং অন্যান্য সমস্যাগুলি এড়ানোর জন্য প্রাক-ইনস্টল করা অ্যাপ্লিকেশনগুলি সংশোধিত হয়।

প্রাক লোড অ্যাপ্লিকেশন

অ্যান্ড্রয়েড 9 এবং নিম্নে, বিপজ্জনক অনুমতিগুলি ব্যবহার করে এমন প্রিলোডেড অ্যাপ্লিকেশনগুলিকে অবশ্যই 23 স্তরের বা তার বেশিের লক্ষ্য রাখতে হবে এবং অ্যান্ড্রয়েড 6.0 এবং উচ্চতর এওএসপি অনুমতি মডেল বজায় রাখতে হবে। উদাহরণস্বরূপ, অ্যাপ্লিকেশন ইনস্টলেশন চলাকালীন UI প্রবাহ অবশ্যই PermissionController AOSP প্রয়োগ থেকে বিচ্যুত হবে না। ব্যবহারকারীরা এমনকি প্রাক-ইনস্টল করা অ্যাপগুলির বিপজ্জনক অনুমতিগুলি প্রত্যাহার করতে পারেন।

অ্যান্ড্রয়েড 6.0 থেকে 9-এ, ইনস্টলের প্রবাহের সময় কিছু অনুমতি দেওয়া হয়। তবে, 10 থেকে শুরু করে, ইনস্টল ফ্লো ( Package Installer অ্যাপ্লিকেশন দ্বারা সম্পাদিত) অনুমতি দেওয়া ( Permission Controller অ্যাপ্লিকেশনটিতে) থেকে পৃথক ফাংশন।

হেডলেস অ্যাপ্লিকেশন

কেবল ক্রিয়াকলাপেই অনুমতি চাইতে পারে। পরিষেবাগুলি সরাসরি অনুমতিগুলির জন্য অনুরোধ করতে পারে না।

  • অ্যান্ড্রয়েড 5.1 এবং তার আগের ক্ষেত্রে, হেডলেস অ্যাপ্লিকেশনগুলি ইনস্টল করার সময় অনুমতিগুলির জন্য অনুরোধ করতে পারে বা কোনও ক্রিয়াকলাপ ব্যবহার না করে যদি তারা প্রাক ইনস্টলড থাকে।
  • অ্যান্ড্রয়েড .0.০ এবং উচ্চতর ক্ষেত্রে, শিরোনামহীন অ্যাপ্লিকেশনগুলিকে অনুমতিগুলির জন্য অনুরোধ করতে নীচের একটি পদ্ধতি ব্যবহার করতে হবে:
    • অনুমতি অনুরোধ করতে একটি ক্রিয়াকলাপ যুক্ত করুন। (এই পছন্দের পদ্ধতি.)
    • প্রয়োজনীয় অনুমতি রয়েছে এমন অন্য অ্যাপ্লিকেশনটির সাথে একটি ইউআইডি ভাগ করুন। আপনার একক অ্যাপ্লিকেশন হিসাবে একাধিক APKগুলি হ্যান্ডেল করার জন্য প্ল্যাটফর্মের প্রয়োজন হলেই এই পদ্ধতিটি ব্যবহার করুন।

লক্ষ্যটি হ'ল ব্যবহারকারীদের অনুমতি অনুরোধগুলি যাতে প্রসঙ্গের বাইরে উপস্থিত থাকে তা বিভ্রান্ত করা এড়ানো।

প্যাকেজইনস্টলার UI কাস্টমাইজ করা

যদি ইচ্ছা হয় তবে আপনি Theme.DeviceDefault.Settings দ্বারা ব্যবহৃত ডিফল্ট ডিভাইস থিমগুলি ( Theme.DeviceDefault.Settings এবং Theme.DeviceDefault.Light.Dialog.NoActionBar ) আপডেট করে অনুমতি ইউআই থিমটি কাস্টমাইজ করতে পারেন। যাইহোক, অ্যাপ্লিকেশন বিকাশকারীদের জন্য ধারাবাহিকতা সমালোচনা করার কারণে, অনুমতিগুলি ইউআই উপস্থিত হওয়ার সময় আপনি স্থান নির্ধারণ, অবস্থান এবং নিয়মগুলি কাস্টমাইজ করতে পারবেন না।

অতিরিক্ত ভাষার জন্য স্ট্রিং অন্তর্ভুক্ত করতে, এওএসপিতে স্ট্রিংগুলি অবদান রাখুন।

ব্যতিক্রম তৈরি করা হচ্ছে

আপনি অ্যাপ্লিকেশন ডিফল্ট পরিচালক বা কোর ওএস কার্যকারিতার জন্য প্রদানকারীর ব্যবহার করছেন প্রাক প্রদান করতে পারেন অনুমতি DefaultPermissionGrantPolicy.java PackageManager মধ্যে বর্গ। উদাহরণ:

ACTION_CALL (Dialer) Default
Phone, Contacts, SMS, Microphone
SMS_DELIVER_ACTION (SMS/MMS) Default
Phone, Contacts, SMS

কাস্টম অনুমতি নির্ধারণ

আপনি কাস্টম অনুমতি এবং গোষ্ঠীগুলিকে সাধারণ বা বিপজ্জনক হিসাবে সংজ্ঞায়িত করতে পারেন এবং অ্যান্ড্রয়েড 5..x এবং এর আগে প্রকাশে যেমন করতে পারেন ঠিক তেমন বিদ্যমান অনুমতি গোষ্ঠীতে ওএম / ক্যারিয়ার-নির্দিষ্ট অনুমতিগুলি যুক্ত করতে পারেন।

অ্যান্ড্রয়েড .0.০ এবং তারপরে, আপনি যদি একটি নতুন বিপজ্জনক অনুমতি যোগ করেন তবে এটি অন্যান্য বিপজ্জনক অনুমতিগুলির মতোই পরিচালনা করতে হবে (অ্যাপ রানটাইমের সময় অনুরোধ করা হয়েছে এবং ব্যবহারকারীরা প্রত্যাখ্যানযোগ্য)। বিশেষত:

  • আপনি একটি বর্তমান গোষ্ঠীতে নতুন অনুমতি যুক্ত করতে পারেন, তবে আপনি বিপজ্জনক অনুমতি এবং বিপজ্জনক অনুমতি গোষ্ঠীর AOSP ম্যাপিংটি পরিবর্তন করতে পারবেন না। (অন্য কথায়, আপনি একটি গোষ্ঠী থেকে অনুমতি অপসারণ এবং অন্য একটি গ্রুপে বরাদ্দ করতে পারবেন না)।
  • আপনি ডিভাইসে ইনস্টল থাকা অ্যাপ্লিকেশনগুলিতে নতুন অনুমতি গোষ্ঠীগুলি যুক্ত করতে পারেন, তবে প্ল্যাটফর্ম ম্যানিফেস্টে আপনি নতুন অনুমতি গোষ্ঠীগুলি যুক্ত করতে পারবেন না।

অনুমতি পরীক্ষা

অ্যান্ড্রয়েডে সামঞ্জস্যতা টেস্ট স্যুট (সিটিএস) পরীক্ষা অন্তর্ভুক্ত যা পৃথক অনুমতিগুলি সঠিক গ্রুপগুলিতে ম্যাপ করা হয় verify এই পরীক্ষাগুলি পাস করা অ্যান্ড্রয়েড 6.0 এবং পরে সিটিএসের সামঞ্জস্যের জন্য প্রয়োজনীয়।