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

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

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

डिवाइस आईडी तक कौन पहुंच सकता है

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

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

विशेषाधिकार प्राप्त पैकेजों तक पहुंच

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

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

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

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

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

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

ऐप्स जो डिवाइस आईडी एपीआई का आह्वान करते हैं

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

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

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

परिक्षण

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