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

চিত্র 1 । বিকাশকারী বিকল্পগুলিতে অ্যাপ সামঞ্জস্য পরিবর্তনের স্ক্রীনটি আপনি যে পরিবর্তনগুলি টগল করতে পারেন তা তালিকাভুক্ত করে৷

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

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

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

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

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

এই বিভাগের তালিকাটি Android 12-এর সামঞ্জস্যপূর্ণ কাঠামোতে অন্তর্ভুক্ত প্রতিটি আচরণের পরিবর্তন বর্ণনা করে।

আপনি ডিফল্ট অবস্থা দ্বারা পরিবর্তনের তালিকা ফিল্টার করতে পারেন।

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

ALWAYS_SANDBOX_DISPLAY_APIS

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

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

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

AUTOFILL_NON_TEXT_REQUIRES_ON_RECEIVE_CONTENT_LISTENER

আইডি পরিবর্তন করুন: 163400105
ডিফল্ট অবস্থা : Android 12 (API স্তর 32) বা উচ্চতরকে লক্ষ্য করে এমন অ্যাপগুলির জন্য সক্ষম৷

অ্যান্ড্রয়েড 12 থেকে শুরু করে, প্ল্যাটফর্মটি অগমেন্টেড অটোফিল ফ্রেমওয়ার্ক ব্যবহার করে অ-টেক্সট পরামর্শ (যেমন ছবি) প্রদান করতে পারে ( স্বতঃপূর্ণ পরিষেবাগুলি দেখুন)। একটি অ্যাপ এই পরামর্শগুলি পরিচালনা করতে সক্ষম হওয়ার জন্য, এটিকে অবশ্যই 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
ডিফল্ট অবস্থা : সমস্ত অ্যাপের জন্য সক্ষম।

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

BLOCK_GPS_STATUS_USAGE

আইডি পরিবর্তন করুন: 144027538
ডিফল্ট অবস্থা : Android 12 (API স্তর 31) বা উচ্চতরকে লক্ষ্য করে এমন অ্যাপগুলির জন্য সক্ষম৷

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

BLOCK_IMMUTABLE_PENDING_INTENTS

আইডি পরিবর্তন করুন: 171317480
ডিফল্ট অবস্থা : Android 12 (API স্তর 31) বা উচ্চতরকে লক্ষ্য করে এমন অ্যাপগুলির জন্য সক্ষম৷

Android 12 (API লেভেল 31) এবং উচ্চতর টার্গেট করা অ্যাপগুলির জন্য, অপরিবর্তনীয় PendingIntent অবজেক্টগুলি যেগুলি অবস্থান APIগুলিতে পাস করা হয় সেগুলি একটি IllegalArgumentException.

BLOCK_PENDING_INTENT_SYSTEM_API_USAGE

আইডি পরিবর্তন করুন: 169887240
ডিফল্ট অবস্থা : Android 12 (API স্তর 31) বা উচ্চতরকে লক্ষ্য করে এমন অ্যাপগুলির জন্য সক্ষম৷

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

BLOCK_UNTRUSTED_TOUCHES

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

সিস্টেম নিরাপত্তা এবং একটি ভাল ব্যবহারকারীর অভিজ্ঞতা সংরক্ষণ করতে, Android 12 অ্যাপগুলিকে স্পর্শ ইভেন্টগুলি গ্রহণ করতে বাধা দেয় যেখানে একটি ওভারলে একটি অনিরাপদ উপায়ে অ্যাপটিকে ব্লক করে।

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

CALL_ACTIVITY_RESULT_BEFORE_RESUME

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

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

CAMERA_MIC_INDICATORS_NOT_PRESENT

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

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

CANNOT_INSTALL_WITH_BAD_PERMISSION_GROUPS

আইডি পরিবর্তন করুন: 146211400
ডিফল্ট অবস্থা : Android 12 (API স্তর 32) বা উচ্চতরকে লক্ষ্য করে এমন অ্যাপগুলির জন্য সক্ষম৷

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

CHANGE_ID_AUTH_STATE_DENIED

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

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

CHANGE_ID_SAMPLING_RATE_SENSORS_PERMISSION

আইডি পরিবর্তন করুন: 136069189
ডিফল্ট অবস্থা : Android 12 (API স্তর 31) বা উচ্চতরকে লক্ষ্য করে এমন অ্যাপগুলির জন্য সক্ষম৷

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

DELIVER_HISTORICAL_LOCATIONS

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

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) বা উচ্চতরকে লক্ষ্য করে এমন অ্যাপগুলির জন্য সক্ষম৷

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

DOWNSCALED

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

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

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

DOWNSCALE_30

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

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

DOWNSCALE_35

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

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

DOWNSCALE_40

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

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

DOWNSCALE_45

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

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

DOWNSCALE_50

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

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

DOWNSCALE_55

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

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

DOWNSCALE_60

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

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

DOWNSCALE_65

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

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

DOWNSCALE_70

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

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

DOWNSCALE_75

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

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

DOWNSCALE_80

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

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

DOWNSCALE_85

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

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

DOWNSCALE_90

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

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

DO_NOT_DOWNSCALE_TO_1080P_ON_TV

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

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

DROP_CLOSE_SYSTEM_DIALOGS

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

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

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

ENABLE_CHECKS_FOR_PRIVATE_FILES

আইডি পরিবর্তন করুন: 172100307
ডিফল্ট অবস্থা : Android 12 (API স্তর 31) বা উচ্চতরকে লক্ষ্য করে এমন অ্যাপগুলির জন্য সক্ষম৷

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) এবং উচ্চতরকে লক্ষ্য করে এমন অ্যাপগুলির জন্য, API-এর অনুসন্ধান এবং কল স্টেটকে বিজ্ঞপ্তি দেওয়ার ক্ষেত্রে READ_PHONE_STATE সুরক্ষা সক্ষম করে, যেমন TelecomManager#getCallState , TelephonyManager.getCallStateForSubscription() , এবং TelephonyCallback.CallStateListener .

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

আইডি পরিবর্তন করুন: 178209446
ডিফল্ট অবস্থা : Android 12 (API স্তর 31) বা উচ্চতরকে লক্ষ্য করে এমন অ্যাপগুলির জন্য সক্ষম৷

Manifest.permission.MANAGE_EXTERNAL_STORAGE অনুমতি ধারণ করা অ্যাপগুলিকে কাঁচা বাহ্যিক সঞ্চয়স্থান অ্যাক্সেসের অনুরোধ করার অনুমতি দিতে এই বিকল্পটি সক্ষম করুন৷

ENFORCE_MINIMUM_WINDOW_ON_INEXACT_ALARMS

আইডি পরিবর্তন করুন: 185199076
ডিফল্ট অবস্থা : Android 12 (API স্তর 31) বা উচ্চতরকে লক্ষ্য করে এমন অ্যাপগুলির জন্য সক্ষম৷

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

ENFORCE_NATIVE_SHARED_LIBRARY_DEPENDENCIES

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

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

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

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

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

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

FORCE_DISABLE_HEVC_SUPPORT

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

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

FORCE_ENABLE_HEVC_SUPPORT

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

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

FORCE_NON_RESIZE_APP

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

প্যাকেজগুলিকে অ-আকারযোগ্য হতে বাধ্য করে।

FORCE_RESIZE_APP

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

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

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) বা উচ্চতরকে লক্ষ্য করে এমন অ্যাপগুলির জন্য সক্ষম৷

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

IME_AUTOFILL_DEFAULT_SUPPORTED_LOCALES_IS_EMPTY

আইডি পরিবর্তন করুন: 169273070
ডিফল্ট অবস্থা : 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

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

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

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

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

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

LOCK_DOWN_CLOSE_SYSTEM_DIALOGS

আইডি পরিবর্তন করুন: 174664365
ডিফল্ট অবস্থা : Android 12 (API স্তর 31) বা উচ্চতরকে লক্ষ্য করে এমন অ্যাপগুলির জন্য সক্ষম৷

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

LOCK_DOWN_COLLAPSE_STATUS_BAR

আইডি পরিবর্তন করুন: 173031413
ডিফল্ট অবস্থা : Android 12 (API স্তর 31) বা উচ্চতরকে লক্ষ্য করে এমন অ্যাপগুলির জন্য সক্ষম৷

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

LOW_POWER_EXCEPTIONS

আইডি পরিবর্তন করুন: 168936375
ডিফল্ট অবস্থা : Android 12 (API স্তর 31) বা উচ্চতরকে লক্ষ্য করে এমন অ্যাপগুলির জন্য সক্ষম৷

অ্যান্ড্রয়েড 12 (এপিআই স্তর 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) বা উচ্চতরকে লক্ষ্য করে এমন অ্যাপগুলির জন্য সক্ষম৷

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

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

NATIVE_HEAP_ZERO_INIT

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

নেটিভ হিপ মেমরি বরাদ্দের স্বয়ংক্রিয় শূন্য-সূচনা সক্ষম করুন।

NATIVE_MEMTAG_ASYNC

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

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

NATIVE_MEMTAG_SYNC

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

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

NEVER_SANDBOX_DISPLAY_APIS

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

সক্রিয় করা হলে, ডিসপ্লে API স্যান্ডবক্সিংকে লেটারবক্স বা SCM কার্যকলাপে প্রয়োগ করা থেকে বাধা দেয়। ডিসপ্লে এপিআইগুলি ডিসপ্লেএরিয়া বাউন্ড প্রদান করতে থাকবে।

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

NOTIFICATION_CANCELLATION_REASONS

আইডি পরিবর্তন করুন: 175319604
ডিফল্ট অবস্থা : Android 12 (API স্তর 31) বা উচ্চতরকে লক্ষ্য করে এমন অ্যাপগুলির জন্য সক্ষম৷

বিজ্ঞপ্তি শ্রোতাদের নতুন বাতিলকরণের কারণগুলি বুঝতে অনুমতি দেয় যা আরও নির্দিষ্ট৷

NOTIFICATION_TRAMPOLINE_BLOCK

আইডি পরিবর্তন করুন: 167676448
ডিফল্ট অবস্থা : Android 12 (API স্তর 31) বা উচ্চতরকে লক্ষ্য করে এমন অ্যাপগুলির জন্য সক্ষম৷

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

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

