साथ काम करने के फ़्रेमवर्क में बदलाव (Android 12)

पहली इमेज. 'डेवलपर के लिए सेटिंग और टूल' में, ऐप्लिकेशन के साथ काम करने के लिए किए गए बदलावों की स्क्रीन पर, वे बदलाव दिखते हैं जिन्हें टॉगल किया जा सकता है.

इस पेज पर, Android 12 (एपीआई लेवल 31) के साथ काम करने वाले फ़्रेमवर्क में, व्यवहार में हुए हर बदलाव के बारे में बताया गया है. इस सूची का इस्तेमाल डेवलपर के लिए सेटिंग और टूल के साथ-साथ ADB के निर्देश को भी Android 12 को टारगेट करने और इसे सपोर्ट करने के लिए तैयार हो जाएं. इसके बाद, अपने ऐप्लिकेशन को टेस्ट करें और उसे डीबग करें.

यहां बताया गया है कि कंपैटबिलिटी फ़्रेमवर्क टूल का इस्तेमाल करके, कौनसे काम किए जा सकते हैं:

  • ऐप्लिकेशन में किए गए बदलावों को टारगेट किए बिना, टारगेट किए गए बदलावों की जांच करें targetSdkVersion. किसी खास कैंपेन को ज़बरदस्ती चालू करने के लिए, टॉगल का इस्तेमाल किया जा सकता है टारगेट किए गए व्यवहार में बदलाव के सुझाव देता है.
  • अपनी जांच सिर्फ़ खास बदलावों पर फ़ोकस करें. उम्मीद है कि टारगेट किए गए सभी बदलावों को एक साथ ठीक करता है. टॉगल से आपको किए गए बदलावों को लागू नहीं करता है.
  • adb की मदद से टॉगल मैनेज करना. अपने-आप चलने वाले टेस्ट एनवायरमेंट में, टॉगल किए जा सकने वाले बदलावों को चालू और बंद करने के लिए, adb निर्देशों का इस्तेमाल किया जा सकता है.
  • स्टैंडर्ड बदलाव आईडी का इस्तेमाल करके, तेज़ी से डीबग करें. टॉगल किए जा सकने वाले हर बदलाव में ये शामिल हैं एक यूनीक आईडी और नाम, जिसका इस्तेमाल करके आप समस्या की असल वजह को आसानी से डीबग कर सकें लॉग आउटपुट.

इनमें से हर इस्तेमाल के उदाहरण के लिए, टूल इस्तेमाल करने के बारे में पूरी जानकारी पाने के लिए, काम करने के फ़्रेमवर्क के टूल देखें.

काम करने के फ़्रेमवर्क में शामिल व्यवहार से जुड़े बदलाव

इस सेक्शन की सूची में, व्यवहार में होने वाले हर उस बदलाव के बारे में बताया गया है जो Android 12 के साथ काम करने से जुड़ा फ़्रेमवर्क.

बदलावों की सूची को डिफ़ॉल्ट स्थिति के हिसाब से फ़िल्टर किया जा सकता है.

Android 12 के साथ काम करने वाले फ़्रेमवर्क में, व्यवहार से जुड़े बदलाव जोड़े गए हैं

ALWAYS_SANDBOX_DISPLAY_APIS

बदलाव का आईडी: 185004937
डिफ़ॉल्ट स्थिति: सभी ऐप्लिकेशन के लिए बंद है.

चालू होने पर, यह विंडो मोड के बावजूद, किसी पैकेज पर Display API सैंडबॉक्सिंग लागू करता है. Display API हमेशा ऐप्लिकेशन बाउंड है.

इस बदलाव के बारे में ज़्यादा जानने के लिए, Android 12 का सेक्शन देखें व्यवहार में बदलावों की जानकारी देने वाला पेज डिसप्ले के वे तरीके जो अब काम नहीं करते.

AUTOFILL_NON_TEXT_REQUIRES_ON_RECEIVE_CONTENT_LISTENER

बदलाव का आईडी: 163400105
डिफ़ॉल्ट स्थिति: यह सेटिंग, Android 12 (एपीआई लेवल 32) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू की गई है.

Android 12 और इसके बाद के वर्शन में, ऑटोमैटिक भरने की ऑगमेंटेड सुविधा का इस्तेमाल करके, यह प्लैटफ़ॉर्म इमेज के अलावा बिना टेक्स्ट वाले सुझाव दे सकता है फ़्रेमवर्क (ऑटोमैटिक भरने की सुविधा देखें). किसी ऐप्लिकेशन को ये सुझाव दिखाने के लिए, आम तौर पर उसे OnReceiveContentListener एपीआई लागू करना होगा.

उन ऐप्लिकेशन के लिए इस एपीआई को ज़्यादा आसानी से इस्तेमाल करने के लिए जिन्होंने पहले ही एपीआई की मदद से, InputConnection.commitContent(InputContentInfo, int, Bundle) एपीआई, अगर ऐप्लिकेशन ने OnReceiveContentListener को अभी तक लागू नहीं किया है, तो हम उस एपीआई को फ़ॉलबैक के तौर पर दोबारा इस्तेमाल करते हैं. यह फ़ॉलबैक सिर्फ़ इन पर चालू है Android 12 (एपीआई लेवल 31). इस बदलाव से, फ़ॉलबैक की सुविधा बंद हो जाती है. इसलिए, Android 12 (एपीआई लेवल 32) और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन को टेक्स्ट के अलावा अन्य सुझाव स्वीकार करने के लिए, OnReceiveContentListener एपीआई लागू करना होगा.

BLOCK_FLAG_SLIPPERY

बदलाव का आईडी: 157929241
डिफ़ॉल्ट स्थिति: सभी ऐप्लिकेशन के लिए चालू है.

Android 12 (एपीआई लेवल 31) पर काम करने वाले ऐप्लिकेशन के लिए, यह जांच करता है कि ऐप्लिकेशन में किसी विंडो के साथ FLAG_SLIPPERY का इस्तेमाल किया जा रहा है या नहीं. हमें उम्मीद है कि इस फ़्लैग का इस्तेमाल सिर्फ़ सिस्टम कॉम्पोनेंट करते हैं, क्योंकि यह एक ऐसा फ़ील्ड है जो काम नहीं करता. अगर ऐसा है, तो इस पर पाबंदी लगाई जाएगी.

BLOCK_GPS_STATUS_USAGE

