সামঞ্জস্যপূর্ণ কাঠামো পরিবর্তন (Android 12)

চিত্র ১. ডেভেলপার অপশনের অ্যাপ কম্প্যাটিবিলিটি চেঞ্জ স্ক্রিনে আপনি যে পরিবর্তনগুলি টগল করতে পারেন তার তালিকা রয়েছে।

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

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

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

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

সামঞ্জস্য কাঠামোর মধ্যে অন্তর্ভুক্ত আচরণগত পরিবর্তনগুলি

এই বিভাগের তালিকাটি অ্যান্ড্রয়েড ১২-এর সামঞ্জস্য কাঠামোর অন্তর্ভুক্ত প্রতিটি আচরণগত পরিবর্তনের বর্ণনা দেয়।

আপনি Default State দ্বারা পরিবর্তনের তালিকা ফিল্টার করতে পারেন।

অ্যান্ড্রয়েড ১২-তে সামঞ্জস্যপূর্ণ কাঠামোতে আচরণগত পরিবর্তন যোগ করা হয়েছে

ALWAYS_SANDBOX_DISPLAY_APIS

আইডি পরিবর্তন করুন: 185004937
ডিফল্ট অবস্থা : সকল অ্যাপের জন্য অক্ষম।

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

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

AUTOFILL_NON_TEXT_REQUIRES_ON_RECEIVE_CONTENT_LISTENER

আইডি পরিবর্তন করুন: ১৬৩৪০০১০৫
ডিফল্ট অবস্থা : Android 12 (API লেভেল 32) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

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

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

BLOCK_FLAG_SLIPPERY

আইডি পরিবর্তন করুন: 157929241
ডিফল্ট অবস্থা : সকল অ্যাপের জন্য সক্ষম।

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

BLOCK_GPS_STATUS_USAGE

আইডি পরিবর্তন করুন: ১৪৪০২৭৫৩৮
ডিফল্ট অবস্থা : Android 12 (API লেভেল 31) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

Android 12 (API লেভেল 31) এবং তার উচ্চতর ভার্সনের জন্য তৈরি অ্যাপগুলির জন্য, সমস্ত GpsStatus API ব্যবহার GnssStatus API দিয়ে প্রতিস্থাপন করতে হবে।

BLOCK_IMMUTABLE_PENDING_INTENTS

আইডি পরিবর্তন করুন: ১৭১৩১৭৪৮০
ডিফল্ট অবস্থা : Android 12 (API লেভেল 31) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

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

BLOCK_PENDING_INTENT_SYSTEM_API_USAGE

আইডি পরিবর্তন করুন: ১৬৯৮৮৭২৪০
ডিফল্ট অবস্থা : Android 12 (API লেভেল 31) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

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

BLOCK_UNTRUSTED_TOUCHES

আইডি পরিবর্তন করুন: 158002302
ডিফল্ট অবস্থা : সকল অ্যাপের জন্য সক্ষম।

সিস্টেমের নিরাপত্তা এবং ভালো ব্যবহারকারীর অভিজ্ঞতা বজায় রাখার জন্য, অ্যান্ড্রয়েড ১২ অ্যাপগুলিকে এমন টাচ ইভেন্ট ব্যবহার করা থেকে বিরত রাখে যেখানে ওভারলে অ্যাপটিকে অনিরাপদ উপায়ে ব্লক করে।

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

CALL_ACTIVITY_RESULT_BEFORE_RESUME

আইডি পরিবর্তন করুন: 78294732
ডিফল্ট অবস্থা : Android 12 (API লেভেল 32) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

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

CAMERA_MIC_INDICATORS_NOT_PRESENT

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

ইঙ্গিত করে যে এই ডিভাইসটি ক্যামেরা এবং মাইক্রোফোন সূচকগুলিকে সমর্থন করে। যদি উপস্থিত থাকে তবে এটি false হবে, কারণ CompatChanges#isChangeEnabled পদ্ধতিটি যদি পরিবর্তন আইডি উপস্থিত না থাকে তবে true প্রদান করে।

CANNOT_INSTALL_WITH_BAD_PERMISSION_GROUPS