NULL_TELEPHONY_THROW_NO_CB

আইডি পরিবর্তন করুন: 182185642
ডিফল্ট অবস্থা : Android 12 (API স্তর 31) বা উচ্চতরকে লক্ষ্য করে এমন অ্যাপগুলির জন্য সক্ষম৷

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

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

OVERRIDE_MIN_ASPECT_RATIO

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

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

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

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

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

PREVENT_SETTING_PASSWORD_QUALITY_ON_PARENT

আইডি পরিবর্তন করুন: 165573442
ডিফল্ট অবস্থা : Android 12 (API স্তর 31) বা উচ্চতরকে লক্ষ্য করে এমন অ্যাপগুলির জন্য সক্ষম৷

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

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

RESTRICT_DOMAINS

আইডি পরিবর্তন করুন: 175408749
ডিফল্ট অবস্থা : Android 12 (API স্তর 31) বা উচ্চতরকে লক্ষ্য করে এমন অ্যাপগুলির জন্য সক্ষম৷

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

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

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) বা উচ্চতরকে লক্ষ্য করে এমন অ্যাপগুলির জন্য সক্ষম৷

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

,
চিত্র 1 । বিকাশকারী বিকল্পগুলিতে অ্যাপ সামঞ্জস্য পরিবর্তনের স্ক্রীনটি আপনি যে পরিবর্তনগুলি টগল করতে পারেন তা তালিকাভুক্ত করে৷

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

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

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

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

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

এই বিভাগের তালিকাটি Android 12-এর সামঞ্জস্যপূর্ণ কাঠামোতে অন্তর্ভুক্ত প্রতিটি আচরণের পরিবর্তন বর্ণনা করে।

আপনি ডিফল্ট অবস্থা দ্বারা পরিবর্তনের তালিকা ফিল্টার করতে পারেন।

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

ALWAYS_SANDBOX_DISPLAY_APIS

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

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

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

AUTOFILL_NON_TEXT_REQUIRES_ON_RECEIVE_CONTENT_LISTENER

আইডি পরিবর্তন করুন: 163400105
ডিফল্ট রাজ্য : অ্যান্ড্রয়েড 12 (এপিআই স্তর 32) বা উচ্চতর লক্ষ্যগুলি এমন অ্যাপ্লিকেশনগুলির জন্য সক্ষম।

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

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

BLOCK_FLAG_SLIPPERY

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

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

BLOCK_GPS_STATUS_USAGE

আইডি পরিবর্তন করুন: 144027538
ডিফল্ট রাষ্ট্র : অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) বা উচ্চতর লক্ষ্য করে এমন অ্যাপ্লিকেশনগুলির জন্য সক্ষম।

অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) এবং উচ্চতর অ্যাপ্লিকেশনগুলির জন্য অ্যাপ্লিকেশনগুলির জন্য সমস্ত GpsStatus এপিআই ব্যবহার অবশ্যই GnssStatus এপিআইগুলির সাথে প্রতিস্থাপন করতে হবে।

BLOCK_IMMUTABLE_PENDING_INTENTS

আইডি পরিবর্তন করুন: 171317480
ডিফল্ট রাষ্ট্র : অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) বা উচ্চতর লক্ষ্য করে এমন অ্যাপ্লিকেশনগুলির জন্য সক্ষম।

অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) এবং উচ্চতর, অপরিবর্তনীয় অ্যাপ্লিকেশনগুলির জন্য অ্যাপ্লিকেশনগুলির জন্য PendingIntent অবজেক্টগুলি যা অবস্থান এপিআইগুলিতে পাস করা হয় সেগুলি একটি IllegalArgumentException.

BLOCK_PENDING_INTENT_SYSTEM_API_USAGE

আইডি পরিবর্তন করুন: 169887240
ডিফল্ট রাষ্ট্র : অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) বা উচ্চতর লক্ষ্য করে এমন অ্যাপ্লিকেশনগুলির জন্য সক্ষম।

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

BLOCK_UNTRUSTED_TOUCHES

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

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

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

CALL_ACTIVITY_RESULT_BEFORE_RESUME

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

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

CAMERA_MIC_INDICATORS_NOT_PRESENT

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

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

CANNOT_INSTALL_WITH_BAD_PERMISSION_GROUPS

আইডি পরিবর্তন করুন: 146211400
ডিফল্ট রাজ্য : অ্যান্ড্রয়েড 12 (এপিআই স্তর 32) বা উচ্চতর লক্ষ্যগুলি এমন অ্যাপ্লিকেশনগুলির জন্য সক্ষম।

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

CHANGE_ID_AUTH_STATE_DENIED

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

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

CHANGE_ID_SAMPLING_RATE_SENSORS_PERMISSION

আইডি পরিবর্তন করুন: 136069189
ডিফল্ট রাষ্ট্র : অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) বা উচ্চতর লক্ষ্য করে এমন অ্যাপ্লিকেশনগুলির জন্য সক্ষম।

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

DELIVER_HISTORICAL_LOCATIONS

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

অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) এবং উচ্চতর টার্গেট করা অ্যাপ্লিকেশনগুলির জন্য, অবস্থান ক্লায়েন্টরা কিছু পরিস্থিতিতে historical তিহাসিক অবস্থানগুলি (বর্তমান সময়ের আগে থেকে) পেতে পারে।

DISPLAY_INFO_NR_ADVANCED_SUPPORTED

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

অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) এবং উচ্চতর টার্গেট করা অ্যাপ্লিকেশনগুলির জন্য TelephonyDisplayInfo পরিবর্তনের জন্য পশ্চাদপদ সামঞ্জস্যতা সরবরাহ করে।

DISPLAY_MODE_RETURNS_PHYSICAL_REFRESH_RATE

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

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

DOWNSCALED

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

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

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

DOWNSCALE_30

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

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

DOWNSCALE_35

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

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

DOWNSCALE_40

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

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

DOWNSCALE_45

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

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

DOWNSCALE_50

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

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

DOWNSCALE_55

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

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

DOWNSCALE_60

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

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

DOWNSCALE_65

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

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

DOWNSCALE_70

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

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

DOWNSCALE_75

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

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

DOWNSCALE_80

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

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

DOWNSCALE_85

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

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

DOWNSCALE_90

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

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

DO_NOT_DOWNSCALE_TO_1080P_ON_TV

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

অ্যান্ড্রয়েড টিভি অ্যাপ্লিকেশনগুলি অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) এবং উচ্চতর লক্ষ্য করে 1080p এর চেয়ে বেশি উইন্ডোর আকার সহ কোনও উইন্ডো আকার পরিচালনা করবে বলে আশা করা হচ্ছে। অ্যান্ড্রয়েডের পূর্ববর্তী সংস্করণগুলিকে লক্ষ্য করে এমন অ্যাপ্লিকেশনগুলি 1080p এর চেয়ে বড় উইন্ডোজ পাওয়ার আশা করে না, সুতরাং তাদের উইন্ডোজগুলি যখন প্রয়োজন হয় তখন 1080p এ ডাউনস্কেল করা হয়।

DROP_CLOSE_SYSTEM_DIALOGS

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

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

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

ENABLE_CHECKS_FOR_PRIVATE_FILES

আইডি পরিবর্তন করুন: 172100307
ডিফল্ট রাষ্ট্র : অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) বা উচ্চতর লক্ষ্য করে এমন অ্যাপ্লিকেশনগুলির জন্য সক্ষম।

অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) এবং উচ্চতর টার্গেট করে অ্যাপ্লিকেশনগুলি মিডিয়া সরবরাহকারী ব্যবহার করে ব্যক্তিগত ফাইলগুলি সন্নিবেশ বা আপডেট করতে পারে না।

ENABLE_DEFERRED_SCAN

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

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

ENABLE_GET_CALL_STATE_PERMISSION_PROTECTION

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

অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) এবং উচ্চতর অ্যাপ্লিকেশনগুলির জন্য এপিআইএস কোয়েরি করা এবং কল স্টেটকে অবহিত করার জন্য READ_PHONE_STATE সুরক্ষা সক্ষম করে, যেমন TelecomManager#getCallState , TelephonyManager.getCallStateForSubscription() , এবং TelephonyCallback.CallStateListener

ENABLE_GET_PHONE_ACCOUNT_PERMISSION_PROTECTION

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

অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) এবং উচ্চতর টার্গেট করা অ্যাপ্লিকেশনগুলির জন্য, getPhoneAccount(PhoneAccountHandle)READ_PHONE_NUMBERS বা READ_PRIVILEGED_PHONE_STATE সুরক্ষা সক্ষম করে।

ENABLE_INCLUDE_ALL_VOLUMES

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

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

ENABLE_RAW_MANAGE_EXTERNAL_STORAGE_ACCESS

আইডি পরিবর্তন করুন: 178209446
ডিফল্ট রাষ্ট্র : অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) বা উচ্চতর লক্ষ্য করে এমন অ্যাপ্লিকেশনগুলির জন্য সক্ষম।

Manifest.permission.MANAGE_EXTERNAL_STORAGE holding

ENFORCE_MINIMUM_WINDOW_ON_INEXACT_ALARMS

আইডি পরিবর্তন করুন: 185199076
ডিফল্ট রাষ্ট্র : অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) বা উচ্চতর লক্ষ্য করে এমন অ্যাপ্লিকেশনগুলির জন্য সক্ষম।

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

ENFORCE_NATIVE_SHARED_LIBRARY_DEPENDENCIES

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

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

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

ENFORCE_STRICT_QUERY_BUILDER

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

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

FGS_BG_START_RESTRICTION_CHANGE_ID

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

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

FGS_START_EXCEPTION_CHANGE_ID

আইডি পরিবর্তন করুন: 174041399
ডিফল্ট রাষ্ট্র : অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) বা উচ্চতর লক্ষ্য করে এমন অ্যাপ্লিকেশনগুলির জন্য সক্ষম।

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

FINISH_INPUT_NO_FALLBACK_CONNECTION

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

অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) এবং উচ্চতর টার্গেট করা অ্যাপ্লিকেশনগুলির জন্য ডিভাইসটি non-interactive হয়ে গেলে InputConnection শেষ করুন।

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

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

FORCE_DISABLE_HEVC_SUPPORT

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

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

