इस पेज पर, 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 को टारगेट करने वाले ऐप्लिकेशन, अब किसी भी ऐप्लिकेशन की निजी डेटा डायरेक्ट्री में मौजूद फ़ाइलों को ऐक्सेस नहीं कर सकते. भले ही, दूसरे ऐप्लिकेशन का टारगेट एसडीके वर्शन कोई भी हो.
ज़्यादा जानने के लिए, निजी डायरेक्ट्री का ऐक्सेस देखें.
APN_READING_PERMISSION_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
चेंज आईडी: 119147584
डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू है जो Android 11 (एपीआई लेवल 30) या इसके बाद के वर्शन को टारगेट करते हैं.
अब
Editor.clear
को कॉल करने पर, null कुंजी के साथ
OnSharedPreferenceChangeListener.onSharedPreferenceChanged
को कॉलबैक किया जाता है.
इस बदलाव के बारे में ज़्यादा जानने के लिए, OnSharedPreferenceChangeListener के लिए कॉलबैक में हुए बदलाव लेख देखें.
CALLBACK_ON_MORE_ERROR_CODE_CHANGE
चेंज आईडी: 130595455
डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू है जो Android 11 (एपीआई लेवल 30) या इसके बाद के वर्शन को टारगेट करते हैं.
updateAvailableNetworks(List,
Executor,
Consumer) और setPreferredOpportunisticDataSubscription(int, boolean, Executor,
Consumer) के लिए, गड़बड़ी कोड अब बढ़ा दिए गए हैं.
CALL_BACK_ON_CHANGED_LISTENER_WITH_SWITCHED_OP_CHANGE
चेंज आईडी: 148180766
डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू है जो Android 11 (एपीआई लेवल 30) या इसके बाद के वर्शन को टारगेट करते हैं.
startWatchingMode(String, String,
AppOpsManager.OnOpChangedListener) में, यह एक मामूली बदलाव है.
इस बदलाव से पहले, सिस्टम स्विच किए गए ऑप के लिए कॉलबैक करता था. बदलाव के बाद, सिस्टम असल में अनुरोध किए गए ऑप या सभी स्विच किए गए ऑप के लिए कॉलबैक करेगा. ऐसा तब होगा, जब कोई ऑप तय नहीं किया गया होगा.
CAMERA_MICROPHONE_CAPABILITY_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
चेंज आईडी: 128611929
डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू है जो Android 11 (एपीआई लेवल 30) या इसके बाद के वर्शन को टारगेट करते हैं.
ऐप्लिकेशन अब बैकग्राउंड में, पसंद के मुताबिक टोस्ट पोस्ट नहीं कर सकते. हालांकि, ऐप्लिकेशन अब भी बैकग्राउंड में,
टोस्ट पोस्ट करने के लिए Toast.makeText(Context, CharSequence,
int)
तरीके और इसके वैरिएंट का इस्तेमाल कर सकते हैं.
इस बदलाव के बारे में ज़्यादा जानने के लिए, पसंद के मुताबिक टोस्ट व्यू ब्लॉक किए गए लेख देखें.
CHANGE_RESTRICT_SAW_INTENT
चेंज आईडी: 135920175
डिफ़ॉल्ट स्थिति: इस बदलाव को टॉगल नहीं किया जा सकता. इसे सिर्फ़ कंपैटबिलिटी फ़्रेमवर्क लॉग करता है.
android.settings.MANAGE_APP_OVERLAY_PERMISSION ऐक्शन और package डेटा यूआरआई स्कीम का इस्तेमाल करने वाले इंटेंट, अब उपयोगकर्ता को अनुमति मैनेज करने के लिए, ऐप्लिकेशन के हिसाब से बनी स्क्रीन पर रीडायरेक्ट नहीं करते. इसके बजाय, उपयोगकर्ता को ऐसी स्क्रीन पर रीडायरेक्ट किया जाता है जहां वे उन सभी ऐप्लिकेशन को मैनेज कर सकते हैं जिन्होंने अनुमति का अनुरोध किया है.
CHANGE_TEXT_TOASTS_IN_THE_SYSTEM
चेंज आईडी: 147798919
डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू है जो Android 11 (एपीआई लेवल 30) या इसके बाद के वर्शन को टारगेट करते हैं.
टेक्स्ट टोस्ट अब ऐप्लिकेशन में नहीं, बल्कि SystemUI से रेंडर किए जाते हैं. इससे, ऐप्लिकेशन को बैकग्राउंड में पसंद के मुताबिक टोस्ट पोस्ट करने पर लगी पाबंदियों को बाईपास करने से रोका जा सकता है.
DEFAULT_SCOPED_STORAGE
चेंज आईडी: 149924527
डिफ़ॉल्ट स्थिति: यह सुविधा सभी ऐप्लिकेशन के लिए चालू है.
Android 11 को टारगेट करने वाले सभी ऐप्लिकेशन, अब डिफ़ॉल्ट रूप से स्कोप किए गए स्टोरेज का इस्तेमाल करते हैं. साथ ही, अब स्कोप किए गए स्टोरेज से ऑप्ट आउट नहीं किया जा सकता.
हालांकि, इस बदलाव को बंद करके, अपने ऐप्लिकेशन को स्कोप किए गए स्टोरेज के बिना टेस्ट किया जा सकता है. भले ही, आपके ऐप्लिकेशन का टारगेट एसडीके वर्शन और मेनिफ़ेस्ट फ़्लैग की वैल्यू कोई भी हो.
Android 11 में स्कोप किए गए स्टोरेज में हुए बदलावों के बारे में ज़्यादा जानने के लिए, Android 11 में Android स्टोरेज में हुए बदलावों के बारे में जानकारी देने वाले पेज पर, स्कोप किया गया स्टोरेज सेक्शन देखें.
EMPTY_INTENT_ACTION_CATEGORY
चेंज आईडी: 151163173
डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू है जो Android 11 (एपीआई लेवल 30) या इसके बाद के वर्शन को टारगेट करते हैं.
Android 11 को टारगेट करने वाले ऐप्लिकेशन के लिए, अगर
इंटेंट फ़िल्टर का action या
category खाली स्ट्रिंग है, तो सिस्टम अब गड़बड़ी का मैसेज दिखाता है. Android 11 से पहले, प्लैटफ़ॉर्म में मौजूद एक बग की वजह से, इस मामले में गड़बड़ी का मैसेज नहीं दिखता था. ध्यान दें कि इसमें ऐसे मामले शामिल नहीं हैं जिनमें एट्रिब्यूट की वैल्यू 'कुछ नहीं मिला' हो या वह मौजूद न हो. ऐसा इसलिए, क्योंकि ऐसे मामलों में हमेशा गड़बड़ी का मैसेज दिखता है.
FILTER_APPLICATION_QUERY
चेंज आईडी: 135549675
डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू है जो Android 11 (एपीआई लेवल 30) या इसके बाद के वर्शन को टारगेट करते हैं.
ऐप्लिकेशन को अब उन पैकेज और इंटेंट का एलान करना होगा जिनका वे इस्तेमाल करना चाहते हैं. इसके बाद ही, वे किसी डिवाइस पर मौजूद अन्य ऐप्लिकेशन के बारे में जानकारी पा सकते हैं. ऐसे एलान, ऐप्लिकेशन के मेनिफ़ेस्ट में <queries> टैग का इस्तेमाल करके किए जाने चाहिए.
FORCE_ENABLE_SCOPED_STORAGE
चेंज आईडी: वैल्यू: 132649864
डिफ़ॉल्ट स्थिति: यह सुविधा सभी ऐप्लिकेशन के लिए बंद है.
Android 11 को टारगेट करने वाले सभी ऐप्लिकेशन, अब डिफ़ॉल्ट रूप से स्कोप किए गए स्टोरेज का इस्तेमाल करते हैं. साथ ही, अब स्कोप किए गए स्टोरेज से ऑप्ट आउट नहीं किया जा सकता.
हालांकि, अगर आपका ऐप्लिकेशन अब भी Android 10 (एपीआई लेवल 29) या इससे पहले के वर्शन को टारगेट करता है, तो इस बदलाव को चालू करके, अपने ऐप्लिकेशन को स्कोप किए गए स्टोरेज के साथ टेस्ट किया जा सकता है. भले ही, आपके ऐप्लिकेशन का टारगेट एसडीके वर्शन और मेनिफ़ेस्ट फ़्लैग की वैल्यू कोई भी हो.
Android 11 में स्कोप किए गए स्टोरेज में हुए बदलावों के बारे में ज़्यादा जानने के लिए, Android 11 में Android स्टोरेज में हुए बदलावों के बारे में जानकारी देने वाले पेज पर, स्कोप किया गया स्टोरेज सेक्शन देखें.
GET_DATA_CONNECTION_STATE_R_VERSION
चेंज आईडी: 148535736
डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू है जो Android 11 (एपीआई लेवल 30) या इसके बाद के वर्शन को टारगेट करते हैं.
PreciseDataConnectionState#getDataConnectionState के लिए, एसडीके वर्शन की जांच करना.
GET_DATA_STATE_R_VERSION
चेंज आईडी: 148534348
डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू है जो Android 11 (एपीआई लेवल 30) या इसके बाद के वर्शन को टारगेट करते हैं.
getDataState() के लिए, एसडीके वर्शन की जांच करना.
GET_PROVIDER_SECURITY_EXCEPTIONS
चेंज आईडी: 150935354
डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू है जो Android 11 (एपीआई लेवल 30) या इसके बाद के वर्शन को टारगेट करते हैं.
Android 11 (एपीआई लेवल 30) या इसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए,
getProvider(String)
अब सुरक्षा से जुड़ी कोई गड़बड़ी नहीं दिखाता.
GET_TARGET_SDK_VERSION_CODE_CHANGE
चेंज आईडी: 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
चेंज आईडी: 149994052
डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू है जो Android 11 (एपीआई लेवल 30) या इसके बाद के वर्शन को टारगेट करते हैं.
Android 11 (एपीआई लेवल 30) या इसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, Android 11 (एपीआई लेवल 30) के लिए max-target-q (greylist-max-q)
सूची
में शामिल, एसडीके के बाहर के सभी
इंटरफ़ेस का ऐक्सेस हटा दिया जाता है.
इस बदलाव के बारे में ज़्यादा जानने के लिए, एसडीके के बाहर के ऐसे इंटरफ़ेस जिन्हें अब Android 11 में ब्लॉक कर दिया गया है लेख देखें.
LISTEN_CODE_CHANGE
चेंज आईडी: 147600208
डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू है जो Android 10 (एपीआई लेवल 29) या इसके बाद के वर्शन को टारगेट करते हैं.
TelephonyManager.listen(PhoneStateListener,
int) के लिए, एसडीके वर्शन की जांच करना.
MISSING_APP_TAG
चेंज आईडी: 150776642
डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू है जो Android 11 (एपीआई लेवल 30) या इसके बाद के वर्शन को टारगेट करते हैं.
Android 11 को टारगेट करने वाले ऐप्लिकेशन के लिए, अगर ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल में application या instrumentation टैग मौजूद नहीं है, तो अब गड़बड़ी का मैसेज दिखता है.
NATIVE_HEAP_POINTER_TAGGING
चेंज आईडी: 135754954
डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू है जो Android 11 (एपीआई लेवल 30) या इसके बाद के वर्शन को टारगेट करते हैं.
Android 11 को टारगेट करने वाले ऐप्लिकेशन के लिए, नेटिव हीप एलोकेशन में अब सबसे अहम बाइट में, शून्य के अलावा कोई टैग होता है.
ज़्यादा जानने के लिए, हीप पॉइंटर टैगिंग लेख देखें.
PHONE_STATE_LISTENER_LIMIT_CHANGE_ID
चेंज आईडी: 150880553
डिफ़ॉल्ट स्थिति: यह सुविधा सभी ऐप्लिकेशन के लिए चालू है.
Android 11 को टारगेट करने वाले ऐप्लिकेशन के लिए, अब ऑब्जेक्ट की संख्या पर एक सीमा है. कोई भी प्रोसेस, TelephonyManager.listen(PhoneStateListener, int) के ज़रिए, इतने ही PhoneStateListenerऑब्जेक्ट रजिस्टर कर सकती है.
डिफ़ॉल्ट सीमा 50 है. इसे डिवाइस के रिमोट कॉन्फ़िगरेशन अपडेट से बदला जा सकता है.
इस सीमा को लागू करने के लिए,
IllegalStateException
गड़बड़ी का मैसेज दिखता है. ऐसा तब होता है, जब TelephonyManager.listen(PhoneStateListener, int) गड़बड़ी करने वाली प्रोसेस, तय सीमा से ज़्यादा लिसनर रजिस्टर करने की कोशिश करती है.
PREVENT_META_REFLECTION_BLACKLIST_ACCESS
चेंज आईडी: 142365358
डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू है जो Android 11 (एपीआई लेवल 30) या इसके बाद के वर्शन को टारगेट करते हैं.
Android 11 को टारगेट करने वाले ऐप्लिकेशन, अब एसडीके के बाहर के उन इंटरफ़ेस को ऐक्सेस करने के लिए, रिफ़्लेक्शन की एक और लेयर का इस्तेमाल नहीं कर सकते जिन पर पाबंदी लगी है.
PROCESS_CAPABILITY_CHANGE_ID
चेंज आईडी: 136274596
डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू है जो Android 11 (एपीआई लेवल 30) या इसके बाद के वर्शन को टारगेट करते हैं.
Android 11 को टारगेट करने वाले ऐप्लिकेशन के लिए, अब फ़्लैग
Context.BIND_INCLUDE_CAPABILITIES
का इस्तेमाल करके, क्लाइंट प्रोसेस से 'इस्तेमाल के दौरान' वाली सुविधाएं
बाउंड सेवा में पास की जा सकती हैं.
REMOVE_ANDROID_TEST_BASE
चेंज आईडी: 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
चेंज आईडी: 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
चेंज आईडी: 143539591
डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू है जो Android 11 (एपीआई लेवल 30) या इसके बाद के वर्शन को टारगेट करते हैं.
इस बदलाव से, ऐप्लिकेशन को untrusted_app_R-targetSDk SELinux डोमेन का ऐक्सेस नहीं मिलता.
यह कंपैटबिलिटी फ़्रेमवर्क में किए गए बुनियादी बदलावों में से एक है. इसकी मदद से, ऐप्लिकेशन अपने targetSDKVersion को बदले बिना, targetSdkVersion से जुड़े अन्य बदलावों को टॉगल कर सकते हैं. इसलिए, Android 11 को टारगेट करने वाले किसी ऐप्लिकेशन के लिए, इस बदलाव को बंद नहीं करना चाहिए. ऐसा करने पर, ऐप्लिकेशन काम नहीं करेगा.
इस बदलाव का असर, शेयर किए गए उपयोगकर्ता आईडी का इस्तेमाल करने वाले ऐप्लिकेशन पर नहीं पड़ता.
THROW_SECURITY_EXCEPTIONS
चेंज आईडी: 147340954
डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू है जो Android 11 (एपीआई लेवल 30) या इसके बाद के वर्शन को टारगेट करते हैं.
Android 11 से पहले, अनुमति से जुड़ी गड़बड़ी के लिए, SecurityException
एपीआई से ही setEnabled गड़बड़ी का मैसेज दिखता था. Android 11 में ऐसा नहीं है. अब SecurityException गड़बड़ी का मैसेज, कई वजहों से दिख सकता है. इनमें से कोई भी वजह, कॉलर को नहीं दिखती.
मौजूदा एपीआई के तरीके को बनाए रखने के लिए, अगर Android 11 को टारगेट न करने वाले किसी ऐप्लिकेशन के लिए, अनुमति से जुड़ी कोई पुरानी गड़बड़ी या ऐक्टर
एनफ़ोर्समेंट से जुड़ी गड़बड़ी होती है, तो गड़बड़ी को
IllegalStateException में बदल दिया जाता है. यह गड़बड़ी, Android 11 से पहले भी मौजूद थी.
USE_SET_LOCATION_ENABLED
चेंज आईडी: 117835097
डिफ़ॉल्ट स्थिति: यह सुविधा उन ऐप्लिकेशन के लिए चालू है जो Android 11 (एपीआई लेवल 30) या इसके बाद के वर्शन को टारगेट करते हैं.
Android 11 को टारगेट करने वाले एडमिन ऐप्लिकेशन, अब बंद हो चुकी Settings.Secure.LOCATION_MODE
सेटिंग को बदलने के लिए,
DevicePolicyManager.setSecureSetting(ComponentName, String, String)
का इस्तेमाल नहीं कर सकते. इसके बजाय, उन्हें DevicePolicyManager.setLocationEnabled(ComponentName, boolean) का इस्तेमाल करना चाहिए.