Android 13'teki güncellemeler
Güncelle | Daha fazla bilgi |
---|---|
Cihazlar Arası ile tanışın | CrossDevice |
Bölünmüş tünel oluşturma özelliği kullanıma sunuldu | Bölünmüş tünel |
Genel Bakış
Tethering modülü, bir Android cihazın internet bağlantısını diğer bağlı istemci cihazlarla paylaşır. Bu cihazlar, tethering cihazlarına kablosuz ağ, USB, Bluetooth veya Ethernet üzerinden bağlanabilir. 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 yayın döngüsü dışında işlevsellik güncellemeleri alabilir.
Tethering modülü, Android ekosistemindeki OEM'lerin aşağıdaki avantajları sağlayan tek ve standart bir referans uygulaması kullanmasına olanak tanır.
Son kullanıcılar, Android cihazlarda tutarlı bir deneyim elde eder ve modül güncellemeleri sayesinde birlikte çalışabilirlik sorunları düzeltilir.
OEM'ler, operatörlerin şartlarını karşılayabilir ve aynı zamanda bireysel özelleştirmelerin maliyetini düşürebilir (çünkü aynı şartların farklı şekillerde uygulanmasına gerek yoktur).
Bölünmüş tünel
Bölünmüş tünel kullanım alanlarını desteklemek için Android 13'e hariç tutulacak rotaları belirten yeni bir API eklendi.
Bölünmüş tünel, belirli trafiğin VPN üzerinden geçtiği, diğer trafiğin ise geçmediği yapılandırmayı ifade eder. Yaygın bir örnek, bir kuruluşun genel web'de gezinme, bant genişliği yoğun (örneğin, YouTube, Netflix) veya gecikmeye duyarlı uygulamaların (örneğin, Office 365) VPN'yi atlamasını istediği durumdur. Bölünmüş tünel oluşturma özelliği kullanıma sunulmadan önce VpnService.Builder
, VPN istemcisinin yalnızca bazı alt ağların kendisine yönlendirilmesi gerektiğini belirtmesine olanak tanıyordu (include rotaları). Bölünmüş tünelleme ile tersini belirtebilirsiniz: Belirli alt ağlar (hariç tutulan rotalar) hariç tüm trafiği VPN'ye yönlendirebilirsiniz.
Yeni split tünel API'sinin imzası şöyledir:
public Builder excludeRoute(@NonNull IpPrefix prefix)
CrossDevice
Android 13'te kullanıma sunulan CrossDevice, standart protokolleri kullanarak cihazlar arası iletişim teknolojileri sağlamayı amaçlar. Bu SDK, 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 iş ortaklarıyla daha sıkı işbirliği. OEM'ler, Google'ın çözümünü kullanmak zorunda kalmak yerine kendi hesap anahtarı sistemlerini CrossDevice uygulamasına entegre edebilir.
- Protokolün daha görünür şekilde uygulanması. Cihazlar Arası modülü açık kaynaklıdır. Bu sayede, uygulama ayrıntıları hakkında daha fazla görünürlük ve Cihazlar Arası teknolojilerin uygulanması için daha iyi bir gizlilik hikayesi sunar.
CrossDevice modül sınırı
CrossDevice API'leri | packages/modules/CrossDevice/framework içinde
|
CrossDevice Services | packages/modules/CrossDevice/service içinde
|
CrossDevice paket biçimi
Bu modülün ana işlevi bir APEX paketinde yer alır. Kaynaklar bir APK'da paketlenir.
Cihazlar arası bağımlılıklar
Cihazlar Arası, aşağıdakilere bağlıdır:
- Kablosuz
- Bluetooth
- ultra geniş bant
- modules-utils-preconditions
- Proto kitaplıkları
Cihazlar arası özelleştirme seçenekleri
RRO aracılığıyla OEM'lerin kullanıcı arayüzünü yarım sayfa için özelleştirmesine izin vermeyi planlıyoruz. İşlevselliği özelleştirme planı yoktur.
Cihazlar arası test stratejisi
CrossDevice işlevini doğrulamak için Android Uyumluluk Test Paketi (CTS) testlerini ve MTS'ye cihazlar arası testleri eklemeyi planlıyoruz.
eBPF tethering offload
Android 11, donanım boşaltmalarına güvenmeden yüksek hızlı tethering sağlamak için IPv6 indirme (tethering yapılan cihaza akan trafik) için eBPF tethering boşaltma adlı bir tethering yazılım boşaltma çözümü sunar.
Android 12'den itibaren bu işlev (eBPF program kodu dahil) tamamen Tethering modülü tarafından sağlanır. Bu modül şunları destekler:
- IPv6 indirme (bağlı cihaza akan trafik)
- IPv6 yükleme (bağlı cihazdan gelen trafik)
- IPv4 TCP/UDP yükleme ve indirme (bağlı cihaza/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.
IPv4 ağlarında modül, ağ adresi çevirisi (NAT) ayarlar ve IP adresi atama için dinamik ana makine yapılandırma protokolünü (DHCP) kullanır.
IPv6 ağlarında, modül IP adresi atama için IPv6 durumsuz 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ını içerir.
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ümlerin yüklü olduğu cihazlarda kullanılabilir.
Include ConnectivityService
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ünü de kapsayacak şekilde genişletildi.
Modül bağımlılıkları
Tethering modülü aşağıdaki bağımlılıklara sahiptir:
- Sistem sunucusundaki herkese açık ve sistem API yöntemleri
- Sistem sunucusuyla kararlı AIDL IPC'leri arayüzü
tetheroffload
HIDL (hardware/interfaces/tetheroffload/
içinde tanımlanı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şlevselliğini doğrular.