আইডি পরিবর্তন করুন: ১৪৬২১১৪০০
ডিফল্ট অবস্থা : Android 12 (API লেভেল 32) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

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

CHANGE_ID_AUTH_STATE_DENIED

আইডি পরিবর্তন করুন: 181350407
ডিফল্ট অবস্থা : Android 12 (API লেভেল 31) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

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

CHANGE_ID_SAMPLING_RATE_SENSORS_PERMISSION

আইডি পরিবর্তন করুন: ১৩৬০৬৯১৮৯
ডিফল্ট অবস্থা : Android 12 (API লেভেল 31) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

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

DELIVER_HISTORICAL_LOCATIONS

আইডি পরিবর্তন করুন: 73144566
ডিফল্ট অবস্থা : Android 12 (API লেভেল 31) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

অ্যান্ড্রয়েড ১২ (এপিআই লেভেল ৩১) এবং তার উচ্চতর ভার্সনের অ্যাপগুলির জন্য, লোকেশন ক্লায়েন্টরা কিছু পরিস্থিতিতে ঐতিহাসিক অবস্থানগুলি (বর্তমান সময়ের আগে থেকে) পেতে পারে।

DISPLAY_INFO_NR_ADVANCED_SUPPORTED

আইডি পরিবর্তন করুন: 181658987
ডিফল্ট অবস্থা : Android 12 (API লেভেল 31) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

Android 12 (API লেভেল 31) এবং উচ্চতর ভার্সনের জন্য অ্যাপগুলির জন্য, TelephonyDisplayInfo তে পরিবর্তনের জন্য ব্যাকওয়ার্ড সামঞ্জস্যতা প্রদান করে।

DISPLAY_MODE_RETURNS_PHYSICAL_REFRESH_RATE

আইডি পরিবর্তন করুন: 170503758
ডিফল্ট অবস্থা : Android 12 (API লেভেল 31) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

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

DOWNSCALED

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

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

যখন এই পরিবর্তনটি একটি অ্যাপ প্যাকেজের জন্য সক্ষম করা হয়, তখন অ্যাপটিকে জোরপূর্বক সর্বোচ্চ, সক্ষম স্কেলিং ফ্যাক্টরে আকার পরিবর্তন করা হয়। উদাহরণস্বরূপ, 80% এবং 70% ( DOWNSCALE_80 এবং DOWNSCALE_70 ) উভয়ই সক্ষম থাকলে 80% ব্যবহার করা হয়।

DOWNSCALE_30

আইডি পরিবর্তন করুন: 189970040
ডিফল্ট অবস্থা : সকল অ্যাপের জন্য অক্ষম।

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

DOWNSCALE_35

আইডি পরিবর্তন করুন: 189969749
ডিফল্ট অবস্থা : সকল অ্যাপের জন্য অক্ষম।

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

DOWNSCALE_40

আইডি পরিবর্তন করুন: 189970038
ডিফল্ট অবস্থা : সকল অ্যাপের জন্য অক্ষম।

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

DOWNSCALE_45

আইডি পরিবর্তন করুন: 189969782
ডিফল্ট অবস্থা : সকল অ্যাপের জন্য অক্ষম।

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

DOWNSCALE_50

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

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

DOWNSCALE_55

আইডি পরিবর্তন করুন: 189970036
ডিফল্ট অবস্থা : সকল অ্যাপের জন্য অক্ষম।

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

DOWNSCALE_60

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

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

DOWNSCALE_65

আইডি পরিবর্তন করুন: 189969744
ডিফল্ট অবস্থা : সকল অ্যাপের জন্য অক্ষম।

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

DOWNSCALE_70

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

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

DOWNSCALE_75

আইডি পরিবর্তন করুন: 189969779
ডিফল্ট অবস্থা : সকল অ্যাপের জন্য অক্ষম।

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

DOWNSCALE_80

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

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

DOWNSCALE_85

আইডি পরিবর্তন করুন: 189969734
ডিফল্ট অবস্থা : সকল অ্যাপের জন্য অক্ষম।

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

DOWNSCALE_90