बदलाव का आईडी: 144027538
डिफ़ॉल्ट स्थिति: यह Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू है.

Android 12 (एपीआई लेवल 31) और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, सभी GpsStatus एपीआई के इस्तेमाल को GnssStatus एपीआई से बदलना ज़रूरी है.

BLOCK_IMMUTABLE_PENDING_INTENTS

बदलाव का आईडी: 171317480
डिफ़ॉल्ट स्थिति: यह सेटिंग, Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू की गई है.

Android 12 (एपीआई लेवल 31) और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, जगह की जानकारी के एपीआई में पास किए गए, बदलाव न किए जा सकने वाले PendingIntent ऑब्जेक्ट से IllegalArgumentException. जनरेट होगा

BLOCK_PENDING_INTENT_SYSTEM_API_USAGE

बदलाव का आईडी: 169887240
डिफ़ॉल्ट स्थिति: यह सेटिंग, Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू की गई है.

Android 12 (एपीआई लेवल 31) और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, PendingIntent के साथ LocationRequest सिस्टम एपीआई का इस्तेमाल नहीं किया जा सकता जगह के अनुरोध शामिल हैं.

BLOCK_UNTRUSTED_TOUCHES

बदलाव आईडी: 158002302
डिफ़ॉल्ट स्थिति: सभी ऐप्लिकेशन के लिए चालू है.

सिस्टम की सुरक्षा और उपयोगकर्ता को बेहतर अनुभव देने के लिए, Android 12 ऐप्लिकेशन को टच इवेंट का इस्तेमाल करने से रोकता है. ऐसा तब होता है, जब कोई ओवरले ऐप्लिकेशन को असुरक्षित तरीके से ब्लॉक करता है.

इस बदलाव के बारे में ज़्यादा जानने के लिए, भरोसेमंद नहीं होने वाले टच इवेंट ब्लॉक किए गए हैं लेख पढ़ें.

CALL_ACTIVITY_RESULT_BEFORE_RESUME

बदलाव का आईडी: 78294732
डिफ़ॉल्ट स्थिति: यह Android 12 (एपीआई लेवल 32) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू है.

Android 12 (एपीआई लेवल 32) और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, गतिविधि के नतीजे की लाइफ़साइकल को ठीक करता है, ताकि यह गारंटी दी जा सके कि किसी गतिविधि को फिर से शुरू करने से ठीक पहले गतिविधि का नतीजा.

CAMERA_MIC_INDICATORS_NOT_PRESENT

बदलाव का आईडी: 162547999
डिफ़ॉल्ट स्थिति: सभी ऐप्लिकेशन के लिए बंद है.

इससे पता चलता है कि इस डिवाइस पर कैमरा और माइक्रोफ़ोन इंडिकेटर काम करते हैं. false होगा, अगर मौजूद है, क्योंकि CompatChanges#isChangeEnabled विधि के बदलने का आईडी मौजूद न होने पर, true नतीजे के तौर पर दिखाता है.

CANNOT_INSTALL_WITH_BAD_PERMISSION_GROUPS

बदलाव का आईडी: 146211400
डिफ़ॉल्ट स्थिति: यह सेटिंग, Android 12 (एपीआई लेवल 32) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू की गई है.

Android 12 (एपीआई लेवल 32) और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, पैकेज मैनेजर किसी पैकेज को इंस्टॉल नहीं करेगा. ऐसा तब होगा, जब अनुमति के गलत ग्रुप मौजूद हों. अनुमति के ग्रुप सिर्फ़ उन ऐप्लिकेशन के बीच शेयर किए जाने चाहिए जो एक ही सर्टिफ़िकेट शेयर करते हैं. अगर कोई अनुमति किसी ग्रुप से जुड़ी है, तो उस ग्रुप को भी तय करना ज़रूरी है.

CHANGE_ID_AUTH_STATE_DENIED

बदलाव का आईडी: 181350407
डिफ़ॉल्ट स्थिति: यह सेटिंग, Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू की गई है.

Android 12 (एपीआई लेवल 31) और उसके बाद के वर्शन को टारगेट करने वाले क्लाइंट ऐप्लिकेशन के लिए, अनुमति न मिलने की स्थिति में, किसी नैनोऐप्लिकेशन को मैसेज भेजने की कोशिश करने पर SecurityException गड़बड़ी का कोड दिखता है.

CHANGE_ID_SAMPLING_RATE_SENSORS_PERMISSION

बदलाव का आईडी: 136069189
डिफ़ॉल्ट स्थिति: यह Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू है.

Android 12 (एपीआई लेवल 31) और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, SecurityException तब दिखता है, जब उनके पास HIGH_SAMPLING_RATE_SENSORS अनुमति न हो, वे डीबग मोड में चल रहे हों, और सैंपलिंग रेट का अनुरोध 200 हर्ट्ज़ से ज़्यादा हो.

DELIVER_HISTORICAL_LOCATIONS

बदलाव आईडी: 73144566
डिफ़ॉल्ट स्थिति: यह सेटिंग, Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू की गई है.

Android 12 (एपीआई लेवल 31) और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, लोकेशन क्लाइंट को पुरानी जगहों की जानकारी मिल सकती है. यह जानकारी कुछ परिस्थितियों में)

DISPLAY_INFO_NR_ADVANCED_SUPPORTED

बदलाव का आईडी: 181658987
डिफ़ॉल्ट स्थिति: यह सेटिंग, Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू की गई है.

Android 12 (एपीआई लेवल 31) और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, TelephonyDisplayInfo में किए गए बदलावों के साथ पुराने सिस्टम के साथ काम करने की सुविधा मिलती है.

DISPLAY_MODE_RETURNS_PHYSICAL_REFRESH_RATE

बदलाव का आईडी: 170503758
डिफ़ॉल्ट स्थिति: यह सेटिंग, Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू की गई है.

