কম্প্যাটিবিলিটি ফ্রেমওয়ার্ক সংক্রান্ত পরিবর্তন (Android 12)

ছবি ১. ডেভেলপার বিকল্পে অ্যাপ কম্প্যাটিবিলিটি পরিবর্তন স্ক্রিনে আপনি যেসব পরিবর্তন টগল করতে পারবেন তার তালিকা দেওয়া থাকে।

Android ১২ (API লেভেল ৩১)-এ কম্প্যাটিবিলিটি ফ্রেমওয়ার্কের অংশ হিসেবে প্রতিটি আচরণগত পরিবর্তন এই পৃষ্ঠায় বর্ণনা করা হয়েছে। Android ১২-এ কাজ করার জন্য আপনার অ্যাপ প্রস্তুত করার সময়, ডেভেলপার বিকল্প ও ADB কমান্ড-এর সাথে এই তালিকা ব্যবহার করে অ্যাপ টেস্ট ও ডিবাগ করুন।

কম্প্যাটিবিলিটি ফ্রেমওয়ার্ক টুল ব্যবহার করে আপনি যেসব কাজ করতে পারবেন তার মধ্যে কয়েকটি এখানে উল্লেখ করা হল:

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

এইসব ব্যবহারের ক্ষেত্রে টুল ব্যবহার করার ব্যাপারে সম্পূর্ণ বিবরণ জানতে, কম্প্যাটিবিলিটি ফ্রেমওয়ার্ক টুল দেখুন।

কম্প্যাটিবিলিটি ফ্রেমওয়ার্কে অন্তর্ভুক্ত আচরণগত পরিবর্তন

এই বিভাগে দেওয়া তালিকা থেকে Android 12-এর কম্প্যাটিবিলিটি ফ্রেমওয়ার্কে অন্তর্ভুক্ত প্রতিটি আচরণগত পরিবর্তন সম্পর্কে জানতে পারবেন।

আপনি ডিফল্ট অবস্থা অনুযায়ী পরিবর্তনের তালিকা ফিল্টার করতে পারবেন।

Android ১২-এর কম্প্যাটিবিলিটি ফ্রেমওয়ার্কে আচরণগত পরিবর্তন যোগ করা হয়েছে

ALWAYS_SANDBOX_DISPLAY_APIS

পরিবর্তন আইডি: ১৮৫০০৪৯৩৭
ডিফল্ট স্ট্যাটাস: সব অ্যাপের জন্য বন্ধ করা আছে।

চালু করা থাকলে, উইন্ডো মোড যাই হোক না কেন, কোনও প্যাকেজে ডিসপ্লে API স্যান্ডবক্সিং প্রয়োগ করে। Display API সবসময় অ্যাপ বাউন্ড প্রদান করবে।

এই পরিবর্তন সম্পর্কে আরও জানতে, Android 12-এর আচরণ পরিবর্তন সংক্রান্ত পৃষ্ঠায় বন্ধ হয়ে যাওয়া ডিসপ্লে পদ্ধতি সম্পর্কিত বিভাগটি দেখুন।

AUTOFILL_NON_TEXT_REQUIRES_ON_RECEIVE_CONTENT_LISTENER

পরিবর্তন আইডি: 163400105
ডিফল্ট স্ট্যাটাস: Android 12 (API লেভেল 32) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 12 থেকে শুরু করে, প্ল্যাটফর্মটি অগমেন্টেড অটোফিল ফ্রেমওয়ার্ক ব্যবহার করে টেক্সট নয় এমন সাজেশন (যেমন ছবি) প্রদান করতে পারে (অটোফিল পরিষেবা দেখুন)। কোনও অ্যাপ যাতে এইসব সাজেশন ম্যানেজ করতে পারে, তার জন্য সাধারণত OnReceiveContentListener API প্রয়োগ করতে হয়।

যেসব অ্যাপ আগে InputConnection.commitContent(InputContentInfo, int, Bundle) API প্রয়োগ করেছে, সেগুলির ক্ষেত্রে এই API প্রয়োগ করার প্রসেস আরও মসৃণ করতে, অ্যাপে এখনও OnReceiveContentListener প্রয়োগ করা না হলে, আমরা সেই API ফলব্যাক হিসেবে আবার ব্যবহার করি। এই ফলব্যাক শুধু Android 12 (API লেভেল ৩১)-এ চালু করা হয়। এই পরিবর্তন আইডি ফলব্যাক বন্ধ করে দেয়, যাতে Android 12 (API লেভেল 32) এবং তার পরবর্তী ভার্সনকে টার্গেট করা অ্যাপকে টেক্সট নয় এমন সাজেশন গ্রহণ করার জন্য OnReceiveContentListener API প্রয়োগ করতে হয়।

BLOCK_FLAG_SLIPPERY

পরিবর্তন আইডি: ১৫৭৯২৯২৪১
ডিফল্ট অবস্থা: সব অ্যাপের জন্য চালু করা আছে।

Android ১২ (API লেভেল ৩১) ভার্সনে চলা অ্যাপের ক্ষেত্রে, অ্যাপের কোনও উইন্ডোতে FLAG_SLIPPERY ব্যবহার করা হচ্ছে কিনা তা চেক করে। আমরা আশা করি যে এই ফ্ল্যাগটি সম্ভবত শুধুমাত্র সিস্টেম কম্পোনেন্ট ব্যবহার করে কারণ এটি একটি সমর্থিত নয় এমন ফিল্ড। যদি তাই হয়, তাহলে এটি সীমাবদ্ধ করা হবে।

BLOCK_GPS_STATUS_USAGE

পরিবর্তন আইডি: 144027538
ডিফল্ট স্ট্যাটাস: Android 12 (API লেভেল 31) বা তার পরবর্তী ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android ১২ (API লেভেল ৩১) এবং তার পরবর্তী ভার্সনকে টার্গেট করা অ্যাপের ক্ষেত্রে, সব GpsStatus API ব্যবহারকে GnssStatus API দিয়ে পরিবর্তন করতে হবে।

BLOCK_IMMUTABLE_PENDING_INTENTS

পরিবর্তন আইডি: 171317480
ডিফল্ট স্ট্যাটাস: Android 12 (API লেভেল 31) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android ১২ (API লেভেল ৩১) এবং তার পরবর্তী ভার্সনকে টার্গেট করা অ্যাপের ক্ষেত্রে, লোকেশন API-তে পাস করা অপরিবর্তনীয় PendingIntent অবজেক্ট IllegalArgumentException. জেনারেট করবে

BLOCK_PENDING_INTENT_SYSTEM_API_USAGE

পরিবর্তন আইডি: ১৬৯৮৮৭২৪০
ডিফল্ট স্ট্যাটাস: Android ১২ (API লেভেল ৩১) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 12 (API লেভেল 31) এবং তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করা অ্যাপের ক্ষেত্রে, LocationRequest সিস্টেম API, PendingIntent লোকেশন অনুরোধের সাথে ব্যবহার করা যাবে না।

BLOCK_UNTRUSTED_TOUCHES

পরিবর্তন আইডি: ১৫৮০০২৩০২
ডিফল্ট স্ট্যাটাস: সব অ্যাপের জন্য চালু করা আছে।

সিস্টেমের নিরাপত্তা ও ব্যবহারকারীর ভালো অভিজ্ঞতা বজায় রাখতে, Android 12 অ্যাপকে টাচ ইভেন্ট ব্যবহার করা থেকে আটকায় যেখানে কোনও ওভারলে অ্যাপকে অসুরক্ষিত উপায়ে ব্লক করে।

এই পরিবর্তন সম্পর্কে আরও জানতে, অবিশ্বস্ত টাচ ইভেন্ট ব্লক করা হয়েছে দেখুন।

CALL_ACTIVITY_RESULT_BEFORE_RESUME