FORCE_ENABLE_HEVC_SUPPORT

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

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

FORCE_NON_RESIZE_APP

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

এটি প্যাকেজগুলি জোর করে এটি প্রয়োগযোগ্য হতে প্রয়োগ করা হয়।

FORCE_RESIZE_APP

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

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

HIDE_PROP_ICUBINARY_DATA_PATH

আইডি পরিবর্তন করুন: 171979766
ডিফল্ট রাষ্ট্র : অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) বা উচ্চতর লক্ষ্য করে এমন অ্যাপ্লিকেশনগুলির জন্য সক্ষম।

অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) এবং উচ্চতর টার্গেট করে অ্যাপ্লিকেশনগুলির জন্য, android.icu.impl.ICUBinary.dataPath সম্পত্তিটিতে অ্যাক্সেস সরিয়ে দেয়।

IGNORE_ALLOW_BACKUP_IN_D2D

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

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

IGNORE_FULL_BACKUP_CONTENT_IN_D2D

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

অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) এবং উচ্চতর অ্যাপ্লিকেশনগুলির জন্য অ্যাপ্লিকেশনগুলির জন্য android:fullBackupContent উপেক্ষা করা হয়।

IME_AUTOFILL_DEFAULT_SUPPORTED_LOCALES_IS_EMPTY

আইডি পরিবর্তন করুন: 169273070
ডিফল্ট রাষ্ট্র : অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) বা উচ্চতর লক্ষ্য করে এমন অ্যাপ্লিকেশনগুলির জন্য সক্ষম।

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

IS_BACKUP_SERVICE_ACTIVE_ENFORCE_PERMISSION_IN_SERVICE

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

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

KEYSTORE_OPERATION_CREATION_MAY_FAIL

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

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

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

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

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

LOCK_DOWN_CLOSE_SYSTEM_DIALOGS

আইডি পরিবর্তন করুন: 174664365
ডিফল্ট রাষ্ট্র : অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) বা উচ্চতর লক্ষ্য করে এমন অ্যাপ্লিকেশনগুলির জন্য সক্ষম।

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

LOCK_DOWN_COLLAPSE_STATUS_BAR

আইডি পরিবর্তন করুন: 173031413
ডিফল্ট রাষ্ট্র : অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) বা উচ্চতর লক্ষ্য করে এমন অ্যাপ্লিকেশনগুলির জন্য সক্ষম।

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

LOW_POWER_EXCEPTIONS

আইডি পরিবর্তন করুন: 168936375
ডিফল্ট রাষ্ট্র : অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) বা উচ্চতর লক্ষ্য করে এমন অ্যাপ্লিকেশনগুলির জন্য সক্ষম।

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

MISSING_EXPORTED_FLAG

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

অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) এবং উচ্চতর অ্যাপ্লিকেশনগুলির জন্য অ্যাপ্লিকেশনগুলির জন্য, android:exported বৈশিষ্ট্য।

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

NATIVE_HEAP_POINTER_TAGGING_APP_ZYGOTE

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

অ্যান্ড্রয়েড 12 (এপিআই স্তর 32) এবং উচ্চতর, AppZygote প্রক্রিয়াতে নেটিভ হিপ বরাদ্দ এবং এর বংশধররা সবচেয়ে উল্লেখযোগ্য বাইটে একটি শূন্য ট্যাগ ব্যবহার করে এমন অ্যাপ্লিকেশনগুলির জন্য।

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

NATIVE_HEAP_ZERO_INIT

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

নেটিভ হিপ মেমরি বরাদ্দের স্বয়ংক্রিয় শূন্য-প্রাথমিককরণ সক্ষম করুন।

NATIVE_MEMTAG_ASYNC

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

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

NATIVE_MEMTAG_SYNC

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

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

NEVER_SANDBOX_DISPLAY_APIS

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

সক্ষম হয়ে গেলে, এপিআই স্যান্ডবক্সিংকে কোনও লেটারবক্স বা এসসিএম ক্রিয়াকলাপে প্রয়োগ করা থেকে বিরত রাখে। ডিসপ্লে এপিআইগুলি ডিসপ্লেয়ারিয়া সীমা সরবরাহ করতে থাকবে।

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

NOTIFICATION_CANCELLATION_REASONS

আইডি পরিবর্তন করুন: 175319604
ডিফল্ট রাষ্ট্র : অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) বা উচ্চতর লক্ষ্য করে এমন অ্যাপ্লিকেশনগুলির জন্য সক্ষম।

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

NOTIFICATION_TRAMPOLINE_BLOCK

আইডি পরিবর্তন করুন: 167676448
ডিফল্ট রাষ্ট্র : অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) বা উচ্চতর লক্ষ্য করে এমন অ্যাপ্লিকেশনগুলির জন্য সক্ষম।

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

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

NULL_TELEPHONY_THROW_NO_CB

আইডি পরিবর্তন করুন: 182185642
ডিফল্ট রাষ্ট্র : অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) বা উচ্চতর লক্ষ্য করে এমন অ্যাপ্লিকেশনগুলির জন্য সক্ষম।

বর্তমান প্রক্রিয়াটির জন্য টার্গেট এসডিকে সংস্করণটি অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) বা উচ্চতর কিনা তা যাচাই করার জন্য ব্যবহৃত।

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

OVERRIDE_MIN_ASPECT_RATIO

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

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

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

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
ডিফল্ট রাষ্ট্র : অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) বা উচ্চতর লক্ষ্য করে এমন অ্যাপ্লিকেশনগুলির জন্য সক্ষম।

অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) এবং উচ্চতর লক্ষ্য করে অ্যাপ্লিকেশনগুলির জন্য আপনাকে অবশ্যই আপনার অ্যাপ্লিকেশনটি তৈরি করে এমন প্রতিটি PendingIntent অবজেক্টের পরিবর্তনটি নির্দিষ্ট করতে হবে। এই অতিরিক্ত প্রয়োজনীয়তা আপনার অ্যাপ্লিকেশনটির সুরক্ষা উন্নত করে।

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

PREVENT_SETTING_PASSWORD_QUALITY_ON_PARENT

আইডি পরিবর্তন করুন: 165573442
ডিফল্ট রাষ্ট্র : অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) বা উচ্চতর লক্ষ্য করে এমন অ্যাপ্লিকেশনগুলির জন্য সক্ষম।

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

RATE_LIMIT_TOASTS

আইডি পরিবর্তন করুন: 174840628
ডিফল্ট রাষ্ট্র : এই পরিবর্তনটি টগল করা যায় না। এটি কেবল সামঞ্জস্যতা কাঠামো দ্বারা লগ করা হয়।

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

REQUIRE_EXACT_ALARM_PERMISSION

আইডি পরিবর্তন করুন: 171306433
ডিফল্ট রাষ্ট্র : অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) বা উচ্চতর লক্ষ্য করে এমন অ্যাপ্লিকেশনগুলির জন্য সক্ষম।

অ্যান্ড্রয়েড 12 (এপিআই স্তর 31 setAlarmClock(AlarmClockInfo, PendingIntent) এবং উচ্চতর অ্যাপ্লিকেশনগুলির জন্য অ্যাপ্লিকেশনগুলির জন্য অ্যাপ্লিকেশনগুলির অবশ্যই Manifest.permission.SCHEDULE_EXACT_ALARM থাকতে হবে setExactAndAllowWhileIdle(int, long, PendingIntent)

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_ACTIVE_DATA_SUB_ID

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

অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) এবং উচ্চতর টার্গেট করা অ্যাপ্লিকেশনগুলির জন্য অ্যাপ্লিকেশনগুলির অবশ্যই Manifest.permission.READ_PHONE_STATE অনুমতি থাকতে হবে TelephonyCallback.ActiveDataSubscriptionIdListener কল করার জন্য।

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_CELL_INFO

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

অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) এবং উচ্চতর টার্গেট করা অ্যাপ্লিকেশনগুলির জন্য, অ্যাপসগুলির অবশ্যই টেলিফোন.এরমিশন.আরড_ফোন_স্টেটের অনুমতি TelephonyCallback.CellInfoListener কল করার জন্য অবশ্যই Manifest.permission.READ_PHONE_STATE । রিড_স্টেট অনুমতি থাকতে হবে।

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_DISPLAY_INFO

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

অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) এবং উচ্চতর অ্যাপ্লিকেশনগুলির জন্য অ্যাপ্লিকেশনগুলির জন্য, অ্যাপ্লিকেশনগুলির অবশ্যই Manifest.permission.READ_PHONE_STATE TelephonyCallback.DisplayInfoListener

RESTRICT_ADB_BACKUP

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

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

RESTRICT_DOMAINS

আইডি পরিবর্তন করুন: 175408749
ডিফল্ট রাষ্ট্র : অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) বা উচ্চতর লক্ষ্য করে এমন অ্যাপ্লিকেশনগুলির জন্য সক্ষম।

অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) এবং উচ্চতর অ্যাপ্লিকেশনগুলির জন্য অ্যাপ্লিকেশনগুলির জন্য অ্যাপ্লিকেশন লিঙ্কগুলি যাচাইকরণ এপিআইয়ের আপডেট ফর্মটি প্রয়োজন। এই প্রয়োজনীয়তার অর্থ একটি অ্যাপ্লিকেশন অবশ্যই একটি অভিপ্রায় ফিল্টারের ভিতরে ডোমেনগুলি ঘোষণা করতে হবে যা নিম্নলিখিত সমস্ত অন্তর্ভুক্ত করে:

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

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

SECURITY_EXCEPTION_ON_INVALID_ATTRIBUTION_TAG_CHANGE

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

অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) এবং উচ্চতর লক্ষ্য করে অ্যাপ্লিকেশনগুলির জন্য, প্রয়োগ করে যে সমস্ত attributionTags noteOp(String, int, String) , noteProxyOp(String, String) , এবং startOp(String, int, String) এ পাঠানো প্যাকেজের ম্যানিফেস্টে সংজ্ঞায়িত করা হয়েছে যা পদ্ধতির প্যারামিটার হিসাবে নির্দিষ্ট করা হয়েছে।