Android 12 (एपीआई लेवल 31) और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, प्लैटफ़ॉर्म ऐप्लिकेशन के फ़्रेम रेट को रिफ़्रेश रेट के डिवाइडर तक कम कर सकता है. ऐसा तब किया जाता है, जब यह ज़्यादा बेहतर हो. उदाहरण के लिए, जब ऐप्लिकेशन को Surface.setFrameRate(float, int) पर कॉल किया गया हो. ऐप्लिकेशन को कम किए गए फ़्रेम रेट पर Choreographer.postFrameCallback(Choreographer.FrameCallback) कॉलबैक और बैकप्रेशर का अनुभव होगा. ऐप्लिकेशन, Display.getRefreshRate() और डिसप्ले की रीफ़्रेश दर के बारे में जानने के लिए Display.Mode.getRefreshRate(). Display.getRefreshRate() हमेशा ऐप्लिकेशन फ़्रेम रेट दिखाएगा, न कि फ़िज़िकल डिसप्ले रीफ़्रेश दर सही तरीके से फ़्रेम पेसिंग करेंगे. अगर Display.Mode.getRefreshRate(), ऐप्लिकेशन फ़्रेम रेट को पिछले वैल्यू से इकट्ठा करता है, तो यह दिखेगा रिलीज़ करें और Android 12 (एपीआई लेवल 31) पर अपडेट शुरू करने पर, डिसप्ले की रीफ़्रेश दर दिखेगी.

DOWNSCALED

बदलाव आईडी: 168419799
डिफ़ॉल्ट स्थिति: सभी ऐप्लिकेशन के लिए बंद है.

यह बदलाव, हर ऐप्लिकेशन के लिए बफ़र को कम करने के सभी बदलावों को कंट्रोल करता है. इस बदलाव को चालू करने से, स्केलिंग वाले इन फ़ैक्टर को अनुमति दी जाती है इन्हें लागू किया जाएगा:

जब किसी ऐप्लिकेशन पैकेज के लिए यह बदलाव चालू किया जाता है, तो ऐप्लिकेशन ज़बरदस्ती लागू होता है स्केलिंग के सबसे बड़े फ़ैक्टर का साइज़ बदला गया. उदाहरण के लिए, अगर 80% और 70%, दोनों (DOWNSCALE_80 और DOWNSCALE_70) चालू हैं, तो 80% का इस्तेमाल किया जाएगा.

DOWNSCALE_30

बदलाव आईडी: 189970040
डिफ़ॉल्ट स्थिति: सभी ऐप्लिकेशन के लिए बंद है.

जब DOWNSCALED भी चालू है, तो किसी पैकेज के लिए इस बदलाव को चालू करने से ऐप्लिकेशन को यह मान लेना होता है कि यह ऐसे डिसप्ले पर चल रहा है जिसका 30% हिस्सा वर्टिकल और हॉरिज़ॉन्टल है रिज़ॉल्यूशन पर सेट किया गया है.

DOWNSCALE_35

बदलाव का आईडी: 189969749
डिफ़ॉल्ट स्थिति: सभी ऐप्लिकेशन के लिए बंद है.

जब DOWNSCALED भी चालू है, तो किसी पैकेज के लिए इस बदलाव को चालू करने से ऐप्लिकेशन को यह मान लेना होता है कि यह ऐसे डिसप्ले पर चल रहा है जिसका 35% वर्टिकल और हॉरिज़ॉन्टल है रिज़ॉल्यूशन पर सेट किया गया है.

DOWNSCALE_40

बदलाव का आईडी: 189970038
डिफ़ॉल्ट स्थिति: सभी ऐप्लिकेशन के लिए बंद है.

जब DOWNSCALED भी चालू है, तो किसी पैकेज के लिए इस बदलाव को चालू करने से ऐप्लिकेशन को यह मान लेना होता है कि यह ऐसे डिसप्ले पर चल रहा है जिसका 40% हिस्सा वर्टिकल और हॉरिज़ॉन्टल है रिज़ॉल्यूशन पर सेट किया गया है.

DOWNSCALE_45

बदलाव आईडी: 189969782
डिफ़ॉल्ट स्थिति: सभी ऐप्लिकेशन के लिए बंद है.

जब DOWNSCALED भी चालू है, तो किसी पैकेज के लिए इस बदलाव को चालू करने से ऐप्लिकेशन को यह मान लेना होता है कि यह ऐसे डिसप्ले पर चल रहा है जिसका 45% हिस्सा वर्टिकल और हॉरिज़ॉन्टल है रिज़ॉल्यूशन पर सेट किया गया है.

DOWNSCALE_50

बदलाव का आईडी: 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 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू की गई है.

Android 12 (एपीआई लेवल 31) और उसके बाद के वर्शन को टारगेट करने वाले Android TV ऐप्लिकेशन, किसी भी विंडो साइज़ को हैंडल कर सकते हैं. इनमें विंडो का साइज़ 1080 पिक्सल से ज़्यादा होना भी शामिल है. Android के पुराने वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए यह उम्मीद नहीं की जाती कि उनमें 1080p से बड़ी Windows फ़ाइलें होंगी. इसलिए, ज़रूरी होने पर उनकी Windows की क्वालिटी कम करके 1080p कर दी जाती है.

DROP_CLOSE_SYSTEM_DIALOGS

बदलाव का आईडी: 174664120
डिफ़ॉल्ट स्थिति: सभी ऐप्लिकेशन के लिए चालू है.

ऐप्लिकेशन और सिस्टम का इस्तेमाल करते समय उपयोगकर्ता के कंट्रोल को बेहतर बनाने के लिए, ACTION_CLOSE_SYSTEM_DIALOGS Android 12 के बाद से इंटेंट कार्रवाई बंद कर दी गई है.

इस बदलाव के बारे में ज़्यादा जानने के लिए, ऐप्लिकेशन, सिस्टम डायलॉग बंद नहीं कर सकते देखें.

ENABLE_CHECKS_FOR_PRIVATE_FILES

बदलाव का आईडी: 172100307
डिफ़ॉल्ट स्थिति: यह सेटिंग, Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू की गई है.

Android 12 (एपीआई लेवल 31) और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन, मीडिया सेवा देने वाली कंपनी का इस्तेमाल करके निजी फ़ाइलें शामिल या अपडेट नहीं कर सकते.

ENABLE_DEFERRED_SCAN

बदलाव आईडी: 180326732
डिफ़ॉल्ट स्थिति: Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू है.

MediaProvider#update() के हिस्से के तौर पर ट्रिगर किए गए स्कैन को टालने के लिए, यह विकल्प चालू करें.

ENABLE_GET_CALL_STATE_PERMISSION_PROTECTION

आईडी बदलें: 157233955
डिफ़ॉल्ट स्थिति: यह सेटिंग, Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू की गई है.

