Warstwę sieciową stanowi moduł Mainline, który można aktualizować. Dzięki temu 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 portalu przechwytującego pozwalają Androidowi nadążać za zmieniającymi się modelami portali przechwytujących, a aktualizacje APF pozwalają Androidowi oszczędzać energię w sieci Wi-Fi, ponieważ 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ł on 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ść internetu podczas łączenia się z nową siecią lub po wystąpieniu awarii sieci, podczas wykrywania portali przechwytujących oraz podczas sprawdzania 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
Ścieżki przeniesione do modułu Network Stack przez refaktoryzację wymieniono poniżej.
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
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 współdzielonych 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 związane z prawami własności intelektualnej
- 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ł „Bezpieczeństwo sieci” 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).Binder IPCs to
netd
zdefiniowany wINetd.aidl
. Ten interfejs został przekonwertowany na stabilną wersję AIDL i podlega testom zgodności.