Network Stack to dostępny do aktualizacji moduł Mainline, dzięki któremu Android dostosowuje się do zmieniających się standardów sieciowych i pozwala na interoperacyjność z nowymi, implementacji. 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; Aktualizacje APF pozwalają Androidowi oszczędzać energię w sieci Wi-Fi jako nowy typ 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 klucz ten był już używany jest przetwarzany przez komponenty (np. Bluetooth) i przetwarzany przez komponenty takich jak sieć Wi-Fi.DhcpClient
uzyskuje adresy IP z serwerów DHCP, aby można je było przypisać do interfejsów.NetworkMonitor. Komponent
NetworkMonitor
testuje internet osiągalność przy nawiązywaniu połączenia z nową siecią lub w przypadku awarii sieci, wykrywania portali przechwytujących oraz weryfikacji sieci.Aplikacja do logowania w portalu przechwytującym – wstępnie zainstalowana aplikacja odpowiedzialna za zarządzanie logowaniem w portalach przechwytujących. Od Androida 5.0 jest to oddzielna aplikacja, ale wchodzi w interakcję z elementem
NetworkMonitor
, aby przekazać do systemu niektóre wybory użytkownika.
Ś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. W aplikacji
frameworks/base/
:core/java/android/net/captiveportal/
services/core/java/com/android/server/connectivity/NetworkMonitor.java
packages/CaptivePortalLogin/*
Nowa lokalizacja przeniesionego kodu znajduje się w: packages/modules/NetworkStack
,
packages/modules/CaptivePortalLogin
i kilka innych udostępnionych lokalizacji. Powyższe
ścieżki odwołują 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:
Prywatne metody @hide w systemie serwera (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 aplikacji z przywilejami (np. za pomocą nowego uprawnienia dotyczącego podpisu).Identyfikatory IPC powiązania z polem
netd
zdefiniowane wINetd.aidl
Ten interfejs został przekonwertowany na stabilną wersję AIDL i jest poddawany testom zgodności.