Ağ Yığını

Ağ Yığını, Android'in gelişen ağ standartlarına uyum sağlayabilmesini sağlayan ve yeni uygulamalarla birlikte çalışabilme olanağı sunan güncellenebilir bir ana hat 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ıyla IpManager), IP katmanında temel hazırlığı ve bakımdan sorumlu bir bileşendir. Android 9'da zaten kullanıldı. Bluetooth gibi bileşenlerle çapraz işleme ve kablosuz bağlantı gibi. DhcpClient, şunları yapabilmek için DHCP sunucularından IP adreslerini alır: atanabilir olması gerekir.

  • 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, Android 5.0'dan beri ayrı bir uygulamaydı ancak bazı kullanıcı seçimlerini sisteme yönlendirmek için NetworkMonitor ile etkileşime girer.

Etkilenen yollar

Yeniden düzenleme tarafından Ağ Yığını modülüne taşınan yollar aşağıda listelenmiştir.

  • IP hizmetleri. frameworks/base/services/net/java/android/net/ ürününde:

    • apf
    • dhcp
    • ip
    • netlink
    • util (kısmen)
  • Giriş portalı algılama ve giriş yapma frameworks/base/ ürününde:

    • core/java/android/net/captiveportal/
    • services/core/java/com/android/server/connectivity/NetworkMonitor.java
    • packages/CaptivePortalLogin/*

Taşınan kodun yeni yeri packages/modules/NetworkStack içindedir. packages/modules/CaptivePortalLogin ve diğer paylaşılan konumlar. 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ı 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ı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ımlanan netd için bağlayıcı IPC'ler. Bu arayüz, kararlı AIDL'ye dönüştürülmüştür ve politikaya tabidir. testler.