ALWAYS_SANDBOX_DISPLAY_APIS
चेंज आईडी: 185004937
डिफ़ॉल्ट स्थिति: सभी ऐप्लिकेशन के लिए बंद है.
इस सेटिंग के चालू होने पर, पैकेज पर 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) और इसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, LocationRequest सिस्टम एपीआई का इस्तेमाल, PendingIntent
जगह की जानकारी के अनुरोधों के साथ नहीं किया जा सकता.
|
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 के पुराने वर्शन को टारगेट करने वाले ऐप्लिकेशन, 1080 पिक्सल से बड़े विंडो पाने की उम्मीद नहीं करते हैं. इसलिए, ज़रूरत पड़ने पर उनकी विंडो को 1080 पिक्सल पर डाउनस्केल कर दिया जाता है.
|
DROP_CLOSE_SYSTEM_DIALOGS
चेंज आईडी: 174664120
डिफ़ॉल्ट स्थिति: सभी ऐप्लिकेशन के लिए चालू है.
ऐप्लिकेशन और सिस्टम के साथ इंटरैक्ट करते समय, उपयोगकर्ता को बेहतर कंट्रोल देने के लिए, Android 12 से ACTION_CLOSE_SYSTEM_DIALOGS
इंटेंट ऐक्शन का इस्तेमाल नहीं किया जा सकेगा.
इस बदलाव के बारे में ज़्यादा जानने के लिए, ऐप्लिकेशन, सिस्टम के डायलॉग बॉक्स बंद नहीं कर सकते लेख पढ़ें.
|
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) और इसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, getPhoneAccount(PhoneAccountHandle) पर READ_PHONE_NUMBERS या READ_PRIVILEGED_PHONE_STATE
सुरक्षा चालू करता है.
|
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) और इसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन को, सार्वजनिक नेटिव शेयर की गई लाइब्रेरी के लिए डिपेंडेंसी का एलान करना होगा. ये लाइब्रेरी, डिवाइस बनाने वाली कंपनी ने uses-native-library टैग का इस्तेमाल करके AndroidManifest.xml में तय की हैं. अगर कोई भी डिपेंडेंसी पूरी नहीं होती है, तो पैकेज मैनेजर ऐप्लिकेशन इंस्टॉल नहीं करेगा. उदाहरण के लिए, अगर कोई डिपेंडेंसी मौजूद नहीं है, तो पैकेज मैनेजर ऐप्लिकेशन इंस्टॉल नहीं करेगा. टैग में 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 दिखाने की अनुमति देती है. ऐसा तब होता है, जब कोई ऐप्लिकेशन बैकग्राउंड में चल रहा हो और फ़ोरग्राउंड सेवा शुरू करने की कोशिश करता हो.
|
चेंज आईडी: 156215187
डिफ़ॉल्ट स्थिति: सभी ऐप्लिकेशन के लिए बंद है.
Android 12 (एपीआई लेवल 31) और इसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, डिवाइस के non-interactive होने पर InputConnection को पूरा करें.
अगर मौजूदा 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
डिफ़ॉल्ट स्थिति: सभी ऐप्लिकेशन के लिए बंद है.
इस सुविधा के चालू होने पर, नई प्रूनिंग रणनीति के मुताबिक कीस्टोर ऑपरेशन नहीं बनाया जा सकता. Keystore इस मान्यता के तहत काम करता था कि क्रिप्टोग्राफ़िक ऑपरेशन हमेशा पूरे होते हैं.
हालांकि, KeyMint बैकएंड में सिर्फ़ सीमित संख्या में ऑपरेशन स्लॉट होते हैं.
"अनंत" ऑपरेशन स्लॉट की संख्या बनाए रखने के लिए, Keystore डेमॉन सबसे कम इस्तेमाल किए गए ऑपरेशन को हटा देता है. ऐसा तब होता है, जब कोई ऑपरेशन स्लॉट उपलब्ध नहीं होता. इस वजह से, अच्छी परफ़ॉर्मेंस वाले कैंपेन भी समय से पहले बंद किए जा सकते हैं. इस वजह से, AndroidKeystore पर सेवा से इनकार (DoS) और अनचाहे लाइवलॉक की समस्या हो सकती है. उदाहरण के लिए, अगर पावर मैनेजमेंट से जुड़े ऑप्टिमाइज़ेशन की वजह से, एक साथ कई ऐप्लिकेशन चालू हो जाते हैं और वे क्रिप्टो ऑपरेशन करने की कोशिश करते हैं, तो वे एक-दूसरे के ऑपरेशन को बंद करना शुरू कर देते हैं. इससे कोई भी ऑपरेशन पूरा नहीं हो पाता.
लाइवलॉक से बचने और DoS के हमलों को रोकने के लिए, हमने इस तरह की रणनीति में बदलाव किया है कि यह उन क्लाइंट को प्राथमिकता देता है जो कुछ समय के लिए कम ऑपरेशन स्लॉट का इस्तेमाल करते हैं. इसलिए, जिन कार्रवाइयों में पांच सेकंड से ज़्यादा समय तक कोई गतिविधि नहीं होती है वे आम तौर पर, डेटा को छोटा करने की रणनीति से प्रभावित नहीं होती हैं. फ़ाइल सिस्टम को एन्क्रिप्ट (सुरक्षित) करने से जुड़ी कुछ ऐसी कार्रवाइयां अब भी मौजूद हैं जो इन कार्रवाइयों को भी हटा सकती हैं. हालांकि, ऐसे मामले बहुत कम होते हैं. इस नई प्रूनिंग रणनीति के ऑपरेशन के साइड इफ़ेक्ट के तौर पर, अब क्रिएशन फ़ेल हो सकता है. ऐसा तब होता है, जब क्लाइंट के पास मौजूदा सभी ऑपरेशन की तुलना में कम प्रूनिंग पावर होती है.
प्रूनिंग की रणनीति: सही उम्मीदवार का पता लगाने के लिए, हम कॉल करने वाले और हर मौजूदा ऑपरेशन के लिए, मालस का हिसाब लगाते हैं. यह
स्कोर, प्रूनिंग पावर (कॉल करने वाला) या प्रूनिंग
रेज़िस्टेंस (मौजूदा ऑपरेशन) का उलटा होता है. कॉल करने वाले व्यक्ति के लिए, किसी कार्रवाई को कम करना ज़रूरी है. इसके लिए, उसे ऐसी कार्रवाई ढूंढनी होगी जिसमें उसका खुद का नुकसान ज़्यादा हो. डेटा को कम करने की रणनीति के बारे में ज़्यादा जानने के लिए, operation.rs को लागू करने का तरीका देखें.
Android 11 (एपीआई लेवल 30) और इससे पुराने वर्शन पर, KeyStore2, Keystore daemon से यह पोल करेगा कि ऑपरेशन के लिए कोई स्लॉट खाली है या नहीं. 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
डिफ़ॉल्ट स्थिति: सभी ऐप्लिकेशन के लिए बंद है.
इस प्रोसेस में, एसिंक्रोनस (एक साथ काम नहीं करने वाली प्रोसेस) मेमोरी टैग की जांच करने की सुविधा चालू करें. इस फ़्लैग का असर सिर्फ़ उन हार्डवेयर पर पड़ता है जो ARM मेमोरी टैगिंग एक्सटेंशन (एमटीई) के साथ काम करते हैं.
|
NATIVE_MEMTAG_SYNC
चेंज आईडी: 177438394
डिफ़ॉल्ट स्थिति: सभी ऐप्लिकेशन के लिए बंद है.
इस प्रोसेस में, सिंक्रोनस (सिंक में काम करने वाली प्रोसेस) मेमोरी टैग की जांच करने की सुविधा चालू करता है. इस फ़्लैग का असर सिर्फ़ उन हार्डवेयर पर पड़ता है जो ARM मेमोरी टैगिंग एक्सटेंशन (एमटीई) के साथ काम करते हैं. अगर NATIVE_MEMTAG_ASYNC और यह विकल्प, दोनों चालू हैं, तो इस विकल्प को प्राथमिकता दी जाती है. साथ ही, एमटीई को सिंक मोड में चालू किया जाता है.
|
NEVER_SANDBOX_DISPLAY_APIS
चेंज आईडी: 184838306
डिफ़ॉल्ट स्थिति: सभी ऐप्लिकेशन के लिए बंद है.
इस सेटिंग के चालू होने पर, डिसप्ले एपीआई सैंडबॉक्सिंग को लेटरबॉक्स या एससीएम गतिविधि पर लागू होने से रोका जाता है. डिसप्ले एपीआई, 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) या इसके बाद के वर्शन को टारगेट करते हैं.
इस कुकी का इस्तेमाल यह देखने के लिए किया जाता है कि मौजूदा प्रोसेस के लिए टारगेट एसडीके वर्शन, 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.setPasswordQuality(ComponentName, int) का इस्तेमाल नहीं किया जा सकता.
इसके बजाय, उन्हें 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) और इसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, TelephonyCallback.ActiveDataSubscriptionIdListener को कॉल करने के लिए ऐप्लिकेशन के पास Manifest.permission.READ_PHONE_STATE अनुमति होनी चाहिए.
|
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) और इसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, TelephonyCallback.DisplayInfoListener को कॉल करने के लिए ऐप्लिकेशन के पास Manifest.permission.READ_PHONE_STATE अनुमति होनी चाहिए.
|
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) और इसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, यह ज़रूरी है कि attributionTags को noteOp(String, int, String),
noteProxyOp(String, String),
और startOp(String, int, String)
में भेजा जाए. साथ ही, यह भी ज़रूरी है कि इन्हें पैकेज के मेनिफ़ेस्ट में तय किया गया हो. इस पैकेज को, तरीकों के पैरामीटर के तौर पर तय किया जाता है.
इस बदलाव को चालू करने के लिए, 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 में अपग्रेड करने से पहले, कम समय वाला टाइम आउट इस्तेमाल किया जाए या नहीं.
|