Ağ Yığını

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'ye yönelik güncellemeler, yeni paket türleri yaygınlaştıkça Android'in Wi-Fi'de 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 hizmetler farklı bir işleme taşınmış ve kararlı bir AIDL arayüzü üzerinden erişilmektedir.

  • 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 ise işlem sırasında kullanılıyordu. DhcpClient arayüzlere atanabilmeleri için DHCP sunucularından IP adresleri alır.

  • Ağ Monitörü. NetworkMonitor bileşeni, yeni bir ağa bağlanırken veya ağ arızalarında, sabit portalları tespit ederken ve ağları doğrularken internete erişilebilirliği test eder.

  • Esir portal giriş uygulaması. Sabit portallarda oturum açmayı yönetmekten sorumlu, önceden yüklenmiş bir uygulama. Bu, Android 5.0'dan bu yana ayrı bir uygulamadır ancak bazı kullanıcı seçimlerini sisteme iletmek için NetworkMonitor ile 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/ de:

    • apf
    • dhcp
    • ip
    • netlink
    • (kısmen) util
  • Sabit portal tespiti 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 packages/modules/NetworkStack , packages/modules/CaptivePortalLogin ve diğer bazı paylaşılan konumlardadır. Yukarıdaki yollar, dosyaların Ana Hat için oraya taşınmadan önceki konumlarını belirtir. 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 formatında aşağıdaki bileşenleri içerir:

  • IP hizmetleri
  • Sabit portal girişi ( 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ırma modülü eşlik eder.

Bağımlılıklar

Ağ Yığını modülü aşağıdakilere bağlıdır:

  • Sistem sunucusundaki ayrıcalıklı @hide yöntemleri (örneğin, IConnectivityManager.aidl ). Bu API'ler @SystemApi haline getirildi ve uygun şekilde korunarak Ana Hat modülü tarafından erişilebilmesi ancak diğer ayrıcalıklı uygulamalar tarafından erişilebilmesi (örneğin, yeni bir imza izni kullanılarak) mümkün olmadı.

  • INetd.aidl tanımlanan netd yönelik Bağlayıcı IPC'ler. Bu arayüz kararlı AIDL'ye dönüştürüldü ve uygunluk testlerine tabi tutuldu.