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

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

ADD_CONTENT_OBSERVER_FLAGS

बदलाव का आईडी: 150939131

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

Android 11 को टारगेट करने वाले ऐप्लिकेशन के लिए, एक नया सार्वजनिक एपीआई ओवरलोड onChange(boolean, Uri, int) है. इसमें एक पूर्णांक flags आर्ग्युमेंट शामिल है.

यह नया तरीका, उन ऐप्लिकेशन के लिए सार्वजनिक एसडीके का विकल्प है जो गैर-एसडीके onChange() ओवरलोड किए गए तरीके का इस्तेमाल करते हैं. इसमें पूर्णांक userId आर्ग्युमेंट शामिल होता है.

ADMIN_APP_PASSWORD_COMPLEXITY

बदलाव का आईडी: 123562444

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

Android 11 को टारगेट करने वाले व्यवस्थापक एप्लिकेशन के लिए, गड़बड़ी का मैसेज तब दिखाएं, जब कोई ऐप्लिकेशन पासवर्ड की ऐसी ज़रूरी शर्त सेट करता है जो असाइन किए गए पासवर्ड की क्वालिटी के हिसाब से सही नहीं है. उदाहरण के लिए, जब पासवर्ड की क्वालिटी DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED पर सेट हो, तो कोई ऐप्लिकेशन, पासवर्ड की कम से कम लंबाई सेट नहीं कर पाएगा. इस मामले में, पासवर्ड की कम से कम लंबाई सेट करने से पहले, ऐप्लिकेशन को setPasswordQuality() तरीके को कॉल करना चाहिए. इसके बाद ही, setPasswordMinimumLength() तरीके को कॉल करना चाहिए.

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

APP_DATA_DIRECTORY_ISOLATION

बदलाव का आईडी: 143937733

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

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

ज़्यादा जानने के लिए, निजी डायरेक्ट्री का ऐक्सेस लेख पढ़ें.

APN_READING_PERMISSION_CHANGE_ID

Change ID: 124107808

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

Android 11 को टारगेट करने वाले ऐप्लिकेशन के लिए, एपीएन डेटाबेस को ऐक्सेस करने के लिए अब Manifest.permission.WRITE_APN_SETTINGS अनुमति की ज़रूरत होगी.

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

BACKGROUND_RATIONALE_CHANGE_ID

बदलाव का आईडी: 147316723

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

अब ऐप्लिकेशन को बैकग्राउंड में डिवाइस की जगह की जानकारी ऐक्सेस करने का अनुरोध करते समय, हर बार इसकी मान्य वजह बतानी होगी.

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

CALLBACK_ON_CLEAR_CHANGE

Change ID: 119147584

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

जब भी Editor.clear को कॉल किया जाता है, तो अब null कुंजी के साथ OnSharedPreferenceChangeListener.onSharedPreferenceChanged को कॉलबैक किया जाता है.

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

CALLBACK_ON_MORE_ERROR_CODE_CHANGE

Change ID: 130595455

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

गड़बड़ी के कोड अब updateAvailableNetworks(List, Executor, Consumer) और setPreferredOpportunisticDataSubscription(int, boolean, Executor, Consumer) के लिए बढ़ा दिए गए हैं.

CALL_BACK_ON_CHANGED_LISTENER_WITH_SWITCHED_OP_CHANGE

Change ID: 148180766

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

यह startWatchingMode(String, String, AppOpsManager.OnOpChangedListener) में किया गया एक छोटा सा बदलाव है. इस बदलाव से पहले, सिस्टम ने स्विच किए गए ऑपरेशन के लिए कॉलबैक किया था. बदलाव के बाद, सिस्टम असल में अनुरोध किए गए ऑपरेशन या स्विच किए गए सभी ऑपरेशन के लिए कॉलबैक करेगा. ऐसा तब होगा, जब कोई ऑपरेशन तय न किया गया हो.

CAMERA_MICROPHONE_CAPABILITY_CHANGE_ID

Change ID: 136219221

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

Android 11 को टारगेट करने वाले ऐप्लिकेशन के लिए, फ़ोरग्राउंड सेवाओं को कैमरे और माइक्रोफ़ोन का ऐक्सेस सिर्फ़ तब मिलता है, जब मेनिफ़ेस्ट फ़ाइल में R.attr.foregroundServiceType को ServiceInfo.FOREGROUND_SERVICE_TYPE_CAMERA और ServiceInfo.FOREGROUND_SERVICE_TYPE_MICROPHONE के तौर पर कॉन्फ़िगर किया गया हो. Android के पुराने वर्शन पर, फ़ोरग्राउंड सेवाओं को कैमरा और माइक्रोफ़ोन की सुविधाएं अपने-आप मिल जाती थीं.