আইডি পরিবর্তন করুন: 182811243
ডিফল্ট অবস্থা : সকল অ্যাপের জন্য অক্ষম।

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

DO_NOT_DOWNSCALE_TO_1080P_ON_TV

আইডি পরিবর্তন করুন: 157629738
ডিফল্ট অবস্থা : Android 12 (API লেভেল 31) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

অ্যান্ড্রয়েড ১২ (এপিআই লেভেল ৩১) এবং তার বেশি ভার্সনের জন্য অ্যান্ড্রয়েড টিভি অ্যাপগুলি যেকোনো উইন্ডো সাইজ পরিচালনা করবে বলে আশা করা হচ্ছে, যার মধ্যে ১০৮০p এর বেশি উইন্ডো সাইজও অন্তর্ভুক্ত। অ্যান্ড্রয়েডের পূর্ববর্তী ভার্সনগুলিকে লক্ষ্য করে এমন অ্যাপগুলি ১০৮০p এর বেশি উইন্ডোজ পাওয়ার আশা করে না, তাই প্রয়োজনে তাদের উইন্ডোজ ১০৮০p এ কমিয়ে আনা হয়।

DROP_CLOSE_SYSTEM_DIALOGS

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

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

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

ENABLE_CHECKS_FOR_PRIVATE_FILES

আইডি পরিবর্তন করুন: ১৭২১০০৩০৭
ডিফল্ট অবস্থা : Android 12 (API লেভেল 31) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

অ্যান্ড্রয়েড ১২ (এপিআই লেভেল ৩১) এবং তার উচ্চতর ভার্সনগুলিকে লক্ষ্য করে তৈরি অ্যাপগুলি মিডিয়া প্রোভাইডার ব্যবহার করে ব্যক্তিগত ফাইল সন্নিবেশ বা আপডেট করতে পারবে না।

ENABLE_DEFERRED_SCAN

আইডি পরিবর্তন করুন: 180326732
ডিফল্ট অবস্থা : Android 12 (API লেভেল 31) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

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

ENABLE_GET_CALL_STATE_PERMISSION_PROTECTION

আইডি পরিবর্তন করুন: 157233955
ডিফল্ট অবস্থা : Android 12 (API লেভেল 31) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

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

ENABLE_GET_PHONE_ACCOUNT_PERMISSION_PROTECTION

আইডি পরিবর্তন করুন: 183407956
ডিফল্ট অবস্থা : Android 12 (API লেভেল 31) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

Android 12 (API লেভেল 31) এবং উচ্চতর ভার্সনগুলিকে লক্ষ্য করে এমন অ্যাপগুলির জন্য, getPhoneAccount(PhoneAccountHandle)READ_PHONE_NUMBERS বা READ_PRIVILEGED_PHONE_STATE সুরক্ষা সক্ষম করে।

ENABLE_INCLUDE_ALL_VOLUMES

আইডি পরিবর্তন করুন: 182734110
ডিফল্ট অবস্থা : Android 12 (API লেভেল 31) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

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

ENABLE_RAW_MANAGE_EXTERNAL_STORAGE_ACCESS

আইডি পরিবর্তন করুন: ১৭৮২০৯৪৪৬
ডিফল্ট অবস্থা : Android 12 (API লেভেল 31) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

এই বিকল্পটি সক্ষম করুন যাতে Manifest.permission.MANAGE_EXTERNAL_STORAGE অনুমতি থাকা অ্যাপগুলিকে raw external storage অ্যাক্সেসের অনুরোধ করতে অনুমতি দেওয়া যায়।

ENFORCE_MINIMUM_WINDOW_ON_INEXACT_ALARMS

আইডি পরিবর্তন করুন: ১৮৫১৯৯০৭৬
ডিফল্ট অবস্থা : Android 12 (API লেভেল 31) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

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

ENFORCE_NATIVE_SHARED_LIBRARY_DEPENDENCIES

আইডি পরিবর্তন করুন: 142191088
ডিফল্ট অবস্থা : Android 12 (API লেভেল 31) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

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

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

ENFORCE_STRICT_QUERY_BUILDER

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

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

FGS_BG_START_RESTRICTION_CHANGE_ID