Android 12 (एपीआई लेवल 31) और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, कॉल की स्थिति के बारे में क्वेरी करने और सूचना देने वाले एपीआई पर READ_PHONE_STATE सुरक्षा चालू करता है. जैसे, TelecomManager#getCallState, TelephonyManager.getCallStateForSubscription(), और TelephonyCallback.CallStateListener.

ENABLE_GET_PHONE_ACCOUNT_PERMISSION_PROTECTION

बदलाव आईडी: 183407956
डिफ़ॉल्ट स्थिति: Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू है.

Android 12 (एपीआई लेवल 31) और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, READ_PHONE_NUMBERS या READ_PRIVILEGED_PHONE_STATE को चालू करता है getPhoneAccount(PhoneAccountHandle) पर सुरक्षा सुविधाएं.

ENABLE_INCLUDE_ALL_VOLUMES

बदलाव का आईडी: 182734110
डिफ़ॉल्ट स्थिति: Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू है.

MediaProvider#query में हाल ही में माउंट किए गए वॉल्यूम से, डेटाबेस की पंक्तियों को शामिल करने के लिए इस विकल्प को चालू करें.

ENABLE_RAW_MANAGE_EXTERNAL_STORAGE_ACCESS

बदलाव आईडी: 178209446
डिफ़ॉल्ट स्थिति: यह सेटिंग, Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू की गई है.

Manifest.permission.MANAGE_EXTERNAL_STORAGE को दबाकर रखने वाले ऐप्लिकेशन को अनुमति देने के लिए, यह विकल्प चालू करें बाहरी मेमोरी के ऐक्सेस का अनुरोध करने की अनुमति.

ENFORCE_MINIMUM_WINDOW_ON_INEXACT_ALARMS

बदलाव का आईडी: 185199076
डिफ़ॉल्ट स्थिति: Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू है.

Android 12 (एपीआई लेवल 31) और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, सटीक जानकारी वाले सभी अलार्म को विंडो का कम से कम साइज़ होना चाहिए. यह समय कुछ मिनट का होना चाहिए. असल में, जिन अलार्म के लिए कम विंडो की ज़रूरत होती है वे एग्ज़ैक्ट अलार्म जैसे ही होते हैं. साथ ही, इनके लिए दिए गए एपीआई का इस्तेमाल करना चाहिए, जैसे कि setExact(int, long, PendingIntent). अगर अलार्म के लिए तय की गई विंडो छोटी है, तो सिस्टम उन्हें लंबा कर देगा.

ENFORCE_NATIVE_SHARED_LIBRARY_DEPENDENCIES

बदलाव का आईडी: 142191088
डिफ़ॉल्ट स्थिति: यह सेटिंग, Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू की गई है.

Android 12 (एपीआई लेवल 31) और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन को, उन सार्वजनिक नेटिव शेयर की गई लाइब्रेरी के लिए डिपेंडेंसी का एलान करना होगा जिन्हें डिवाइस बनाने वाली कंपनी ने अपने AndroidManifest.xml में uses-native-library टैग का इस्तेमाल करके तय किया है. अगर इनमें से कोई भी डिपेंडेंसी नहीं रह सकता—उदाहरण के लिए, कोई एक डिपेंडेंसी मौजूद नहीं है—पैकेज मैनेजर ऐप्लिकेशन को इंस्टॉल नहीं करेगा. डिपेंडेंसी ये हो सकती है: को टैग में android:required एट्रिब्यूट का इस्तेमाल करके वैकल्पिक के तौर पर बताया गया है. इस स्थिति में, डिपेंडेंसी पूरा नहीं करने पर नहीं रोका जाएगा इंस्टॉल करना.

इंस्टॉल होने के बाद, ऐप्लिकेशन में शेयर की गई सिर्फ़ उन लाइब्रेरी की सुविधा दी जाती है जिनके बारे में ऐप्लिकेशन मेनिफ़ेस्ट में बताया गया है. dlopen को कॉल करने की सुविधा चालू है ऐप्लिकेशन मेनिफ़ेस्ट में न दिखने वाली नेटिव शेयर की गई लाइब्रेरी काम नहीं करेगी, भले ही वह डिवाइस में मौजूद हो.

ENFORCE_STRICT_QUERY_BUILDER

आईडी बदलें: 143231523
डिफ़ॉल्ट स्थिति: सभी ऐप्लिकेशन के लिए बंद है.

चालू होने पर, SQLiteQueryBuilder नुकसान पहुंचाने वाले आर्ग्युमेंट के लिए, CalendarProvider2 क्वेरी के सभी चुने गए विकल्पों की पुष्टि करता है.

FGS_BG_START_RESTRICTION_CHANGE_ID

बदलाव आईडी: 170668199
डिफ़ॉल्ट स्थिति: यह सेटिंग, Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू की गई है.

Android 12 (एपीआई लेवल 31) और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, यह तय किया जा सकता है कि बैकग्राउंड में चलने के दौरान, ऐप्लिकेशन में फ़ोरग्राउंड सेवाएं कब चालू की जा सकती हैं.

FGS_START_EXCEPTION_CHANGE_ID

बदलाव आईडी: 174041399
डिफ़ॉल्ट स्थिति: यह सेटिंग, Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू की गई है.

Android 12 (एपीआई लेवल 31) और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, अगर कोई ऐप्लिकेशन बैकग्राउंड में चलते हुए फ़ोरग्राउंड सेवा शुरू करने की कोशिश करता है, तो सिस्टम IllegalStateException को ट्रिगर कर सकता है.

FINISH_INPUT_NO_FALLBACK_CONNECTION

बदलाव का आईडी: 156215187
डिफ़ॉल्ट स्थिति: सभी ऐप्लिकेशन के लिए बंद है.

Android 12 (एपीआई लेवल 31) और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, InputConnection को तब पूरा करें, जब डिवाइस non-interactive.

अगर मौजूदा input method से चालू किया जाता है, तो मौजूदा इनपुट कनेक्शन डिवाइस के नॉन-इंटरैक्टिव होने पर finished.

अगर इसे चालू नहीं किया जाता है, तो डिवाइसों के नॉन-इंटरैक्टिव होने पर मौजूदा इनपुट कनेक्शन, बिना किसी रुकावट के बंद हो जाएगा. साथ ही, onFinishInput() और onStartInput() डिवाइस के फिर से इंटरैक्टिव होने पर, पेयर को भेज दिया जाता है.

FORCE_DISABLE_HEVC_SUPPORT

