Modul Tethering berbagi koneksi internet perangkat Android dengan perangkat klien lain yang terhubung, yang dapat terhubung ke perangkat tethering melalui Wi-Fi, USB, Bluetooth, atau Ethernet. Modul ini mencakup komponen tethering (USB, titik akses Wi-Fi, Bluetooth, dll.) dan dependensinya (interaksi dengan hak tethering, IpServer
, dan offloadController
). Modul ini dapat diperbarui, artinya dapat menerima pembaruan untuk fungsionalitas di luar siklus rilis Android normal.
Modul Tethering memungkinkan OEM di seluruh ekosistem Android untuk menggunakan implementasi referensi standar tunggal yang memberikan manfaat berikut.
Pengguna akhir mendapatkan pengalaman yang konsisten di seluruh perangkat Android dan perbaikan masalah interoperabilitas melalui pembaruan modul.
OEM dapat memenuhi persyaratan operator sekaligus mengurangi biaya untuk penyesuaian individual (karena mereka tidak memerlukan implementasi yang berbeda dari persyaratan yang sama dengan cara yang berbeda).
pembongkaran tethering eBPF
Untuk menyediakan tethering berkecepatan tinggi tanpa membalas saat pembongkaran perangkat keras, Android 11 menyediakan solusi pembongkaran perangkat lunak tethering yang disebut eBPF tethering offload untuk unduhan IPv6 (lalu lintas mengalir ke perangkat yang ditambatkan).
Dari Android 12, fungsi ini (termasuk kode program eBPF) sepenuhnya disediakan oleh modul Tethering, yang mendukung hal berikut:
- Unduhan IPv6 (lalu lintas mengalir ke perangkat yang ditambatkan)
- Unggah IPv6 (lalu lintas mengalir dari perangkat yang ditambatkan)
- Unggah dan hilir IPv4 TCP/UDP (lalu lintas mengalir ke/dari perangkat yang ditambatkan)
- pembongkaran eBPF
Fitur ini diaktifkan secara default, pengguna dapat mengganti konfigurasi config_tether_enable_bpf_offload
menjadi false oleh RRO. Lihat Penyesuaian untuk informasi lebih lanjut.
Dukungan IPv4 dan IPv6
Modul Tethering mendukung tumpukan ganda IPv4 dan IPv6.
Untuk jaringan IPv4, modul mengatur terjemahan alamat jaringan (NAT) dan mengadopsi protokol konfigurasi host dinamis (DHCP) untuk penetapan alamat IP.
Untuk jaringan IPv6, modul mengadopsi IPv6 stateless address autoconfiguration (SLAAC) untuk penetapan alamat IP.
Batas modul
Untuk Android 12 dan lebih tinggi, semua file/folder di bawah packages/modules/Connectivity
berada dalam cakupan modul Tethering.
Untuk Android 11 dan yang lebih rendah, modul Tethering memiliki file Android 10 berikut dalam packages/modules/Tethering
.
-
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
Format modul
Modul Tethering ( com.google.android.tethering
) dalam format APEX dan tersedia untuk perangkat yang menjalankan Android 11 atau lebih tinggi.
Sertakan Layanan Konektivitas
Dari Android 12, kode ConnectivityService
yang mengimplementasikan komponen utama konektivitas L3+ ditambahkan ke Tethering APEX. Cakupan Tethering berkembang menjadi modul Konektivitas.
Ketergantungan modul
Modul Tethering memiliki dependensi berikut:
- Metode API publik dan sistem di server sistem
- Antarmuka IPC AIDL yang stabil dengan server sistem
-
tetheroffload
HIDL (didefinisikan dalamhardware/interfaces/tetheroffload/
) - Server DHCP (bagian dari modul Network Stack)
Kustomisasi
Modul Tethering tidak mendukung penyesuaian.
Pengujian
Android Compatibility Test Suite (CTS) memverifikasi fungsionalitas modul Tethering.