bağlama

Android 13'teki güncellemeler

Güncelleme Daha fazla bilgi
CrossDevice Tanıtıldı Çapraz Cihaz
Bölünmüş tünelleme tanıtıldı Bölünmüş tünel açma

Genel Bakış

Bağlantı modülü, bir Android cihazının internet bağlantısını Wi-Fi, USB, Bluetooth veya Ethernet üzerinden bağlantı cihazlarına bağlanabilen diğer bağlı istemci cihazlarla paylaşır. Bu modül, bağlantı bileşenini (USB, Wi-Fi erişim noktası, Bluetooth vb.) ve bağımlılıklarını (bağlantı 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.

Bağlantı 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ını giderir.

  • OEM'ler taşıyıcı gereksinimlerini karşılarken aynı zamanda bireysel özelleştirme maliyetlerini de azaltabilirler (çünkü aynı gereksinimlerin farklı şekillerde farklı uygulamalarına ihtiyaç duymazlar).

Bölünmüş tünel açma

Bölünmüş tünelleme kullanım örneklerini desteklemek amacıyla, hariç tutma yollarını belirtmek üzere Android 13'e yeni bir API eklendi.

Bölünmüş tünelleme, belirli trafiğin VPN üzerinden geçerken diğer trafiğin geçmediği yapılandırmayı ifade eder. Yaygın bir örnek, bir kuruluşun genel web sörfü, bant genişliği yoğun (örneğin, YouTube, Netflix) veya gecikmeye duyarlı uygulamaların (örneğin, Office 365 ) VPN'yi atlamasını istemesidir. Bölünmüş tünelleme mevcut olmadan önce, VpnService.Builder , VPN istemcisinin kendisine yalnızca bazı alt ağların yönlendirilmesi gerektiğini belirtmesine izin veriyordu (yolları dahil ). Bölünmüş tünellemeyle, bunun tersini belirleme olanağına sahipsiniz: belirli alt ağlar hariç (yolları hariç tutun ) tüm trafiği VPN'ye yönlendirmek için.

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

public Builder excludeRoute(@NonNull IpPrefix prefix)

Çapraz Cihaz

Android 13'te tanıtılan CrossDevice, standart protokolleri kullanarak cihazlar arası iletişim teknolojilerini 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 zorunda kalmadan kendi hesap anahtarı sistemlerini CrossDevice uygulamasıyla entegre edebilirler.
  • Protokolün daha görünür şekilde uygulanması. CrossDevice modülü açık kaynaktır ve uygulama ayrıntılarına ilişkin daha fazla görünürlük ve CrossDevice teknolojilerinin uygulanması için daha iyi bir gizlilik öyküsü sağlar.

CrossDevice modül sınırı

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

CrossDevice paket formatı

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

CrossDevice bağımlılıkları

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

  • Wifi
  • Bluetooth
  • UWB
  • modüller-utils-önkoşullar
  • Proto kitaplıkları

CrossDevice ö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ştirmeye yönelik bir plan yoktur.

CrossDevice test stratejisi

CrossDevice işlevselliğini doğrulamak için Android Uyumluluk Test Paketi (CTS) testleri ve MTS'ye cihazlar arası testler eklemeyi planlıyoruz.

eBPF bağlama boşaltma

Android 11, donanım yük aktarımına yanıt vermeden yüksek hızlı bağlantı aktarımı sağlamak amacıyla, IPv6 indirmesi (bağlı cihaza trafik akışı) için eBPF bağlantı aktarımı boşaltma adı verilen bir bağlama 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 modülü tarafından sağlanır:

  • IPv6 indirme (bağlı cihaza trafik akışı)
  • IPv6 yüklemesi (bağlı cihazdan trafik akışı)
  • IPv4 TCP/UDP yükleme ve aşağı akış (bağlı cihaza/cihazdan trafik akışı)
  • eBPF boşaltma

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

Bağlantı modülü IPv4 ve IPv6 ikili 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) kullanır.

  • 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 üzeri için packages/modules/Connectivity altındaki tüm dosyalar/klasörler Bağlantı modülü kapsamındadır.

Android 11 ve daha düşük sürümler için Tethering modülünde packages/modules/Tethering biçiminde aşağıdaki Android 10 dosyaları bulunur.

  • 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ı

Bağlantı modülü ( com.android.tethering ) APEX biçimindedir ve Android 11 veya üstünü ç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 eklendi. Bağlantının kapsamı bir Bağlantı modülüne doğru genişler.

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

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

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

Özelleştirme

Bağlantı modülü özelleştirmeyi desteklemez.

Test yapmak

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