बदलाव आईडी: 174227820
डिफ़ॉल्ट स्थिति: सभी ऐप्लिकेशन के लिए बंद है.

किसी ऐप्लिकेशन को HEVC मीडिया की सुविधा के साथ काम करने से ज़बरदस्ती बंद करना. ऐप्लिकेशन को मीडिया की सुविधाओं का एलान करना चाहिए लेकिन इस फ़्लैग का उपयोग करके किसी ऐप्लिकेशन को HEVC फ़ॉर्मैट के साथ काम करता है. इसलिए, मीडिया ऐक्सेस करते समय ट्रांसकोडिंग को ज़बरदस्ती चालू किया जाता है HEVC फ़ॉर्मैट में एन्कोड किया गया. इस फ़्लैग को सेट करने से, ओएस लेवल के लिए डिफ़ॉल्ट सेटिंग बदल जाती है के लिए. यह डिफ़ॉल्ट रूप से बंद होता है. इसका मतलब है कि ओएस के डिफ़ॉल्ट विकल्पों को प्राथमिकता दी जाती है. अगर यह फ़्लैग और FORCE_ENABLE_HEVC_SUPPORT चालू हैं, लेकिन ओएस इसे अनदेखा कर रहा है दोनों फ़्लैग.

FORCE_ENABLE_HEVC_SUPPORT

बदलाव का आईडी: 174228127
डिफ़ॉल्ट स्थिति: सभी ऐप्लिकेशन के लिए बंद है.

किसी ऐप्लिकेशन को HEVC मीडिया की सुविधा के साथ काम करने के लिए ज़बरदस्ती चालू करना. ऐप्लिकेशन को, मेनिफ़ेस्ट में यह बताना चाहिए कि वे किन मीडिया फ़ॉर्मैट के साथ काम करते हैं. हालांकि, इस फ़्लैग का इस्तेमाल करके किसी ऐप्लिकेशन को HEVC के साथ काम करने के लिए ज़बरदस्ती किया जा सकता है. इससे, HEVC में एन्कोड किए गए मीडिया को ऐक्सेस करते समय ट्रांसकोडिंग से बचा जा सकता है. सेटिंग यह फ़्लैग ऐप्लिकेशन के लिए किसी भी ओएस लेवल की डिफ़ॉल्ट सेटिंग को बदल देता है. यह इसके ज़रिए बंद किया गया है डिफ़ॉल्ट का मतलब है कि ओएस की डिफ़ॉल्ट सेटिंग को प्राथमिकता दी जाएगी. अगर यह फ़्लैग और FORCE_DISABLE_HEVC_SUPPORT, दोनों चालू हैं, तो ऑपरेटिंग सिस्टम दोनों फ़्लैग को अनदेखा कर देता है.

FORCE_NON_RESIZE_APP

बदलाव का आईडी: 181136395
डिफ़ॉल्ट स्थिति: सभी ऐप्लिकेशन के लिए बंद है.

जिन पैकेज पर यह लागू किया गया है उनका साइज़ न बदला जा सके.

FORCE_RESIZE_APP

बदलाव आईडी: 174042936
डिफ़ॉल्ट स्थिति: सभी ऐप्लिकेशन के लिए बंद है.

जिन पैकेज पर यह लागू किया गया है उनका साइज़ बदला जा सकता है. सिर्फ़ हम फ़ुलस्क्रीन विंडो मोड में साइज़ बदलने की अनुमति दें, लेकिन ऐप्लिकेशन को ज़बरदस्ती न बदलें मल्टी-विंडो वाले मोड में भी काम करता है, जिसका साइज़ बदला जा सकता है.

HIDE_PROP_ICUBINARY_DATA_PATH

बदलाव आईडी: 171979766
डिफ़ॉल्ट स्थिति: यह सेटिंग, Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू की गई है.

Android 12 (एपीआई लेवल 31) और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, android.icu.impl.ICUBinary.dataPath प्रॉपर्टी का ऐक्सेस हटा दिया जाता है.

IGNORE_ALLOW_BACKUP_IN_D2D

बदलाव का आईडी: 183147249
डिफ़ॉल्ट स्थिति: यह सेटिंग, Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू की गई है.

Android 12 (एपीआई लेवल 31) और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, डिवाइस-टू-डिवाइस (D2D) माइग्रेशन के दौरान ऐप्लिकेशन के लिए android:allowBackup को अनदेखा कर दिया जाता है.

IGNORE_FULL_BACKUP_CONTENT_IN_D2D

बदलाव का आईडी: 180523564
डिफ़ॉल्ट स्थिति: यह सेटिंग, Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू की गई है.

Android 12 (एपीआई लेवल 31) और इसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, डिवाइस-से-डिवाइस (D2D) ट्रांसफ़र के दौरान, android:fullBackupContent का इस्तेमाल करके तय किए गए शामिल करने और बाहर रखने के नियमों को अनदेखा कर दिया जाता है.

IME_AUTOFILL_DEFAULT_SUPPORTED_LOCALES_IS_EMPTY

बदलाव आईडी: 169273070
डिफ़ॉल्ट स्थिति: यह सेटिंग, Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू की गई है.

Android 12 (एपीआई लेवल 31) और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, अब getSupportedLocales() का इस्तेमाल किया जाएगा अगर नीति को सेट नहीं किया जाता है, तो सिस्टम की डिफ़ॉल्ट स्थान-भाषा के बजाय, एक खाली स्थान-भाषा की सूची का इस्तेमाल करें.

IS_BACKUP_SERVICE_ACTIVE_ENFORCE_PERMISSION_IN_SERVICE

बदलाव का आईडी: 158482162
डिफ़ॉल्ट स्थिति: यह सेटिंग, Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू की गई है.

Android 12 (एपीआई लेवल 31) और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, BACKUP अनुमति ज़रूरी है BackupManager में isBackupServiceActive() को क्लाइंट-साइड के बजाय सर्विस-साइड पर लागू किया जाता है.

KEYSTORE_OPERATION_CREATION_MAY_FAIL

बदलाव का आईडी: 169897160
डिफ़ॉल्ट स्थिति: सभी ऐप्लिकेशन के लिए बंद है.

इसे चालू करने पर, हो सकता है कि कीस्टोर कार्रवाई न हो. इसके लिए: छांटने की नई रणनीति तैयार की. कीस्टोर इस धारणा के तहत काम करता था कि क्रिप्टोग्राफ़िक ऑपरेशन हमेशा काम करते हैं. हालांकि, KeyMint बैकएंड में ऑपरेशन के लिए सीमित संख्या में स्लॉट होते हैं.