পরিবর্তন আইডি: 78294732
ডিফল্ট স্ট্যাটাস: Android 12 (API লেভেল 32) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 12 (API লেভেল 32) এবং তার পরবর্তী ভার্সন টার্গেট করা অ্যাপের ক্ষেত্রে, অ্যাক্টিভিটি ফলাফল লাইফসাইকেল সংশোধন করে যাতে কোনও অ্যাক্টিভিটি আবার শুরু করার ঠিক আগে অ্যাক্টিভিটি ফলাফল পায়।

CAMERA_MIC_INDICATORS_NOT_PRESENT

পরিবর্তন আইডি: ১৬২৫৪৭৯৯৯
ডিফল্ট অবস্থা: সব অ্যাপের জন্য বন্ধ করা আছে।

এই ডিভাইস ক্যামেরা ও মাইক্রোফোন ইন্ডিকেটর সাপোর্ট করে বলে দেখায়। false হবে যদি উপস্থিত থাকে, কারণ CompatChanges#isChangeEnabled পদ্ধতি true রিটার্ন করে যদি পরিবর্তন আইডি উপস্থিত না থাকে।

CANNOT_INSTALL_WITH_BAD_PERMISSION_GROUPS

পরিবর্তন আইডি: 146211400
ডিফল্ট স্ট্যাটাস: Android 12 (API লেভেল 32) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 12 (API লেভেল 32) এবং তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করা অ্যাপের ক্ষেত্রে, ভুলভাবে তৈরি করা পারমিশন গ্রুপ থাকলে, প্যাকেজ ম্যানেজার কোনও প্যাকেজ ইনস্টল করবে না। সার্টিফিকেট শেয়ার করছে এমন অ্যাপের মধ্যেই শুধু পারমিশন গ্রুপ শেয়ার করা উচিত। কোনও অনুমতি কোনও গ্রুপের অন্তর্গত হলে, সেই গ্রুপকেও সংজ্ঞায়িত করতে হবে।

CHANGE_ID_AUTH_STATE_DENIED

পরিবর্তন আইডি: ১৮১৩৫০৪০৭
ডিফল্ট স্ট্যাটাস: Android ১২ (API লেভেল ৩১) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android ১২ (API লেভেল ৩১) এবং তার চেয়ে উন্নত ভার্সন টার্গেট করা ক্লায়েন্ট অ্যাপের ক্ষেত্রে, অনুমোদনের স্ট্যাটাস প্রত্যাখ্যান করা হলে এবং ন্যানোঅ্যাপে মেসেজ পাঠানোর চেষ্টা করলে, SecurityException থ্রো করা হয়।

CHANGE_ID_SAMPLING_RATE_SENSORS_PERMISSION

পরিবর্তন আইডি: 136069189
ডিফল্ট স্ট্যাটাস: Android 12 (API লেভেল 31) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 12 (API লেভেল 31) এবং তার পরবর্তী ভার্সনকে টার্গেট করা অ্যাপের ক্ষেত্রে, SecurityException থ্রো করা হয় যখন তাদের কাছে HIGH_SAMPLING_RATE_SENSORS অনুমতি থাকে না, ডিবাগ মোডে রান করে এবং ২০০ Hz-এর চেয়ে দ্রুত স্যাম্পলিং রেটের অনুরোধ করে।

DELIVER_HISTORICAL_LOCATIONS

পরিবর্তন আইডি: ৭৩১৪৪৫৬৬
ডিফল্ট স্ট্যাটাস: Android 12 (API লেভেল ৩১) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 12 (API লেভেল 31) এবং তার পরবর্তী ভার্সনকে টার্গেট করা অ্যাপের ক্ষেত্রে, লোকেশন ক্লায়েন্ট কিছু পরিস্থিতিতে পুরনো লোকেশন (বর্তমান সময়ের আগের) পেতে পারে।

DISPLAY_INFO_NR_ADVANCED_SUPPORTED

পরিবর্তন আইডি: 181658987
ডিফল্ট স্ট্যাটাস: Android 12 (API লেভেল 31) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 12 (API লেভেল ৩১) এবং তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করা অ্যাপের ক্ষেত্রে, TelephonyDisplayInfo-এ পরিবর্তনের জন্য ব্যাকওয়ার্ড কম্প্যাটিবিলিটি প্রদান করে।

DISPLAY_MODE_RETURNS_PHYSICAL_REFRESH_RATE

পরিবর্তন আইডি: ১৭০৫০৩৭৫৮
ডিফল্ট স্ট্যাটাস: Android ১২ (API লেভেল ৩১) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android ১২ (API লেভেল ৩১) এবং তার পরবর্তী ভার্সনকে টার্গেট করা অ্যাপের ক্ষেত্রে, প্ল্যাটফর্মটি কোনও অ্যাপের ফ্রেম রেটকে রিফ্রেশ রেটের ভাজকে থ্রটল ডাউন করতে পারে, যদি এটি আরও বেশি পছন্দসই হয় (যেমন, অ্যাপটি Surface.setFrameRate(float, int)-এ কল করলে)। অ্যাপগুলি থ্রটল করা ফ্রেম রেটে Choreographer.postFrameCallback(Choreographer.FrameCallback) কলব্যাক এবং ব্যাকপ্রেশার অনুভব করবে। ডিসপ্লে রিফ্রেশ রেট কত তা জানতে অ্যাপ Display.getRefreshRate() এবং Display.Mode.getRefreshRate() ব্যবহার করে। Display.getRefreshRate() সবসময় অ্যাপ্লিকেশন ফ্রেম রেট রিটার্ন করবে এবং ফিজিক্যাল ডিসপ্লে রিফ্রেশ রেট নয় যাতে অ্যাপ ফ্রেম পেসিং সঠিকভাবে করতে পারে। Display.Mode.getRefreshRate() আগের রিলিজে কম্পাইল করা হলে অ্যাপ ফ্রেম রেট ফিরিয়ে দেবে এবং Android 12 (API লেভেল 31) থেকে শুরু করে এটি ফিজিক্যাল ডিসপ্লে রিফ্রেশ রেট ফিরিয়ে দেবে।

DOWNSCALED

পরিবর্তন আইডি: ১৬৮৪১৯৭৯৯
ডিফল্ট স্ট্যাটাস: সব অ্যাপের জন্য বন্ধ করা আছে।

এই পরিবর্তনটি প্রতিটি অ্যাপের বাফার ডাউনস্কেলিং সংক্রান্ত সব পরিবর্তনের গেটকিপার। এই পরিবর্তন চালু করলে নিম্নলিখিত স্কেলিং ফ্যাক্টর প্রয়োগ করা যাবে:

কোনও অ্যাপ প্যাকেজের জন্য এই পরিবর্তন চালু করা হলে, অ্যাপটি জোরপূর্বক সর্বোচ্চ, চালু করা স্কেলিং ফ্যাক্টরে ছোট বড় করা হয়। যেমন, ৮০% ও ৭০% (DOWNSCALE_80 এবং DOWNSCALE_70) দুটিই চালু থাকলে, ৮০% ব্যবহার করা হয়।

DOWNSCALE_30

পরিবর্তন আইডি: ১৮৯৯৭০০৪০
ডিফল্ট স্ট্যাটাস: সব অ্যাপের জন্য বন্ধ করা আছে।

DOWNSCALED-ও চালু থাকলে, কোনও প্যাকেজের জন্য এই পরিবর্তন চালু করলে, অ্যাপটি ধরে নিতে বাধ্য হয় যে এটি এমন একটি ডিসপ্লেতে চলছে যার উল্লম্ব ও অনুভূমিক রেজোলিউশন আসল ডিসপ্লের ৩০%।

DOWNSCALE_35

পরিবর্তন আইডি: ১৮৯৯৬৯৭৪৯
ডিফল্ট স্ট্যাটাস: সব অ্যাপের জন্য বন্ধ করা আছে।

এছাড়াও DOWNSCALED চালু থাকলে, কোনও প্যাকেজের জন্য এই পরিবর্তন চালু করলে, অ্যাপটি ধরে নেয় যে এটি আসল ডিসপ্লের উল্লম্ব ও অনুভূমিক রেজোলিউশনের ৩৫% সহ ডিসপ্লেতে চলছে।

