नेटवर्किंग

Android 10 में निम्नलिखित नेटवर्किंग मॉड्यूल शामिल हैं:

  • नेटवर्किंग कंपोनेंट्स मॉड्यूल सामान्य आईपी सेवाएं, नेटवर्क कनेक्टिविटी मॉनिटरिंग और कैप्टिव लॉगिन पोर्टल डिटेक्शन प्रदान करता है।
  • नेटवर्क स्टैक अनुमति कॉन्फ़िगरेशन मॉड्यूल एक अनुमति को परिभाषित करता है जो मॉड्यूल को नेटवर्क से संबंधित कार्यों को करने में सक्षम बनाता है।

नेटवर्किंग घटक मॉड्यूल

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

Android 10 . में बदलाव

नेटवर्किंग घटक मॉड्यूल में निम्नलिखित घटक होते हैं।

  • आईपी ​​सेवाएं। IpClient (पूर्व में IpManager) घटक IP परत प्रावधान और रखरखाव को संभालता है। एंड्रॉइड 9 में, ब्लूटूथ जैसे घटकों द्वारा क्रॉस-प्रोसेस और वाई-फाई जैसे घटकों द्वारा इन-प्रोसेस का उपयोग किया गया था। डीएचसीपी क्लाइंट घटक डीएचसीपी सर्वर से आईपी पते प्राप्त करता है ताकि उन्हें इंटरफेस को सौंपा जा सके।
  • नेटवर्क मॉनिटर। नेटवर्क मॉनिटर घटक नए नेटवर्क से कनेक्ट होने पर या नेटवर्क विफलताओं पर, कैप्टिव पोर्टल्स का पता लगाने और नेटवर्क को मान्य करते समय इंटरनेट रीचैबिलिटी के लिए परीक्षण करता है।
  • कैप्टिव पोर्टल लॉगिन ऐप। कैप्टिव पोर्टल लॉगिन ऐप कैप्टिव पोर्टल्स पर लॉगिन प्रबंधित करने के लिए एक प्रीइंस्टॉल्ड ऐप है। यह एंड्रॉइड 5.0 के बाद से एक अलग ऐप रहा है, लेकिन यह सिस्टम में कुछ उपयोगकर्ता विकल्पों को अग्रेषित करने के लिए नेटवर्क मॉनिटर के साथ इंटरैक्ट करता है।

नेटवर्किंग कंपोनेंट्स मॉड्यूल का उपयोग करने वाले उपकरणों पर, उपरोक्त सेवाओं को एक अलग प्रक्रिया के लिए रिफैक्टर किया जाता है और एक स्थिर एआईडीएल इंटरफेस का उपयोग करके एक्सेस किया जाता है। रिफैक्टर पथ निम्न तालिकाओं में दिखाए गए हैं।

आईपी ​​सेवा रिफ्लेक्टर पथ

Android 9 और उससे कम frameworks/base/services/net/java/android/net/ में:
  • apf
  • dhcp
  • ip
  • netlink
  • util (आंशिक रूप से)
एंड्रॉइड 10 और उच्चतर packages/modules/NetworkStack

कैप्टिव पोर्टल लॉगिन रिफैक्टर पथ

Android 9 और उससे कम frameworks/base/ में:
  • core/java/android/net/captiveportal/
  • services/core/java/com/android/server/connectivity/NetworkMonitor.java
  • packages/CaptivePortalLogin/* (जहाँ * = वाइल्डकार्ड)
एंड्रॉइड 10 और उच्चतर packages/modules/CaptivePortalLogin (और कुछ अन्य साझा स्थान)

प्रारूप और निर्भरता

नेटवर्किंग घटक मॉड्यूल तीन एपीके के रूप में वितरित किया जाता है: एक आईपी सेवाओं के लिए, एक कैप्टिव पोर्टल लॉगिन के लिए, और एक नेटवर्क स्टैक अनुमति कॉन्फ़िगरेशन के लिए।

नेटवर्किंग घटक मॉड्यूल निम्नलिखित पर निर्भर करता है:

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

नेटवर्क स्टैक अनुमति कॉन्फ़िग मॉड्यूल

नेटवर्क स्टैक अनुमति कॉन्फ़िग मॉड्यूल में कोई कोड नहीं है, बल्कि नेटवर्क स्टैक और कैप्टिव पोर्टल लॉगिन मॉड्यूल द्वारा उपयोग के लिए इच्छित अनुमति को परिभाषित करता है। सिस्टम मॉड्यूल को डिवाइस पर संबंधित नेटवर्क कॉन्फ़िगरेशन कार्यों को करने की अनुमति देता है।