इस बदलाव के बारे में ज़्यादा जानने के लिए, Android 11 में फ़ोरग्राउंड सेवाओं के टाइप देखें.

CHANGE_BACKGROUND_CUSTOM_TOAST_BLOCK

Change ID: 128611929

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

ऐप्लिकेशन अब बैकग्राउंड में कस्टम टोस्ट पोस्ट नहीं कर सकते. हालांकि, ऐप्लिकेशन बैकग्राउंड में होने पर भी Toast.makeText(Context, CharSequence, int) तरीके और इसके वैरिएंट का इस्तेमाल करके, टोस्ट पोस्ट कर सकते हैं.

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

CHANGE_RESTRICT_SAW_INTENT

Change ID: 135920175

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

android.settings.MANAGE_APP_OVERLAY_PERMISSION कार्रवाई और package डेटा यूआरआई स्कीम का इस्तेमाल करने वाले इंटेंट, अब उपयोगकर्ता को किसी ऐप्लिकेशन की स्क्रीन पर नहीं ले जाते. इस स्क्रीन पर, ऐप्लिकेशन से जुड़ी अनुमति को मैनेज किया जाता है. इसके बजाय, उपयोगकर्ता को एक ऐसी स्क्रीन पर ले जाया जाता है जहां वह उन सभी ऐप्लिकेशन को मैनेज कर सकता है जिन्होंने अनुमति का अनुरोध किया है.

CHANGE_TEXT_TOASTS_IN_THE_SYSTEM

Change ID: 147798919

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

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

DEFAULT_SCOPED_STORAGE

बदलाव का आईडी: 149924527

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

Android 11 को टारगेट करने वाले सभी ऐप्लिकेशन, अब डिफ़ॉल्ट रूप से डिवाइस के स्कोप किए गए स्टोरेज का इस्तेमाल करते हैं. साथ ही, अब डिवाइस के स्कोप किए गए स्टोरेज से ऑप्ट आउट नहीं किया जा सकता.

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

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

EMPTY_INTENT_ACTION_CATEGORY

Change ID: 151163173

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

Android 11 को टारगेट करने वाले ऐप्लिकेशन के लिए, अगर इंटेंट फ़िल्टर का action या category खाली स्ट्रिंग है, तो सिस्टम अब गड़बड़ी दिखाता है. Android 11 से पहले के प्लैटफ़ॉर्म में मौजूद एक गड़बड़ी की वजह से, इस मामले में बिना कोई गड़बड़ी दिखाए आगे बढ़ने की अनुमति मिल जाती थी. ध्यान दें कि इसमें ऐसे मामले शामिल नहीं हैं जिनमें एट्रिब्यूट की वैल्यू शून्य है या मौजूद नहीं है. ऐसा इसलिए, क्योंकि इससे हमेशा गड़बड़ी होती है.

FILTER_APPLICATION_QUERY

Change ID: 135549675

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

ऐप्लिकेशन को अब उन पैकेज और इंटेंट के बारे में बताना होगा जिनका वे इस्तेमाल करना चाहते हैं. इसके बाद ही, उन्हें डिवाइस पर मौजूद अन्य ऐप्लिकेशन के बारे में जानकारी मिल सकती है. ऐप्लिकेशन के मेनिफ़ेस्ट में <queries> टैग का इस्तेमाल करके, इस तरह की जानकारी दी जानी चाहिए.

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

FORCE_ENABLE_SCOPED_STORAGE

चेंज आईडी: वैल्यू: 132649864

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

Android 11 को टारगेट करने वाले सभी ऐप्लिकेशन, अब डिफ़ॉल्ट रूप से डिवाइस के स्कोप किए गए स्टोरेज का इस्तेमाल करते हैं. साथ ही, अब डिवाइस के स्कोप किए गए स्टोरेज से ऑप्ट आउट नहीं किया जा सकता.

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

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

GET_DATA_CONNECTION_STATE_R_VERSION

Change ID: 148535736

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

PreciseDataConnectionState#getDataConnectionState के लिए, SDK टूल का वर्शन देखने के लिए.

GET_DATA_STATE_R_VERSION

चेंज आईडी: 148534348

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

getDataState() के लिए, SDK टूल का वर्शन देखने के लिए.

GET_PROVIDER_SECURITY_EXCEPTIONS

Change ID: 150935354

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