DOWNSCALE_40

পরিবর্তন আইডি: ১৮৯৯৭০০৩৮
ডিফল্ট স্ট্যাটাস: সব অ্যাপের জন্য বন্ধ করা আছে।

এছাড়াও DOWNSCALED চালু করা থাকলে, কোনও প্যাকেজের জন্য এই পরিবর্তন চালু করলে, অ্যাপটি ধরে নেয় যে এটি এমন একটি ডিসপ্লেতে চলছে যার উল্লম্ব এবং অনুভূমিক রেজোলিউশন আসল ডিসপ্লের ৪০%।

DOWNSCALE_45

পরিবর্তন আইডি: ১৮৯৯৬৯৭৮২
ডিফল্ট অবস্থা: সব অ্যাপের জন্য বন্ধ করা আছে।

এছাড়াও DOWNSCALED চালু থাকলে, কোনও প্যাকেজের জন্য এই পরিবর্তন চালু করলে, অ্যাপটি ধরে নিতে বাধ্য হয় যে এটি এমন একটি ডিসপ্লেতে চলছে যার উল্লম্ব এবং অনুভূমিক রেজোলিউশন আসল ডিসপ্লের ৪৫%।

DOWNSCALE_50

পরিবর্তন আইডি: ১৭৬৯২৬৭৪১
ডিফল্ট স্ট্যাটাস: সব অ্যাপের জন্য বন্ধ করা আছে।

DOWNSCALED-ও চালু থাকলে, কোনও প্যাকেজের জন্য এই পরিবর্তন চালু করলে, অ্যাপটি ধরে নেয় যে এটি আসল ডিসপ্লের উল্লম্ব ও অনুভূমিক রেজোলিউশনের ৫০% সহ ডিসপ্লেতে চলছে।

DOWNSCALE_55

পরিবর্তন আইডি: ১৮৯৯৭০০৩৬
ডিফল্ট স্ট্যাটাস: সব অ্যাপের জন্য বন্ধ করা আছে।

DOWNSCALED-ও চালু থাকলে, কোনও প্যাকেজের জন্য এই পরিবর্তন চালু করলে, অ্যাপটি ধরে নেয় যে এটি এমন একটি ডিসপ্লেতে চলছে যার উল্লম্ব ও অনুভূমিক রেজোলিউশন আসল ডিসপ্লের রেজোলিউশনের ৫৫%।

DOWNSCALE_60

পরিবর্তন আইডি: ১৭৬৯২৬৭৭১
ডিফল্ট স্ট্যাটাস: সব অ্যাপের জন্য বন্ধ করা আছে।

এছাড়াও DOWNSCALED চালু থাকলে, কোনও প্যাকেজের জন্য এই পরিবর্তন চালু করলে, অ্যাপটি ধরে নেয় যে এটি এমন একটি ডিসপ্লেতে চলছে যার উল্লম্ব ও অনুভূমিক রেজোলিউশন আসল ডিসপ্লের ৬০%।

DOWNSCALE_65

পরিবর্তন আইডি: ১৮৯৯৬৯৭৪৪
ডিফল্ট অবস্থা: সব অ্যাপের জন্য বন্ধ করা আছে।

এছাড়াও DOWNSCALED চালু করা থাকলে, কোনও প্যাকেজের জন্য এই পরিবর্তন চালু করলে, অ্যাপটি ধরে নিতে বাধ্য হয় যে এটি এমন একটি ডিসপ্লেতে চলছে যার উল্লম্ব এবং অনুভূমিক রেজোলিউশন আসল ডিসপ্লের ৬৫%।

DOWNSCALE_70

পরিবর্তন আইডি: ১৭৬৯২৬৮২৯
ডিফল্ট অবস্থা: সব অ্যাপের জন্য বন্ধ করা আছে।

এছাড়াও DOWNSCALED চালু থাকলে, কোনও প্যাকেজের জন্য এই পরিবর্তন চালু করলে, অ্যাপটি ধরে নেয় যে এটি আসল ডিসপ্লের উল্লম্ব ও অনুভূমিক রেজোলিউশনের ৭০% সহ ডিসপ্লেতে চলছে।

DOWNSCALE_75

পরিবর্তন আইডি: ১৮৯৯৬৯৭৭৯
ডিফল্ট অবস্থা: সব অ্যাপের জন্য বন্ধ করা আছে।

এছাড়াও DOWNSCALED চালু থাকলে, কোনও প্যাকেজের জন্য এই পরিবর্তন চালু করলে, অ্যাপটি ধরে নেয় যে এটি এমন একটি ডিসপ্লেতে চলছে যার উল্লম্ব এবং অনুভূমিক রেজোলিউশন আসল ডিসপ্লের ৭৫%।

DOWNSCALE_80

পরিবর্তন আইডি: ১৭৬৯২৬৭৫৩
ডিফল্ট অবস্থা: সব অ্যাপের জন্য বন্ধ করা আছে।

DOWNSCALED-ও চালু থাকলে, কোনও প্যাকেজের জন্য এই পরিবর্তন চালু করলে, অ্যাপটি ধরে নেয় যে এটি এমন একটি ডিসপ্লেতে চলছে যার উল্লম্ব এবং অনুভূমিক রেজোলিউশন আসল ডিসপ্লের ৮০%।

DOWNSCALE_85

পরিবর্তন আইডি: ১৮৯৯৬৯৭৩৪
ডিফল্ট অবস্থা: সব অ্যাপের জন্য বন্ধ করা আছে।

এছাড়াও DOWNSCALED চালু থাকলে, কোনও প্যাকেজের জন্য এই পরিবর্তন চালু করলে, অ্যাপটি ধরে নেয় যে এটি এমন একটি ডিসপ্লেতে চলছে যার উল্লম্ব এবং অনুভূমিক রেজোলিউশন আসল ডিসপ্লের ৮৫%।

DOWNSCALE_90

পরিবর্তন আইডি: ১৮২৮১১২৪৩
ডিফল্ট স্ট্যাটাস: সব অ্যাপের জন্য বন্ধ করা আছে।

এছাড়াও DOWNSCALED চালু থাকলে, কোনও প্যাকেজের জন্য এই পরিবর্তন চালু করলে, অ্যাপটি ধরে নিতে বাধ্য হয় যে এটি এমন একটি ডিসপ্লেতে চলছে যার উল্লম্ব এবং অনুভূমিক রেজোলিউশন আসল ডিসপ্লের ৯০%।

DO_NOT_DOWNSCALE_TO_1080P_ON_TV

পরিবর্তন আইডি: 157629738
ডিফল্ট স্ট্যাটাস: Android 12 (API লেভেল 31) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 12 (API লেভেল 31) এবং তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করা Android TV অ্যাপ, 1080p-এর থেকে বড় উইন্ডো সাইজ সহ যেকোনও উইন্ডো সাইজ ম্যানেজ করতে পারবে বলে আশা করা হচ্ছে। Android-এর আগের ভার্সন টার্গেট করে এমন অ্যাপ 1080p-এর থেকে বড় উইন্ডো আশা করে না, তাই প্রয়োজন হলে তাদের উইন্ডো 1080p-তে ডাউনস্কেল করা হয়।

DROP_CLOSE_SYSTEM_DIALOGS

পরিবর্তন আইডি: ১৭৪৬৬৪১২০
ডিফল্ট অবস্থা: সব অ্যাপের জন্য চালু করা আছে।

অ্যাপ ও সিস্টেমের সাথে ইন্টার‍্যাক্ট করার সময় ব্যবহারকারীর নিয়ন্ত্রণ উন্নত করতে, Android 12 থেকে ACTION_CLOSE_SYSTEM_DIALOGS ইনটেন্ট অ্যাকশন বন্ধ করে দেওয়া হয়েছে।

এই পরিবর্তন সম্পর্কে আরও জানতে, অ্যাপ সিস্টেম ডায়ালগ বন্ধ করতে পারে না দেখুন।

ENABLE_CHECKS_FOR_PRIVATE_FILES

