Android 13'teki güncellemeler
Güncelle | Daha fazla bilgi |
---|---|
CrossDevice özelliği kullanıma sunuldu | CrossDevice |
Bölünmüş tünel özelliği kullanıma sunuldu | Bölünmüş tünel oluşturma |
Genel Bakış
Tethering modülü, Android cihazın internet bağlantısını kablosuz ağ, USB, Bluetooth veya Ethernet üzerinden tethering cihazlara bağlanabilen diğer bağlı istemci cihazlarla paylaşır. Bu modül, tethering bileşenini (USB, kablosuz erişim noktası, Bluetooth vb.) ve bağımlılarını (tethering hakkı, IpServer
ve offloadController
ile etkileşim) içerir. Bu modül güncellenebilirdir. Yani normal Android sürüm döngüsü dışında işlevsellik güncellemeleri alabilir.
Tethering modülü, Android ekosistemindeki OEM'lerin aşağıdaki avantajları sağlayan tek bir standart referans uygulamasını kullanmasına olanak tanır.
Son kullanıcılar, Android cihazlar arasında tutarlı bir deneyim elde eder ve modül güncellemeleri sayesinde birlikte çalışabilirlik sorunlarının düzeltilmesini sağlar.
OEM'ler, operatör şartlarını karşılarken aynı zamanda bireysel özelleştirmelerin maliyetlerini de düşürebilir (aynı şartların farklı şekillerde uygulanmasına gerek olmadığı için).
Bölünmüş tünel
Bölünmüş tünelleme kullanım alanlarını desteklemek için Android 13'e hariç tutma rotaları belirtecek yeni bir API eklenmiştir.
Bölünmüş tünel, belirli trafiğin VPN'den geçtiği, diğer trafiğin ise geçmediği yapılandırmayı ifade eder. Kuruluşların VPN'i atlamak için genel web sörfü, bant genişliği yoğun (ör. YouTube, Netflix) veya gecikmeye duyarlı uygulamalar (ör. Office 365) istemesi yaygın bir örnektir. Bölünmüş tünel oluşturma özelliği kullanıma sunulmadan önce VpnService.Builder
, VPN istemcisinin kendisine yalnızca bazı alt ağların yönlendirileceğini belirtmesine olanak tanır (rotaları dahil et). Bölünmüş tünelleme ile, tersini belirtebilirsiniz: belirli alt ağlar hariç tüm trafiği VPN'ye yönlendirmek (rotaları hariç tutma) için kullanılır.
Yeni bölünmüş tünel API'sinin imzası:
public Builder excludeRoute(@NonNull IpPrefix prefix)
CrossDevice
Android 13'te kullanıma sunulan CrossDevice, standart protokoller kullanarak cihazlar arası iletişim teknolojileri sunmayı amaçlar. Cihaz keşfi, kimlik doğrulaması yapılmış bağlantı ve diğer cihazlar arası deneyimler için API'ler ve özellikler sağlar.
Cihazlar arası motivasyon
- OEM iş ortaklarıyla daha sıkı bir 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 bir şekilde uygulanması. CrossDevice modülü açık kaynaktır. Bu sayede, uygulama ayrıntıları hakkında daha fazla bilgi edinebilir ve CrossDevice teknolojileri uygulama konusunda daha iyi bir gizlilik hikayesi oluşturabilirsiniz.
Cihazlar arası modül sınırı
Cihazlar Arası API'ler | packages/modules/CrossDevice/framework içinde
|
Cihazlar Arası Hizmetler | packages/modules/CrossDevice/service içinde
|
Cihazlar Arası paket biçimi
Bu modülün ana işlevi bir APEX paketine dahildir. Kaynaklar bir APK'da paketlenir.
Cihazlar arası bağımlılıklar
Cihazlar arası şunlara bağlıdır:
- Kablosuz
- Bluetooth
- ultra geniş bant
- modules-utils-preconditions
- Proto kitaplıkları
Cihazlar arası özelleştirme seçenekleri
OEM'lerin, RRO aracılığıyla yarım sayfa için kullanıcı arayüzünü özelleştirmesine izin vermeyi planlıyoruz. Bu işlevi özelleştirmek için herhangi bir planımız yok.
Cihazlar arası test stratejisi
Cihazlar arası işlevselliği doğrulamak için Android Compatibility Test Suite (CTS) testlerini, MTS'ye ise cihazlar arası testler eklemeyi planlıyoruz.
eBPF tethering offload
Android 11, donanımdan aktarma işlemlerine ihtiyaç duymadan yüksek hızlı tethering sağlamak için IPv6 indirme (bağlantılı cihaza akan trafik) için eBPF tethering aktarma işlemi adlı bir tethering yazılım aktarma çözümü sunar.
Android 12'den itibaren bu işlev (eBPF program kodu dahil), aşağıdakileri destekleyen Tethering modülü tarafından tamamen sağlanır:
- IPv6 indirme (bağlantılı cihaza akan trafik)
- IPv6 yüklemesi (bağlanan cihazdan gelen trafik)
- IPv4 TCP/UDP yükleme ve yayın (bağlantılı cihaza/bağlantılı cihazdan akan trafik)
- eBPF boşaltma
Bu özellik varsayılan olarak etkindir. Kullanıcılar, RRO ile config_tether_enable_bpf_offload
yapılandırmasını geçersiz kılarak yanlış değerine ayarlayabilir.
Daha fazla bilgi için Özelleştirme bölümüne bakın.
IPv4 ve IPv6 desteği
Tethering modülü, IPv4 ve IPv6 çift yığınını destekler.
Modül, IPv4 ağları için ağ adresi çevirimini (NAT) ayarlar ve IP adresi ataması için dinamik ana makine yapılandırması protokolünü (DHCP) kullanır.
IPv6 ağlarında modül, IP adresi ataması için IPv6 durum bilgisiz adres otomatik yapılandırmasını (SLAAC) kullanır.
Modül sınırı
Android 12 ve sonraki sürümlerde, packages/modules/Connectivity
altındaki tüm dosyalar/klasörler Tethering modülü kapsamındadır.
Android 11 ve önceki sürümlerde Tethering modülü, 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 biçimi
Tethering modülü (com.android.tethering
), APEX biçimindedir ve Android 11 veya sonraki sürümleri çalıştıran cihazlarda kullanılabilir.
ConnectivityService'i dahil edin
Android 12'den itibaren, L3+ bağlantısının merkezi bileşenini uygulayan ConnectivityService
kodu, Tethering APEX'e eklenir. Tethering'in kapsamı, Bağlantı modülü olarak genişletildi.
Modül bağımlılıkları
Tethering modülü aşağıdaki bağımlılıklara sahiptir:
- Sistem sunucusundaki herkese açık API ve sistem API yöntemleri
- Kararlı AIDL IPC'lerin sistem sunucusuyla 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 desteklemez.
Test
Android Uyumluluk Test Paketi (CTS), Tethering modülünün işlevini doğrular.