এই পরিবর্তনটি সক্ষম করতে, প্যাকেজ কলিং noteOp(String, int, String) পাশাপাশি পদ্ধতির প্যারামিটার হিসাবে নির্দিষ্ট প্যাকেজ উভয়ই অবশ্যই এই পরিবর্তন সক্ষম করতে হবে।

SELINUX_LATEST_CHANGES

আইডি পরিবর্তন করুন: 143539591
ডিফল্ট রাষ্ট্র : অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) বা উচ্চতর লক্ষ্য করে এমন অ্যাপ্লিকেশনগুলির জন্য সক্ষম।

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

SETTINGS_API_V2

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

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

USE_SHORT_FGS_USAGE_INTERACTION_TIME

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

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

,
চিত্র 1 । বিকাশকারী বিকল্পগুলিতে অ্যাপের সামঞ্জস্যতা পরিবর্তনগুলি স্ক্রিন পরিবর্তনগুলি আপনি টগল করতে পারেন এমন পরিবর্তনগুলি তালিকাভুক্ত করে।

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

সামঞ্জস্যতা কাঠামোর সরঞ্জামগুলি ব্যবহার করে আপনি কিছু করতে পারেন এখানে:

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

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

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

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

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

অ্যান্ড্রয়েড 12 এ সামঞ্জস্যতা কাঠামোর সাথে আচরণ পরিবর্তনগুলি যুক্ত হয়েছে

ALWAYS_SANDBOX_DISPLAY_APIS

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

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

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

AUTOFILL_NON_TEXT_REQUIRES_ON_RECEIVE_CONTENT_LISTENER

আইডি পরিবর্তন করুন: 163400105
ডিফল্ট রাজ্য : অ্যান্ড্রয়েড 12 (এপিআই স্তর 32) বা উচ্চতর লক্ষ্যগুলি এমন অ্যাপ্লিকেশনগুলির জন্য সক্ষম।

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

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

BLOCK_FLAG_SLIPPERY

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

অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) এ চলমান অ্যাপ্লিকেশনগুলির জন্য, অ্যাপ্লিকেশনটিতে কোনও উইন্ডোজের সাথে FLAG_SLIPPERY ব্যবহার করা হচ্ছে কিনা তা পরীক্ষা করে। We expect that this flag is likely only used by the system components as it is an unsupported field . If so, it will be restricted.

BLOCK_GPS_STATUS_USAGE

Change ID: 144027538
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, all GpsStatus API usage must be replaced with GnssStatus APIs.

BLOCK_IMMUTABLE_PENDING_INTENTS

Change ID: 171317480
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, immutable PendingIntent objects that are passed into location APIs will generate an IllegalArgumentException.

BLOCK_PENDING_INTENT_SYSTEM_API_USAGE

Change ID: 169887240
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, LocationRequest system APIs can't be used with PendingIntent location requests.

BLOCK_UNTRUSTED_TOUCHES

Change ID: 158002302
Default State : Enabled for all apps.

To preserve system security and a good user experience, Android 12 prevents apps from consuming touch events where an overlay blocks the app in an unsafe way.

To learn more about this change, see Untrusted touch events are blocked .

CALL_ACTIVITY_RESULT_BEFORE_RESUME

Change ID: 78294732
Default State : Enabled for apps that target Android 12 (API level 32) or higher.

For apps targeting Android 12 (API level 32) and higher, corrects the lifecycle of activity result to guarantee that an activity gets the activity result just before resume.

CAMERA_MIC_INDICATORS_NOT_PRESENT

Change ID: 162547999
Default State : Disabled for all apps.

Indicates that this device supports camera and microphone indicators. Will be false if present, because the CompatChanges#isChangeEnabled method returns true if the Change ID is not present.

CANNOT_INSTALL_WITH_BAD_PERMISSION_GROUPS

Change ID: 146211400
Default State : Enabled for apps that target Android 12 (API level 32) or higher.

For apps targeting Android 12 (API level 32) and higher, the package manager will not install a package if there are malformed permission groups. Permission groups should only be shared between apps sharing a certificate. If a permission belongs to a group, that group must also be defined.

CHANGE_ID_AUTH_STATE_DENIED

Change ID: 181350407
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For client apps targeting Android 12 (API level 31) and higher, a SecurityException is thrown when they are in the denied authorization state and attempt to send a message to a nanoapp.

CHANGE_ID_SAMPLING_RATE_SENSORS_PERMISSION

Change ID: 136069189
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, a SecurityException is thrown when they do not have HIGH_SAMPLING_RATE_SENSORS permission, run in debug mode, and request sampling rates that are faster than 200 Hz.

DELIVER_HISTORICAL_LOCATIONS

Change ID: 73144566
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, location clients may receive historical locations (from before the present time) under some circumstances.

DISPLAY_INFO_NR_ADVANCED_SUPPORTED

Change ID: 181658987
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, provides backward compatibility for changes in TelephonyDisplayInfo .

DISPLAY_MODE_RETURNS_PHYSICAL_REFRESH_RATE

Change ID: 170503758
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, the platform might throttle down an app's frame rate to a divisor of the refresh rate if it is more preferable (for example, if the app called to Surface.setFrameRate(float, int) ). Apps will experience Choreographer.postFrameCallback(Choreographer.FrameCallback) callbacks and backpressure at the throttled frame rate. Apps use Display.getRefreshRate() and Display.Mode.getRefreshRate() to know what the display refresh rate is. Display.getRefreshRate() will always return the application frame rate and not the physical display refresh rate to allow apps to do frame pacing correctly. Display.Mode.getRefreshRate() will return the app frame rate if compiled to a previous release and starting with Android 12 (API level 31) it will return the physical display refresh rate.

DOWNSCALED

Change ID: 168419799
Default State : Disabled for all apps.

This change is the gatekeeper of all per-app buffer downscaling changes. Enabling this change allows the following scaling factors to be applied:

When this change is enabled for an app package, the app is forcibly resized to the highest, enabled scaling factor. For example, 80% is used if both 80% and 70% ( DOWNSCALE_80 and DOWNSCALE_70 ) are enabled.

DOWNSCALE_30

Change ID: 189970040
Default State : Disabled for all apps.

When DOWNSCALED is also enabled, enabling this change for a package forces the app to assume it's running on a display with 30% of the vertical and horizontal resolution of the real display.

DOWNSCALE_35

Change ID: 189969749
Default State : Disabled for all apps.

When DOWNSCALED is also enabled, enabling this change for a package forces the app to assume it's running on a display with 35% of the vertical and horizontal resolution of the real display.

DOWNSCALE_40

Change ID: 189970038
Default State : Disabled for all apps.

When DOWNSCALED is also enabled, enabling this change for a package forces the app to assume it's running on a display with 40% of the vertical and horizontal resolution of the real display.

DOWNSCALE_45

Change ID: 189969782
Default State : Disabled for all apps.

When DOWNSCALED is also enabled, enabling this change for a package forces the app to assume it's running on a display with 45% of the vertical and horizontal resolution of the real display.

DOWNSCALE_50

Change ID: 176926741
Default State : Disabled for all apps.

When DOWNSCALED is also enabled, enabling this change for a package forces the app to assume it's running on a display with 50% of the vertical and horizontal resolution of the real display.

DOWNSCALE_55

Change ID: 189970036
Default State : Disabled for all apps.

When DOWNSCALED is also enabled, enabling this change for a package forces the app to assume it's running on a display with 55% of the vertical and horizontal resolution of the real display.

DOWNSCALE_60

Change ID: 176926771
Default State : Disabled for all apps.

When DOWNSCALED is also enabled, enabling this change for a package forces the app to assume it's running on a display with 60% of the vertical and horizontal resolution of the real display.

DOWNSCALE_65

Change ID: 189969744
Default State : Disabled for all apps.

When DOWNSCALED is also enabled, enabling this change for a package forces the app to assume it's running on a display with 65% of the vertical and horizontal resolution of the real display.

DOWNSCALE_70

Change ID: 176926829
Default State : Disabled for all apps.

When DOWNSCALED is also enabled, enabling this change for a package forces the app to assume it's running on a display with 70% of the vertical and horizontal resolution of the real display.

DOWNSCALE_75

Change ID: 189969779
Default State : Disabled for all apps.

When DOWNSCALED is also enabled, enabling this change for a package forces the app to assume it's running on a display with 75% of the vertical and horizontal resolution of the real display.

DOWNSCALE_80

Change ID: 176926753
Default State : Disabled for all apps.

When DOWNSCALED is also enabled, enabling this change for a package forces the app to assume it's running on a display with 80% of the vertical and horizontal resolution of the real display.

DOWNSCALE_85

Change ID: 189969734
Default State : Disabled for all apps.

When DOWNSCALED is also enabled, enabling this change for a package forces the app to assume it's running on a display with 85% of the vertical and horizontal resolution of the real display.

DOWNSCALE_90

Change ID: 182811243
Default State : Disabled for all apps.

When DOWNSCALED is also enabled, enabling this change for a package forces the app to assume it's running on a display with 90% of the vertical and horizontal resolution of the real display.

DO_NOT_DOWNSCALE_TO_1080P_ON_TV

Change ID: 157629738
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

Android TV apps targeting Android 12 (API level 31) and higher are expected to handle any Window size, including Window sizes greater than 1080p. Apps that target earlier versions of Android do not expect to receive Windows larger than 1080p, so their Windows are downscaled to 1080p when necessary.

DROP_CLOSE_SYSTEM_DIALOGS

Change ID: 174664120
Default State : Enabled for all apps.

To improve user control when interacting with apps and the system, the ACTION_CLOSE_SYSTEM_DIALOGS intent action is deprecated as of Android 12.

To learn more about this change, see Apps can't close system dialogs .

ENABLE_CHECKS_FOR_PRIVATE_FILES

Change ID: 172100307
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

Apps targeting Android 12 (API level 31) and higher can't insert or update private files using media provider.

ENABLE_DEFERRED_SCAN

Change ID: 180326732
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

Enable this option to defer the scan that is triggered as part of MediaProvider#update() .

ENABLE_GET_CALL_STATE_PERMISSION_PROTECTION

Change ID: 157233955
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, enables READ_PHONE_STATE protection on APIs querying and notifying call state, such as TelecomManager#getCallState , TelephonyManager.getCallStateForSubscription() , and TelephonyCallback.CallStateListener .