পরিবর্তন আইডি: ১৭২১০০৩০৭
ডিফল্ট অবস্থা: Android ১২ (API লেভেল ৩১) বা তার পরবর্তী ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 12 (API লেভেল 31) এবং তার পরবর্তী ভার্সনকে টার্গেট করা অ্যাপ, মিডিয়া প্রোভাইডার ব্যবহার করে ব্যক্তিগত ফাইল যোগ বা আপডেট করতে পারে না।

ENABLE_DEFERRED_SCAN

পরিবর্তন আইডি: ১৮০৩২৬৭৩২
ডিফল্ট স্ট্যাটাস: Android ১২ (API লেভেল ৩১) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

MediaProvider#update()-এর অংশ হিসেবে ট্রিগার করা স্ক্যান স্থগিত করতে এই বিকল্প চালু করুন।

ENABLE_GET_CALL_STATE_PERMISSION_PROTECTION

পরিবর্তন আইডি: ১৫৭২৩৩৯৫৫
ডিফল্ট স্ট্যাটাস: Android ১২ (API লেভেল ৩১) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android ১২ (API লেভেল ৩১) এবং তার পরবর্তী ভার্সন টার্গেট করা অ্যাপের জন্য, API কোয়েরি এবং কল স্টেট সংক্রান্ত বিজ্ঞপ্তি, যেমন TelecomManager#getCallState, TelephonyManager.getCallStateForSubscription() এবং TelephonyCallback.CallStateListener-এ READ_PHONE_STATE সুরক্ষা চালু করে।

ENABLE_GET_PHONE_ACCOUNT_PERMISSION_PROTECTION

পরিবর্তন আইডি: ১৮৩৪০৭৯৫৬
ডিফল্ট স্ট্যাটাস: Android ১২ (API লেভেল ৩১) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android ১২ (API লেভেল ৩১) এবং তার পরবর্তী ভার্সনকে টার্গেট করা অ্যাপের জন্য, getPhoneAccount(PhoneAccountHandle)-এ READ_PHONE_NUMBERS বা READ_PRIVILEGED_PHONE_STATE সুরক্ষা চালু করে।

ENABLE_INCLUDE_ALL_VOLUMES

পরিবর্তন আইডি: ১৮২৭৩৪১১০
ডিফল্ট স্ট্যাটাস: Android ১২ (API লেভেল ৩১) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

MediaProvider#query-এ সম্প্রতি আনমাউন্ট করা ভলিউম থেকে ফাইলের ডেটাবেস সারি অন্তর্ভুক্ত করতে এই বিকল্প চালু করুন।

ENABLE_RAW_MANAGE_EXTERNAL_STORAGE_ACCESS

পরিবর্তন আইডি: 178209446
ডিফল্ট স্ট্যাটাস: Android 12 (API লেভেল 31) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Manifest.permission.MANAGE_EXTERNAL_STORAGE অনুমতি আছে এমন অ্যাপকে র এক্সটার্নাল স্টোরেজ অ্যাক্সেসের অনুরোধ করার অনুমতি দিতে এই বিকল্প চালু করুন।

ENFORCE_MINIMUM_WINDOW_ON_INEXACT_ALARMS

পরিবর্তন আইডি: 185199076
ডিফল্ট স্ট্যাটাস: Android 12 (API লেভেল 31) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android ১২ (API লেভেল ৩১) এবং তার পরবর্তী ভার্সন টার্গেট করা অ্যাপের ক্ষেত্রে, সব ইন-একজ্যাক্ট অ্যালার্মের জন্য ন্যূনতম উইন্ডো সাইজ থাকতে হবে, যা কয়েক মিনিটের অর্ডারে হতে পারে। ব্যবহারিক ক্ষেত্রে, যেসব অ্যালার্মের জন্য ছোট উইন্ডো প্রয়োজন হয় সেগুলি এক্স্যাক্ট অ্যালার্মের মতোই এবং সেগুলির ক্ষেত্রে সংশ্লিষ্ট API ব্যবহার করা উচিত, যেমন setExact(int, long, PendingIntent)। নির্দিষ্ট করা ছোট উইন্ডো সহ ইন-একজ্যাক্ট অ্যালার্মের উইন্ডো সিস্টেমের মাধ্যমে দীর্ঘ করা হবে।

ENFORCE_NATIVE_SHARED_LIBRARY_DEPENDENCIES

পরিবর্তন আইডি: 142191088
ডিফল্ট স্ট্যাটাস: Android 12 (API লেভেল 31) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 12 (API লেভেল 31) এবং তার পরবর্তী ভার্সনকে টার্গেট করা অ্যাপকে সর্বজনীন নেটিভ শেয়ার করা লাইব্রেরির উপর নির্ভরতা ঘোষণা করতে হবে যা ডিভাইস প্রস্তুতকারক তার AndroidManifest.xml-এ uses-native-library ট্যাগ ব্যবহার করে সংজ্ঞায়িত করে। কোনও ডিপেন্ডেন্সি পূরণ করা না গেলে—যেমন, কোনও ডিপেন্ডেন্সি না থাকলে—প্যাকেজ ম্যানেজার অ্যাপটি ইনস্টল করবে না। ট্যাগে android:required অ্যাট্রিবিউট ব্যবহার করে ডিপেন্ডেন্সি ঐচ্ছিক হিসেবে নির্দিষ্ট করা যেতে পারে, সেক্ষেত্রে ডিপেন্ডেন্সি পূরণ না হলেও ইনস্টলেশন বন্ধ হবে না।

ইনস্টল করার পরে, অ্যাপকে শুধুমাত্র নেটিভ শেয়ার করা লাইব্রেরি প্রদান করা হয় যা অ্যাপ ম্যানিফেস্টে উল্লেখ করা থাকে। নেটিভ শেয়ার করা লাইব্রেরিতে dlopen কল করা যা অ্যাপ ম্যানিফেস্টে দেখা যায় না, তা ডিভাইসে থাকলেও কাজ করবে না।

ENFORCE_STRICT_QUERY_BUILDER

পরিবর্তন আইডি: 143231523
ডিফল্ট অবস্থা: সব অ্যাপের জন্য বন্ধ করা আছে।

চালু করা হলে, SQLiteQueryBuilder ক্ষতিকর আর্গুমেন্টের বিরুদ্ধে সব CalendarProvider2 কোয়েরি যাচাই করে।

FGS_BG_START_RESTRICTION_CHANGE_ID

পরিবর্তন আইডি: 170668199
ডিফল্ট স্ট্যাটাস: Android 12 (API লেভেল 31) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 12 (API লেভেল 31) এবং তার পরবর্তী ভার্সনকে টার্গেট করা অ্যাপের ক্ষেত্রে, ব্যাকগ্রাউন্ডে চলাকালীন অ্যাপ কখন ফোরগ্রাউন্ড পরিষেবা শুরু করতে পারবে তা সীমাবদ্ধ করে।

FGS_START_EXCEPTION_CHANGE_ID

পরিবর্তন আইডি: 174041399
ডিফল্ট স্ট্যাটাস: Android 12 (API লেভেল 31) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 12 (API লেভেল 31) এবং তার পরবর্তী ভার্সনকে টার্গেট করা অ্যাপের ক্ষেত্রে, ব্যাকগ্রাউন্ডে চলাকালীন কোনও অ্যাপ ফোরগ্রাউন্ড পরিষেবা চালু করার চেষ্টা করলে, সিস্টেমকে IllegalStateException থ্রো করার অনুমতি দেয়।

FINISH_INPUT_NO_FALLBACK_CONNECTION

পরিবর্তন আইডি: ১৫৬২১৫১৮৭
ডিফল্ট স্ট্যাটাস: সব অ্যাপের জন্য বন্ধ করা আছে।

Android 12 (API লেভেল 31) এবং তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করা অ্যাপের ক্ষেত্রে, ডিভাইস non-interactive হলে InputConnection সম্পূর্ণ করুন।

