টিথারিং

অ্যান্ড্রয়েড 13-এ আপডেট

হালনাগাদ অধিক তথ্য
CrossDevice চালু করা হয়েছে ক্রসডিভাইস
বিভক্ত টানেলিং চালু করা হয়েছে স্প্লিট টানেলিং

ওভারভিউ

টিথারিং মডিউলটি অন্যান্য সংযুক্ত ক্লায়েন্ট ডিভাইসগুলির সাথে একটি অ্যান্ড্রয়েড ডিভাইসের ইন্টারনেট সংযোগ ভাগ করে, যা Wi-Fi, USB, Bluetooth বা ইথারনেটের মাধ্যমে টিথারিং ডিভাইসগুলির সাথে সংযোগ করতে পারে৷ এই মডিউলটিতে টিথারিং উপাদান (USB, Wi-Fi অ্যাক্সেস পয়েন্ট, ব্লুটুথ, ইত্যাদি) এবং এর নির্ভরতা (টিথারিং এনটাইটেলমেন্ট, IpServer এবং offloadController সাথে মিথস্ক্রিয়া) অন্তর্ভুক্ত রয়েছে। এই মডিউলটি আপডেটযোগ্য, মানে এটি স্বাভাবিক অ্যান্ড্রয়েড রিলিজ চক্রের বাইরে কার্যকারিতার আপডেট পেতে পারে।

টিথারিং মডিউলটি Android ইকোসিস্টেম জুড়ে OEM-কে একটি একক, মানক রেফারেন্স বাস্তবায়ন ব্যবহার করতে সক্ষম করে যা নিম্নলিখিত সুবিধাগুলি নিয়ে আসে।

  • শেষ ব্যবহারকারীরা অ্যান্ড্রয়েড ডিভাইস জুড়ে একটি সামঞ্জস্যপূর্ণ অভিজ্ঞতা পান এবং মডিউল আপডেটের মাধ্যমে আন্তঃব্যবহারের সমস্যা সমাধান করে।

  • OEMগুলি ক্যারিয়ারের প্রয়োজনীয়তাগুলি পূরণ করতে পারে এবং পৃথক কাস্টমাইজেশনের জন্য খরচ কমাতে পারে (যেহেতু তাদের বিভিন্ন উপায়ে একই প্রয়োজনীয়তার বিভিন্ন বাস্তবায়নের প্রয়োজন হয় না)।

স্প্লিট টানেলিং

বিভক্ত টানেলিং ব্যবহারের ক্ষেত্রে সমর্থন করার জন্য, এক্সক্লুড রুটগুলি নির্দিষ্ট করতে Android 13 এ একটি নতুন API যোগ করা হয়েছে।

স্প্লিট টানেলিং বলতে সেই কনফিগারেশনকে বোঝায় যেখানে নির্দিষ্ট ট্রাফিক VPN এর মধ্য দিয়ে যায় যখন অন্য ট্রাফিক যায় না। একটি সাধারণ উদাহরণ হল যেখানে একটি সংস্থা সাধারণ ওয়েব সার্ফিং, ব্যান্ডউইথ-ভারী (উদাহরণস্বরূপ, ইউটিউব, নেটফ্লিক্স) বা লেটেন্সি-সংবেদনশীল অ্যাপ্লিকেশনগুলি (উদাহরণস্বরূপ, অফিস 365 ) ভিপিএনকে বাইপাস করতে চায়৷ বিভক্ত টানেলিং উপলব্ধ হওয়ার আগে, VpnService.Builder VPN ক্লায়েন্টকে ইঙ্গিত করার অনুমতি দেয় যে শুধুমাত্র কিছু সাবনেট এতে রাউট করা উচিত (রুট অন্তর্ভুক্ত )। বিভক্ত টানেলিংয়ের সাথে, আপনার বিপরীতটি নির্দিষ্ট করার ক্ষমতা রয়েছে: নির্দিষ্ট সাবনেট ব্যতীত (রুটগুলি বাদ দিন ) সমস্ত ট্র্যাফিককে ভিপিএন-এ রুট করতে।

নতুন স্প্লিট টানেলিং API-এর স্বাক্ষর হল:

public Builder excludeRoute(@NonNull IpPrefix prefix)

ক্রসডিভাইস

ক্রসডিভাইস, অ্যান্ড্রয়েড 13-এ প্রবর্তিত হয়েছে, এর লক্ষ্য হল মানক প্রোটোকল ব্যবহার করে ক্রস-ডিভাইস যোগাযোগ প্রযুক্তি প্রদান করা। এটি ডিভাইস আবিষ্কার, প্রমাণীকৃত সংযোগ এবং অন্যান্য ক্রস-ডিভাইস অভিজ্ঞতার জন্য API এবং বৈশিষ্ট্য প্রদান করে।

ক্রসডিভাইস অনুপ্রেরণা

  • OEM অংশীদারদের সাথে কঠোর সহযোগিতা। Google-এর সমাধান ব্যবহার করার প্রয়োজনের পরিবর্তে OEMs তাদের নিজস্ব অ্যাকাউন্ট কী সিস্টেমকে CrossDevice বাস্তবায়নের সাথে সংহত করতে পারে।
  • প্রোটোকলের আরও দৃশ্যমান বাস্তবায়ন। ক্রসডিভাইস মডিউলটি ওপেন সোর্স, যা বাস্তবায়নের বিশদ বিবরণে আরও দৃশ্যমানতা প্রদান করে এবং ক্রসডিভাইস প্রযুক্তি বাস্তবায়নের জন্য আরও ভাল গোপনীয়তার গল্প প্রদান করে।

ক্রসডিভাইস মডিউল সীমানা

CrossDevice APIs packages/modules/CrossDevice/framework
  • NearbyManager
  • AccountProviderBase