ENABLE_GET_PHONE_ACCOUNT_PERMISSION_PROTECTION

Change ID: 183407956
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, enables READ_PHONE_NUMBERS or READ_PRIVILEGED_PHONE_STATE protections on getPhoneAccount(PhoneAccountHandle) .

ENABLE_INCLUDE_ALL_VOLUMES

Change ID: 182734110
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

Enable this option to include database rows of files from a recently unmounted volume in MediaProvider#query .

ENABLE_RAW_MANAGE_EXTERNAL_STORAGE_ACCESS

Change ID: 178209446
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

Enable this option to allow apps holding the Manifest.permission.MANAGE_EXTERNAL_STORAGE permission to request raw external storage access.

ENFORCE_MINIMUM_WINDOW_ON_INEXACT_ALARMS

Change ID: 185199076
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, all inexact alarms are required to have a minimum window size, expected to be on the order of a few minutes. Practically, any alarms requiring smaller windows are the same as exact alarms and should use the corresponding APIs provided, such as setExact(int, long, PendingIntent) . Inexact alarm with shorter windows specified will have their windows elongated by the system.

ENFORCE_NATIVE_SHARED_LIBRARY_DEPENDENCIES

Change ID: 142191088
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

Apps targeting Android 12 (API level 31) and higher need to declare dependencies to the public native shared libraries that are defined by the device maker using uses-native-library tag in its AndroidManifest.xml . If any of the dependencies can't be satisfied—for example, one of the dependencies doesn't exist—the package manager won't install the app. The dependency can be specified as optional using the android:required attribute in the tag, in which case failing to satisfy the dependency won't stop the installation.

Once installed, an app is provided with only the native shared libraries that are specified in the app manifest. Calling dlopen on a native shared library that doesn't appear in the app manifest will fail even if it actually exists on the device.

ENFORCE_STRICT_QUERY_BUILDER

Change ID: 143231523
Default State : Disabled for all apps.

When enabled, the SQLiteQueryBuilder verifies all CalendarProvider2 query selections against malicious arguments.

FGS_BG_START_RESTRICTION_CHANGE_ID

Change ID: 170668199
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, restricts when apps can start foreground services while running in the background.

FGS_START_EXCEPTION_CHANGE_ID

Change ID: 174041399
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, enables the system to throw an IllegalStateException if an app attempts to start a foreground service while running in the background.

FINISH_INPUT_NO_FALLBACK_CONNECTION

Change ID: 156215187
Default State : Disabled for all apps.

For apps targeting Android 12 (API level 31) and higher, finish the InputConnection when the device becomes non-interactive .

If enabled by the current input method , the current input connection will be finished whenever the devices becomes non-interactive.

If not enabled, the current input connection will instead be silently deactivated when the devices becomes non-interactive, and an onFinishInput() and onStartInput() pair is dispatched when the device becomes interactive again.

FORCE_DISABLE_HEVC_SUPPORT

Change ID: 174227820
Default State : Disabled for all apps.

Force disable an app from supporting the HEVC media capability. Apps should declare their supported media capabilities in their manifest but this flag can be used to force an app into not supporting HEVC, hence forcing transcoding while accessing media encoded in HEVC. Setting this flag overrides any OS level defaults for apps. It is disabled by default, meaning that the OS defaults take precedence. If both this flag and FORCE_ENABLE_HEVC_SUPPORT are enabled, the OS ignores both flags.

FORCE_ENABLE_HEVC_SUPPORT

Change ID: 174228127
Default State : Disabled for all apps.

Force enable an app to support the HEVC media capability Apps should declare their supported media capabilities in their manifest but this flag can be used to force an app into supporting HEVC, hence avoiding transcoding while accessing media encoded in HEVC. Setting this flag overrides any OS level defaults for apps. It is disabled by default, meaning that the OS defaults would take precedence. If both this flag and FORCE_DISABLE_HEVC_SUPPORT are enabled, the OS ignores both flags.

FORCE_NON_RESIZE_APP

Change ID: 181136395
Default State : Disabled for all apps.

Forces the packages it is applied to to be non-resizable.

FORCE_RESIZE_APP

Change ID: 174042936
Default State : Disabled for all apps.

Forces the packages it is applied to to be resizable. We only allow resizing in fullscreen windowing mode, but not forcing the app into resizable multi-windowing mode.

HIDE_PROP_ICUBINARY_DATA_PATH

Change ID: 171979766
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, removes access to the android.icu.impl.ICUBinary.dataPath property.

IGNORE_ALLOW_BACKUP_IN_D2D

Change ID: 183147249
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, android:allowBackup is ignored for apps during device-to-device (D2D) migrations.

IGNORE_FULL_BACKUP_CONTENT_IN_D2D

Change ID: 180523564
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, include and exclude rules specified using android:fullBackupContent are ignored during device-to-device (D2D) transfers.

IME_AUTOFILL_DEFAULT_SUPPORTED_LOCALES_IS_EMPTY

Change ID: 169273070
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, getSupportedLocales() now returns an empty locale list when it's not set, instead of the default system locale.

IS_BACKUP_SERVICE_ACTIVE_ENFORCE_PERMISSION_IN_SERVICE

Change ID: 158482162
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, the BACKUP permission needed for isBackupServiceActive() is enforced on the service-side rather than client-side in BackupManager .

KEYSTORE_OPERATION_CREATION_MAY_FAIL

Change ID: 169897160
Default State : Disabled for all apps.

When enabled, keystore operation creation might fail according to the new pruning strategy. Keystore used to work under the assumption that the creation of cryptographic operations always succeeds. However, the KeyMint backend has only a limited number of operation slots.

In order to keep up the appearance of "infinite" operation slots, the Keystore daemon would prune least recently used operations if there was no available operation slot. As a result, good operations could be terminated prematurely. This opened up AndroidKeystore up to denial-of-service (DoS) and unintended livelock. For example, if multiple apps woke up at the same time due to power management optimizations and attempted to perform crypto operations, they start terminating each others operations without making any progress.

To break out of livelocks and to discourage DoS attempts, we have changed the pruning strategy for such that it prefers clients that use few operation slots briefly. As a result, single operations that don't linger inactive for more than 5 seconds will almost always conclude unhampered by the pruning strategy. There are still some operations related to file system encryption that can prune even these operations, but those cases are extremely rare. As a side effect of this new pruning strategy operation, creation can now fail if the client has a lower pruning power than all of the existing operations.

Pruning strategy : To find a suitable candidate, we compute the malus for the caller and each existing operation. The malus is the inverse of the pruning power (caller) or pruning resistance (existing operation). For the caller to be able to prune an operation, it must find an operation with a malus higher than its own. For more details on the pruning strategy, see the implementation of operation.rs . On Android 11 (API level 30) and lower, KeyStore2 will poll the Keystore daemon for a free operation slot. For apps targeting Android 11 (API level 30) and lower, it will still look like cipher and signature object initialization always succeeds—however, it may take longer to get an operation. All Android versions benefit from fairer operation slot scheduling and a better chance to successfully conclude an operation.

LOCK_DOWN_CLOSE_SYSTEM_DIALOGS

Change ID: 174664365
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, the Intent.ACTION_CLOSE_SYSTEM_DIALOGS can't be sent unless the app also has the android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS permission. Note that this is the more restrictive version of #DROP_CLOSE_SYSTEM_DIALOGS that expects the app to stop sending the Intent.ACTION_CLOSE_SYSTEM_DIALOGS intent once the app starts targets Android 12 (API level 31) or higher.

LOCK_DOWN_COLLAPSE_STATUS_BAR

Change ID: 173031413
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, the Manifest.permission.STATUS_BAR permission is required to collapse the status bar panels due to security reasons. This was being exploited by malware to prevent the user from accessing critical notifications.

LOW_POWER_EXCEPTIONS

Change ID: 168936375
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, all LocationRequest objects marked as low power throw exceptions if the caller does not have the LOCATION_HARDWARE permission, instead of silently dropping the low power part of the request.

MISSING_EXPORTED_FLAG

Change ID: 150232615
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, an explicit value must be specified for the android:exported attribute whenever an intent filter is defined.

To learn more about this change, see Safer exporting of components .

NATIVE_HEAP_POINTER_TAGGING_APP_ZYGOTE

Change ID: 207557677
Default State : Enabled for apps that target Android 12 (API level 32) or higher.

For apps targeting Android 12 (API level 32) and higher, native heap allocations in AppZygote process and its descendants use a non-zero tag in the most significant byte.

To learn more about this change, see Tagged Pointers .

NATIVE_HEAP_ZERO_INIT

Change ID: 178038272
Default State : Disabled for all apps.

Enable automatic zero-initialization of native heap memory allocations.

NATIVE_MEMTAG_ASYNC

Change ID: 135772972
Default State : Disabled for all apps.

Enable asynchronous (ASYNC) memory tag checking in this process. This flag only affects hardware supporting the ARM Memory Tagging Extension (MTE).

NATIVE_MEMTAG_SYNC

Change ID: 177438394
Default State : Disabled for all apps.

Enables synchronous (SYNC) memory tag checking in this process. This flag only affects hardware supporting the ARM Memory Tagging Extension (MTE). If both NATIVE_MEMTAG_ASYNC and this option are enabled, this option takes precedence and MTE is enabled in SYNC mode.

NEVER_SANDBOX_DISPLAY_APIS

Change ID: 184838306
Default State : Disabled for all apps.

When enabled, prevents Display API sandboxing from applying to a letterbox or SCM activity. The Display APIs will continue to provide DisplayArea bounds.

To learn more about this change, see the section in the Android 12 behavior changes page about Display methods that were deprecated .

NOTIFICATION_CANCELLATION_REASONS

Change ID: 175319604
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

Allows notification listeners to understand new cancellation reasons that are more specific.

NOTIFICATION_TRAMPOLINE_BLOCK

Change ID: 167676448
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

To improve app performance and UX, apps that target Android 12 cannot use services or broadcast receivers as notification trampolines.

To learn more about this change, see Notification trampolines cannot be created from services or broadcast receivers .

NULL_TELEPHONY_THROW_NO_CB

Change ID: 182185642
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

Used for checking if the target SDK version for the current process is Android 12 (API level 31) or higher.

Applies to the following methods:

