bağlama

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

Android 13'teki güncellemeler

Güncelleme Daha fazla bilgi
Tanıtılan CrossDevice Cihazlar Arası
Tanıtılan bölünmüş tünelleme Bölünmüş tünelleme

genel bakış

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, (aynı gereksinimlerin farklı şekillerde farklı uygulamalarına ihtiyaç duymadıkları için) bireysel özelleştirme maliyetlerini düşürürken aynı zamanda taşıyıcı gereksinimlerini karşılayabilir.

Bölünmüş tünelleme

Bölünmüş tünel kullanım durumlarını desteklemek için, hariç tutma yollarını belirtmek için Android 13'e yeni bir API eklenir.

Bölünmüş tünelleme, belirli trafiğin VPN üzerinden geçtiği ve diğer trafiğin geçmediği yapılandırmayı ifade eder. Yaygın bir örnek, bir kuruluşun VPN'yi atlamak için genel web'de gezinme, bant genişliği açısından yoğun (örneğin, YouTube, Netflix) veya gecikmeye duyarlı uygulamaların (örneğin, Office 365 ) istediği durumdur. Bölünmüş tünelleme kullanılabilir olmadan önce, VpnService.Builder , VPN istemcisinin yalnızca bazı alt ağların kendisine yönlendirilmesi gerektiğini (yolları içerir ) belirtmesine izin verdi. Bölünmüş tünelleme ile, belirli alt ağlar (yolları hariç tutma ) dışında tüm trafiği VPN'ye yönlendirmek için tersini belirleme olanağına sahipsiniz.

Yeni bölünmüş tünel oluşturma API'sinin imzası:

public Builder excludeRoute(@NonNull IpPrefix prefix)

Cihazlar Arası

Android 13'te tanıtılan CrossDevice, standart protokoller kullanarak cihazlar arası iletişim teknolojileri sağlamayı hedefliyor. Cihaz keşfi, kimliği doğrulanmış bağlantı ve diğer cihazlar arası deneyimler için API'ler ve özellikler sağlar.

Cihazlar arası motivasyon

  • OEM ortaklarıyla daha sıkı işbirliği. OEM'ler, Google'ın çözümünü kullanmak yerine kendi hesap anahtar sistemlerini CrossDevice uygulamasıyla entegre edebilir.
  • Protokolün daha görünür uygulaması. CrossDevice modülü, CrossDevice teknolojilerinin uygulanması için uygulama ayrıntılarına daha fazla görünürlük ve daha iyi gizlilik hikayesi sağlayan açık kaynaklıdır.

Cihazlar Arası modül sınırı

Cihazlar Arası API'ler packages/modules/CrossDevice/framework
  • NearbyManager
  • AccountProviderBase
Cihazlar Arası Hizmetler packages/modules/CrossDevice/service
  • NearbyService - tarama API'sı

Cihazlar arası paket formatı

Bu modülün ana işlevi bir APEX paketine dahildir. Kaynaklar bir APK içinde paketlenmiştir.

Cihazlar arası bağımlılıklar

CrossDevice aşağıdakilere bağlıdır:

  • Kablosuz internet
  • Bluetooth
  • UWB
  • modüller-utils-önkoşulları
  • Ön kitaplıklar

Cihazlar arası özelleştirme seçenekleri

OEM'lerin kullanıcı arayüzünü RRO aracılığıyla yarım sayfa için özelleştirmesine izin vermeyi planlıyoruz. İşlevselliği özelleştirme planı yoktur.

Cihazlar arası test stratejisi

CrossDevice işlevselliğini doğrulamak ve MTS'ye çapraz cihaz testi yapmak için Android Uyumluluk Test Paketi (CTS) testleri eklemeyi planlıyoruz.

eBPF tethering aktarımı

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

Android 12'den itibaren bu işlevsellik (eBPF program kodu dahil) tamamen aşağıdakileri destekleyen Tethering 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.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.