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
|
Cihazlar Arası Hizmetler | packages/modules/CrossDevice/service
|
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.