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.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 IP W
frameworks/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/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@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 inINetd.aidl
. Ten interfejs został przekonwertowany na stabilny AIDL i podlega testom zgodności.