bağlama

Tethering modülü, bir Android cihazının internet bağlantısını, Wi-Fi, USB, Bluetooth veya Ethernet üzerinden tethering cihazlarına bağlanabilen diğer bağlı istemci cihazlarla paylaşır. Bu modül, tethering bileşenini (USB, Wi-Fi erişim noktası, Bluetooth vb.) ve bağımlılıklarını (tethering yetkisi, IpServer ve offloadController ile etkileşim) içerir. Bu modül güncellenebilir, yani normal Android sürüm döngüsünün dışındaki işlevsellik güncellemelerini alabilir.

Tethering modülü, Android ekosistemindeki OEM'lerin aşağıdaki faydaları sağlayan tek bir standart referans uygulamasını kullanmasını sağlar.

  • Son kullanıcılar, Android cihazlarda tutarlı bir deneyim elde eder ve modül güncellemeleri aracılığıyla birlikte çalışabilirlik sorunlarına yönelik düzeltmeler elde eder.

  • OEM'ler, taşıyıcı gereksinimlerini karşılarken aynı zamanda bireysel özelleştirmeler için maliyetleri düşürür (çünkü aynı gereksinimlerin farklı şekillerde farklı uygulamalarına ihtiyaç duymazlar).

eBPF tethering aktarımı

Donanım aktarımlarına yanıt vermeden yüksek hızlı tethering sağlamak için Android 11, IPv6 indirmesi (bağlı cihaza trafik akışı) için eBPF tethering offload adlı bir tethering yazılımı boşaltma çözümü sunar.

Android 12'den itibaren bu işlevsellik (eBPF program kodu dahil) tamamen aşağıdakileri destekleyen Tethering Mainline modülü tarafından sağlanır:

  • IPv6 indirme (bağlı cihaza akan trafik)
  • IPv6 yüklemesi (bağlı cihazdan akan trafik)
  • IPv4 TCP/UDP karşıya yükleme ve aşağı akış (bağlı cihaza/cihazdan akan trafik)
  • eBPF aktarımı

Bu özellik varsayılan olarak etkindir, kullanıcılar config_tether_enable_bpf_offload yapılandırmasını RRO tarafından false olarak geçersiz kılabilir. Daha fazla bilgi için Özelleştirme'ye bakın.

IPv4 ve IPv6 desteği

Tethering modülü, IPv4 ve IPv6 çift yığınını destekler.

  • IPv4 ağları için modül, ağ adresi çevirisini (NAT) kurar ve IP adresi ataması için dinamik ana bilgisayar yapılandırma protokolünü (DHCP) benimser.

  • IPv6 ağları için modül, IP adresi ataması için IPv6 durumsuz adres otomatik yapılandırmasını (SLAAC) benimser.

Modül sınırı

Android 12 ve üstü için, packages/modules/Connectivity altındaki tüm dosyalar/klasörler Tethering modülü kapsamındadır.

Android 11 ve önceki sürümler için, Tethering modülü, package packages/modules/Tethering içinde aşağıdaki Android 10 dosyalarına sahiptir.

  • 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

Modül formatı

Tethering modülü ( com.google.android.tethering ) APEX biçimindedir ve Android 11 veya sonraki sürümleri çalıştıran cihazlarda kullanılabilir.

Bağlantı Hizmetini Dahil Et

Android 12'den itibaren, L3+ bağlantısının merkezi bileşenini uygulayan ConnectivityService kodu, Tethering APEX'e eklenir. Tethering'in kapsamı, bir Bağlantı modülüne genişler.

Modül bağımlılıkları

Tethering modülü aşağıdaki bağımlılıklara sahiptir:

  • Sistem sunucusundaki genel ve sistem API yöntemleri
  • Sistem sunucusuyla kararlı AIDL IPC'ler arayüzü
  • tetheroffload HIDL ( hardware/interfaces/tetheroffload/ içinde tanımlanmıştır)
  • DHCP sunucusu (Ağ Yığını modülünün bir parçası)

özelleştirme

Tethering modülü özelleştirmeyi desteklemiyor.

Test yapmak

Android Uyumluluk Test Paketi (CTS), Tethering modülünün işlevselliğini doğrular.