नेटवर्क स्टैक

Network Stack एक अपडेट किया जा सकने वाला Mainline मॉड्यूल है, जिससे यह पक्का होता है कि Android उभरते हुए नेटवर्क मानकों के हिसाब से काम करता है और नई सुविधाओं के साथ इंटरऑपरेबिलिटी (दूसरे सिस्टम के साथ काम करना) देता है लागू करना. उदाहरण के लिए, कैप्टिव पोर्टल की पहचान करने और लॉगिन कोड से जुड़े अपडेट की मदद से, Android को कैप्टिव पोर्टल के बदलते मॉडल के साथ अप-टू-डेट रहने में मदद मिलती है. साथ ही, एपीएफ़ से जुड़े अपडेट की मदद से, Android को वाई-फ़ाई पर पावर बचाने में मदद मिलती है, क्योंकि नए तरह के पैकेट आम हो गए हैं.

शामिल किए गए कॉम्पोनेंट

नेटवर्क स्टैक मॉड्यूल में ये कॉम्पोनेंट होते हैं. मॉड्यूल का इस्तेमाल करने वाले डिवाइसों पर, इन सेवाओं को किसी दूसरी प्रोसेस पर ले जाया गया था. साथ ही, इन्हें स्थिर AIDL इंटरफ़ेस के ज़रिए ऐक्सेस किया जाता है.

  • आईपी सेवाएं. IpClient (पहले इसे IpManager कहा जाता था) एक ऐसा कॉम्पोनेंट है जो आईपी लेयर की प्रोवाइज़निंग और रखरखाव की ज़िम्मेदारी करता है. Android 9 में, ब्लूटूथ जैसे कॉम्पोनेंट के लिए, क्रॉस-प्रोसेस के तौर पर और वाई-फ़ाई जैसे कॉम्पोनेंट के लिए, इन-प्रोसेस के तौर पर, पहले से ही इसका इस्तेमाल किया जा रहा था. DhcpClient, डीएचसीपी सर्वर से आईपी पते हासिल करता है, ताकि उन्हें इंटरफ़ेस को असाइन किया जा सके.

  • NetworkMonitor. इंटरनेट के लिए NetworkMonitor कॉम्पोनेंट की जांच की जाती है नए नेटवर्क से कनेक्ट करते समय या नेटवर्क के काम न करने पर, कनेक्ट होने पर कैप्टिव पोर्टल की पहचान करने और नेटवर्क की पुष्टि करते समय.

  • कैप्टिव पोर्टल लॉगिन ऐप्लिकेशन. यह पहले से इंस्टॉल किया गया ऐप्लिकेशन है, जो कैप्टिव पोर्टल पर लॉगिन मैनेज करता है. यह Android 5.0 के बाद से एक अलग ऐप्लिकेशन है. हालांकि, यह NetworkMonitor के साथ इंटरैक्ट करता है, ताकि उपयोगकर्ता की कुछ पसंद को सिस्टम पर भेजा जा सके.

ऐसे पाथ जिन पर असर हुआ है

रीफ़ैक्टर से, नेटवर्क स्टैक मॉड्यूल में भेजे गए पाथ की सूची नीचे दी गई है.

  • आईपी सेवाएं. frameworks/base/services/net/java/android/net/ में:

    • apf
    • dhcp
    • ip
    • netlink
    • util (कुछ हिस्से)
  • कैप्टिव पोर्टल की पहचान करना और लॉगिन करना. frameworks/base/ में:

    • core/java/android/net/captiveportal/
    • services/core/java/com/android/server/connectivity/NetworkMonitor.java
    • packages/CaptivePortalLogin/*

भेजे गए कोड की नई जगह packages/modules/NetworkStack है, packages/modules/CaptivePortalLogin और कुछ अन्य स्थान शेयर किए गए. ऊपर दिए गए पाथ, मेनलाइन में ले जाने से पहले फ़ाइलों की जगह के बारे में बताते हैं. packages/modules/NetworkStack और packages/modules/CaptivePortalLogin, Mainline मॉड्यूल का हिस्सा है संशोधित किया जा सकता है.

पैकेज फ़ॉर्मैट

नेटवर्क स्टैक मॉड्यूल में, APK फ़ॉर्मैट में ये कॉम्पोनेंट होते हैं:

  • आईपी सेवाएं
  • कैप्टिव पोर्टल लॉगिन (com.google.android.captiveportallogin)

इस मॉड्यूल के साथ नेटवर्क स्टैक की अनुमति कॉन्फ़िगरेशन मॉड्यूल भी होता है. यह पहले से इंस्टॉल की गई APK फ़ाइल होती है, जिसमें नेटवर्क स्टैक के कॉम्पोनेंट के लिए ज़रूरी अनुमतियां तय की जाती हैं.

डिपेंडेंसी

नेटवर्क स्टैक मॉड्यूल इन पर निर्भर करता है:

  • सिस्टम सर्वर में खास अधिकारों वाले @hide तरीके (उदाहरण के लिए, IConnectivityManager.aidl). इन एपीआई को @SystemApi बनाया गया है और इस तरह से सुरक्षित किया जाता है कि उसे Mainline मॉड्यूल में ऐक्सेस किया जा सके, लेकिन अन्य खास ऐप्लिकेशन नहीं हैं (जैसे, हस्ताक्षर के लिए नई अनुमति का इस्तेमाल करना).

  • INetd.aidl में बताए गए netd के लिए बाइंडर आईपीसी. इस इंटरफ़ेस को स्टैबल AIDL में बदल दिया गया है और इसे कनफ़ॉर्मेंस जांच के दायरे में रखा गया है.