ক্রসডিভাইস পরিষেবা packages/modules/CrossDevice/service
  • NearbyService - স্ক্যানিং API

ক্রসডিভাইস প্যাকেজ বিন্যাস

এই মডিউলের প্রধান ফাংশন একটি APEX প্যাকেজ অন্তর্ভুক্ত করা হয়. সম্পদ একটি APK এ প্যাকেজ করা হয়.

ক্রসডিভাইস নির্ভরতা

ক্রসডিভাইস নিম্নলিখিত উপর নির্ভর করে:

  • ওয়াইফাই
  • ব্লুটুথ
  • UWB
  • মডিউল-ব্যবহার-পূর্ব শর্ত
  • প্রোটো লাইব্রেরি

ক্রসডিভাইস কাস্টমাইজেশন বিকল্প

আমরা OEMS কে RRO এর মাধ্যমে অর্ধেক শীটের জন্য UI কাস্টমাইজ করার অনুমতি দেওয়ার পরিকল্পনা করছি। কার্যকারিতা কাস্টমাইজ করার কোন পরিকল্পনা নেই।

ক্রসডিভাইস পরীক্ষার কৌশল

আমরা ক্রসডিভাইস কার্যকারিতা যাচাই করতে অ্যান্ড্রয়েড কম্প্যাটিবিলিটি টেস্ট স্যুট (সিটিএস) পরীক্ষা এবং এমটিএস-এ ক্রস ডিভাইস টেস্টিং যোগ করার পরিকল্পনা করছি।

eBPF টিথারিং অফলোড

হার্ডওয়্যার অফলোডের উত্তর না দিয়ে হাই-স্পিড টিথারিং প্রদান করতে, Android 11 একটি টিথারিং সফ্টওয়্যার অফলোড সমাধান প্রদান করে যাকে বলা হয় IPv6 ডাউনলোডের জন্য eBPF টিথারিং অফলোড (টিথারড ডিভাইসে ট্র্যাফিক প্রবাহিত)।

অ্যান্ড্রয়েড 12 থেকে, এই কার্যকারিতা (ইবিপিএফ প্রোগ্রাম কোড সহ) সম্পূর্ণরূপে টিথারিং মডিউল দ্বারা সরবরাহ করা হয়, যা নিম্নলিখিতগুলিকে সমর্থন করে:

  • IPv6 ডাউনলোড (টিথারড ডিভাইসে ট্র্যাফিক প্রবাহিত)
  • IPv6 আপলোড (টিথারড ডিভাইস থেকে ট্র্যাফিক প্রবাহিত)
  • IPv4 TCP/UDP আপলোড এবং ডাউনস্ট্রিম (টিথারড ডিভাইসে/থেকে ট্র্যাফিক প্রবাহিত)
  • eBPF অফলোড

এই বৈশিষ্ট্যটি ডিফল্টরূপে সক্রিয় থাকে, ব্যবহারকারীরা RRO দ্বারা config_tether_enable_bpf_offload কনফিগারেশনকে মিথ্যাতে ওভাররাইড করতে পারে। আরও তথ্যের জন্য কাস্টমাইজেশন দেখুন।

IPv4 এবং IPv6 সমর্থন

টিথারিং মডিউল IPv4 এবং IPv6 ডুয়াল স্ট্যাক সমর্থন করে।

  • IPv4 নেটওয়ার্কের জন্য, মডিউল নেটওয়ার্ক ঠিকানা অনুবাদ (NAT) সেট আপ করে এবং IP ঠিকানা অ্যাসাইনমেন্টের জন্য ডায়নামিক হোস্ট কনফিগারেশন প্রোটোকল (DHCP) গ্রহণ করে।

  • IPv6 নেটওয়ার্কগুলির জন্য, মডিউলটি IP ঠিকানা অ্যাসাইনমেন্টের জন্য IPv6 স্টেটলেস অ্যাড্রেস অটোকনফিগারেশন (SLAAC) গ্রহণ করে।

মডিউল সীমানা

অ্যান্ড্রয়েড 12 এবং উচ্চতর জন্য, packages/modules/Connectivity অধীনে সমস্ত ফাইল/ফোল্ডার টিথারিং মডিউলের সুযোগে রয়েছে।

অ্যান্ড্রয়েড 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 বা উচ্চতর সংস্করণে চলমান ডিভাইসগুলির জন্য উপলব্ধ৷

কানেক্টিভিটি সার্ভিস অন্তর্ভুক্ত করুন

Android 12 থেকে, ConnectivityService কোড যেটি L3+ কানেক্টিভিটির কেন্দ্রীয় উপাদান প্রয়োগ করে তা টিথারিং APEX-এ যোগ করা হয়েছে। টিথারিংয়ের সুযোগ একটি সংযোগ মডিউলে প্রসারিত হয়।

মডিউল নির্ভরতা

টিথারিং মডিউলের নিম্নলিখিত নির্ভরতা রয়েছে:

  • সিস্টেম সার্ভারে সর্বজনীন এবং সিস্টেম API পদ্ধতি
  • সিস্টেম সার্ভারের সাথে স্থিতিশীল AIDL IPCs ইন্টারফেস
  • tetheroffload HIDL ( hardware/interfaces/tetheroffload/ এ সংজ্ঞায়িত)
  • DHCP সার্ভার (নেটওয়ার্ক স্ট্যাক মডিউলের অংশ)

কাস্টমাইজেশন

টিথারিং মডিউল কাস্টমাইজেশন সমর্থন করে না।

পরীক্ষামূলক

অ্যান্ড্রয়েড কম্প্যাটিবিলিটি টেস্ট স্যুট (সিটিএস) টিথারিং মডিউলের কার্যকারিতা যাচাই করে।