Android 11 (एपीआई लेवल 30) या इसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, getProvider(String) अब सुरक्षा से जुड़ी कोई गड़बड़ी नहीं दिखाता.

GET_TARGET_SDK_VERSION_CODE_CHANGE

Change ID: 145147528

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

SmsManager.sendResolverResult() तरीके के लिए, एसडीके का वर्शन देखने के लिए.

GWP_ASAN

चेंज आईडी: 135634846

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

इस सेटिंग से, ऐप्लिकेशन में सैंपल आधारित नेटिव मेमोरी से जुड़ी गड़बड़ी की पहचान करने की सुविधा चालू होती है.

इस बदलाव के बारे में ज़्यादा जानने के लिए, GWP-ASan गाइड देखें.

HIDE_MAXTARGETSDK_P_HIDDEN_APIS

बदलाव का आईडी: 149997251

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

Android 10 (एपीआई लेवल 29) या इसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, उन सभी गैर-एसडीके इंटरफ़ेस का ऐक्सेस हटा देता है जो Android 10 (एपीआई लेवल 29) के लिए, max-target-p (greylist-max-p) सूची का हिस्सा हैं.

HIDE_MAXTARGETSDK_Q_HIDDEN_APIS

Change ID: 149994052

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

Android 11 (एपीआई लेवल 30) या इसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, उन सभी गैर-एसडीके इंटरफ़ेस का ऐक्सेस हटा देता है जो Android 11 (एपीआई लेवल 30) के लिए, max-target-q (greylist-max-q) सूची का हिस्सा हैं.

इस बदलाव के बारे में ज़्यादा जानने के लिए, ऐसे गैर-एसडीके इंटरफ़ेस जिन्हें अब Android 11 में ब्लॉक कर दिया गया है लेख पढ़ें.

LISTEN_CODE_CHANGE

Change ID: 147600208

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

TelephonyManager.listen(PhoneStateListener, int) के लिए, SDK टूल का वर्शन देखने के लिए.

MISSING_APP_TAG

Change ID: 150776642

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

Android 11 को टारगेट करने वाले ऐप्लिकेशन के लिए, अब गड़बड़ी का मैसेज तब दिखता है, जब ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल में application या instrumentation टैग मौजूद न हो.

NATIVE_HEAP_POINTER_TAGGING

Change ID: 135754954

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

Android 11 को टारगेट करने वाले ऐप्लिकेशन के लिए, नेटिव हीप ऐलोकेशन में अब सबसे अहम बाइट में नॉन-ज़ीरो टैग होता है.

ज़्यादा जानने के लिए, हीप पॉइंटर टैगिंग देखें.

PHONE_STATE_LISTENER_LIMIT_CHANGE_ID

Change ID: 150880553

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

Android 11 को टारगेट करने वाले ऐप्लिकेशन के लिए, अब PhoneStateListener ऑब्जेक्ट की संख्या सीमित कर दी गई है. कोई भी प्रोसेस, TelephonyManager.listen(PhoneStateListener, int) के ज़रिए रजिस्टर की जा सकती है. डिफ़ॉल्ट तौर पर, यह सीमा 50 है. हालांकि, रिमोट डिवाइस के कॉन्फ़िगरेशन में किए गए अपडेट की वजह से, इसमें बदलाव हो सकता है. यह सीमा, IllegalStateException का इस्तेमाल करके लागू की जाती है. इसे TelephonyManager.listen(PhoneStateListener, int) तब थ्रो करता है, जब कोई प्रोसेस बहुत ज़्यादा लिसनर रजिस्टर करने की कोशिश करती है.

PREVENT_META_REFLECTION_BLACKLIST_ACCESS

Change ID: 142365358

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

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

PROCESS_CAPABILITY_CHANGE_ID

Change ID: 136274596

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

Android 11 को टारगेट करने वाले ऐप्लिकेशन के लिए, अब Context.BIND_INCLUDE_CAPABILITIES फ़्लैग का इस्तेमाल करके, क्लाइंट प्रोसेस से सीमित सेवा को ऐप्लिकेशन इस्तेमाल करते समय मिलने वाली सुविधाएं पास की जा सकती हैं.

REMOVE_ANDROID_TEST_BASE

Change ID: 133396946

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

Android 11 को टारगेट करने वाले ऐप्लिकेशन के लिए, android.test.base लाइब्रेरी को हटा दिया गया है. ऐसा तब किया गया है, जब ऐप्लिकेशन android.test.runner पर निर्भर न हो. ऐसा इसलिए, क्योंकि यह android.test.base लाइब्रेरी की क्लास पर निर्भर करता है.

