लोकल नेटवर्क की अनुमति

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

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

असर

Android 16 में, यह अनुमति ऑप्ट-इन की सुविधा है. इसका मतलब है कि सिर्फ़ उन ऐप्लिकेशन पर असर पड़ेगा जिन्होंने ऑप्ट-इन किया है. ऑप्ट-इन का मकसद, ऐप्लिकेशन डेवलपर को यह समझने में मदद करना है कि उनके ऐप्लिकेशन के कौनसे हिस्से, स्थानीय नेटवर्क के ऐक्सेस पर निर्भर हैं. इससे वे आने वाले समय में Android के किसी नए वर्शन के लिए, अनुमति की सुरक्षा करने की तैयारी कर पाएंगे.

अगर ऐप्लिकेशन इनका इस्तेमाल करके उपयोगकर्ता के लोकल नेटवर्क को ऐक्सेस करते हैं, तो उन पर असर पड़ेगा:

  • स्थानीय नेटवर्क पतों (जैसे, mDNS या SSDP सेवा डिस्कवरी प्रोटोकॉल) पर रॉ सॉकेट का सीधा या लाइब्रेरी इस्तेमाल
  • फ़्रेमवर्क लेवल की उन क्लास का इस्तेमाल करना जो लोकल नेटवर्क को ऐक्सेस करती हैं. जैसे, NsdManager

असर की जानकारी

किसी लोकल नेटवर्क पते पर आने और उससे जाने वाले ट्रैफ़िक के लिए, लोकल नेटवर्क का ऐक्सेस पाने की अनुमति ज़रूरी है. इस टेबल में कुछ सामान्य मामले दिए गए हैं:

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

ये पाबंदियां नेटवर्किंग स्टैक में लागू की जाती हैं. इसलिए, ये सभी नेटवर्किंग एपीआई पर लागू होती हैं. इसमें प्लैटफ़ॉर्म या मैनेज किए गए कोड में बनाई गई सॉकेट, Cronet और OkHttp जैसी नेटवर्किंग लाइब्रेरी, और उन पर लागू किए गए सभी एपीआई शामिल हैं. लोकल नेटवर्क पर मौजूद सेवाओं (जैसे, .local सफ़िक्स वाली सेवाओं) को रिज़ॉल्व करने के लिए, लोकल नेटवर्क की अनुमति की ज़रूरत होगी.

ऊपर दिए गए नियमों के अपवाद:

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

मार्गदर्शन

लोकल नेटवर्क से जुड़ी पाबंदियों के लिए ऑप्ट इन करने के लिए, यह तरीका अपनाएं:

  1. अपने डिवाइस को Android 16 Beta 3 या उसके बाद के वर्शन वाले बिल्ड पर फ़्लैश करें
  2. जिस ऐप्लिकेशन की जांच करनी है उसे इंस्टॉल करना
  3. adb का इस्तेमाल करके, Appcompat कॉन्फ़िगरेशन को टॉगल करना

    adb shell am compat enable RESTRICT_LOCAL_NETWORK <package_name>
    
  4. डिवाइस को रीबूट करना

अब आपके ऐप्लिकेशन के पास लोकल नेटवर्क का ऐक्सेस नहीं है. लोकल नेटवर्क को ऐक्सेस करने की कोशिश करने पर, आपको सॉकेट से जुड़ी गड़बड़ियां दिखेंगी. अगर आपके ऐप्लिकेशन की प्रोसेस के बाहर, लोकल नेटवर्क ऑपरेशन करने वाले एपीआई (उदाहरण के लिए, NsdManager) का इस्तेमाल किया जा रहा है, तो ऑप्ट-इन के दौरान उन पर कोई असर नहीं पड़ेगा.

ऐक्सेस वापस पाने के लिए, आपको अपने ऐप्लिकेशन को NEARBY_WIFI_DEVICES को अनुमति देनी होगी.

  • पक्का करें कि ऐप्लिकेशन ने अपने मेनिफ़ेस्ट में NEARBY_WIFI_DEVICES अनुमति का एलान किया हो.
  • सेटिंग > ऐप्लिकेशन > [ऐप्लिकेशन का नाम] > अनुमतियां > आस-पास के डिवाइस > अनुमति दें पर जाएं

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

अनुमति आउटबाउंड LAN अनुरोध आउटबाउंड/इनबाउंड इंटरनेट अनुरोध इनबाउंड LAN अनुरोध
प्रदान किया गया Works Works Works
अनुमति नहीं दी गई विफल Works विफल

Appcompat कॉन्फ़िगरेशन को टॉगल-ऑफ़ करने के लिए, यह कमांड इस्तेमाल करें

adb shell am compat disable RESTRICT_LOCAL_NETWORK <package_name>

गड़बड़ियां

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

गड़बड़ियों के उदाहरण:

sendto failed: EPERM (Operation not permitted)

sendto failed: ECONNABORTED (Operation not permitted)

गड़बड़ियां

इनके लिए गड़बड़ियां सबमिट करें और सुझाव, शिकायत या राय दें:

  • एलएएन ऐक्सेस में अंतर (आपको लगता है कि किसी ऐक्सेस को "लोकल नेटवर्क" ऐक्सेस नहीं माना जाना चाहिए)
  • ऐसे गड़बड़ियां जिनमें एलएएन ऐक्सेस को ब्लॉक किया जाना चाहिए, लेकिन नहीं किया गया है
  • ऐसे गड़बड़ियां जिनमें एलएएन का ऐक्सेस ब्लॉक नहीं किया जाना चाहिए, लेकिन ब्लॉक किया गया है

इस बदलाव का इन पर कोई असर नहीं पड़ेगा:

  • इंटरनेट का ऐक्सेस
  • मोबाइल नेटवर्क