বর্তমান input method-এর মাধ্যমে চালু করা থাকলে, ডিভাইস নন-ইন্টার‍্যাক্টিভ হয়ে গেলে বর্তমান ইনপুট কানেকশন finished হবে।

চালু করা না থাকলে, ডিভাইস নন-ইন্টার‍্যাক্টিভ হয়ে গেলে বর্তমান ইনপুট কানেকশন সাইলেন্টলি বন্ধ হয়ে যাবে এবং ডিভাইস আবার ইন্টার‍্যাক্টিভ হয়ে গেলে onFinishInput() এবং onStartInput() পেয়ার ডিসপ্যাচ করা হবে।

FORCE_DISABLE_HEVC_SUPPORT

পরিবর্তন আইডি: ১৭৪২২৭৮২০
ডিফল্ট স্ট্যাটাস: সব অ্যাপের জন্য বন্ধ করা আছে।

HEVC মিডিয়া ক্ষমতা সাপোর্ট করা থেকে কোনও অ্যাপকে জোর করে বন্ধ করুন। অ্যাপের ম্যানিফেস্টে সেটির মিডিয়া সংক্রান্ত ক্ষমতা উল্লেখ করা উচিত, তবে এই ফ্ল্যাগ ব্যবহার করে কোনও অ্যাপকে HEVC-তে এনকোড করা মিডিয়া অ্যাক্সেস করার সময় ট্রান্সকোড করতে বাধ্য করা যেতে পারে। এই ফ্ল্যাগ সেট করলে, অ্যাপের জন্য OS লেভেলের যেকোনও ডিফল্ট ওভাররাইড হয়ে যায়। এটি ডিফল্ট হিসেবে বন্ধ করা থাকে, যার অর্থ হল OS ডিফল্ট অগ্রাধিকার পায়। এই ফ্ল্যাগ এবং FORCE_ENABLE_HEVC_SUPPORT দুটিই চালু থাকলে, OS দুটি ফ্ল্যাগই উপেক্ষা করে।

FORCE_ENABLE_HEVC_SUPPORT

পরিবর্তন আইডি: ১৭৪২২৮১২৭
ডিফল্ট স্ট্যাটাস: সব অ্যাপের জন্য বন্ধ করা আছে।

HEVC মিডিয়া ক্যাপাবিলিটি অ্যাপকে কাজ করতে দেওয়ার জন্য কোনও অ্যাপকে জোর করে চালু করা অ্যাপের ম্যানিফেস্টে তার কাজ করা মিডিয়া ক্যাপাবিলিটি ঘোষণা করা উচিত কিন্তু এই ফ্ল্যাগটি কোনও অ্যাপকে HEVC-তে কাজ করার জন্য জোর করতে ব্যবহার করা যেতে পারে, তাই HEVC-তে এনকোড করা মিডিয়া অ্যাক্সেস করার সময় ট্রান্সকোডিং এড়ানো যায়। এই ফ্ল্যাগ সেট করলে অ্যাপের জন্য যেকোনও OS লেভেল ডিফল্ট ওভাররাইড করে। এটি ডিফল্ট হিসেবে বন্ধ করা থাকে, যার অর্থ হল OS ডিফল্টকে অগ্রাধিকার দেওয়া হবে। এই ফ্ল্যাগ এবং FORCE_DISABLE_HEVC_SUPPORT দুটিই চালু থাকলে, OS দুটি ফ্ল্যাগই উপেক্ষা করে।

FORCE_NON_RESIZE_APP

পরিবর্তন আইডি: 181136395
ডিফল্ট স্ট্যাটাস: সব অ্যাপের জন্য বন্ধ করা আছে।

যেসব প্যাকেজে এটি প্রয়োগ করা হয় সেগুলিকে ছোট বড় করা যায় না।

FORCE_RESIZE_APP

পরিবর্তন আইডি: ১৭৪০৪২৯৩৬
ডিফল্ট অবস্থা: সব অ্যাপের জন্য বন্ধ করা আছে।

যেসব প্যাকেজে এটি প্রয়োগ করা হয় সেগুলির সাইজ পরিবর্তন করতে বাধ্য করে। আমরা শুধু ফুলস্ক্রিন উইন্ডো মোডে ছোট বড় করার অনুমতি দিই, কিন্তু অ্যাপকে ছোট বড় করা যায় এমন মাল্টি-উইন্ডো মোডে জোর করে নিয়ে যাই না।

HIDE_PROP_ICUBINARY_DATA_PATH

পরিবর্তন আইডি: 171979766
ডিফল্ট স্ট্যাটাস: Android 12 (API লেভেল 31) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 12 (API লেভেল ৩১) এবং তার পরবর্তী ভার্সনকে টার্গেট করা অ্যাপের জন্য, android.icu.impl.ICUBinary.dataPath প্রপার্টিতে অ্যাক্সেস সরিয়ে দেয়।

IGNORE_ALLOW_BACKUP_IN_D2D

পরিবর্তন আইডি: 183147249
ডিফল্ট স্ট্যাটাস: Android 12 (API লেভেল 31) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 12 (API লেভেল ৩১) এবং তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করা অ্যাপের ক্ষেত্রে, ডিভাইস-টু-ডিভাইস (D2D) মাইগ্রেশনের সময় অ্যাপের জন্য android:allowBackup উপেক্ষা করা হয়।

IGNORE_FULL_BACKUP_CONTENT_IN_D2D

পরিবর্তন আইডি: ১৮০৫২৩৫৬৪
ডিফল্ট স্ট্যাটাস: Android ১২ (API লেভেল ৩১) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 12 (API লেভেল ৩১) এবং তার পরবর্তী ভার্সন টার্গেট করা অ্যাপের ক্ষেত্রে, ডিভাইস-টু-ডিভাইস (D2D) ট্রান্সফারের সময় android:fullBackupContent ব্যবহার করে নির্দিষ্ট করা অন্তর্ভুক্ত ও বাদ দেওয়ার নিয়ম উপেক্ষা করা হয়।

IME_AUTOFILL_DEFAULT_SUPPORTED_LOCALES_IS_EMPTY

পরিবর্তন আইডি: 169273070
ডিফল্ট স্ট্যাটাস: Android 12 (API লেভেল 31) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android ১২ (API লেভেল ৩১) এবং তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করা অ্যাপের ক্ষেত্রে, getSupportedLocales() এখন ডিফল্ট সিস্টেম লোকেলের পরিবর্তে সেট না করা থাকলে একটি খালি লোকেলের তালিকা দেখায়।

IS_BACKUP_SERVICE_ACTIVE_ENFORCE_PERMISSION_IN_SERVICE

পরিবর্তন আইডি: ১৫৮৪৮২১৬২
ডিফল্ট স্ট্যাটাস: Android ১২ (API লেভেল ৩১) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 12 (API লেভেল 31) ও তার পরবর্তী ভার্সনকে টার্গেট করা অ্যাপের ক্ষেত্রে, isBackupServiceActive()-এর জন্য প্রয়োজনীয় BACKUP অনুমতি BackupManager-এ ক্লায়েন্ট-সাইডের পরিবর্তে সার্ভিস-সাইডে এনফোর্স করা হয়।

KEYSTORE_OPERATION_CREATION_MAY_FAIL

পরিবর্তন আইডি: ১৬৯৮৯৭১৬০
ডিফল্ট অবস্থা: সব অ্যাপের জন্য বন্ধ করা আছে।

চালু করা হলে, নতুন প্রুনিং স্ট্র্যাটেজি অনুযায়ী কীস্টোর অপারেশন তৈরি করা নাও যেতে পারে। ক্রিপ্টোগ্রাফিক অপারেশন তৈরি করা সবসময় সফল হয়, এই অনুমান নিয়ে Keystore কাজ করত। তবে, KeyMint ব্যাকএন্ডে সীমিত সংখ্যক অপারেশন স্লট আছে।

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

