Android 13 में अपडेट
अपडेट करें | ज़्यादा जानकारी |
---|---|
CrossDevice की सुविधा लॉन्च की गई | CrossDevice |
स्प्लिट टनल की सुविधा शुरू की गई | स्प्लिट टनल |
खास जानकारी
टेदरिंग मॉड्यूल, कनेक्ट किए गए दूसरे क्लाइंट डिवाइसों के साथ Android डिवाइस का इंटरनेट कनेक्शन शेयर करता है. ये डिवाइस, वाई-फ़ाई, यूएसबी, ब्लूटूथ या ईथरनेट के ज़रिए टेदरिंग डिवाइसों से कनेक्ट हो सकते हैं. इस मॉड्यूल में, tethering कॉम्पोनेंट (यूएसबी, वाई-फ़ाई ऐक्सेस पॉइंट, ब्लूटूथ वगैरह) और इसकी डिपेंडेंसी (tethering एनटाइटलमेंट, IpServer
, और offloadController
के साथ इंटरैक्शन) शामिल हैं. इस मॉड्यूल को अपडेट किया जा सकता है. इसका मतलब है कि इसे Android के सामान्य रिलीज़ साइकल के बाहर, फ़ंक्शन के लिए अपडेट मिल सकते हैं.
Tethering मॉड्यूल की मदद से, Android के पूरे नेटवर्क में OEM, एक ही स्टैंडर्ड रेफ़रंस लागू कर सकते हैं. इससे ये फ़ायदे मिलते हैं.
मॉड्यूल के अपडेट की मदद से, असली उपयोगकर्ताओं को Android डिवाइसों पर एक जैसा अनुभव मिलता है. साथ ही, अलग-अलग डिवाइसों के साथ काम करने से जुड़ी समस्याएं भी ठीक हो जाती हैं.
OEM, कैरियर की ज़रूरी शर्तों को पूरा करते हुए, अलग-अलग ज़रूरतों के हिसाब से डिवाइस बनाने की लागत को कम कर सकते हैं. ऐसा इसलिए, क्योंकि उन्हें एक ही ज़रूरी शर्तों को अलग-अलग तरीकों से लागू करने की ज़रूरत नहीं होती.
स्प्लिट टनलिंग
अलग-अलग टनल का इस्तेमाल करने के उदाहरणों के लिए, Android 13 में एक नया एपीआई जोड़ा गया है. इससे, बाहर रखे जाने वाले रास्तों की जानकारी दी जा सकती है.
स्प्लिट टनल, ऐसे कॉन्फ़िगरेशन को कहते हैं जिसमें कुछ ट्रैफ़िक वीपीएन से गुज़रता है और बाकी ट्रैफ़िक नहीं. एक सामान्य उदाहरण यह है कि कोई संगठन, सामान्य वेब सर्फ़िंग, ज़्यादा बैंडविड्थ (जैसे, YouTube, Netflix) या इंतज़ार का समय कम करने वाले ऐप्लिकेशन (जैसे, Office 365) के लिए, वीपीएन को बायपास करना चाहता है. स्प्लिट टनल की सुविधा उपलब्ध होने से पहले,
VpnService.Builder
वीपीएन क्लाइंट को यह बताने की अनुमति थी कि सिर्फ़ कुछ सबनेट को उस पर भेजा जाना चाहिए (शामिल करें रास्ते). स्प्लिट टनलिंग की मदद से, इसके उलट भी किया जा सकता है: कुछ खास सबनेट (exclude रास्ते) को छोड़कर, सभी ट्रैफ़िक को वीपीएन पर भेजा जा सकता है.
नए स्प्लिट टनलिंग एपीआई का हस्ताक्षर यह है:
public Builder excludeRoute(@NonNull IpPrefix prefix)
CrossDevice
Android 13 में क्रॉस-डिवाइस सुविधा को लॉन्च किया गया था. इसका मकसद, स्टैंडर्ड प्रोटोकॉल का इस्तेमाल करके, एक से ज़्यादा डिवाइसों के बीच डेटा ट्रांसफ़र करने की टेक्नोलॉजी उपलब्ध कराना है. यह डिवाइस डिस्कवरी, पुष्टि किए गए कनेक्शन, और क्रॉस-डिवाइस के अन्य अनुभवों के लिए एपीआई और सुविधाएं उपलब्ध कराता है.
CrossDevice motivation
- OEM पार्टनर के साथ ज़्यादा बेहतर तरीके से मिलकर काम करना. OEM, Google के समाधान का इस्तेमाल करने के बजाय, अपने खाते की कुंजी के सिस्टम को क्रॉस-डिवाइस लागू करने के साथ इंटिग्रेट कर सकते हैं.
- प्रोटोकॉल को ज़्यादा साफ़ तौर पर लागू किया गया है. क्रॉस-डिवाइस मॉड्यूल, ओपन सोर्स है. इससे क्रॉस-डिवाइस टेक्नोलॉजी को लागू करने के बारे में ज़्यादा जानकारी मिलती है. साथ ही, निजता से जुड़ी बेहतर जानकारी भी मिलती है.
CrossDevice मॉड्यूल की सीमा
CrossDevice APIs | packages/modules/CrossDevice/framework में
|
अलग-अलग डिवाइसों पर काम करने वाली सेवाएं | packages/modules/CrossDevice/service में
|
क्रॉस-डिवाइस पैकेज का फ़ॉर्मैट
इस मॉड्यूल का मुख्य फ़ंक्शन, APEX पैकेज में शामिल होता है. संसाधनों को एक APK में पैकेज किया जाता है.
CrossDevice डिपेंडेंसी
क्रॉस-डिवाइस सुविधा इन बातों पर निर्भर करती है:
- वाई-फ़ाई
- ब्लूटूथ
- यूडब्ल्यूबी
- modules-utils-preconditions
- प्रोटो लाइब्रेरी
अलग-अलग डिवाइसों पर अपनी पसंद के मुताबिक बनाने के विकल्प
हम आरआरओ की मदद से, OEM को हाफ़ शीट के लिए यूज़र इंटरफ़ेस (यूआई) को पसंद के मुताबिक बनाने की अनुमति देने जा रहे हैं. फ़ंक्शन को पसंद के मुताबिक बनाने का कोई प्लान नहीं है.
क्रॉस-डिवाइस टेस्टिंग की रणनीति
हम MTS में क्रॉस-डिवाइस टेस्टिंग और क्रॉस-डिवाइस फ़ंक्शन की पुष्टि करने के लिए, Android Compatibility Test Suite (CTS) टेस्ट जोड़ने जा रहे हैं.
eBPF टेदरिंग ऑफ़लोड
हार्डवेयर ऑफ़लोड पर निर्भर हुए बिना, तेज़ रफ़्तार से वाई-फ़ाई शेयर करने की सुविधा देने के लिए, Android 11 में वाई-फ़ाई शेयर करने के लिए सॉफ़्टवेयर ऑफ़लोड करने का एक समाधान दिया गया है. इसे eBPF वाई-फ़ाई शेयर करने के लिए सॉफ़्टवेयर ऑफ़लोड कहा जाता है. यह आईपीवी6 डाउनलोड (वाई-फ़ाई शेयर करने वाले डिवाइस पर आने वाला ट्रैफ़िक) के लिए है.
Android 12 से, यह सुविधा (eBPF प्रोग्राम कोड के साथ) पूरी तरह से Tethering मॉड्यूल से मिलती है. यह मॉड्यूल इनके साथ काम करता है:
- आईपीवी6 डाउनलोड (टethered डिवाइस पर ट्रैफ़िक)
- आईपीवी6 अपलोड (टethered डिवाइस से आने वाला ट्रैफ़िक)
- आईपीवी4 टीसीपी/यूडीपी अपलोड और डाउनस्ट्रीम (टethered डिवाइस से आने/जाने वाला ट्रैफ़िक)
- eBPF ऑफ़लोड
यह सुविधा डिफ़ॉल्ट रूप से चालू रहती है. उपयोगकर्ता, आरआरओ की मदद से config_tether_enable_bpf_offload
कॉन्फ़िगरेशन को 'गलत' पर सेट कर सकते हैं.
ज़्यादा जानकारी के लिए, कस्टमाइज़ेशन देखें.
IPv4 और IPv6 के साथ काम करना
'डिवाइस को वाई-फ़ाई हॉटस्पॉट के तौर पर इस्तेमाल करना' मॉड्यूल, IPv4 और IPv6 ड्यूअल स्टैक के साथ काम करता है.
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+ कनेक्टिविटी के मुख्य कॉम्पोनेंट को लागू करता है. टेदरिंग का दायरा, कनेक्टिविटी मॉड्यूल में बढ़ जाता है.
मॉड्यूल की डिपेंडेंसी
Tethering मॉड्यूल, इन पर निर्भर करता है:
- सिस्टम सर्वर में सार्वजनिक और सिस्टम एपीआई के तरीके
- सिस्टम सर्वर के साथ काम करने वाला, स्थिर AIDL IPC इंटरफ़ेस
tetheroffload
HIDL (hardware/interfaces/tetheroffload/
में बताया गया है)- डीएचसीपी सर्वर (नेटवर्क स्टैक मॉड्यूल का हिस्सा)
पसंद के मुताबिक बनाएं
टेदरिंग मॉड्यूल को पसंद के मुताबिक नहीं बनाया जा सकता.
टेस्ट करना
Android Compatibility Test Suite (CTS), tethering मॉड्यूल के काम करने की पुष्टि करता है.