अपरिवर्तनीय डिवाइस आईडी

एंड्रॉइड 6 और उच्चतर में, वाई-फाई सेवा प्रदाताओं और पैकेट विश्लेषकों को नेटवर्क अनुरोधों से वाई-फाई स्टैक के माध्यम से डिवाइस के फ़ैक्टरी मैक पते को पुनर्प्राप्त करने से प्रतिबंधित कर दिया गया है। एंड्रॉइड 10 से शुरू होकर, अतिरिक्त प्रतिबंध हैं जो डिवाइस पहचानकर्ताओं (आईडी) तक पहुंच को विशेषाधिकार प्राप्त अनुमति स्तर वाले ऐप्स तक सीमित कर देते हैं। यह डिवाइस आईडी की सुरक्षा करता है जैसे कि

  • टेलीफोनी IMEI, MEID, ESN, और IMSI नंबर।
  • बिल्ड, सिम या यूएसबी सीरियल नंबर।

डिवाइस आईडी कौन एक्सेस कर सकता है

डिवाइस आईडी सभी Android 10 डिवाइस पर प्रतिबंधित हैं, भले ही ऐप्स Android 9 या उससे पहले के संस्करण को लक्षित करते हों। डिवाइस आईडी तक पहुंचा जा सकता है

  • डिफ़ॉल्ट एसएमएस ऐप।
  • Manifest.permission कक्षा में दोनों READ_PRIVILEGED_PHONE_STATE अनुमति वाले ऐप्स, और privapp-permission.xml फ़ाइल में अनुमति सूची। इन्हें priv-app निर्देशिका में भी लोड किया जाना चाहिए।
  • UICC कैरियर विशेषाधिकारों में परिभाषित वाहक विशेषाधिकार वाले ऐप्स।
  • डिवाइस के मालिक या प्रोफ़ाइल के मालिक को Manifest.permission वर्ग में दी गई READ_PHONE_STATE अनुमति। (अनुमति सूची की आवश्यकता नहीं है।)

विशेषाधिकार प्राप्त पैकेज एक्सेस

डिवाइस आईडी तक पहुंचने के लिए एक पैकेज को विशेषाधिकार प्राप्त होना चाहिए। इसमें Manifest.permission वर्ग में READ_PRIVILEGED_PHONE_STATE अनुमति होनी चाहिए, और privapp-permission.xml फ़ाइल में सूचीबद्ध होना चाहिए। अनुमति सूची प्रक्रिया के बारे में जानकारी के लिए, विशेषाधिकार प्राप्त अनुमति अनुमति सूची देखें

एक गैर-विशेषाधिकार प्राप्त पैकेज के लिए एक अद्वितीय आईडी प्राप्त करने के बारे में जानकारी के लिए, सामान्य उपयोग के मामले और उपयोग करने के लिए उपयुक्त पहचानकर्ता देखें।

प्रतिबंधित डिवाइस आईडी और यादृच्छिक मैक पते

डिवाइस आईडी को और प्रतिबंधित करने के लिए, एंड्रॉइड 10 पर सभी डिवाइस जांच और संबंधित अनुरोधों दोनों के लिए डिफ़ॉल्ट रूप से यादृच्छिक मैक पते प्रेषित करते हैं, और प्रत्येक एसएसआईडी के लिए एक अलग यादृच्छिक मैक पता होना चाहिए। क्लाइंट मोड, सॉफ्ट एक्सेस पॉइंट (AP), या Wi-Fi डायरेक्ट यूज़ केस में डिवाइस फ़ैक्टरी MAC एड्रेस का उपयोग न करें। इसे सार्वजनिक रूप से सुलभ एपीआई से छिपा रहना चाहिए जो विशेषाधिकार प्राप्त ऐप्स नहीं हैं। विशेषाधिकार प्राप्त ऐप्स जिन्हें वापस करने के लिए फ़ैक्टरी MAC पते की आवश्यकता होती है, उनके पास LOCAL_MAC_ADDRESS अनुमति होना आवश्यक है।

उपयोगकर्ताओं के पास डिफ़ॉल्ट यादृच्छिक मैक पता रखने का विकल्प होता है जो प्रत्येक SSID को असाइन किया जाता है। विकल्प सेटिंग > नेटवर्क विवरण में गोपनीयता के अंतर्गत देखने योग्य है। रैंडमाइज्ड मैक एड्रेस प्राप्त करने के बारे में जानने के लिए रैंडमाइज्ड मैक एड्रेस देखें।

Screen shows if device ID uses a randomized MAC address for privacy
चित्रा 1. मैक पता नेटवर्क विवरण में गोपनीयता के तहत यादृच्छिक के रूप में दिखाता है

डिवाइस आईडी API को लागू करने वाले ऐप्स

डिवाइस आईडी API को लागू करने वाले ऐप्स को Android 10 आवश्यकताओं को पूरा करना चाहिए। अन्यथा, जब वे डिवाइस आईडी तक पहुंचने का प्रयास करते हैं तो निम्नलिखित लौटाया जाता है:

  • Android 10 को लक्षित करने वाले ऐप्स
    • डिवाइस आईडी एपीआई से एक SecurityException अपवाद फेंक दिया गया है।
  • Android 9 या पुराने संस्करण को लक्षित करने वाले ऐप्स
    • अगर उनके पास READ_PHONE_STATE अनुमति है, तो या तो एक null प्रतिक्रिया या प्लेसहोल्डर डेटा वापस कर दिया जाता है।
    • यदि वे नहीं करते हैं, तो डिवाइस आईडी एपीआई एक SecurityException अपवाद फेंक देते हैं जिसमें विधि का नाम होता है, और एक संकेत है कि कॉलिंग ऐप अनुरोधित आईडी तक पहुंचने की आवश्यकताओं को पूरा नहीं करता है।

अपरिवर्तनीय डिवाइस आईडी के बारे में अधिक जानकारी के लिए गैर-रीसेट करने योग्य डिवाइस पहचानकर्ता और अद्वितीय पहचानकर्ताओं के लिए सर्वोत्तम अभ्यास देखें।

परिक्षण

ऐप्स को डिवाइस सीरियल नंबर और, जहां लागू हो, आईएमईआई / एमईआईडी, सिम सीरियल नंबर और सब्सक्राइबर आईडी तक पहुंचने से रोका जाना चाहिए । इन आईडी तक पहुंचने की अनुमति वाले ऐप्स को भी डिवाइस आईडी तक कौन पहुंच सकता है के तहत सूचीबद्ध मानदंडों में से एक को पूरा करना होगा।