আইডি পরিবর্তন করুন: 170668199
ডিফল্ট অবস্থা : Android 12 (API লেভেল 31) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

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

FGS_START_EXCEPTION_CHANGE_ID

আইডি পরিবর্তন করুন: ১৭৪০৪১৩৯৯
ডিফল্ট অবস্থা : Android 12 (API লেভেল 31) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

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

FINISH_INPUT_NO_FALLBACK_CONNECTION

আইডি পরিবর্তন করুন: 156215187
ডিফল্ট অবস্থা : সকল অ্যাপের জন্য অক্ষম।

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

বর্তমান input method দ্বারা সক্রিয় করা হলে, ডিভাইসগুলি অ-ইন্টারেক্টিভ হয়ে গেলে বর্তমান ইনপুট সংযোগটি finished হয়ে যাবে।

যদি সক্ষম না করা হয়, তাহলে ডিভাইসগুলি অ-ইন্টারেক্টিভ হয়ে গেলে বর্তমান ইনপুট সংযোগটি নীরবে নিষ্ক্রিয় হয়ে যাবে এবং ডিভাইসটি আবার ইন্টারেক্টিভ হয়ে গেলে একটি onFinishInput() এবং onStartInput() জোড়া প্রেরণ করা হবে।

FORCE_DISABLE_HEVC_SUPPORT

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

HEVC মিডিয়া ক্ষমতা সমর্থন করা থেকে কোনও অ্যাপকে জোর করে অক্ষম করুন। অ্যাপগুলিকে তাদের ম্যানিফেস্টে তাদের সমর্থিত মিডিয়া ক্ষমতা ঘোষণা করতে হবে কিন্তু এই ফ্ল্যাগটি কোনও অ্যাপকে 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 লেভেল 31) এবং উচ্চতর ভার্সনের জন্য তৈরি অ্যাপগুলির জন্য, android.icu.impl.ICUBinary.dataPath প্রপার্টির অ্যাক্সেস সরিয়ে ফেলা হয়।

IGNORE_ALLOW_BACKUP_IN_D2D

আইডি পরিবর্তন করুন: 183147249
ডিফল্ট অবস্থা : Android 12 (API লেভেল 31) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

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

IGNORE_FULL_BACKUP_CONTENT_IN_D2D

আইডি পরিবর্তন করুন: 180523564
ডিফল্ট অবস্থা : Android 12 (API লেভেল 31) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

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

IME_AUTOFILL_DEFAULT_SUPPORTED_LOCALES_IS_EMPTY

আইডি পরিবর্তন করুন: ১৬৯২৭৩০৭০
ডিফল্ট অবস্থা : Android 12 (API লেভেল 31) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

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

IS_BACKUP_SERVICE_ACTIVE_ENFORCE_PERMISSION_IN_SERVICE

আইডি পরিবর্তন করুন: 158482162
ডিফল্ট অবস্থা : Android 12 (API লেভেল 31) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

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

KEYSTORE_OPERATION_CREATION_MAY_FAIL

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

সক্রিয় থাকলে, নতুন ছাঁটাই কৌশল অনুসারে কীস্টোর অপারেশন তৈরি ব্যর্থ হতে পারে। কীস্টোর আগে এই ধারণার উপর ভিত্তি করে কাজ করত যে ক্রিপ্টোগ্রাফিক অপারেশন তৈরি সর্বদা সফল হয়। তবে, কীমিন্ট ব্যাকএন্ডে সীমিত সংখ্যক অপারেশন স্লট রয়েছে।

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

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

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

LOCK_DOWN_CLOSE_SYSTEM_DIALOGS

আইডি পরিবর্তন করুন: ১৭৪৬৬৪৩৬৫
ডিফল্ট অবস্থা : Android 12 (API লেভেল 31) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

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

LOCK_DOWN_COLLAPSE_STATUS_BAR

আইডি পরিবর্তন করুন: ১৭৩০৩১৪১৩
ডিফল্ট অবস্থা : Android 12 (API লেভেল 31) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

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

LOW_POWER_EXCEPTIONS