লাইভলক থেকে বেরিয়ে আসতে এবং DoS-এর চেষ্টা নিরুৎসাহিত করতে, আমরা প্রুনিং স্ট্র্যাটেজি পরিবর্তন করেছি যাতে এটি এমন ক্লায়েন্টদের পছন্দ করে যারা অল্প সময়ের জন্য কয়েকটি অপারেশন স্লট ব্যবহার করে। এর ফলে, ৫ সেকেন্ডের বেশি সময় ধরে অ্যাক্টিভ না থাকা সিঙ্গল অপারেশন প্রায় সবসময়ই প্রুনিং স্ট্র্যাটেজি দ্বারা বাধাপ্রাপ্ত না হয়েই শেষ হবে। ফাইল সিস্টেম এনক্রিপশন সম্পর্কিত কিছু অপারেশন এখনও আছে যা এমনকি এই অপারেশনগুলিকেও ছাঁটাই করতে পারে, তবে সেইসব ক্ষেত্রে অত্যন্ত বিরল। এই নতুন প্রুনিং স্ট্র্যাটেজি অপারেশনের সাইড এফেক্ট হিসেবে, ক্লায়েন্টের প্রুনিং পাওয়ার আগে থেকে থাকা সব অপারেশনের চেয়ে কম হলে, এখন ক্রিয়েশন ব্যর্থ হতে পারে।

প্রুনিং স্ট্র্যাটেজি: উপযুক্ত প্রার্থী খুঁজে পেতে, আমরা কলার এবং প্রতিটি বিদ্যমান অপারেশনের জন্য ম্যালুস গণনা করি। মালুস হল প্রুনিং পাওয়ার (কলার) বা প্রুনিং রেজিস্ট্যান্সের (বর্তমান অপারেশন) বিপরীত। কলারের পক্ষে কোনও অপারেশন প্রুন করতে হলে, এটিকে এমন একটি অপারেশন খুঁজে পেতে হবে যার মালুস নিজের থেকে বেশি। প্রুনিং স্ট্র্যাটেজি সম্পর্কে আরও জানতে, operation.rs-এর প্রয়োগ দেখুন। Android ১১ (API লেভেল ৩০) এবং তার আগের ভার্সনে, KeyStore2, Keystore ডেমনকে ফ্রি অপারেশন স্লটের জন্য পোল করবে। Android 11 (API লেভেল ৩০) এবং তার আগের ভার্সনকে টার্গেট করা অ্যাপের ক্ষেত্রে, এটি এখনও সাইফার এবং সিগনেচার অবজেক্ট ইনিশিয়ালাইজেশন সবসময় সফল হওয়ার মতো দেখাবে—তবে, অপারেশন পেতে আরও বেশি সময় লাগতে পারে। Android-এর সব ভার্সন আরও ন্যায্য অপারেশন স্লট শিডিউলিং এবং অপারেশন সফলভাবে শেষ করার আরও ভালো সুযোগ থেকে উপকৃত হয়।

LOCK_DOWN_CLOSE_SYSTEM_DIALOGS

পরিবর্তন আইডি: ১৭৪৬৬৪৩৬৫
ডিফল্ট স্ট্যাটাস: Android ১২ (API লেভেল ৩১) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 12 (API লেভেল ৩১) এবং তার পরবর্তী ভার্সনকে টার্গেট করা অ্যাপের ক্ষেত্রে, অ্যাপের কাছে android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS অনুমতি না থাকলে Intent.ACTION_CLOSE_SYSTEM_DIALOGS পাঠানো যাবে না। মনে রাখবেন যে এটি #DROP_CLOSE_SYSTEM_DIALOGS-এর আরও বেশি বিধিনিষেধযুক্ত ভার্সন যেটি আশা করে যে অ্যাপটি Android 12 (API লেভেল 31) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করা শুরু করলে, অ্যাপটি Intent.ACTION_CLOSE_SYSTEM_DIALOGS ইনটেন্ট পাঠানো বন্ধ করে দেবে।

LOCK_DOWN_COLLAPSE_STATUS_BAR

পরিবর্তন আইডি: 173031413
ডিফল্ট স্ট্যাটাস: Android 12 (API লেভেল 31) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 12 (API লেভেল 31) এবং তার পরবর্তী ভার্সনকে টার্গেট করা অ্যাপের ক্ষেত্রে, নিরাপত্তার কারণে স্ট্যাটাস বার প্যানেল আড়াল করতে Manifest.permission.STATUS_BAR অনুমতি প্রয়োজন। ব্যবহারকারী যাতে অত্যন্ত প্রয়োজনীয় বিজ্ঞপ্তি অ্যাক্সেস করতে না পারেন, তার জন্য ম্যালওয়্যার এই দুর্বলতার সুযোগ নিচ্ছিল।

LOW_POWER_EXCEPTIONS

পরিবর্তন আইডি: ১৬৮৯৩৬৩৭৫
ডিফল্ট স্ট্যাটাস: Android ১২ (API লেভেল ৩১) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 12 (API লেভেল 31) এবং তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করা অ্যাপের ক্ষেত্রে, কলারের কাছে LOCATION_HARDWARE অনুমতি না থাকলে, কম পাওয়ার হিসেবে চিহ্নিত সব LocationRequest অবজেক্ট ব্যতিক্রম দেখায়, অনুরোধের কম পাওয়ার অংশটি নীরবে বাদ দেওয়ার পরিবর্তে।

MISSING_EXPORTED_FLAG

পরিবর্তন আইডি: ১৫০২৩২৬১৫
ডিফল্ট স্ট্যাটাস: Android ১২ (API লেভেল ৩১) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 12 (API লেভেল ৩১) এবং তার পরবর্তী ভার্সনকে টার্গেট করা অ্যাপের ক্ষেত্রে, ইনটেন্ট ফিল্টার সংজ্ঞায়িত করা হলে, android:exported অ্যাট্রিবিউটের জন্য একটি নির্দিষ্ট মান উল্লেখ করতে হবে।

এই পরিবর্তন সম্পর্কে আরও জানতে, কম্পোনেন্টের আরও নিরাপদ এক্সপোর্ট দেখুন।

NATIVE_HEAP_POINTER_TAGGING_APP_ZYGOTE

পরিবর্তন আইডি: ২০৭৫৫৭৬৭৭
ডিফল্ট স্ট্যাটাস: Android 12 (API লেভেল ৩২) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 12 (API লেভেল 32) এবং তার পরবর্তী ভার্সনকে টার্গেট করা অ্যাপের ক্ষেত্রে, AppZygote প্রসেস এবং এর ডিসেন্ডেন্টে নেটিভ হিপ অ্যালোকেশন সবচেয়ে গুরুত্বপূর্ণ বাইটে নন-জিরো ট্যাগ ব্যবহার করে।

এই পরিবর্তন সম্পর্কে আরও জানতে, ট্যাগ করা পয়েন্টার দেখুন।

NATIVE_HEAP_ZERO_INIT

পরিবর্তন আইডি: ১৭৮০৩৮২৭২
ডিফল্ট স্ট্যাটাস: সব অ্যাপের জন্য বন্ধ করা আছে।

নেটিভ হিপ মেমরি অ্যালোকেশনের অটোমেটিক জিরো-ইনিশিয়ালাইজেশন চালু করুন।

NATIVE_MEMTAG_ASYNC

পরিবর্তন আইডি: ১৩৫৭৭২৯৭২
ডিফল্ট স্ট্যাটাস: সব অ্যাপের জন্য বন্ধ করা আছে।

এই প্রসেসে অ্যাসিঙ্ক্রোনাস (ASYNC) মেমরি ট্যাগ চেকিং চালু করুন। এই ফ্ল্যাগ শুধুমাত্র ARM মেমরি ট্যাগিং এক্সটেনশন (MTE) কাজ করে এমন হার্ডওয়্যারকে প্রভাবিত করে।

NATIVE_MEMTAG_SYNC

পরিবর্তন আইডি: ১৭৭৪৩৮৩৯৪
ডিফল্ট অবস্থা: সব অ্যাপের জন্য বন্ধ করা আছে।

