टेदरिंग

Android 13 में हुए अपडेट

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

खास जानकारी

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

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

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

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

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

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

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

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

public Builder excludeRoute(@NonNull IpPrefix prefix)

CrossDevice

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

CrossDevice motivation

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

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

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

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

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

CrossDevice डिपेंडेंसी

CrossDevice इन बातों पर निर्भर करता है:

  • वाई-फ़ाई
  • ब्लूटूथ
  • यूडब्ल्यूबी
  • modules-utils-preconditions
  • प्रोटो लाइब्रेरी

अलग-अलग डिवाइसों पर कस्टमाइज़ेशन के विकल्प

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

CrossDevice टेस्टिंग की रणनीति

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

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

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

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

  • 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 या इसके बाद के वर्शन वाले डिवाइसों के लिए उपलब्ध है.

Include ConnectivityService

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

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

टेदरिंग मॉड्यूल के लिए, इन मॉड्यूल की ज़रूरत होती है:

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

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

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

जांच करना

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