Warstwę sieciową można aktualizować. Jest to moduł Mainline, który zapewnia, że Android może dostosowywać się do zmieniających się standardów sieciowych i umożliwia współdziałanie z nowymi implementacjami. Na przykład aktualizacje kodu logowania i wykrywania portali ograniczonego dostępu pozwalają Androidowi nadążać za zmieniającymi się modelami portali ograniczonego dostępu, a aktualizacje APF pozwalają Androidowi oszczędzać energię w sieci Wi-Fi, gdy nowe typy pakietów stają się powszechne.
Dołączone komponenty
Moduł sieciowy zawiera te komponenty: Na urządzeniach korzystających z modułu te usługi 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 konfigurowanie i utrzymanie warstwy IP. W Androidzie 9 był już używany w procesach między komponentami, takich jak Bluetooth, oraz w procesach wewnątrz komponentów, takich jak Wi-Fi.DhcpClient
uzyskuje adresy IP z serwerów DHCP, aby można je było przypisać do interfejsów.NetworkMonitor. Komponent
NetworkMonitor
sprawdza dostępność z internetem podczas nawiązywania połączenia z nową siecią, w przypadku awarii sieci, wykrywania portali przechwytujących i weryfikacji sieci.Aplikacja do logowania w portalu przechwytującym – wstępnie zainstalowana aplikacja odpowiedzialna za zarządzanie logowaniem w portalach przechwytujących. Od wersji 5.0 Androida jest to osobna aplikacja, ale współpracuje z
NetworkMonitor
, aby przekazywać niektóre wybory użytkownika do systemu.
Ścieżki, których dotyczy problem
Poniżej znajdziesz ścieżki przeniesione do modułu stosu sieciowego przy użyciu 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
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 kilka innych udostępnionych lokalizacji. Powyższe ścieżki odnoszą się do lokalizacji plików przed ich przeniesieniem do Mainline.
Pliki w folderach packages/modules/NetworkStack
i packages/modules/CaptivePortalLogin
są częścią modułu Mainline i nie można ich modyfikować.
Format pakietu
Moduł modułu sieci zawiera te komponenty w formacie APK:
- Usługi IP
- Logowanie do portalu przechwytującego (
com.google.android.captiveportallogin
)
Ten moduł jest uzupełniony modułem konfiguracji uprawnień modułu sieciowego, który jest wstępnie zainstalowanym plikiem APK definiującym niezbędne uprawnienia dla komponentów modułu sieciowego.
Zależności
Moduł stosu sieciowego zależy od tych czynników:
Metody @hide z podwyższonymi uprawnieniami na serwerze systemowym (np. w
IConnectivityManager.aidl
). Te interfejsy API zostały udostępnione@SystemApi
i są odpowiednio chronione, aby były dostępne dla modułu Mainline, ale nie dla innych aplikacji z podwyższonymi uprawnieniami (np. przez nowe uprawnienia do podpisywania).IPC bindera do
netd
zdefiniowane wINetd.aidl
. Ten interfejs został przekonwertowany na stabilną wersję AIDL i podlega testom zgodności.