टेदरिंग

Android 13 में किए गए अपडेट

अपडेट ज़्यादा जानकारी
CrossDevice सुविधा शुरू की गई CrossDevice
स्प्लिट टनलिंग की सुविधा शुरू की गई स्प्लिट टनलिंग

खास जानकारी

टेदरिंग मॉड्यूल, Android डिवाइस के इंटरनेट कनेक्शन को अन्य कनेक्ट किए गए क्लाइंट डिवाइसों के साथ शेयर करता है. ये डिवाइस, वाई-फ़ाई, यूएसबी, ब्लूटूथ या ईथरनेट की मदद से टेदरिंग डिवाइसों से कनेक्ट हो सकते हैं. इस मॉड्यूल में टेदरिंग कॉम्पोनेंट (यूएसबी, वाई-फ़ाई ऐक्सेस पॉइंट, ब्लूटूथ वगैरह) और इसकी डिपेंडेंसी (टेदरिंग एनटाइटलमेंट, IpServer, और offloadController के साथ इंटरैक्शन) शामिल हैं. इस मॉड्यूल को अपडेट किया जा सकता है. इसका मतलब है कि इसे Android के सामान्य रिलीज़ साइकल के अलावा, अन्य अपडेट भी मिल सकते हैं.

टेदरिंग मॉड्यूल, Android इकोसिस्टम में मौजूद ओईएम को एक ही स्टैंडर्ड रेफ़रंस लागू करने की सुविधा देता है. इससे उन्हें ये फ़ायदे मिलते हैं.

  • मॉड्यूल अपडेट की मदद से, एंड यूज़र को Android डिवाइसों पर एक जैसा अनुभव मिलता है. साथ ही, इंटरऑपरेबिलिटी से जुड़ी समस्याओं को ठीक किया जा सकता है.

  • ओईएम, मोबाइल और इंटरनेट सेवा देने वाली कंपनियों की ज़रूरी शर्तें पूरी कर सकते हैं. साथ ही, अलग-अलग डिवाइसों के लिए कस्टमाइज़ेशन की लागत को कम कर सकते हैं. ऐसा इसलिए, क्योंकि उन्हें अलग-अलग तरीकों से एक ही ज़रूरी शर्त को लागू करने की ज़रूरत नहीं होती.

स्प्लिट टनलिंग

स्प्लिट टनलिंग के इस्तेमाल के उदाहरणों के लिए, Android 13 में एक नया एपीआई जोड़ा गया है. इसकी मदद से, उन रास्तों के बारे में बताया जा सकता है जिन्हें शामिल नहीं करना है.

स्प्लिट टनलिंग, एक ऐसा कॉन्फ़िगरेशन है जिसमें कुछ ट्रैफ़िक वीपीएन के ज़रिए जाता है, जबकि कुछ ट्रैफ़िक वीपीएन के ज़रिए नहीं जाता. इसका एक सामान्य उदाहरण यह है कि कोई संगठन सामान्य वेब सर्फ़िंग, ज़्यादा बैंडविथ वाले ऐप्लिकेशन (जैसे, YouTube, Netflix) या कम समय में जवाब देने वाले ऐप्लिकेशन (जैसे, Office 365) के ट्रैफ़िक को वीपीएन से बाहर रखना चाहता है. स्प्लिट टनलिंग की सुविधा उपलब्ध होने से पहले, VpnService.Builder की मदद से वीपीएन क्लाइंट यह बता सकता था कि सिर्फ़ कुछ सबनेट को ही वीपीएन पर रूट किया जाना चाहिए (शामिल करें रूट). स्प्लिट टनलिंग की मदद से, इसके उलट भी किया जा सकता है. यानी, कुछ खास सबनेट (शामिल न करें रूट) को छोड़कर, सभी ट्रैफ़िक को वीपीएन पर रूट किया जा सकता है.

नए स्प्लिट टनलिंग एपीआई का सिग्नेचर यह है:

public Builder excludeRoute(@NonNull IpPrefix prefix)

CrossDevice

