
हाल के प्रमुख Android संस्करणों के महत्वपूर्ण सुरक्षा संवर्द्धन
हाल के प्रमुख एंड्रॉइड संस्करणों के महत्वपूर्ण सुरक्षा संवर्द्धन, जो Android 5.0 Lollipop (API 21) से शुरू होते हैं।
WebView एक अलग पैकेज है, देखें Android 5.0 में सुरक्षा संवर्द्धन और Android 5.0 Lollipop पर अपडेट होने योग्य WebView: यह क्या है और आपको इसकी परवाह क्यों करनी चाहिए?Android 6 में सुरक्षा संवर्द्धन
isInsideSecureHardware) कि क्या कोई KeyStore कुंजी सुरक्षित हार्डवेयर में संग्रहीत है (जैसे, Trusted Execution Environment (TEE) या Secure Element (SE)), देखें KeyInfo की isInsideSecureHardware विधिWebView में JavaScript मूल्यांकन एक अलग प्रक्रिया में चलता है, ताकि JavaScript कोड ऐप की मेमोरी तक आसानी से न पहुँच सके, देखें WebView सुरक्षा में नया क्या है और सभी ऐप्स के लिए Android 8.0 व्यवहार परिवर्तनों का सुरक्षा अनुभागWebView Network Security Config और cleartextTrafficPermitted फ़्लैग का सम्मान करता है (पुराने एंड्रॉइड संस्करणों में यह HTTP साइटों को लोड करता है, भले ही कॉन्फ़िगरेशन द्वारा क्लियर टेक्स्ट ट्रैफ़िक की अनुमति न दी गई हो), देखें Android 8.0 को लक्षित करने वाले ऐप्स के लिए Android 8.0 व्यवहार परिवर्तनों का सुरक्षा अनुभागWebView में Safe Browsing API जोड़ा गया ताकि उपयोगकर्ताओं को संभावित असुरक्षित वेबसाइट पर नेविगेट करने का प्रयास करते समय चेतावनी दी जा सके (Google Safe Browsing द्वारा सत्यापित) यदि सक्षम हो, देखें Android 8.0 सुविधाओं और APIs का WebView APIs अनुभागFLAG_SECURE Window फ़्लैग को अधिक समर्थित किया गया है और यह उस स्क्रीन के स्क्रीनशॉट लेने की अनुमति नहीं देता जहाँ यह सेट होता हैAndroid 9 रिलीज़ नोट - सुरक्षा सुविधाएँ
cleartextTrafficPermitted को true सेट करना होगा (अनुशंसित नहीं), देखें व्यवहार परिवर्तन: API स्तर 28+ को लक्षित करने वाले ऐप्स का नेटवर्क TLS डिफ़ॉल्ट रूप से सक्षम अनुभाग और Android: Android 9 पर Cleartext HTTP ट्रैफ़िक की अनुमति नहींसुरक्षा संवर्द्धन - Android 10
Android 10 रिलीज़ नोट - सुरक्षा सुविधाएँ
WebView में फ़ाइल एक्सेस डिफ़ॉल्ट रूप से अक्षम है, देखें WebSettings की setAllowFileAccess विधिAndroid 11 रिलीज़ नोट - सुरक्षित
taskAffinity लक्ष्य के समान सेट करता है, ताकि वे इसे लॉन्च करें, भले ही वे लक्षित ऐप को लॉन्च करना चाहते हों और उसके वैध ऐप आइकन का उपयोग किया हो) अब संभव नहीं है, देखें StrandHogg Attack / Task Affinity Vulnerability और Strandhogg VulnerabilityrequestLegacyExternalStorage के माध्यम से इसे ऑप्ट-आउट कर सकते हैं, देखें Android 11 में स्टोरेज अपडेट और Android स्टोरेज उपयोग के मामले और सर्वोत्तम अभ्यास का अपने प्रोडक्शन ऐप में ऑप्ट आउट अनुभागandroid:exported फ़्लैग को उन घटकों (Activities, Content Providers, आदि) के लिए Manifests में स्पष्ट रूप से परिभाषित करना आवश्यक है जो Intent Filters घोषित करते हैं, देखें Behavior changes: Apps targeting Android 12 का Safer component exporting अनुभागrequestLegacyExternalStorage के माध्यम से इससे बाहर निकलना अब संभव नहीं है, देखें Android storage use cases and best practices का Opt out in your production app अनुभागसुरक्षा संवर्द्धन - Android 13
Android 13 रिलीज़ नोट्स - सुरक्षा
POST_NOTIFICATIONS रनटाइम अनुमति जोड़ी गई, देखें Notification runtime permission और android.permission.POST_NOTIFICATIONSसुरक्षा संवर्द्धन - Android 14
Android 14 सुरक्षा रिलीज़ नोट्स
targetSdk आवश्यकता पेश की गई: Android 6 (API 23) से पुराने Android संस्करणों को लक्षित करने वाले ऐप्स अब इंस्टॉल नहीं किए जा सकते। इसका मतलब है कि आप मान सकते हैं कि Android 6 (API 23) के साथ पेश किए गए security restrictions (इस मामले में विशेष रूप से Runtime Permission handling) अब डिवाइस पर इंस्टॉल सभी ऐप्स पर लागू होते हैं (यह न्यूनतम भविष्य के प्रत्येक Android संस्करण के साथ बढ़ने की उम्मीद है), देखें Behavior changes: all apps का Minimum installable target API level अनुभागQUERY_ALL_PACKAGES अनुमति प्रदान न की गई हो - जिसे प्राप्त करने के लिए विशेष मैन्युअल Google Play समीक्षा की आवश्यकता होती है), देखें Behavior changes: all apps का Media owner package names might be redacted अनुभागAndroid 15 सुरक्षा रिलीज़ नोट्स
PendingIntent निर्माता अब डिफ़ॉल्ट रूप से background Activity launches को अवरुद्ध करते हैं, देखें Behavior changes: Apps targeting Android 15 or higher का Other changes अनुभागPendingIntent निर्माता पृष्ठभूमि गतिविधि लॉन्च विशेषाधिकारों की अनुमति न दे या भेजने वाले के पास पृष्ठभूमि गतिविधि लॉन्च विशेषाधिकार न हों, यदि आपका ऐप Android 15 (API 35) को लक्षित करता है, देखें Behavior changes: Apps targeting Android 15 or higher का Other changes अनुभागAndroid 16 सुरक्षा रिलीज़ नोट्स* सामान्य इंटेंट रीडायरेक्शन हमलों के खिलाफ डिफ़ॉल्ट सुरक्षा जोड़ी गई, जो अन्य ऐप्स से प्राप्त इंटेंट्स को लॉन्च करने को अवरुद्ध करती है, उदा. वर्तमान ऐप को लॉन्च करने वाले इंटेंट में एक अतिरिक्त (extra) के रूप में लपेटा गया, व्यवहार परिवर्तन: सभी ऐप्स का इंटेंट रीडायरेक्शन हमलों के खिलाफ बेहतर सुरक्षा अनुभाग देखें
RESULT_DISCOVERY_TIMEOUT का उपयोग करके डिस्कवरी टाइमआउट की सीधे सूचना नहीं दी जाती है। इसके बजाय, उपयोगकर्ता को एक विज़ुअल डायलॉग के साथ टाइमआउट घटनाओं की सूचना दी जाती है। जब उपयोगकर्ता डायलॉग को खारिज करता है, तो ऐप को RESULT_USER_REJECTED के साथ एसोसिएशन विफलता की चेतावनी दी जाती है, व्यवहार परिवर्तन: सभी ऐप्स का कंपेनियन ऐप्स को अब डिस्कवरी टाइमआउट की सूचना नहीं दी जाती अनुभाग देखेंMediaStore#getVersion() अब प्रत्येक ऐप के लिए अद्वितीय होगा। यह फ़िंगरप्रिंटिंग तकनीकों के दुरुपयोग और उपयोग को रोकने के लिए वर्ज़न स्ट्रिंग से पहचान करने वाले गुणों को समाप्त करता है, व्यवहार परिवर्तन: Android 16 या उच्चतर को लक्षित करने वाले ऐप्स का MediaStore वर्ज़न लॉकडाउन अनुभाग और MediaStore की getVersion विधि देखेंAndroid 17 सुरक्षा रिलीज़ नोट्स
READ_CONTATCS अनुमति की आवश्यकता के, सुविधाएँ और API का Android संपर्क पिकर अनुभाग देखेंKeyStoreException के साथ विफल हो जाता है, व्यवहार परिवर्तन: सभी ऐप्स का प्रति-ऐप कीस्टोर सीमाएँ अनुभाग देखेंsetView के माध्यम से सेट किए गए) अब बैकग्राउंड से लॉन्च नहीं किए जा सकते। यह कुछ Tapjacking हमलों को कम करने के लिए है जो पीड़ित ऐप के UI को अस्पष्ट करने पर निर्भर थे। ध्यान दें, setView विधि पूरी तरह से Android 11 (API 30) में deprecated है। देखें Toast की setView विधि का दस्तावेज़ीकरणBiometricPrompt का उपयोग करने वाले ऐप्स को स्थानीयकृत स्ट्रिंग्स प्रदान करती है।FLAG_SECURE फ़्लैग जोड़ा गया है, जिसमें डिवाइस को अनलॉक करना और ऐप्स में BiometricPrompt दोनों शामिल हैं - इसका मतलब है कि आप इन स्क्रीनों का स्क्रीनशॉट नहीं ले सकते और स्क्रीन शेयर में ये काले रंग में भी दिखाई देती हैं, देखें Android Code Search पर com.android.systemui.biometrics.AuthContainerView का स्रोतapksigner का उपयोग करने वाले सभी नए key rotations Android 13 और उच्चतर के लिए rotation को लक्षित करने हेतु डिफ़ॉल्ट रूप से v3.1 signature scheme का उपयोग करेंगे।Exception फेंकेगा, देखें Behavior changes: Apps targeting Android 14 or higher का Safer dynamic code loading अनुभागnull पर सेट) अब किसी भी intent-filter से मेल नहीं खाएंगे। इसका मतलब है कि गतिविधियों या सेवाओं को शुरू करने के लिए उपयोग किए जाने वाले intents में स्पष्ट रूप से परिभाषित action होना चाहिए, देखें Behavior changes: Apps targeting Android 15 or higher का Safer Intents अनुभागPendingIntent के निर्माता को sender of the enclosing intent माना जाता है, न कि sender of the pending intent, देखें Behavior changes: Apps targeting Android 15 or higher का Safer Intents अनुभागBiometricPrompt के व्यवहार में भी बदलाव लाता है: यह बायोमेट्रिक्स के साथ विफल होने के बाद उपयोगकर्ता प्रमाणीकरण को पूरा करने के लिए डिवाइस क्रेडेंशियल पर "fall back" नहीं कर सकता। ध्यान दें कि उपयोगकर्ता अभी भी प्रॉम्प्ट पर बटन के माध्यम से अपनी पसंद से डिवाइस क्रेडेंशियल का उपयोग कर सकता है यदि उस प्रमाणितकर्ता की अनुमति है (और यदि उन्होंने पहले से बहुत बार प्रॉम्प्ट विफल नहीं किया है)। जब डिवाइस लॉक हो जाता है, तो प्रॉम्प्ट रद्द कर दिया जाएगा और प्रमाणीकरण में सफल होने के लिए डिवाइस अनलॉक होने के बाद एक नया प्रॉम्प्ट ट्रिगर करने की आवश्यकता होगी। देखें Android 15 makes sure thieves can't clean out your bank account if they steal your unlocked phoneKeyDescription संरचना में एक नया moduleHash फ़ील्ड शामिल है, जिसका उपयोग लोड किए गए APEX मॉड्यूल की अखंडता को सत्यापित करने के लिए किया जा सकता है, Android 16 रिलीज़ नोट्स का डिवाइस इंटीग्रिटी अनुभाग और कुंजी और आईडी प्रमाणन देखें