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śniejIpManager) 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.DhcpClientpobiera adresy IP z serwerów DHCP, aby można było je przypisać do interfejsów.NetworkMonitor Komponent
NetworkMonitorsprawdza 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 IP W
frameworks/base/services/net/java/android/net/:apfdhcpipnetlinkutil(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.javapackages/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/NetworkStack i packages/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@SystemApii 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
netddefined inINetd.aidl. Ten interfejs został przekonwertowany na stabilny AIDL i podlega testom zgodności.