Android 13 में शुरू की गई CrossDevice सुविधा का मकसद, स्टैंडर्ड प्रोटोकॉल का इस्तेमाल करके, क्रॉस-डिवाइस कम्यूनिकेशन टेक्नोलॉजी उपलब्ध कराना है. यह डिवाइस की खोज, पुष्टि किए गए कनेक्शन, और क्रॉस-डिवाइस के अन्य अनुभवों के लिए एपीआई और सुविधाएं उपलब्ध कराती है.

CrossDevice सुविधा शुरू करने की वजह

  • ओईएम पार्टनर के साथ बेहतर तरीके से मिलकर काम करना. ओईएम, Google के समाधान का इस्तेमाल करने के बजाय, CrossDevice सुविधा को लागू करने के लिए, अपने खाते की कुंजी वाले सिस्टम को इंटिग्रेट कर सकते हैं.
  • प्रोटोकॉल को ज़्यादा आसानी से लागू किया जा सकता है. CrossDevice मॉड्यूल, ओपन सोर्स है. इससे, लागू करने से जुड़ी ज़्यादा जानकारी मिलती है. साथ ही, CrossDevice टेक्नोलॉजी को लागू करने के लिए, बेहतर निजता मिलती है.

CrossDevice मॉड्यूल की सीमा

CrossDevice एपीआई packages/modules/CrossDevice/framework
    में
  • NearbyManager
  • AccountProviderBase
CrossDevice सेवाएं packages/modules/CrossDevice/service
    में
  • NearbyService - स्कैनिंग एपीआई

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

इस मॉड्यूल का मुख्य फ़ंक्शन, APEX पैकेज में शामिल है. संसाधन, APK में पैकेज किए जाते हैं.

CrossDevice की डिपेंडेंसी

CrossDevice, इन पर निर्भर करता है:

  • वाई-फ़ाई
  • ब्लूटूथ
  • यूडब्ल्यूबी
  • modules-utils-preconditions
  • Proto libraries

CrossDevice को पसंद के मुताबिक बनाने के विकल्प

हमारी योजना है कि हम ओईएम को RRO की मदद से, हाफ़ शीट के लिए यूआई को पसंद के मुताबिक बनाने की अनुमति दें. फ़ंक्शन को पसंद के मुताबिक बनाने की कोई योजना नहीं है.

CrossDevice की जांच करने की रणनीति

हमारी योजना है कि हम Android Compatibility Test Suite (CTS) में, CrossDevice की सुविधा की पुष्टि करने के लिए टेस्ट जोड़ें. साथ ही, MTS में अलग-अलग डिवाइसों के बीच टेस्ट करने की सुविधा जोड़ें.

eBPF टेदरिंग ऑफ़लोड

हार्डवेयर ऑफ़लोड पर निर्भर हुए बिना, तेज़ रफ़्तार से टेदरिंग की सुविधा देने के लिए, Android 11 में टेदरिंग सॉफ़्टवेयर ऑफ़लोड का समाधान दिया गया है. इसे IPv6 डाउनलोड (टेदर किए गए डिवाइस पर जाने वाला ट्रैफ़िक) के लिए, eBPF टेदरिंग ऑफ़लोड कहा जाता है.

Android 12 से, यह सुविधा (eBPF प्रोग्राम कोड भी शामिल है) पूरी तरह से टेदरिंग मॉड्यूल से मिलती है. यह इन सुविधाओं के साथ काम करता है:

  • IPv6 डाउनलोड (टेदर किए गए डिवाइस पर जाने वाला ट्रैफ़िक)
  • IPv6 अपलोड (टेदर किए गए डिवाइस से आने वाला ट्रैफ़िक)
  • IPv4 टीसीपी/यूडीपी अपलोड और डाउनस्ट्रीम (टेदर किए गए डिवाइस पर जाने/आने वाला ट्रैफ़िक)
  • eBPF ऑफ़लोड

यह सुविधा डिफ़ॉल्ट रूप से चालू रहती है. हालांकि, उपयोगकर्ता RRO की मदद से, config_tether_enable_bpf_offload कॉन्फ़िगरेशन को 'गलत' पर सेट कर सकते हैं. ज़्यादा जानकारी के लिए, पसंद के मुताबिक बनाना लेख पढ़ें.

IPv4 और IPv6 के लिए सहायता