REQUEST_ACCESSIBILITY_BUTTON_CHANGE

बदलाव का आईडी: 136293963

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

Android 11 को टारगेट करने वाली सुलभता सेवाओं के लिए, अब सुलभता सेवा की मेटाडेटा फ़ाइल में FLAG_REQUEST_ACCESSIBILITY_BUTTON फ़्लैग की जानकारी देना ज़रूरी है. ऐसा न होने पर, फ़्लैग को अनदेखा कर दिया जाता है.

इस बदलाव के बारे में ज़्यादा जानने के लिए, मेटाडेटा फ़ाइल में सुलभता बटन के इस्तेमाल के बारे में एलान करना लेख पढ़ें.

RESOURCES_ARSC_COMPRESSED

Change ID: 132742131

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

Android 11 (एपीआई लेवल 30) को टारगेट करने वाले ऐप्लिकेशन इंस्टॉल नहीं किए जा सकते, अगर उनमें कंप्रेस की गई resources.arsc फ़ाइल मौजूद हो या यह फ़ाइल चार बाइट की सीमा पर अलाइन न हो.

इस बदलाव के बारे में ज़्यादा जानने के लिए, कंप्रेस की गई संसाधन फ़ाइलें देखें.

RESTRICT_STORAGE_ACCESS_FRAMEWORK

बदलाव का आईडी: 141600225

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

अगर आपका ऐप्लिकेशन Android 11 को टारगेट करता है और स्टोरेज ऐक्सेस फ़्रेमवर्क (एसएएफ़) का इस्तेमाल करता है, तो ACTION_OPEN_DOCUMENT और ACTION_OPEN_DOCUMENT_TREE इंटेंट ऐक्शन का इस्तेमाल करके, कुछ डायरेक्ट्री को ऐक्सेस नहीं किया जा सकता. इन बदलावों के बारे में ज़्यादा जानने के लिए, Android 11 में स्टोरेज से जुड़े निजता अपडेट के बारे में बताने वाले पेज पर जाएं. इसके बाद, दस्तावेज़ के ऐक्सेस पर पाबंदियां सेक्शन देखें.

SELINUX_LATEST_CHANGES

Change ID: 143539591

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

इस बदलाव की वजह से, ऐप्लिकेशन untrusted_app_R-targetSDk SELinux डोमेन को ऐक्सेस नहीं कर पाते. यह कंपैटबिलिटी फ़्रेमवर्क में किए गए बुनियादी बदलावों में से एक है. इसकी मदद से, ऐप्लिकेशन अपने targetSDKVersion में बदलाव किए बिना, targetSdkVersion से गेट किए गए अन्य बदलावों को टॉगल कर सकते हैं. इस वजह से, आपको Android 11 को टारगेट करने वाले ऐप्लिकेशन के लिए, इस बदलाव को बंद नहीं करना चाहिए. ऐसा करने पर, ऐप्लिकेशन काम नहीं करेगा.

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

THROW_SECURITY_EXCEPTIONS

चेंज आईडी: 147340954

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

Android 11 से पहले, अनुमति से जुड़ी गड़बड़ी के लिए, setEnabled एपीआई सिर्फ़ SecurityException को थ्रो करता था. Android 11 में ऐसा नहीं होता है. इसमें कई वजहों से SecurityException को थ्रो किया जा सकता है. हालांकि, कॉलर को इनमें से किसी भी वजह के बारे में नहीं बताया जाता.

एपीआई के मौजूदा तरीके को बनाए रखने के लिए, अगर Android 11 को टारगेट न करने वाले किसी ऐप्लिकेशन के लिए, लेगसी अनुमति से जुड़ी गड़बड़ी या ऐक्टर को लागू करने से जुड़ी गड़बड़ी होती है, तो अपवाद को IllegalStateException में बदल दिया जाता है. यह अपवाद, Android 11 से पहले सोर्स में मौजूद था.

USE_SET_LOCATION_ENABLED

बदलाव का आईडी: 117835097

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

Android 11 को टारगेट करने वाले व्यवस्थापक ऐप्लिकेशन, अब DevicePolicyManager.setSecureSetting(ComponentName, String, String) का इस्तेमाल करके, बंद की जा चुकी Settings.Secure.LOCATION_MODE सेटिंग में बदलाव नहीं कर सकते. इसके बजाय, उन्हें DevicePolicyManager.setLocationEnabled(ComponentName, boolean) का इस्तेमाल करना चाहिए.