এই প্রসেসে সিঙ্ক্রোনাস (SYNC) মেমরি ট্যাগ চেকিং চালু করে। এই ফ্ল্যাগ শুধুমাত্র ARM মেমরি ট্যাগিং এক্সটেনশন (MTE) কাজ করে এমন হার্ডওয়্যারকে প্রভাবিত করে। NATIVE_MEMTAG_ASYNC এবং এই বিকল্প, দুটিই চালু থাকলে, এই বিকল্পটি অগ্রাধিকার পায় এবং MTE, SYNC মোডে চালু হয়।

NEVER_SANDBOX_DISPLAY_APIS

পরিবর্তন আইডি: ১৮৪৮৩৮৩০৬
ডিফল্ট স্ট্যাটাস: সব অ্যাপের জন্য বন্ধ করা আছে।

চালু করা থাকলে, লেটারবক্স বা SCM অ্যাক্টিভিটিতে ডিসপ্লে API স্যান্ডবক্সিং প্রয়োগ করা আটকায়। Display API, DisplayArea বাউন্ড প্রদান করা চালিয়ে যাবে।

এই পরিবর্তন সম্পর্কে আরও জানতে, Android 12-এর আচরণ পরিবর্তন সংক্রান্ত পৃষ্ঠায় বন্ধ হয়ে যাওয়া ডিসপ্লে পদ্ধতি সম্পর্কে বিভাগটি দেখুন।

NOTIFICATION_CANCELLATION_REASONS

পরিবর্তন আইডি: ১৭৫৩১৯৬০৪
ডিফল্ট স্ট্যাটাস: Android ১২ (API লেভেল ৩১) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

বিজ্ঞপ্তি লিসেনারকে আরও নির্দিষ্ট নতুন বাতিলের কারণ বুঝতে সাহায্য করে।

NOTIFICATION_TRAMPOLINE_BLOCK

পরিবর্তন আইডি: 167676448
ডিফল্ট স্ট্যাটাস: Android 12 (API লেভেল 31) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

অ্যাপের পারফর্ম্যান্স ও UX উন্নত করতে, Android 12-কে টার্গেট করা অ্যাপ, বিজ্ঞপ্তি ট্র্যাম্পোলিন হিসেবে পরিষেবা বা ব্রডকাস্ট রিসিভার ব্যবহার করতে পারবে না।

এই পরিবর্তন সম্পর্কে আরও জানতে, পরিষেবা বা ব্রডকাস্ট রিসিভার থেকে বিজ্ঞপ্তি ট্রাম্পোলিন তৈরি করা যাবে না দেখুন।

NULL_TELEPHONY_THROW_NO_CB

পরিবর্তন আইডি: ১৮২১৮৫৬৪২
ডিফল্ট স্ট্যাটাস: Android ১২ (API লেভেল ৩১) বা তার পরবর্তী ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

বর্তমান প্রসেসের জন্য টার্গেট SDK ভার্সন Android ১২ (API লেভেল ৩১) বা তার পরবর্তী ভার্সন কিনা তা চেক করার জন্য ব্যবহার করা হয়।

নিম্নলিখিত পদ্ধতিতে প্রযোজ্য:

OVERRIDE_MIN_ASPECT_RATIO

পরিবর্তন আইডি: ১৭৪০৪২৯৮০
ডিফল্ট স্ট্যাটাস: সব অ্যাপের জন্য বন্ধ করা আছে।

এই পরিবর্তনটি হল সেইসব পরিবর্তনের গেটকিপার যা প্রদত্ত ন্যূনতম অ্যাস্পেক্ট রেশিও প্রয়োগ করে। এই পরিবর্তন চালু করলে নিম্নলিখিত ন্যূনতম অ্যাস্পেক্ট রেশিও প্রয়োগ করা যাবে:

কোনও অ্যাপ প্যাকেজের জন্য এই পরিবর্তন চালু করা হলে, অ্যাপের ম্যানিফেস্টে উল্লেখ করা ন্যূনতম অ্যাস্পেক্ট রেশিও ওভাররাইড করে সবচেয়ে বড় চালু করা অ্যাস্পেক্ট রেশিও সেট করা হয়, যদি না অ্যাপের ম্যানিফেস্ট ভ্যালু আরও বেশি হয়।

OVERRIDE_MIN_ASPECT_RATIO_LARGE

পরিবর্তন আইডি: ১৮০৩২৬৭৮৭
ডিফল্ট অবস্থা: সব অ্যাপের জন্য বন্ধ করা আছে।

এছাড়াও, OVERRIDE_MIN_ASPECT_RATIO চালু করা থাকলে, কোনও প্যাকেজের জন্য এই পরিবর্তন চালু করলে অ্যাক্টিভিটির ন্যূনতম অ্যাস্পেক্ট রেশিও OVERRIDE_MIN_ASPECT_RATIO_LARGE_VALUE-এর দ্বারা নির্ধারিত বড় মানে সেট হয়ে যায়।

OVERRIDE_MIN_ASPECT_RATIO_MEDIUM

পরিবর্তন আইডি: ১৮০৩২৬৮৪৫
ডিফল্ট স্ট্যাটাস: সব অ্যাপের জন্য বন্ধ করা আছে।

এছাড়াও, OVERRIDE_MIN_ASPECT_RATIO চালু করা থাকলে, কোনও প্যাকেজের জন্য এই পরিবর্তন চালু করলে অ্যাক্টিভিটির ন্যূনতম অ্যাস্পেক্ট রেশিও OVERRIDE_MIN_ASPECT_RATIO_MEDIUM_VALUE-এর দ্বারা নির্ধারিত মাঝারি মানে সেট হয়ে যায়।

PENDING_INTENT_EXPLICIT_MUTABILITY_REQUIRED

পরিবর্তন আইডি: 160794467
ডিফল্ট স্ট্যাটাস: Android 12 (API লেভেল 31) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 12 (API লেভেল 31) এবং তার পরবর্তী ভার্সনকে টার্গেট করা অ্যাপের ক্ষেত্রে, আপনার অ্যাপের তৈরি করা প্রতিটি PendingIntent অবজেক্টের মিউটেবিলিটি আপনাকে উল্লেখ করতে হবে। এই অতিরিক্ত প্রয়োজনীয়তা আপনার অ্যাপের নিরাপত্তা উন্নত করে।

এই পরিবর্তন সম্পর্কে আরও জানতে, পেন্ডিং ইনটেন্টকে অবশ্যই পরিবর্তনশীলতা ঘোষণা করতে হবে দেখুন।

PREVENT_SETTING_PASSWORD_QUALITY_ON_PARENT

পরিবর্তন আইডি: ১৬৫৫৭৩৪৪২
ডিফল্ট স্ট্যাটাস: Android ১২ (API লেভেল ৩১) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 12 (API লেভেল 31) এবং তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করা অ্যাডমিন অ্যাপ DevicePolicyManager.getParentProfileInstance(ComponentName) কল করে পাওয়া DevicePolicyManager ইনস্ট্যান্সে পাসওয়ার্ড কোয়ালিটি সেট করতে DevicePolicyManager.setPasswordQuality(ComponentName, int) ব্যবহার করতে পারবে না। পরিবর্তে, তাদের উচিত DevicePolicyManager.setRequiredPasswordComplexity(int) ব্যবহার করে ডিভাইস-জুড়ে কোর্স-গ্রেনড পাসওয়ার্ডের প্রয়োজনীয়তা সেট করা।

RATE_LIMIT_TOASTS

পরিবর্তন আইডি: 174840628
ডিফল্ট স্ট্যাটাস: এই পরিবর্তন টগল করা যাবে না। এটি শুধুমাত্র কম্প্যাটিবিলিটি ফ্রেমওয়ার্কের মাধ্যমে লগ করা হয়।

সীমিত সময়ের মধ্যে ব্যবহারকারীকে অনেক বেশি টোস্ট দেখানোর মাধ্যমে ওভারবার্ডেন করা আটকানোর জন্য Toast.show() কলের সংখ্যার উপর রেট লিমিটিং চালু করে। নির্দিষ্ট সময়সীমার মধ্যে অনুমোদিত সংখ্যার চেয়ে বেশি টোস্ট দেখানোর চেষ্টা করলে টোস্ট বাতিল হয়ে যায়।

