Android 13 में हुए अपडेट
अपडेट करें | ज़्यादा जानकारी |
---|---|
CrossDevice को लॉन्च किया गया | CrossDevice |
स्प्लिट टनलिंग की सुविधा शुरू की गई | स्प्लिट टनलिंग |
खास जानकारी
टेदरिंग मॉड्यूल, Android डिवाइस के इंटरनेट कनेक्शन को कनेक्ट किए गए अन्य क्लाइंट डिवाइसों के साथ शेयर करता है. ये डिवाइस, वाई-फ़ाई, यूएसबी, ब्लूटूथ या ईथरनेट के ज़रिए टेदरिंग डिवाइसों से कनेक्ट हो सकते हैं. इस मॉड्यूल में टेदरिंग कॉम्पोनेंट (यूएसबी, वाई-फ़ाई ऐक्सेस पॉइंट, ब्लूटूथ वगैरह) और इसकी डिपेंडेंसी (टेदरिंग के एनटाइटलमेंट, IpServer
, और offloadController
के साथ इंटरैक्शन) शामिल हैं. इस मॉड्यूल को अपडेट किया जा सकता है. इसका मतलब है कि Android के रिलीज़ साइकल के बाहर भी, इसे अपडेट किया जा सकता है.
टेथरिंग मॉड्यूल, Android इकोसिस्टम में मौजूद सभी ओईएम को एक ही स्टैंडर्ड रेफ़रंस इंप्लीमेंटेशन का इस्तेमाल करने की सुविधा देता है. इससे उन्हें ये फ़ायदे मिलते हैं.
मॉड्यूल अपडेट के ज़रिए, असली उपयोगकर्ताओं को Android डिवाइसों पर एक जैसा अनुभव मिलता है. साथ ही, इंटरऑपरेबिलिटी से जुड़ी समस्याओं को ठीक किया जाता है.
OEM, कैरियर की ज़रूरी शर्तों को पूरा कर सकते हैं. साथ ही, अलग-अलग डिवाइसों को पसंद के मुताबिक बनाने की लागत को भी कम कर सकते हैं. ऐसा इसलिए, क्योंकि उन्हें अलग-अलग डिवाइसों में एक ही ज़रूरी शर्त को अलग-अलग तरीके से लागू करने की ज़रूरत नहीं होती.
स्प्लिट टनलिंग
स्प्लिट टनलिंग के इस्तेमाल के उदाहरणों के लिए, 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 में
|
CrossDevice Services | packages/modules/CrossDevice/service में
|
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 स्टेटलेस ऐड्रेस ऑटोकॉन्फ़िगरेशन (SLAAC) को अपनाता है.
मॉड्यूल की सीमा
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 में जोड़ दिया गया है. टेदरिंग का दायरा, कनेक्टिविटी मॉड्यूल तक बढ़ जाता है.
मॉड्यूल डिपेंडेंसी
टेदरिंग मॉड्यूल के लिए, इन मॉड्यूल की ज़रूरत होती है:
- सिस्टम सर्वर में मौजूद सार्वजनिक और सिस्टम एपीआई के तरीके
- स्टेबल एआईडीएल आईपीसी, सिस्टम सर्वर के साथ इंटरफ़ेस करता है
tetheroffload
एचआईडीएल (hardware/interfaces/tetheroffload/
में तय किया गया)- डीएचसीपी सर्वर (नेटवर्क स्टैक मॉड्यूल का हिस्सा)
पसंद के मुताबिक बनाएं
टेदरिंग मॉड्यूल को पसंद के मुताबिक़ नहीं बनाया जा सकता.
टेस्ट करना
Android Compatibility Test Suite (CTS), टेदरिंग मॉड्यूल के फ़ंक्शन की पुष्टि करता है.