Penambatan

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 dalam hardware/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.