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

RATE_LIMIT_TOASTS

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

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

REQUIRE_EXACT_ALARM_PERMISSION

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

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

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_ACTIVE_DATA_SUB_ID

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

Android 12 (API লেভেল 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 এ উন্নীত করার আগে একটি সংক্ষিপ্ত টাইমআউট ব্যবহার করতে হবে কিনা তা নির্ধারণ করে৷