OVERRIDE_MIN_ASPECT_RATIO

Change ID: 174042980
Default State : Disabled for all apps.

This change is the gatekeeper of all changes that force a given minimum aspect ratio. Enabling this change allows the following minimum aspect ratios to be applied:

When this change is enabled for an app package, the minimum aspect ratio given in the app's manifest is overridden to the largest enabled aspect ratio unless the app's manifest value is higher.

OVERRIDE_MIN_ASPECT_RATIO_LARGE

Change ID: 180326787
Default State : Disabled for all apps.

When OVERRIDE_MIN_ASPECT_RATIO is also enabled, enabling this change for a package sets the activity's minimum aspect ratio to a large value as defined by OVERRIDE_MIN_ASPECT_RATIO_LARGE_VALUE .

OVERRIDE_MIN_ASPECT_RATIO_MEDIUM

Change ID: 180326845
Default State : Disabled for all apps.

When OVERRIDE_MIN_ASPECT_RATIO is also enabled, enabling this change for a package sets the activity's minimum aspect ratio to a medium value as defined by OVERRIDE_MIN_ASPECT_RATIO_MEDIUM_VALUE .

PENDING_INTENT_EXPLICIT_MUTABILITY_REQUIRED

Change ID: 160794467
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, you must specify the mutability of each PendingIntent object that your app creates. This additional requirement improves your app's security.

To learn more about this change, see Pending intents must declare mutability .

PREVENT_SETTING_PASSWORD_QUALITY_ON_PARENT

Change ID: 165573442
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

Admin apps targeting Android 12 (API level 31) and higher can't use DevicePolicyManager.setPasswordQuality(ComponentName, int) to set password quality on the DevicePolicyManager instance obtained by calling DevicePolicyManager.getParentProfileInstance(ComponentName) . Instead, they should use DevicePolicyManager.setRequiredPasswordComplexity(int) to set coarse-grained password requirements device-wide.

RATE_LIMIT_TOASTS

Change ID: 174840628
Default State : This change can't be toggled. It is only logged by the compatibility framework.

Enables rate limiting on the number of Toast.show() calls to prevent overburdening the user with too many toasts in a limited time. Any attempt to show more toasts than allowed in a certain timeframe results in the toast being discarded.

REQUIRE_EXACT_ALARM_PERMISSION

Change ID: 171306433
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, apps must have the Manifest.permission.SCHEDULE_EXACT_ALARM permission in order to use any APIs for setting exact alarms, such as setExactAndAllowWhileIdle(int, long, PendingIntent) and setAlarmClock(AlarmClockInfo, PendingIntent) .

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_ACTIVE_DATA_SUB_ID

Change ID: 182478738
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, apps must have the Manifest.permission.READ_PHONE_STATE permission in order to call TelephonyCallback.ActiveDataSubscriptionIdListener .

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_CELL_INFO

Change ID: 184323934
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, apps must have the Manifest.permission.READ_PHONE_STATE permission in order to call TelephonyCallback.CellInfoListener .

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_DISPLAY_INFO

Change ID: 183164979
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, apps must have the Manifest.permission.READ_PHONE_STATE permission in order to call TelephonyCallback.DisplayInfoListener .

RESTRICT_ADB_BACKUP

Change ID: 171032338
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, adb backup is automatically turned on for apps running as debuggable ( android:debuggable set to true ) and unavailable to any other apps.

RESTRICT_DOMAINS

Change ID: 175408749
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, the updated form of the app links verification API is required. This requirement means an app must declare domains inside an intent filter that includes all of the following:

  • android:autoVerify="true"
  • Intent.ACTION_VIEW
  • Intent.CATEGORY_BROWSABLE
  • Intet.CATEGORY_DEFAULT
  • Only IntentFilter.SCHEME_HTTP and/or IntentFilter.SCHEME_HTTPS , with no other schemes

On prior versions of Android, Intent.CATEGORY_BROWSABLE was not a requirement, other schemes were allowed, and setting autoVerify to true in any intent filter would implicitly pretend that all intent filters were set to autoVerify="true" .

SECURITY_EXCEPTION_ON_INVALID_ATTRIBUTION_TAG_CHANGE

Change ID: 151105954
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, enforces that all attributionTags sent to noteOp(String, int, String) , noteProxyOp(String, String) , and startOp(String, int, String) are defined in the manifest of the package that is specified as a parameter of the methods.

To enable this change, both the package calling noteOp(String, int, String) as well as the package specified as a parameter of the method must have this change enabled.

SELINUX_LATEST_CHANGES

Change ID: 143539591
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, opts in to the latest SELinux changes. Turning this change off for an app targeting Android 12 (API level 31) or higher is a no-op. Has no effect for apps that use a shared user id.

SETTINGS_API_V2

Change ID: 178111421
Default State : Enabled for all apps.

The new user preference API for verifying domains marked autoVerify=true in AndroidManifest.xml intent filters is not yet implemented in the current platform preview. For now, it is possible to preview the new user preference changes by enabling this ChangeId and using the adb shell pm set-app-links-user-selection and similar commands.

USE_SHORT_FGS_USAGE_INTERACTION_TIME

Change ID: 183972877
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, determines whether to use a shorter timeout before elevating the standby bucket to ACTIVE when apps start a foreground service.

,
চিত্র 1 । The App Compatibility Changes screen in developer options lists the changes that you can toggle.

This page describes each behavior change that is part of the compatibility framework in Android 12 (API level 31). Use this list in conjunction with the developer options and ADB commands to test and debug your app as you prepare to support and target Android 12.

Here are some of the things you can do using the compatibility framework tools:

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

For complete details on using the tools for each of these use cases, see Compatibility framework tools .

Behavior changes included in the compatibility framework

The list in this section describes each behavior change that is included in the compatibility framework in Android 12.

You can filter the list of changes by Default State .

Behavior changes added to the compatibility framework in Android 12

ALWAYS_SANDBOX_DISPLAY_APIS

Change ID: 185004937
Default State : Disabled for all apps.

When enabled, applies Display API sandboxing to a package regardless of windowing mode. The Display APIs will always provide the app bounds.

To learn more about this change, see the section in the Android 12 behavior changes page about Display methods that were deprecated .

AUTOFILL_NON_TEXT_REQUIRES_ON_RECEIVE_CONTENT_LISTENER

Change ID: 163400105
Default State : Enabled for apps that target Android 12 (API level 32) or higher.

Starting in Android 12, the platform can provide non-text suggestions (such as images) using the augmented autofill framework (see autofill services ). In order for an app to be able to handle these suggestions, it must normally implement the OnReceiveContentListener API.

To make the adoption of this API smoother for apps that have previously implemented the InputConnection.commitContent(InputContentInfo, int, Bundle) API, we reuse that API as a fallback if OnReceiveContentListener is not yet implemented by the app. This fallback is only enabled on Android 12 (API level 31). This change ID disables the fallback, such that apps targeting Android 12 (API level 32) and above must implement the OnReceiveContentListener API in order to accept non-text suggestions.

BLOCK_FLAG_SLIPPERY

Change ID: 157929241
Default State : Enabled for all apps.

For apps running on Android 12 (API level 31), checks if FLAG_SLIPPERY is being used with any windows in the app. We expect that this flag is likely only used by the system components as it is an unsupported field . If so, it will be restricted.

BLOCK_GPS_STATUS_USAGE

Change ID: 144027538
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, all GpsStatus API usage must be replaced with GnssStatus APIs.

BLOCK_IMMUTABLE_PENDING_INTENTS

Change ID: 171317480
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, immutable PendingIntent objects that are passed into location APIs will generate an IllegalArgumentException.

BLOCK_PENDING_INTENT_SYSTEM_API_USAGE

Change ID: 169887240
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, LocationRequest system APIs can't be used with PendingIntent location requests.

BLOCK_UNTRUSTED_TOUCHES

Change ID: 158002302
Default State : Enabled for all apps.

To preserve system security and a good user experience, Android 12 prevents apps from consuming touch events where an overlay blocks the app in an unsafe way.

To learn more about this change, see Untrusted touch events are blocked .

CALL_ACTIVITY_RESULT_BEFORE_RESUME

Change ID: 78294732
Default State : Enabled for apps that target Android 12 (API level 32) or higher.

For apps targeting Android 12 (API level 32) and higher, corrects the lifecycle of activity result to guarantee that an activity gets the activity result just before resume.

CAMERA_MIC_INDICATORS_NOT_PRESENT

Change ID: 162547999
Default State : Disabled for all apps.

Indicates that this device supports camera and microphone indicators. Will be false if present, because the CompatChanges#isChangeEnabled method returns true if the Change ID is not present.

CANNOT_INSTALL_WITH_BAD_PERMISSION_GROUPS

Change ID: 146211400
Default State : Enabled for apps that target Android 12 (API level 32) or higher.

For apps targeting Android 12 (API level 32) and higher, the package manager will not install a package if there are malformed permission groups. Permission groups should only be shared between apps sharing a certificate. If a permission belongs to a group, that group must also be defined.

CHANGE_ID_AUTH_STATE_DENIED

Change ID: 181350407
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For client apps targeting Android 12 (API level 31) and higher, a SecurityException is thrown when they are in the denied authorization state and attempt to send a message to a nanoapp.

CHANGE_ID_SAMPLING_RATE_SENSORS_PERMISSION

Change ID: 136069189
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, a SecurityException is thrown when they do not have HIGH_SAMPLING_RATE_SENSORS permission, run in debug mode, and request sampling rates that are faster than 200 Hz.

DELIVER_HISTORICAL_LOCATIONS

Change ID: 73144566
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, location clients may receive historical locations (from before the present time) under some circumstances.

DISPLAY_INFO_NR_ADVANCED_SUPPORTED

Change ID: 181658987
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, provides backward compatibility for changes in TelephonyDisplayInfo .

DISPLAY_MODE_RETURNS_PHYSICAL_REFRESH_RATE

Change ID: 170503758
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, the platform might throttle down an app's frame rate to a divisor of the refresh rate if it is more preferable (for example, if the app called to Surface.setFrameRate(float, int) ). Apps will experience Choreographer.postFrameCallback(Choreographer.FrameCallback) callbacks and backpressure at the throttled frame rate. Apps use Display.getRefreshRate() and Display.Mode.getRefreshRate() to know what the display refresh rate is. Display.getRefreshRate() will always return the application frame rate and not the physical display refresh rate to allow apps to do frame pacing correctly. Display.Mode.getRefreshRate() will return the app frame rate if compiled to a previous release and starting with Android 12 (API level 31) it will return the physical display refresh rate.