टेदरिंग मॉड्यूल, IPv4 और IPv6 डुअल स्टैक के साथ काम करता है.

  • IPv4 नेटवर्क के लिए, मॉड्यूल नेटवर्क अड्रेस ट्रांसलेशन (एनएटी) सेट अप करता है. साथ ही, आईपी पता असाइन करने के लिए, डाइनैमिक होस्ट कॉन्फ़िगरेशन प्रोटोकॉल (डीएचसीपी) को अपनाता है.

  • IPv6 नेटवर्क के लिए, मॉड्यूल आईपी पता असाइन करने के लिए, IPv6 स्टेटलेस अड्रेस ऑटोकॉन्फ़िगरेशन (एसएलएएसी) को अपनाता है.

मॉड्यूल की सीमा

Android 12 और इसके बाद के वर्शन के लिए, packages/modules/Connectivity में मौजूद सभी फ़ाइलें/फ़ोल्डर, टेदरिंग मॉड्यूल के दायरे में आते हैं.

Android 11 और इससे पहले के वर्शन के लिए, टेदरिंग मॉड्यूल में packages/modules/Tethering में Android 10 की ये फ़ाइलें मौजूद हैं.

  • frameworks/base/services/core/java/com/android/server/connectivity/Tethering.java
  • frameworks/base/services/core/java/com/android/server/connectivity/tethering/
  • frameworks/base/services/core/java/com/android/server/NetworkManagementService.java
  • frameworks/base/services/net/java/android/net/ip/{InterfaceController,IpServer,RouterAdvertisementDaemon}.java
  • frameworks/base/services/net/java/android/net/{netlink,dhcp}/*
  • frameworks/base/services/net/java/android/net/util/{InterfaceSet,InterfaceParams,NetdService,PrefixUtils,SharedLog,VersionedBroadcastListener}.java
  • frameworks/base/core/java/android/net/{ITetheringEventCallback,ITetheringStatsProvider}.aidl
  • frameworks/base/core/java/android/net/{NetworkUtils,util/IpUtils}.java
  • frameworks/base/core/java/com/android/internal/util/{BitUtils,IndentingPrintWriter,State,StateMachine}.java
  • frameworks/base/core/java/com/android/server/connectivity/MockableSystemProperties.java
  • frameworks/base/core/java/android/os/INetworkManagementService.aidl
  • frameworks/base/core/java/android/bluetooth/BluetoothPan.java
  • frameworks/base/services/core/jni/com_android_server_connectivity_tethering_OffloadHardwareInterface.cpp
  • packages/apps/Settings/src/com/android/settings/wifi/tether/TetherService.java
  • packages/apps/Settings/src/com/android/settings/network/TetherProvisioningActivity.java

मॉड्यूल का फ़ॉर्मैट

टेदरिंग मॉड्यूल (com.android.tethering) APEX फ़ॉर्मैट में है. यह Android 11 या इसके बाद के वर्शन वाले डिवाइसों के लिए उपलब्ध है.

ConnectivityService शामिल करें

Android 12 से, L3+ कनेक्टिविटी के मुख्य कॉम्पोनेंट को लागू करने वाला ConnectivityService कोड जो टेदरिंग APEX में जोड़ा गया है. टेदरिंग का दायरा, कनेक्टिविटी मॉड्यूल तक बढ़ जाता है.

मॉड्यूल की डिपेंडेंसी

टेदरिंग मॉड्यूल की ये डिपेंडेंसी हैं:

  • सिस्टम सर्वर में मौजूद, सार्वजनिक और सिस्टम एपीआई के तरीके
  • सिस्टम सर्वर के साथ स्टेबल एआईडीएल आईपीसी इंटरफ़ेस
  • tetheroffload एचआईडीएल (इसे hardware/interfaces/tetheroffload/ में तय किया गया है)
  • डीएचसीपी सर्वर (नेटवर्क स्टैक मॉड्यूल का हिस्सा)

पसंद के मुताबिक बनाएं

टेदरिंग मॉड्यूल को पसंद के मुताबिक बनाने की सुविधा उपलब्ध नहीं है.

जांच करना

Android Compatibility Test Suite (CTS), टेदरिंग मॉड्यूल की सुविधा की पुष्टि करता है.