Tethering

Il modulo Tethering condivide la connessione Internet di un dispositivo Android con altri dispositivi client connessi, che possono connettersi a dispositivi tethering tramite Wi-Fi, USB, Bluetooth o Ethernet. Questo modulo include la componente tethering (USB, punto di accesso Wi-Fi, Bluetooth, etc.) e le sue dipendenze (interazione con tethering diritto, IpServer , e offloadController ). Questo modulo è aggiornabile, il che significa che può ricevere aggiornamenti di funzionalità al di fuori del normale ciclo di rilascio di Android.

Il modulo Tethering consente agli OEM di tutto l'ecosistema Android di utilizzare un'unica implementazione di riferimento standard che offre i seguenti vantaggi.

  • Gli utenti finali ottengono un'esperienza coerente su tutti i dispositivi Android e risolvono i problemi di interoperabilità tramite gli aggiornamenti dei moduli.

  • Gli OEM possono soddisfare i requisiti del vettore riducendo anche i costi per le personalizzazioni individuali (poiché non necessitano di implementazioni diverse degli stessi requisiti in modi diversi).

Supporto IPv4 e IPv6

Il modulo Tethering supporta il doppio stack IPv4 e IPv6.

  • Per le reti IPv4, il modulo imposta la traduzione degli indirizzi di rete (NAT) e adotta il protocollo DHCP (Dynamic Host Configuration Protocol) per l'assegnazione dell'indirizzo IP.

  • Per le reti IPv6, il modulo adotta l'autoconfigurazione dell'indirizzo senza stato IPv6 (SLAAC) per l'assegnazione dell'indirizzo IP.

Confine del modulo

In Android 11, il modulo Tethering sposta i seguenti Android 10 file per 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

Formato modulo

Il modulo tethering ( com.google.android.tethering ) è in formato APEX ed è disponibile per dispositivi con Android 11 o superiore.

Dipendenze del modulo

Il modulo Tethering ha le seguenti dipendenze:

  • Metodi API pubblici e di sistema nel server di sistema
  • Interfaccia stabile degli IPC AIDL con il server di sistema
  • tetheroffload HIDL (definito in hardware/interfaces/tetheroffload/ )
  • Server DHCP (parte del modulo Stack di rete)

personalizzazione

Il modulo Tethering non supporta la personalizzazione.

test

Android Compatibility Test Suite (CTS) verifica la funzionalità del modulo Tethering.