DOWNSCALED

Change ID: 168419799
Default State : Disabled for all apps.

This change is the gatekeeper of all per-app buffer downscaling changes. Enabling this change allows the following scaling factors to be applied:

When this change is enabled for an app package, the app is forcibly resized to the highest, enabled scaling factor. For example, 80% is used if both 80% and 70% ( DOWNSCALE_80 and DOWNSCALE_70 ) are enabled.

DOWNSCALE_30

Change ID: 189970040
Default State : Disabled for all apps.

When DOWNSCALED is also enabled, enabling this change for a package forces the app to assume it's running on a display with 30% of the vertical and horizontal resolution of the real display.

DOWNSCALE_35

Change ID: 189969749
Default State : Disabled for all apps.

When DOWNSCALED is also enabled, enabling this change for a package forces the app to assume it's running on a display with 35% of the vertical and horizontal resolution of the real display.

DOWNSCALE_40

Change ID: 189970038
Default State : Disabled for all apps.

When DOWNSCALED is also enabled, enabling this change for a package forces the app to assume it's running on a display with 40% of the vertical and horizontal resolution of the real display.

DOWNSCALE_45

Change ID: 189969782
Default State : Disabled for all apps.

When DOWNSCALED is also enabled, enabling this change for a package forces the app to assume it's running on a display with 45% of the vertical and horizontal resolution of the real display.

DOWNSCALE_50

Change ID: 176926741
Default State : Disabled for all apps.

When DOWNSCALED is also enabled, enabling this change for a package forces the app to assume it's running on a display with 50% of the vertical and horizontal resolution of the real display.

DOWNSCALE_55

Change ID: 189970036
Default State : Disabled for all apps.

When DOWNSCALED is also enabled, enabling this change for a package forces the app to assume it's running on a display with 55% of the vertical and horizontal resolution of the real display.

DOWNSCALE_60

Change ID: 176926771
Default State : Disabled for all apps.

When DOWNSCALED is also enabled, enabling this change for a package forces the app to assume it's running on a display with 60% of the vertical and horizontal resolution of the real display.

DOWNSCALE_65

Change ID: 189969744
Default State : Disabled for all apps.

When DOWNSCALED is also enabled, enabling this change for a package forces the app to assume it's running on a display with 65% of the vertical and horizontal resolution of the real display.

DOWNSCALE_70

Change ID: 176926829
Default State : Disabled for all apps.

When DOWNSCALED is also enabled, enabling this change for a package forces the app to assume it's running on a display with 70% of the vertical and horizontal resolution of the real display.

DOWNSCALE_75

Change ID: 189969779
Default State : Disabled for all apps.

When DOWNSCALED is also enabled, enabling this change for a package forces the app to assume it's running on a display with 75% of the vertical and horizontal resolution of the real display.

DOWNSCALE_80

Change ID: 176926753
Default State : Disabled for all apps.

When DOWNSCALED is also enabled, enabling this change for a package forces the app to assume it's running on a display with 80% of the vertical and horizontal resolution of the real display.

DOWNSCALE_85

Change ID: 189969734
Default State : Disabled for all apps.

When DOWNSCALED is also enabled, enabling this change for a package forces the app to assume it's running on a display with 85% of the vertical and horizontal resolution of the real display.

DOWNSCALE_90

Change ID: 182811243
Default State : Disabled for all apps.

When DOWNSCALED is also enabled, enabling this change for a package forces the app to assume it's running on a display with 90% of the vertical and horizontal resolution of the real display.

DO_NOT_DOWNSCALE_TO_1080P_ON_TV

Change ID: 157629738
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

Android TV apps targeting Android 12 (API level 31) and higher are expected to handle any Window size, including Window sizes greater than 1080p. Apps that target earlier versions of Android do not expect to receive Windows larger than 1080p, so their Windows are downscaled to 1080p when necessary.

DROP_CLOSE_SYSTEM_DIALOGS

Change ID: 174664120
Default State : Enabled for all apps.

To improve user control when interacting with apps and the system, the ACTION_CLOSE_SYSTEM_DIALOGS intent action is deprecated as of Android 12.

To learn more about this change, see Apps can't close system dialogs .

ENABLE_CHECKS_FOR_PRIVATE_FILES

Change ID: 172100307
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

Apps targeting Android 12 (API level 31) and higher can't insert or update private files using media provider.

ENABLE_DEFERRED_SCAN

Change ID: 180326732
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

Enable this option to defer the scan that is triggered as part of MediaProvider#update() .

ENABLE_GET_CALL_STATE_PERMISSION_PROTECTION

Change ID: 157233955
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, enables READ_PHONE_STATE protection on APIs querying and notifying call state, such as TelecomManager#getCallState , TelephonyManager.getCallStateForSubscription() , and TelephonyCallback.CallStateListener .

ENABLE_GET_PHONE_ACCOUNT_PERMISSION_PROTECTION

Change ID: 183407956
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, enables READ_PHONE_NUMBERS or READ_PRIVILEGED_PHONE_STATE protections on getPhoneAccount(PhoneAccountHandle) .

ENABLE_INCLUDE_ALL_VOLUMES

Change ID: 182734110
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

Enable this option to include database rows of files from a recently unmounted volume in MediaProvider#query .

ENABLE_RAW_MANAGE_EXTERNAL_STORAGE_ACCESS

Change ID: 178209446
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

Enable this option to allow apps holding the Manifest.permission.MANAGE_EXTERNAL_STORAGE permission to request raw external storage access.

ENFORCE_MINIMUM_WINDOW_ON_INEXACT_ALARMS

Change ID: 185199076
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, all inexact alarms are required to have a minimum window size, expected to be on the order of a few minutes. Practically, any alarms requiring smaller windows are the same as exact alarms and should use the corresponding APIs provided, such as setExact(int, long, PendingIntent) . Inexact alarm with shorter windows specified will have their windows elongated by the system.

ENFORCE_NATIVE_SHARED_LIBRARY_DEPENDENCIES

Change ID: 142191088
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

Apps targeting Android 12 (API level 31) and higher need to declare dependencies to the public native shared libraries that are defined by the device maker using uses-native-library tag in its AndroidManifest.xml . If any of the dependencies can't be satisfied—for example, one of the dependencies doesn't exist—the package manager won't install the app. The dependency can be specified as optional using the android:required attribute in the tag, in which case failing to satisfy the dependency won't stop the installation.

Once installed, an app is provided with only the native shared libraries that are specified in the app manifest. Calling dlopen on a native shared library that doesn't appear in the app manifest will fail even if it actually exists on the device.

ENFORCE_STRICT_QUERY_BUILDER

Change ID: 143231523
Default State : Disabled for all apps.

When enabled, the SQLiteQueryBuilder verifies all CalendarProvider2 query selections against malicious arguments.

FGS_BG_START_RESTRICTION_CHANGE_ID

Change ID: 170668199
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, restricts when apps can start foreground services while running in the background.

FGS_START_EXCEPTION_CHANGE_ID

Change ID: 174041399
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, enables the system to throw an IllegalStateException if an app attempts to start a foreground service while running in the background.

FINISH_INPUT_NO_FALLBACK_CONNECTION

Change ID: 156215187
Default State : Disabled for all apps.

For apps targeting Android 12 (API level 31) and higher, finish the InputConnection when the device becomes non-interactive .

If enabled by the current input method , the current input connection will be finished whenever the devices becomes non-interactive.

If not enabled, the current input connection will instead be silently deactivated when the devices becomes non-interactive, and an onFinishInput() and onStartInput() pair is dispatched when the device becomes interactive again.

FORCE_DISABLE_HEVC_SUPPORT

Change ID: 174227820
Default State : Disabled for all apps.

Force disable an app from supporting the HEVC media capability. Apps should declare their supported media capabilities in their manifest but this flag can be used to force an app into not supporting HEVC, hence forcing transcoding while accessing media encoded in HEVC. Setting this flag overrides any OS level defaults for apps. It is disabled by default, meaning that the OS defaults take precedence. If both this flag and FORCE_ENABLE_HEVC_SUPPORT are enabled, the OS ignores both flags.

FORCE_ENABLE_HEVC_SUPPORT

Change ID: 174228127
Default State : Disabled for all apps.

Force enable an app to support the HEVC media capability Apps should declare their supported media capabilities in their manifest but this flag can be used to force an app into supporting HEVC, hence avoiding transcoding while accessing media encoded in HEVC. Setting this flag overrides any OS level defaults for apps. It is disabled by default, meaning that the OS defaults would take precedence. If both this flag and FORCE_DISABLE_HEVC_SUPPORT are enabled, the OS ignores both flags.

FORCE_NON_RESIZE_APP

Change ID: 181136395
Default State : Disabled for all apps.

Forces the packages it is applied to to be non-resizable.

FORCE_RESIZE_APP

Change ID: 174042936
Default State : Disabled for all apps.

Forces the packages it is applied to to be resizable. We only allow resizing in fullscreen windowing mode, but not forcing the app into resizable multi-windowing mode.

HIDE_PROP_ICUBINARY_DATA_PATH

Change ID: 171979766
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, removes access to the android.icu.impl.ICUBinary.dataPath property.

IGNORE_ALLOW_BACKUP_IN_D2D

Change ID: 183147249
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, android:allowBackup is ignored for apps during device-to-device (D2D) migrations.

IGNORE_FULL_BACKUP_CONTENT_IN_D2D

Change ID: 180523564
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, include and exclude rules specified using android:fullBackupContent are ignored during device-to-device (D2D) transfers.

IME_AUTOFILL_DEFAULT_SUPPORTED_LOCALES_IS_EMPTY

Change ID: 169273070
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, getSupportedLocales() now returns an empty locale list when it's not set, instead of the default system locale.

IS_BACKUP_SERVICE_ACTIVE_ENFORCE_PERMISSION_IN_SERVICE

Change ID: 158482162
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, the BACKUP permission needed for isBackupServiceActive() is enforced on the service-side rather than client-side in BackupManager .