আইডি পরিবর্তন করুন: ১৬৮৯৩৬৩৭৫
ডিফল্ট অবস্থা : Android 12 (API লেভেল 31) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

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

MISSING_EXPORTED_FLAG

আইডি পরিবর্তন করুন: 150232615
ডিফল্ট অবস্থা : Android 12 (API লেভেল 31) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

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

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

NATIVE_HEAP_POINTER_TAGGING_APP_ZYGOTE

আইডি পরিবর্তন করুন: 207557677
ডিফল্ট অবস্থা : Android 12 (API লেভেল 32) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

অ্যান্ড্রয়েড ১২ (এপিআই লেভেল ৩২) এবং তার উচ্চতর ভার্সনকে লক্ষ্য করে তৈরি অ্যাপগুলির জন্য, AppZygote প্রক্রিয়া এবং এর ডিসেন্ডেন্টগুলিতে নেটিভ হিপ অ্যালোকেশনগুলি সবচেয়ে উল্লেখযোগ্য বাইটে একটি নন-জিরো ট্যাগ ব্যবহার করে।

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

NATIVE_HEAP_ZERO_INIT

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

নেটিভ হিপ মেমরি অ্যালোকেশনের স্বয়ংক্রিয় শূন্য-ইনিশিয়ালাইজেশন সক্ষম করুন।

NATIVE_MEMTAG_ASYNC

আইডি পরিবর্তন করুন: 135772972
ডিফল্ট অবস্থা : সকল অ্যাপের জন্য অক্ষম।

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

NATIVE_MEMTAG_SYNC

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

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

NEVER_SANDBOX_DISPLAY_APIS

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

সক্রিয় থাকলে, ডিসপ্লে API স্যান্ডবক্সিংকে লেটারবক্স বা SCM কার্যকলাপে প্রয়োগ করা থেকে বিরত রাখে। ডিসপ্লে API গুলি DisplayArea সীমানা প্রদান করতে থাকবে।

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

NOTIFICATION_CANCELLATION_REASONS

আইডি পরিবর্তন করুন: ১৭৫৩১৯৬০৪
ডিফল্ট অবস্থা : Android 12 (API লেভেল 31) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

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

NOTIFICATION_TRAMPOLINE_BLOCK

আইডি পরিবর্তন করুন: ১৬৭৬৭৬৪৪৮
ডিফল্ট অবস্থা : Android 12 (API লেভেল 31) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

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

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

NULL_TELEPHONY_THROW_NO_CB

আইডি পরিবর্তন করুন: ১৮২১৮৫৬৪২
ডিফল্ট অবস্থা : Android 12 (API লেভেল 31) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

বর্তমান প্রক্রিয়ার জন্য লক্ষ্য SDK সংস্করণটি Android 12 (API স্তর 31) বা উচ্চতর কিনা তা পরীক্ষা করার জন্য ব্যবহৃত হয়।

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

OVERRIDE_MIN_ASPECT_RATIO

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

এই পরিবর্তনটি এমন সকল পরিবর্তনের দ্বাররক্ষক যা একটি নির্দিষ্ট ন্যূনতম আকৃতি অনুপাতকে বাধ্য করে। এই পরিবর্তনটি সক্ষম করলে নিম্নলিখিত ন্যূনতম আকৃতি অনুপাত প্রয়োগ করা সম্ভব হয়:

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

OVERRIDE_MIN_ASPECT_RATIO_LARGE

আইডি পরিবর্তন করুন: 180326787
ডিফল্ট অবস্থা : সকল অ্যাপের জন্য অক্ষম।

যখন OVERRIDE_MIN_ASPECT_RATIO ও সক্রিয় থাকে, তখন প্যাকেজের জন্য এই পরিবর্তনটি সক্ষম করলে কার্যকলাপের ন্যূনতম আকৃতির অনুপাত OVERRIDE_MIN_ASPECT_RATIO_LARGE_VALUE দ্বারা সংজ্ঞায়িত একটি বৃহৎ মানের সাথে সেট হয়।

OVERRIDE_MIN_ASPECT_RATIO_MEDIUM

আইডি পরিবর্তন করুন: 180326845
ডিফল্ট অবস্থা : সকল অ্যাপের জন্য অক্ষম।