"अनगिनत" ऑपरेशन स्लॉट दिखते रहें, इसके लिए, अगर कोई ऑपरेशन स्लॉट उपलब्ध न हो, तो कीस्टोर डेमन हाल ही में इस्तेमाल किए गए कम से कम ऑपरेशन को हटा देगा. इस वजह से, अच्छे ऑपरेशन को समय से पहले खत्म किया जा सकता है. इस वजह से, AndroidKeystore को सेवा अस्वीकार करने (डीओएस) और अनचाहे लाइवलॉक के खतरे का सामना करना पड़ा. उदाहरण के लिए, अगर बिजली मैनेजमेंट के ऑप्टिमाइज़ेशन की वजह से एक ही समय पर कई ऐप्लिकेशन चालू हो जाते हैं और क्रिप्टो ऑपरेशन करने की कोशिश करते हैं, तो वे कोई भी कार्रवाई किए बिना ही एक-दूसरे के ऑपरेशन को बंद कर देते हैं.

लाइवलॉक को रोकने और DoS की कोशिशों को रोकने के लिए, हमने इस तरह की काट-छांट से जुड़ी रणनीति बदल दी गई है ताकि वह उन क्लाइंट को प्राथमिकता दे कुछ संचालन स्लॉट का संक्षेप में उपयोग करते हैं. इस वजह से, सिर्फ़ एक ऑपरेशन की मदद से जब आपको 5 सेकंड से ज़्यादा समय के लिए कोई गतिविधि न करनी हो, तो छंटाई करने की रणनीति से बिना किसी रुकावट के खत्म होना चाहिए. अब भी कुछ फ़ाइल सिस्टम एन्क्रिप्शन से जुड़ी कार्रवाइयां, जो फ़ाइलों को छोटा करने की क्षमता को ये ऑपरेशन शामिल होते हैं, लेकिन ऐसे मामले बहुत ही कम होते हैं. प्रूनिंग की इस नई रणनीति के असर के तौर पर, अब डेटा फ़ीड बनाने की प्रोसेस पूरी न हो पाना भी संभव है. ऐसा तब होता है, जब क्लाइंट के पास मौजूदा सभी ऑपरेशन की तुलना में प्रूनिंग की क्षमता कम हो.

काट-छांट से जुड़ी रणनीति: सही उम्मीदवार ढूंढने के लिए, हम कॉलर और हर मौजूदा ऑपरेशन के लिए मेलस का पता लगाते हैं. कॉन्टेंट बनाने मालस, प्रूनिंग पावर (कॉलर) या प्ररनिंग से बिलकुल उलट होता है रेसिस्टेंस (मौजूदा ऑपरेशन). कॉलर के पास किसी ऑपरेशन को हटाने का विकल्प तब होता है, जब उसे ऐसा ऑपरेशन मिलता है जिसका नुकसान, उसके नुकसान से ज़्यादा हो. काट-छांट करने की रणनीति के बारे में ज़्यादा जानकारी के लिए, लागू करने का तरीका देखें में से operation.rs. Android 11 (एपीआई लेवल 30) और उससे पहले के वर्शन पर, KeyStore2 मुफ़्त ऑपरेशन स्लॉट के लिए कीस्टोर डीमन. Android 11 (एपीआई लेवल 30) और इससे पहले के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, यह अब भी ऐसा दिखेगा कि सिफर और हस्ताक्षर ऑब्जेक्ट को शुरू करने की प्रोसेस हमेशा पूरी हो जाती है. हालांकि, ऑपरेशन पूरा होने में ज़्यादा समय लग सकता है. Android के सभी वर्शन को बेहतर फ़ायदा मिलता है ऑपरेशन स्लॉट शेड्यूलिंग और सफलतापूर्वक खत्म होने का बेहतर मौका एक कार्रवाई.

LOCK_DOWN_CLOSE_SYSTEM_DIALOGS

बदलाव का आईडी: 174664365
डिफ़ॉल्ट स्थिति: यह सेटिंग, Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू की गई है.

Android 12 (एपीआई लेवल 31) और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, Intent.ACTION_CLOSE_SYSTEM_DIALOGS नहीं भेजा जा सकता अगर ऐप्लिकेशन के पास android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS की अनुमति भी न हो. ध्यान दें कि यह #DROP_CLOSE_SYSTEM_DIALOGS के ज़्यादा पाबंदी वाले वर्शन का इस्तेमाल है. इसमें, ऐप्लिकेशन के Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने पर, Intent.ACTION_CLOSE_SYSTEM_DIALOGS इंटेंट भेजने की सुविधा बंद हो जाती है.

LOCK_DOWN_COLLAPSE_STATUS_BAR

बदलाव आईडी: 173031413
डिफ़ॉल्ट स्थिति: Android 12 (एपीआई लेवल 31) या इसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू है.

Android 12 (एपीआई लेवल 31) और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, Manifest.permission.STATUS_BAR की अनुमति की ज़रूरत है. ऐसा करने पर, स्टेटस बार पैनलों को देख सकते हैं. मैलवेयर इसका गलत इस्तेमाल कर रहा था, ताकि उपयोगकर्ता को ज़रूरी सूचनाएं न मिलें.

LOW_POWER_EXCEPTIONS

बदलाव का आईडी: 168936375
डिफ़ॉल्ट स्थिति: Android 12 (एपीआई लेवल 31) या इसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू है.

Android 12 (एपीआई लेवल 31) और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, सभी LocationRequest ऑब्जेक्ट को लो पावर थ्रो के तौर पर मार्क किया गया है अपवाद के तौर पर, जब कॉल करने वाले (कॉलर) के पास LOCATION_HARDWARE की अनुमति न हो. साथ ही, मैसेज न भेजें काम का हिस्सा होते हैं.

MISSING_EXPORTED_FLAG

बदलाव आईडी: 150232615
डिफ़ॉल्ट स्थिति: यह Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू है.

Android 12 (एपीआई लेवल 31) और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, इंटेंट फ़िल्टर तय होने पर, android:exported एट्रिब्यूट का इस्तेमाल किया जा सकता है.

इस बदलाव के बारे में ज़्यादा जानने के लिए, कॉम्पोनेंट को ज़्यादा सुरक्षित तरीके से एक्सपोर्ट करना लेख पढ़ें.

