टेदरिंग

Android 13 में अपडेट

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

खास जानकारी

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

टेदरिंग मॉड्यूल से, Android नेटवर्क में OEM, एक ही स्टैंडर्ड पहचान फ़ाइल को लागू कर पाते हैं. इससे ये फ़ायदे मिलते हैं.

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

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

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

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

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

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

public Builder excludeRoute(@NonNull IpPrefix prefix)

क्रॉस-डिवाइस

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

CrossDevice motivation

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

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

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

क्रॉस-डिवाइस पैकेज का फ़ॉर्मैट

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

क्रॉस-डिवाइस डिपेंडेंसी

क्रॉस-डिवाइस सुविधा इन बातों पर निर्भर करती है:

  • वाई-फ़ाई
  • ब्लूटूथ
  • यूडब्ल्यूबी
  • पहले से तय की गई मॉड्यूल-यूटिलिटी
  • प्रोटो लाइब्रेरी

क्रॉस-डिवाइस को पसंद के मुताबिक बनाने के विकल्प

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

क्रॉस-डिवाइस टेस्टिंग की रणनीति

हम MTS में क्रॉस-डिवाइस टेस्टिंग और क्रॉस-डिवाइस फ़ंक्शन की पुष्टि करने के लिए, Android Compatibility Test Suite (CTS) टेस्ट जोड़ने जा रहे हैं.

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

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

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

  • आईपीवी6 डाउनलोड (टethered डिवाइस पर ट्रैफ़िक)
  • आईपीवी6 अपलोड (टethered डिवाइस से आने वाला ट्रैफ़िक)
  • आईपीवी4 टीसीपी/यूडीपी अपलोड और डाउनस्ट्रीम (टethered डिवाइस से आने/जाने वाला ट्रैफ़िक)
  • eBPF ऑफ़लोड

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

IPv4 और IPv6 सहायता

टेदरिंग मॉड्यूल, आईपीवी4 और आईपीवी6 ड्यूअल स्टैक पर काम करता है.

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

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

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

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

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 में, ConnectivityService कोड को Tethering APEX में जोड़ा गया है. यह कोड, L3+ कनेक्टिविटी के मुख्य कॉम्पोनेंट को लागू करता है. टेदरिंग का दायरा, कनेक्टिविटी मॉड्यूल में बढ़ जाता है.

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

टेदरिंग मॉड्यूल पर ये चीज़ें निर्भर करती हैं:

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

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

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

टेस्ट करना

Android कंपैटबिलिटी टेस्ट सुइट (सीटीएस) की मदद से, टेदरिंग मॉड्यूल के काम करने के तरीके की पुष्टि की जाती है.