যখন 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 অবজেক্টের পরিবর্তনযোগ্যতা নির্দিষ্ট করতে হবে। এই অতিরিক্ত প্রয়োজনীয়তা আপনার অ্যাপের নিরাপত্তা উন্নত করে।

এই পরিবর্তন সম্পর্কে আরও জানতে, Pending intents must declare mutability দেখুন।

PREVENT_SETTING_PASSWORD_QUALITY_ON_PARENT

আইডি পরিবর্তন করুন: ১৬৫৫৭৩৪৪২
ডিফল্ট অবস্থা : Android 12 (API লেভেল 31) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

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

RATE_LIMIT_TOASTS

আইডি পরিবর্তন করুন: ১৭৪৮৪০৬২৮
ডিফল্ট অবস্থা : এই পরিবর্তনটি টগল করা যাবে না। এটি শুধুমাত্র সামঞ্জস্যতা কাঠামো দ্বারা লগ করা হয়েছে।

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

REQUIRE_EXACT_ALARM_PERMISSION

আইডি পরিবর্তন করুন: ১৭১৩০৬৪৩৩
ডিফল্ট অবস্থা : Android 12 (API লেভেল 31) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

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

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_ACTIVE_DATA_SUB_ID

আইডি পরিবর্তন করুন: 182478738
ডিফল্ট অবস্থা : Android 12 (API লেভেল 31) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

Android 12 (API লেভেল 31) এবং তার উচ্চতর ভার্সনের অ্যাপগুলির জন্য, TelephonyCallback.ActiveDataSubscriptionIdListener কল করার জন্য অ্যাপগুলির Manifest.permission.READ_PHONE_STATE অনুমতি থাকতে হবে।

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_CELL_INFO

আইডি পরিবর্তন করুন: 184323934
ডিফল্ট অবস্থা : Android 12 (API লেভেল 31) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

Android 12 (API লেভেল 31) এবং উচ্চতর ভার্সনের জন্য, TelephonyCallback.CellInfoListener কল করার জন্য অ্যাপগুলির Manifest.permission.READ_PHONE_STATE অনুমতি থাকতে হবে।

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_DISPLAY_INFO

আইডি পরিবর্তন করুন: 183164979
ডিফল্ট অবস্থা : Android 12 (API লেভেল 31) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

Android 12 (API লেভেল 31) এবং উচ্চতর ভার্সনের জন্য, TelephonyCallback.DisplayInfoListener কল করার জন্য অ্যাপগুলির Manifest.permission.READ_PHONE_STATE অনুমতি থাকতে হবে।

RESTRICT_ADB_BACKUP

আইডি পরিবর্তন করুন: 171032338
ডিফল্ট অবস্থা : Android 12 (API লেভেল 31) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

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

RESTRICT_DOMAINS

আইডি পরিবর্তন করুন: ১৭৫৪০৮৭৪৯
ডিফল্ট অবস্থা : Android 12 (API লেভেল 31) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

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

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

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

SECURITY_EXCEPTION_ON_INVALID_ATTRIBUTION_TAG_CHANGE

আইডি পরিবর্তন করুন: 151105954
ডিফল্ট অবস্থা : Android 12 (API লেভেল 31) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

Android 12 (API লেভেল 31) এবং উচ্চতর ভার্সনগুলিকে লক্ষ্য করে এমন অ্যাপগুলির জন্য, 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 12 (API লেভেল 31) বা উচ্চতর ভার্সনের জন্য অ্যাপগুলির জন্য এই পরিবর্তনটি বন্ধ করা একটি অপ্রয়োজনীয় কাজ। শেয়ার্ড ইউজার আইডি ব্যবহার করে এমন অ্যাপগুলির জন্য এর কোনও প্রভাব নেই।

SETTINGS_API_V2

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

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

USE_SHORT_FGS_USAGE_INTERACTION_TIME

আইডি পরিবর্তন করুন: 183972877
ডিফল্ট অবস্থা : Android 12 (API লেভেল 31) বা তার বেশি ভার্সনের অ্যাপগুলির জন্য সক্ষম।

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