NATIVE_HEAP_POINTER_TAGGING_APP_ZYGOTE

बदलाव का आईडी: 207557677
डिफ़ॉल्ट स्थिति: यह सेटिंग, Android 12 (एपीआई लेवल 32) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू की गई है.

Android 12 (एपीआई लेवल 32) और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, AppZygote प्रोसेस और इसके डिसेंडेंट में नेटिव हीप ऐलोकेशन को असाइन किया गया है सबसे अहम बाइट में नॉन-ज़ीरो टैग का इस्तेमाल करना चाहिए.

इस बदलाव के बारे में ज़्यादा जानने के लिए, टैग किए गए पॉइंटर देखें.

NATIVE_HEAP_ZERO_INIT

बदलाव का आईडी: 178038272
डिफ़ॉल्ट स्थिति: सभी ऐप्लिकेशन के लिए बंद है.

नेटिव हीप मेमोरी ऐलोकेशन के लिए, अपने-आप शून्य शुरू करने की सुविधा चालू करें.

NATIVE_MEMTAG_ASYNC

बदलाव का आईडी: 135772972
डिफ़ॉल्ट स्थिति: सभी ऐप्लिकेशन के लिए बंद है.

इस प्रोसेस में, एसिंक्रोनस (ASYNC) मेमोरी टैग की जांच करने की सुविधा चालू करें. इस फ़्लैग से सिर्फ़ ARM के साथ काम करने वाले हार्डवेयर पर असर पड़ता है मेमोरी टैगिंग एक्सटेंशन (एमटीई).

NATIVE_MEMTAG_SYNC

बदलाव का आईडी: 177438394
डिफ़ॉल्ट स्थिति: सभी ऐप्लिकेशन के लिए बंद है.

इस प्रोसेस में, सिंक्रोनस (SYNC) मेमोरी टैग की जांच करने की सुविधा चालू करता है. इस फ़्लैग से सिर्फ़ ARM के साथ काम करने वाले हार्डवेयर पर असर पड़ता है मेमोरी टैगिंग एक्सटेंशन (एमटीई). अगर NATIVE_MEMTAG_ASYNC और यह विकल्प, दोनों चालू हैं, तो इस विकल्प को प्राथमिकता दी जाती है और सिंक मोड में एमटीई चालू हो जाता है.

NEVER_SANDBOX_DISPLAY_APIS

बदलाव आईडी: 184838306
डिफ़ॉल्ट स्थिति: सभी ऐप्लिकेशन के लिए बंद है.

चालू होने पर, यह Display API सैंडबॉक्सिंग को लेटरबॉक्स या SCM गतिविधि पर लागू होने से रोकता है. Display API, DisplayArea के बाउंड की जानकारी देते रहेंगे.

इस बदलाव के बारे में ज़्यादा जानने के लिए, Android के व्यवहार में हुए 12 बदलावों वाले पेज पर, डिसप्ले के लिए इस्तेमाल किए जाने वाले उन तरीकों के बारे में जानकारी देखें जिन्हें बंद कर दिया गया है.

NOTIFICATION_CANCELLATION_REASONS

बदलाव का आईडी: 175319604
डिफ़ॉल्ट स्थिति: यह Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू है.

इससे, सूचना सुनने वाले लोग रद्द करने की नई वजहों को बेहतर तरीके से समझ पाते हैं.

NOTIFICATION_TRAMPOLINE_BLOCK

बदलाव आईडी: 167676448
डिफ़ॉल्ट स्थिति: Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू है.

Android 12 को टारगेट करने वाले ऐप्लिकेशन, ऐप्लिकेशन की परफ़ॉर्मेंस और उपयोगकर्ता अनुभव को बेहतर बनाने के लिए, सेवाओं या ब्रॉडकास्ट रिसीवर का इस्तेमाल नहीं कर सकते सूचना ट्रैंपोलिन के तौर पर.

इस बदलाव के बारे में ज़्यादा जानने के लिए, सेवाओं या ब्रॉडकास्ट रिसीवर से सूचना ट्रैंपोलिन नहीं बनाए जा सकते लेख पढ़ें.

NULL_TELEPHONY_THROW_NO_CB

बदलाव आईडी: 182185642
डिफ़ॉल्ट स्थिति: यह Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू है.

इसका इस्तेमाल यह पता लगाने के लिए किया जाता है कि मौजूदा प्रोसेस के लिए, टारगेट किया गया SDK टूल का वर्शन Android 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
डिफ़ॉल्ट स्थिति: यह सेटिंग, Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू की गई है.

Android 12 (एपीआई लेवल 31) और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, आपको अपने ऐप्लिकेशन के बनाए गए हर PendingIntent ऑब्जेक्ट के लिए, म्यूटेबिलिटी की जानकारी देनी होगी. इस अतिरिक्त ज़रूरी शर्त से, आपके ऐप्लिकेशन की सुरक्षा बेहतर होती है.

इस बदलाव के बारे में ज़्यादा जानने के लिए, मंज़ूरी बाकी वाले इंटेंट के लिए म्यूटेबिलिटी होना ज़रूरी है लेख पढ़ें.

PREVENT_SETTING_PASSWORD_QUALITY_ON_PARENT

आईडी बदलें: 165573442
डिफ़ॉल्ट स्थिति: यह सेटिंग, Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू की गई है.

Android 12 (एपीआई लेवल 31) और उसके बाद के वर्शन को टारगेट करने वाले एडमिन ऐप्लिकेशन, DevicePolicyManager.setPasswordQuality(ComponentName, int) का इस्तेमाल नहीं कर सकते DevicePolicyManager.getParentProfileInstance(ComponentName) पर कॉल करने पर मिले DevicePolicyManager इंस्टेंस पर पासवर्ड की क्वालिटी सेट करने के लिए. इसके बजाय, उन्हें सेट करने के लिए DevicePolicyManager.setRequiredPasswordComplexity(int) का इस्तेमाल करना चाहिए डिवाइस-वाइड सेटिंग के लिए.

RATE_LIMIT_TOASTS

बदलाव का आईडी: 174840628
डिफ़ॉल्ट स्थिति: इस बदलाव को टॉगल नहीं किया जा सकता. इसे सिर्फ़ कंपैटबिलिटी फ़्रेमवर्क लॉग करता है.

