Network Stack, Android'in gelişen ağ standartlarına uyum sağlayabilmesini sağlayan ve yeni uygulamalarla birlikte çalışabilirliğe izin veren güncellenebilir bir Ana Hat modülüdür. Örneğin, sabit portal algılama ve oturum açma kodundaki güncellemeler, Android'in değişen sabit portal modelleriyle güncel kalmasına olanak tanır ve APF'deki güncellemeler, yeni paket türleri yaygınlaştıkça Android'in Wi-Fi üzerinde güç tasarrufu yapmasına olanak tanır.
Dahil edilen bileşenler
Ağ Yığını modülü aşağıdaki bileşenleri içerir. Modülü kullanan cihazlarda bu servisler farklı bir sürece taşınmış ve stabil bir AIDL arayüzü üzerinden erişim sağlanmıştır.
IP hizmetleri.
IpClient(eski adıyla
IpManager), IP katmanı sağlama ve bakımından sorumlu bir bileşendir. Android 9'da zaten Bluetooth gibi bileşenler tarafından çapraz işlemlerde ve Wi-Fi gibi bileşenler tarafından işlem sırasında kullanılıyordu.
DhcpClient, arabirimlere atanabilmeleri için DHCP sunucularından IP adresleri alır.
Ağ İzleyicisi.
NetworkMonitorbileşeni, yeni bir ağa bağlanırken veya ağ arızalarında, sabit portalları algılarken ve ağları doğrularken internet erişilebilirliğini test eder.
Esir portal oturum açma uygulaması. Kısıtlanmış portallarda oturum açmayı yönetmekten sorumlu, önceden yüklenmiş bir uygulama. Bu, Android 5.0'dan beri ayrı bir uygulama olmuştur, ancak bazı kullanıcı seçimlerini sisteme iletmek için
NetworkMonitorile etkileşime girer.
Etkilenen yollar
Refactor tarafından Network Stack modülüne taşınan yollar aşağıda listelenmiştir.
IP hizmetleri.
frameworks/base/services/net/java/android/net/içinde:
-
apf
-
dhcp
-
ip
-
netlink
-
util(kısmen)
-
Esir portal algılama ve oturum açma.
frameworks/base/:
-
core/java/android/net/captiveportal/
-
services/core/java/com/android/server/connectivity/NetworkMonitor.java
-
packages/CaptivePortalLogin/*
-
Taşınan kodun yeni konumu, package
packages/modules/NetworkStack ,
packages/modules/CaptivePortalLogin ve diğer bazı paylaşılan konumlardır. Yukarıdaki yollar, Ana Hat için oraya taşınmadan önce dosyaların konumuna atıfta bulunur. package
packages/modules/NetworkStack ve
packages/modules/CaptivePortalLogin içindeki dosyalar, Mainline modülünün parçasıdır ve değiştirilemez.
Paket formatı
Ağ Yığını modülü, APK biçiminde aşağıdaki bileşenleri içerir:
- IP hizmetleri
- Sabit portal girişi (
com.google.android.captiveportallogin)
Bu modüle, Network Stack bileşenleri için gerekli izinleri tanımlayan önceden yüklenmiş bir APK dosyası olan Network Stack Permission Config modülü eşlik eder.
Bağımlılıklar
Ağ Yığını modülü aşağıdakilere bağlıdır:
Sistem sunucusunda (örneğin,
IConnectivityManager.aidl) ayrıcalıklı @hide yöntemleri. Bu API'ler,
@SystemApiyapılmıştır ve Mainline modülü tarafından erişilebilmeleri ancak diğer ayrıcalıklı uygulamalar tarafından erişilemeyecekleri (örneğin, yeni bir imza izni kullanarak) için uygun şekilde korunmuştur.
netdtanımlanan
INetd.aidl. Bu arayüz kararlı AIDL'ye dönüştürülmüştür ve uygunluk testlerine tabidir.