Stos sieciowy

Stos sieciowy to moduł główny, który można aktualizować. Zapewnia on, że Android może dostosowywać się do zmieniających się standardów sieciowych i umożliwia interoperacyjność z nowymi implementacjami. Na przykład aktualizacje wykrywania portalu przechwytującego i kodu logowania pozwalają Androidowi być na bieżąco ze zmieniającymi się modelami portali przechwytujących, a aktualizacje APF umożliwiają oszczędzanie energii przez Androida w przypadku Wi-Fi, gdy pojawiają się nowe typy pakietów.

Komponenty w zestawie

Moduł Network Stack zawiera te komponenty: Na urządzeniach korzystających z modułu usługi te zostały przeniesione do innego procesu i są dostępne za pomocą stabilnego interfejsu AIDL.

  • Usługi IP IpClient (wcześniej IpManager) to komponent odpowiedzialny za wdrażanie i utrzymywanie warstwy IP. W Androidzie 9 był już używany w różnych procesach przez komponenty takie jak Bluetooth, a w ramach jednego procesu przez komponenty takie jak Wi-Fi. DhcpClient pobiera adresy IP z serwerów DHCP, aby można było je przypisać do interfejsów.

  • NetworkMonitor Komponent NetworkMonitor sprawdza dostępność internetu podczas łączenia się z nową siecią lub w przypadku awarii sieci, wykrywania portali przechwytujących i weryfikowania sieci.

  • Aplikacja do logowania w portalu przechwytującym.Wstępnie zainstalowana aplikacja do zarządzania logowaniem w portalach przechwytujących. Od Androida 5.0 jest to osobna aplikacja, ale współpracuje z NetworkMonitor, aby przekazywać do systemu niektóre wybory użytkownika.

Ścieżki, których dotyczy problem

Poniżej znajdziesz listę ścieżek przeniesionych do modułu Network Stack w wyniku refaktoryzacji.

  • Usługi IPframeworks/base/services/net/java/android/net/:

    • apf
    • dhcp
    • ip
    • netlink
    • util (częściowo)
  • Wykrywanie portalu przechwytującego i logowanie się w nim. W frameworks/base/:

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

Nowa lokalizacja przeniesionego kodu to packages/modules/NetworkStack,packages/modules/CaptivePortalLogin i inne udostępnione lokalizacje. Powyższe ścieżki odnoszą się do lokalizacji plików przed przeniesieniem ich do Mainline. Pliki w lokalizacjach packages/modules/NetworkStackpackages/modules/CaptivePortalLogin są częścią modułu Mainline i nie można ich modyfikować.

Format pakietu

Moduł Network Stack zawiera te komponenty w formacie APK:

  • Usługi związane z własnością intelektualną
  • Logowanie do portalu przechwytującego (com.google.android.captiveportallogin)

Temu modułowi towarzyszy moduł Network Stack Permission Config, który jest wstępnie zainstalowanym plikiem APK określającym niezbędne uprawnienia dla komponentów Network Stack.

Zależności

Moduł Network Stack zależy od tych elementów:

  • Uprzywilejowane metody @hide na serwerze systemowym (np. w IConnectivityManager.aidl). Te interfejsy API zostały @SystemApi i odpowiednio zabezpieczone, aby były dostępne dla modułu Mainline, ale nie dla innych uprzywilejowanych aplikacji (np. za pomocą nowego uprawnienia podpisu).

  • Binder IPCs to netd defined in INetd.aidl. Ten interfejs został przekonwertowany na stabilny AIDL i podlega testom zgodności.