इससे, Toast.show() कॉल की संख्या पर दर सीमित करने की सुविधा चालू होती है. इससे, उपयोगकर्ता को सीमित समय में बहुत ज़्यादा टॉस्ट दिखाने से रोका जा सकता है. इतने ज़्यादा टोस्ट दिखाने की कोशिश जिसके कारण टोस्ट खारिज कर दिया जाता है.

REQUIRE_EXACT_ALARM_PERMISSION

बदलाव का आईडी: 171306433
डिफ़ॉल्ट स्थिति: यह सेटिंग, Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू की गई है.

Android 12 (एपीआई लेवल 31) और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, ऐप्लिकेशन के पास 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 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू है.

Android 12 (एपीआई लेवल 31) और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, ऐप्लिकेशन के पास Manifest.permission.READ_PHONE_STATE की अनुमति होनी चाहिए TelephonyCallback.ActiveDataSubscriptionIdListener को कॉल करने के लिए ऑर्डर.

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_CELL_INFO

बदलाव आईडी: 184323934
डिफ़ॉल्ट स्थिति: यह Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू है.

Android 12 (एपीआई लेवल 31) और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, TelephonyCallback.CellInfoListener को कॉल करने के लिए, ऐप्लिकेशन के पास Manifest.permission.READ_PHONE_STATE अनुमति होनी चाहिए.

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_DISPLAY_INFO

बदलाव का आईडी: 183164979
डिफ़ॉल्ट स्थिति: Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू है.

Android 12 (एपीआई लेवल 31) और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, ऐप्लिकेशन के पास Manifest.permission.READ_PHONE_STATE की अनुमति होनी चाहिए TelephonyCallback.DisplayInfoListener को कॉल करने के लिए ऑर्डर.

RESTRICT_ADB_BACKUP

बदलाव का आईडी: 171032338
डिफ़ॉल्ट स्थिति: यह सेटिंग, Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू की गई है.

Android 12 (एपीआई लेवल 31) और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, adb backup अपने-आप चालू हो जाता है. ऐसा उन ऐप्लिकेशन के लिए होता है जो डीबग किए जा सकने वाले मोड में काम करते हैं (android:debuggable को true पर सेट किया गया हो). साथ ही, यह सुविधा किसी भी दूसरे ऐप्लिकेशन के लिए उपलब्ध नहीं होती.

RESTRICT_DOMAINS

बदलाव का आईडी: 175408749
डिफ़ॉल्ट स्थिति: Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू है.

Android 12 (एपीआई लेवल 31) और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, ऐप्लिकेशन लिंक की पुष्टि करने वाले एपीआई का अपडेट किया गया फ़ॉर्म ज़रूरी है. इस ज़रूरी शर्त का मतलब है कि ऐप्लिकेशन को ऐसे इंटेंट फ़िल्टर में डोमेन के बारे में जानकारी देनी होगी जो इसमें ये सभी चीज़ें शामिल होती हैं:

  • android:autoVerify="true"
  • Intent.ACTION_VIEW
  • Intent.CATEGORY_BROWSABLE
  • Intet.CATEGORY_DEFAULT
  • सिर्फ़ IntentFilter.SCHEME_HTTP और/या IntentFilter.SCHEME_HTTPS, कोई दूसरी स्कीम नहीं है

Android के पिछले वर्शन में, Intent.CATEGORY_BROWSABLE की ज़रूरत नहीं थी. अन्य स्कीम इस्तेमाल की जा सकती थीं. साथ ही, किसी भी इंटेंट फ़िल्टर में autoVerify को true पर सेट करने पर, यह माना जाता था कि सभी इंटेंट फ़िल्टर autoVerify="true" पर सेट हैं.

SECURITY_EXCEPTION_ON_INVALID_ATTRIBUTION_TAG_CHANGE

बदलाव का आईडी: 151105954
डिफ़ॉल्ट स्थिति: यह सेटिंग, Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू की गई है.

Android 12 (एपीआई लेवल 31) और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, यह ज़रूरी है कि noteOp(String, int, String), noteProxyOp(String, String), और startOp(String, int, String) पर भेजे गए सभी attributionTags, पैकेज के मेनिफ़ेस्ट में बताए गए हों. मेनिफ़ेस्ट में, इन पैरामीटर को तरीकों के पैरामीटर के तौर पर बताया जाता है.

इस बदलाव को लागू करने के लिए, noteOp(String, int, String) को कॉल करने वाले दोनों पैकेज साथ ही, तरीके के पैरामीटर के तौर पर बताए गए पैकेज में यह बदलाव चालू होना चाहिए.

SELINUX_LATEST_CHANGES

आईडी बदलें: 143539591
डिफ़ॉल्ट स्थिति: यह सेटिंग, Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू की गई है.

Android 12 (एपीआई लेवल 31) और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, SELinux में किए गए नए बदलावों के लिए ऑप्ट-इन करें. ऐप्लिकेशन टारगेटिंग के लिए यह बदलाव बंद करना Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन, काम नहीं करते हैं. शेयर किए गए यूज़र आईडी का इस्तेमाल करने वाले ऐप्लिकेशन पर इसका कोई असर नहीं पड़ता.

SETTINGS_API_V2

बदलाव का आईडी: 178111421
डिफ़ॉल्ट स्थिति: सभी ऐप्लिकेशन के लिए चालू है.

AndroidManifest.xml इंटेंट फ़िल्टर में autoVerify=true के तौर पर मार्क किए गए डोमेन की पुष्टि करने के लिए, उपयोगकर्ता की नई प्राथमिकता वाला एपीआई, फ़िलहाल मौजूदा प्लैटफ़ॉर्म की झलक में लागू नहीं किया गया है. फ़िलहाल, इस ChangeId को चालू करके और adb shell pm set-app-links-user-selection और मिलते-जुलते निर्देशों का इस्तेमाल करके, उपयोगकर्ता की नई प्राथमिकता में हुए बदलावों की झलक देखी जा सकती है.

USE_SHORT_FGS_USAGE_INTERACTION_TIME

बदलाव आईडी: 183972877
डिफ़ॉल्ट स्थिति: यह Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए चालू है.

Android 12 (एपीआई लेवल 31) और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, यह तय किया जाता है कि स्टैंडबाय बकेट के इस्तेमाल से पहले, कम टाइम आउट का इस्तेमाल करना है या नहीं ऐप्लिकेशन के फ़ोरग्राउंड सेवा शुरू करने पर ACTIVE.