REQUIRE_EXACT_ALARM_PERMISSION

পরিবর্তন আইডি: 171306433
ডিফল্ট স্ট্যাটাস: Android 12 (API লেভেল 31) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 12 (API লেভেল 31) ও তার পরবর্তী ভার্সনকে টার্গেট করা অ্যাপের ক্ষেত্রে, এক্স্যাক্ট অ্যালার্ম সেট করার জন্য যেকোনও API ব্যবহার করতে অ্যাপের কাছে অবশ্যই Manifest.permission.SCHEDULE_EXACT_ALARM অনুমতি থাকতে হবে, যেমন setExactAndAllowWhileIdle(int, long, PendingIntent) ও setAlarmClock(AlarmClockInfo, PendingIntent)।

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_ACTIVE_DATA_SUB_ID

পরিবর্তন আইডি: 182478738
ডিফল্ট স্ট্যাটাস: Android 12 (API লেভেল 31) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 12 (API লেভেল ৩১) এবং তার পরবর্তী ভার্সনকে টার্গেট করা অ্যাপের ক্ষেত্রে, TelephonyCallback.ActiveDataSubscriptionIdListener কল করার জন্য অ্যাপের কাছে অবশ্যই Manifest.permission.READ_PHONE_STATE অনুমতি থাকতে হবে।

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_CELL_INFO

পরিবর্তন আইডি: ১৮৪৩২৩৯৩৪
ডিফল্ট স্ট্যাটাস: Android ১২ (API লেভেল ৩১) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 12 (API লেভেল ৩১) এবং তার পরবর্তী ভার্সনকে টার্গেট করা অ্যাপের ক্ষেত্রে, TelephonyCallback.CellInfoListener কল করার জন্য অ্যাপের কাছে অবশ্যই Manifest.permission.READ_PHONE_STATE অনুমতি থাকতে হবে।

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_DISPLAY_INFO

পরিবর্তন আইডি: 183164979
ডিফল্ট স্টেট: Android 12 (API লেভেল 31) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 12 (API লেভেল ৩১) এবং তার পরবর্তী ভার্সনকে টার্গেট করা অ্যাপের ক্ষেত্রে, TelephonyCallback.DisplayInfoListener কল করার জন্য অ্যাপের কাছে অবশ্যই Manifest.permission.READ_PHONE_STATE অনুমতি থাকতে হবে।

RESTRICT_ADB_BACKUP

পরিবর্তন আইডি: ১৭১০৩২৩৩৮
ডিফল্ট স্ট্যাটাস: Android ১২ (API লেভেল ৩১) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android ১২ (API লেভেল ৩১) এবং তার পরবর্তী ভার্সনকে টার্গেট করা অ্যাপের ক্ষেত্রে, ডিবাগেবল (android:debuggable-কে true-এ সেট করা হয়েছে) হিসেবে চলা অ্যাপের জন্য adb backup অটোমেটিক চালু হয়ে যায় এবং অন্য কোনও অ্যাপের জন্য উপলভ্য থাকে না।

RESTRICT_DOMAINS

পরিবর্তন আইডি: 175408749
ডিফল্ট স্ট্যাটাস: Android 12 (API লেভেল 31) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android ১২ (API লেভেল ৩১) এবং তার পরবর্তী ভার্সনকে টার্গেট করা অ্যাপের জন্য, অ্যাপ লিঙ্ক যাচাইকরণ API-এর আপডেট করা ফর্ম প্রয়োজন। এই প্রয়োজনীয়তার অর্থ হল, অ্যাপকে অবশ্যই ইনটেন্ট ফিল্টারের মধ্যে ডোমেন ঘোষণা করতে হবে, যার মধ্যে নিম্নলিখিত সবকটি অন্তর্ভুক্ত থাকে:

  • android:autoVerify="true"
  • Intent.ACTION_VIEW
  • Intent.CATEGORY_BROWSABLE
  • Intet.CATEGORY_DEFAULT
  • শুধুমাত্র IntentFilter.SCHEME_HTTP এবং/অথবা IntentFilter.SCHEME_HTTPS, অন্য কোনও স্কিম নেই

Android-এর আগের ভার্সনে, Intent.CATEGORY_BROWSABLE-এর প্রয়োজন ছিল না, অন্যান্য স্কিম অনুমোদিত ছিল এবং যেকোনও ইনটেন্ট ফিল্টারে autoVerify-কে true-এ সেট করলে তাতে মনে করা হত যে সব ইনটেন্ট ফিল্টার autoVerify="true"-এ সেট করা আছে।

SECURITY_EXCEPTION_ON_INVALID_ATTRIBUTION_TAG_CHANGE

পরিবর্তন আইডি: ১৫১১০৫৯৫৪
ডিফল্ট স্ট্যাটাস: Android ১২ (API লেভেল ৩১) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android ১২ (API লেভেল ৩১) এবং তার পরবর্তী ভার্সন টার্গেট করা অ্যাপের ক্ষেত্রে, এটি এনফোর্স করে যে noteOp(String, int, String), noteProxyOp(String, String), এবং startOp(String, int, String)-এ পাঠানো সব attributionTags প্যাকেজের ম্যানিফেস্টে উল্লেখ করা আছে যা পদ্ধতির প্যারামিটার হিসেবে নির্দিষ্ট করা হয়েছে।

এই পরিবর্তন চালু করতে, noteOp(String, int, String)-কে কল করা প্যাকেজ এবং পদ্ধতির প্যারামিটার হিসেবে নির্দিষ্ট করা প্যাকেজ, দুটিতেই এই পরিবর্তন চালু করতে হবে।

SELINUX_LATEST_CHANGES

পরিবর্তন আইডি: 143539591
ডিফল্ট স্ট্যাটাস: Android 12 (API লেভেল 31) বা তার পরবর্তী যেকোনও ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 12 (API লেভেল 31) এবং তার পরবর্তী ভার্সনকে টার্গেট করা অ্যাপের জন্য, লেটেস্ট SELinux পরিবর্তন চালু করে। Android ১২ (API লেভেল ৩১) বা তার চেয়ে উন্নত ভার্সন টার্গেট করা কোনও অ্যাপের জন্য এই পরিবর্তন বন্ধ করলে কোনও কাজ হবে না। শেয়ার করা ব্যবহারকারী আইডি ব্যবহার করে এমন অ্যাপের ক্ষেত্রে কোনও প্রভাব পড়বে না।

SETTINGS_API_V2

পরিবর্তন আইডি: ১৭৮১১১৪২১
ডিফল্ট অবস্থা: সব অ্যাপের জন্য চালু করা আছে।

AndroidManifest.xml ইনটেন্ট ফিল্টারে autoVerify=true হিসেবে চিহ্নিত ডোমেন যাচাই করার জন্য নতুন ব্যবহারকারীর পছন্দ API এখনও বর্তমান প্ল্যাটফর্ম প্রিভিউতে প্রয়োগ করা হয়নি। আপাতত, এই ChangeId চালু করে এবং adb shell pm set-app-links-user-selection ও একই ধরনের কমান্ড ব্যবহার করে নতুন ব্যবহারকারীর পছন্দ সংক্রান্ত পরিবর্তন প্রিভিউ করা সম্ভব।

USE_SHORT_FGS_USAGE_INTERACTION_TIME

পরিবর্তন আইডি: ১৮৩৯৭২৮৭৭
ডিফল্ট অবস্থা: Android ১২ (API লেভেল ৩১) বা তার পরবর্তী ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android ১২ (API লেভেল ৩১) এবং তার পরবর্তী ভার্সন টার্গেট করা অ্যাপের ক্ষেত্রে, অ্যাপ ফোরগ্রাউন্ড সার্ভিস শুরু করলে, স্ট্যান্ডবাই বাকেটকে ACTIVE-এ উন্নীত করার আগে আরও কম টাইমআউট ব্যবহার করা হবে কিনা তা নির্ধারণ করে।