Ağ Yığını

Network Stack, Android'in gelişen ağ standartlarına uyum sağlamasını sağlayan ve yeni uygulamalarla birlikte çalışabilmesine olanak tanıyan, güncellenebilir bir Mainline modülüdür. Örneğin, giriş portalı algılama ve giriş kodunda yapılan güncellemeler, Android'in değişen giriş portalı modellerine ayak uydurması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ına olanak tanır.

Dahil edilen bileşenler

Ağ Yığını modülü aşağıdaki bileşenleri içerir. Modülün kullanıldığı cihazlarda bu hizmetler farklı bir işleme taşındı ve kararlı bir AIDL arayüzü üzerinden erişiliyor.

  • IP hizmetleri. IpClient (eski adıyla IpManager), IP katmanı sağlama ve bakımdan sorumlu bir bileşendir. Android 9'da Bluetooth gibi bileşenler tarafından işlemler arası, kablosuz bağlantı gibi bileşenler tarafından ise 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ı algılanırken ve ağlar doğrulanırken internet erişilebilirliğini test eder.

  • Giriş portalı oturum açma uygulaması. Giriş portallarında oturum açmayı yönetmekten sorumlu, önceden yüklenmiş bir uygulama. Bu uygulama, Android 5.0'dan beri ayrı bir uygulama olarak sunulmaktadır ancak bazı kullanıcı tercihlerini sisteme iletmek için NetworkMonitor ile etkileşime girer.

Etkilenen yollar

Yeniden düzenleme işlemiyle 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)
  • Giriş portalı algılama ve giriş. frameworks/base/ içinde:

    • 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. Yukarıdaki yollar, dosyaların Mainline için taşınmadan önceki konumunu ifade eder. packages/modules/NetworkStack ve packages/modules/CaptivePortalLogin klasörlerindeki 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ı girişi (com.google.android.captiveportallogin)

Bu modül, Network Stack Permission Config modülüyle birlikte gelir. Bu modül, Network Stack bileşenleri için gerekli izinleri tanımlayan önceden yüklenmiş bir APK dosyasıdır.

Bağımlılıklar

Network Stack modülü şunlara bağlıdır:

  • Sistem sunucusundaki ayrıcalıklı @hide yöntemleri (ör. IConnectivityManager.aidl içinde). Bu API'ler, Mainline modülüne erişilebilir ancak diğer ayrıcalıklı uygulamalara erişilemez (ör. yeni bir imza izni kullanılarak) olacak şekilde @SystemApi ve uygun şekilde korunmuştur.

  • INetd.aidl içinde tanımlanan netd için bağlayıcı IPC'ler. Bu arayüz, kararlı AIDL'ye dönüştürüldü ve uygunluk testlerine tabi tutuluyor.