Network Stack, Android'in gelişen ağ standartlarına uyum sağlayabilmesini sağlayan ve yeni uygulamalarla birlikte çalışabilmesine olanak tanıyan güncellenebilir bir Mainline modülüdür. Örneğin, bağlılık portalı algılama ve giriş kodunda yapılan güncellemeler Android'in değişen bağlılık portalı modelleriyle güncel kalmasını sağlar. APF'de yapılan güncellemeler ise yeni paket türleri yaygınlaştıkça Android'in kablosuz ağda güç tasarrufu yapmasını sağlar.
Dahil edilen bileşenler
Ağ yığın modülü aşağıdaki bileşenleri içerir. Modülü kullanan cihazlarda bu hizmetler farklı bir işleme taşındı ve kararlı bir AIDL arayüzü üzerinden erişiliyor.
IP hizmetleri.
IpClient
(eski adıylaIpManager
), IP katmanında temel hazırlığı ve bakımdan sorumlu bir bileşendir. Android 9'da Bluetooth gibi bileşenler tarafından işlemler arası ve kablosuz bağlantı gibi bileşenler tarafından işlem içi olarak kullanılıyordu.DhcpClient
, arayüzlere atanabilmeleri için DHCP sunucularından IP adresleri alır.NetworkMonitor.
NetworkMonitor
bileşeni, yeni bir ağa bağlanırken veya ağ hataları oluştuğunda, giriş portallarını tespit ederken ve ağları doğrularken internet erişilebilirliğini test eder.Giriş portalı giriş uygulaması. Giriş portallarında girişi yönetmekten sorumlu önceden yüklenmiş bir uygulamadır. Bu uygulama, Android 5.0'den beri ayrı bir uygulamadır ancak bazı kullanıcı seçimlerini sisteme iletmek için
NetworkMonitor
ile etkileşim kurar.
Etkilenen yollar
Yeniden yapılandırmanın ardından Network Stack modülüne taşınan yollar aşağıda listelenmiştir.
IP hizmetleri.
frameworks/base/services/net/java/android/net/
'te:apf
dhcp
ip
netlink
util
(kısmen)
Giriş portalı algılama ve giriş yapma
frameworks/base/
'te:core/java/android/net/captiveportal/
services/core/java/com/android/server/connectivity/NetworkMonitor.java
packages/CaptivePortalLogin/*
Taşınan kodun yeni konumu packages/modules/NetworkStack
,
packages/modules/CaptivePortalLogin
ve diğer bazı paylaşılan konumlarda yer alıyor. Yukarıdaki yollar, Mainline için taşınmadan önceki dosya konumlarını ifade eder.
packages/modules/NetworkStack
ve packages/modules/CaptivePortalLogin
içindeki dosyalar Mainline modülünün bir parçasıdır ve değiştirilemez.
Paket biçimi
Ağ Yığını modülü, APK biçiminde aşağıdaki bileşenleri içerir:
- IP hizmetleri
- Giriş portalına giriş (
com.google.android.captiveportallogin
)
Bu modüle, Ağ Yığını bileşenleri için gerekli izinleri tanımlayan önceden yüklenmiş bir APK dosyası olan Ağ Yığını İzin Yapılandırması modülü eşlik eder.
Bağımlılıklar
Ağ yığın modülü aşağıdakilere bağlıdır:
Sistem sunucusunda ayrıcalıklı @hide yöntemleri (ör.
IConnectivityManager.aidl
içinde). Bu API'ler, Mainline modülü tarafından erişilebilmeleri ancak diğer ayrıcalıklı uygulamalar tarafından erişilemeyecekleri şekilde@SystemApi
olarak ayarlanmış ve uygun şekilde korunmuştur (ör. yeni bir imza izni kullanılarak).INetd.aidl
içinde tanımlanannetd
için bağlayıcı IPC'ler. Bu arayüz kararlı AIDL'ye dönüştürülmüştür ve uygunluk testlerine tabidir.