KEYSTORE_OPERATION_CREATION_MAY_FAIL

Change ID: 169897160
Default State : Disabled for all apps.

When enabled, keystore operation creation might fail according to the new pruning strategy. Keystore used to work under the assumption that the creation of cryptographic operations always succeeds. However, the KeyMint backend has only a limited number of operation slots.

In order to keep up the appearance of "infinite" operation slots, the Keystore daemon would prune least recently used operations if there was no available operation slot. As a result, good operations could be terminated prematurely. This opened up AndroidKeystore up to denial-of-service (DoS) and unintended livelock. For example, if multiple apps woke up at the same time due to power management optimizations and attempted to perform crypto operations, they start terminating each others operations without making any progress.

To break out of livelocks and to discourage DoS attempts, we have changed the pruning strategy for such that it prefers clients that use few operation slots briefly. As a result, single operations that don't linger inactive for more than 5 seconds will almost always conclude unhampered by the pruning strategy. There are still some operations related to file system encryption that can prune even these operations, but those cases are extremely rare. As a side effect of this new pruning strategy operation, creation can now fail if the client has a lower pruning power than all of the existing operations.

Pruning strategy : To find a suitable candidate, we compute the malus for the caller and each existing operation. The malus is the inverse of the pruning power (caller) or pruning resistance (existing operation). For the caller to be able to prune an operation, it must find an operation with a malus higher than its own. For more details on the pruning strategy, see the implementation of operation.rs . On Android 11 (API level 30) and lower, KeyStore2 will poll the Keystore daemon for a free operation slot. For apps targeting Android 11 (API level 30) and lower, it will still look like cipher and signature object initialization always succeeds—however, it may take longer to get an operation. All Android versions benefit from fairer operation slot scheduling and a better chance to successfully conclude an operation.

LOCK_DOWN_CLOSE_SYSTEM_DIALOGS

Change ID: 174664365
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, the Intent.ACTION_CLOSE_SYSTEM_DIALOGS can't be sent unless the app also has the android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS permission. Note that this is the more restrictive version of #DROP_CLOSE_SYSTEM_DIALOGS that expects the app to stop sending the Intent.ACTION_CLOSE_SYSTEM_DIALOGS intent once the app starts targets Android 12 (API level 31) or higher.

LOCK_DOWN_COLLAPSE_STATUS_BAR

Change ID: 173031413
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, the Manifest.permission.STATUS_BAR permission is required to collapse the status bar panels due to security reasons. This was being exploited by malware to prevent the user from accessing critical notifications.

LOW_POWER_EXCEPTIONS

Change ID: 168936375
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, all LocationRequest objects marked as low power throw exceptions if the caller does not have the LOCATION_HARDWARE permission, instead of silently dropping the low power part of the request.

MISSING_EXPORTED_FLAG

Change ID: 150232615
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, an explicit value must be specified for the android:exported attribute whenever an intent filter is defined.

To learn more about this change, see Safer exporting of components .

NATIVE_HEAP_POINTER_TAGGING_APP_ZYGOTE

Change ID: 207557677
Default State : Enabled for apps that target Android 12 (API level 32) or higher.

For apps targeting Android 12 (API level 32) and higher, native heap allocations in AppZygote process and its descendants use a non-zero tag in the most significant byte.

To learn more about this change, see Tagged Pointers .

NATIVE_HEAP_ZERO_INIT

Change ID: 178038272
Default State : Disabled for all apps.

Enable automatic zero-initialization of native heap memory allocations.

NATIVE_MEMTAG_ASYNC

Change ID: 135772972
Default State : Disabled for all apps.

Enable asynchronous (ASYNC) memory tag checking in this process. This flag only affects hardware supporting the ARM Memory Tagging Extension (MTE).

NATIVE_MEMTAG_SYNC

Change ID: 177438394
Default State : Disabled for all apps.

Enables synchronous (SYNC) memory tag checking in this process. This flag only affects hardware supporting the ARM Memory Tagging Extension (MTE). If both NATIVE_MEMTAG_ASYNC and this option are enabled, this option takes precedence and MTE is enabled in SYNC mode.

NEVER_SANDBOX_DISPLAY_APIS

Change ID: 184838306
Default State : Disabled for all apps.

When enabled, prevents Display API sandboxing from applying to a letterbox or SCM activity. The Display APIs will continue to provide DisplayArea bounds.

To learn more about this change, see the section in the Android 12 behavior changes page about Display methods that were deprecated .

NOTIFICATION_CANCELLATION_REASONS

Change ID: 175319604
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

Allows notification listeners to understand new cancellation reasons that are more specific.

NOTIFICATION_TRAMPOLINE_BLOCK

Change ID: 167676448
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

To improve app performance and UX, apps that target Android 12 cannot use services or broadcast receivers as notification trampolines.

To learn more about this change, see Notification trampolines cannot be created from services or broadcast receivers .

NULL_TELEPHONY_THROW_NO_CB

Change ID: 182185642
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

Used for checking if the target SDK version for the current process is Android 12 (API level 31) or higher.

Applies to the following methods:

OVERRIDE_MIN_ASPECT_RATIO

Change ID: 174042980
Default State : Disabled for all apps.

This change is the gatekeeper of all changes that force a given minimum aspect ratio. Enabling this change allows the following minimum aspect ratios to be applied:

When this change is enabled for an app package, the minimum aspect ratio given in the app's manifest is overridden to the largest enabled aspect ratio unless the app's manifest value is higher.

OVERRIDE_MIN_ASPECT_RATIO_LARGE

Change ID: 180326787
Default State : Disabled for all apps.

When OVERRIDE_MIN_ASPECT_RATIO is also enabled, enabling this change for a package sets the activity's minimum aspect ratio to a large value as defined by OVERRIDE_MIN_ASPECT_RATIO_LARGE_VALUE .

OVERRIDE_MIN_ASPECT_RATIO_MEDIUM

Change ID: 180326845
Default State : Disabled for all apps.

When OVERRIDE_MIN_ASPECT_RATIO is also enabled, enabling this change for a package sets the activity's minimum aspect ratio to a medium value as defined by OVERRIDE_MIN_ASPECT_RATIO_MEDIUM_VALUE .

PENDING_INTENT_EXPLICIT_MUTABILITY_REQUIRED

Change ID: 160794467
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, you must specify the mutability of each PendingIntent object that your app creates. This additional requirement improves your app's security.

To learn more about this change, see Pending intents must declare mutability .

PREVENT_SETTING_PASSWORD_QUALITY_ON_PARENT

Change ID: 165573442
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

Admin apps targeting Android 12 (API level 31) and higher can't use DevicePolicyManager.setPasswordQuality(ComponentName, int) to set password quality on the DevicePolicyManager instance obtained by calling DevicePolicyManager.getParentProfileInstance(ComponentName) . Instead, they should use DevicePolicyManager.setRequiredPasswordComplexity(int) to set coarse-grained password requirements device-wide.

RATE_LIMIT_TOASTS

Change ID: 174840628
Default State : This change can't be toggled. It is only logged by the compatibility framework.

Enables rate limiting on the number of Toast.show() calls to prevent overburdening the user with too many toasts in a limited time. Any attempt to show more toasts than allowed in a certain timeframe results in the toast being discarded.

REQUIRE_EXACT_ALARM_PERMISSION

Change ID: 171306433
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, apps must have the Manifest.permission.SCHEDULE_EXACT_ALARM permission in order to use any APIs for setting exact alarms, such as setExactAndAllowWhileIdle(int, long, PendingIntent) and setAlarmClock(AlarmClockInfo, PendingIntent) .

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_ACTIVE_DATA_SUB_ID

Change ID: 182478738
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, apps must have the Manifest.permission.READ_PHONE_STATE permission in order to call TelephonyCallback.ActiveDataSubscriptionIdListener .

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_CELL_INFO

Change ID: 184323934
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, apps must have the Manifest.permission.READ_PHONE_STATE permission in order to call TelephonyCallback.CellInfoListener .

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_DISPLAY_INFO

Change ID: 183164979
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, apps must have the Manifest.permission.READ_PHONE_STATE permission in order to call TelephonyCallback.DisplayInfoListener .

RESTRICT_ADB_BACKUP

Change ID: 171032338
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, adb backup is automatically turned on for apps running as debuggable ( android:debuggable set to true ) and unavailable to any other apps.

RESTRICT_DOMAINS

Change ID: 175408749
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, the updated form of the app links verification API is required. This requirement means an app must declare domains inside an intent filter that includes all of the following:

  • android:autoVerify="true"
  • Intent.ACTION_VIEW
  • Intent.CATEGORY_BROWSABLE
  • Intet.CATEGORY_DEFAULT
  • Only IntentFilter.SCHEME_HTTP and/or IntentFilter.SCHEME_HTTPS , with no other schemes

On prior versions of Android, Intent.CATEGORY_BROWSABLE was not a requirement, other schemes were allowed, and setting autoVerify to true in any intent filter would implicitly pretend that all intent filters were set to autoVerify="true" .

SECURITY_EXCEPTION_ON_INVALID_ATTRIBUTION_TAG_CHANGE

Change ID: 151105954
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, enforces that all attributionTags sent to noteOp(String, int, String) , noteProxyOp(String, String) , and startOp(String, int, String) are defined in the manifest of the package that is specified as a parameter of the methods.

To enable this change, both the package calling noteOp(String, int, String) as well as the package specified as a parameter of the method must have this change enabled.

SELINUX_LATEST_CHANGES

Change ID: 143539591
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, opts in to the latest SELinux changes. Turning this change off for an app targeting Android 12 (API level 31) or higher is a no-op. Has no effect for apps that use a shared user id.

SETTINGS_API_V2

Change ID: 178111421
Default State : Enabled for all apps.

The new user preference API for verifying domains marked autoVerify=true in AndroidManifest.xml intent filters is not yet implemented in the current platform preview. For now, it is possible to preview the new user preference changes by enabling this ChangeId and using the adb shell pm set-app-links-user-selection and similar commands.

USE_SHORT_FGS_USAGE_INTERACTION_TIME

Change ID: 183972877
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, determines whether to use a shorter timeout before elevating the standby bucket to ACTIVE when apps start a foreground service.