Stos sieciowy

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Network Stack to aktualizowalny moduł Mainline, który zapewnia, że ​​Android może dostosować się do zmieniających się standardów sieciowych i umożliwia interoperacyjność z nowymi implementacjami. Na przykład aktualizacje wykrywania portali przechwytujących i kodu logowania pozwalają Androidowi być na bieżąco ze zmieniającymi się modelami portali przechwytujących, a aktualizacje APF pozwalają Androidowi oszczędzać energię Wi-Fi, gdy nowe typy pakietów stają się powszechne.

Dołączone komponenty

Moduł Network Stack zawiera następujące komponenty. Na urządzeniach korzystających z modułu usługi te zostały przeniesione do innego procesu i są dostępne poprzez stabilny interfejs AIDL.

  • usługi IP. IpClient (wcześniej IpManager ) jest komponentem odpowiedzialnym za udostępnianie i konserwację warstwy IP. W systemie Android 9 był już używany w procesach krzyżowych przez komponenty, takie jak Bluetooth, oraz w procesie przez komponenty, takie jak Wi-Fi. DhcpClient uzyskuje adresy IP z serwerów DHCP, dzięki czemu można je przypisać do interfejsów.

  • Monitor sieci. Komponent NetworkMonitor sprawdza dostępność Internetu podczas łączenia się z nową siecią lub w przypadku awarii sieci, podczas wykrywania portali przechwytujących i podczas sprawdzania poprawności sieci.

  • Aplikacja logowania do portalu Captive. Preinstalowana aplikacja odpowiedzialna za zarządzanie logowaniem na portalach przechwytujących. Od wersji Androida 5.0 jest to oddzielna aplikacja, ale współpracuje z NetworkMonitor , przekazując niektóre wybory użytkownika do systemu.

Dotknięte ścieżki

Ścieżki przeniesione do modułu Network Stack przez refaktor są wymienione 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 znajduje się w packages/modules/NetworkStack , packages/modules/CaptivePortalLogin i kilku innych udostępnionych lokalizacjach. Powyższe ścieżki odnoszą się do lokalizacji plików przed przeniesieniem tam dla Mainline. Pliki w packages/modules/NetworkStack i packages/modules/CaptivePortalLogin są częścią modułu Mainline i nie można ich modyfikować.

Format opakowania

Moduł Network Stack zawiera następujące komponenty w formacie APK:

  • usługi IP
  • Logowanie do portalu Captive ( com.google.android.captiveportallogin )

Do tego modułu dołączony jest moduł Network Stack Permission Config, który jest preinstalowanym plikiem APK definiującym niezbędne uprawnienia dla komponentów Network Stack.

Zależności

Moduł stosu sieciowego zależy od następujących elementów:

  • Uprzywilejowane metody @hide na serwerze systemowym (np. w IConnectivityManager.aidl ). Te interfejsy API zostały utworzone w @SystemApi i odpowiednio zabezpieczone, dzięki czemu są dostępne dla modułu Mainline, ale nie dla innych uprzywilejowanych aplikacji (np. przy użyciu nowego uprawnienia do podpisu).

  • Powiąż IPC z netd zdefiniowanymi w INetd.aidl . Ten interfejs został przekonwertowany na stabilny AIDL i podlega testom zgodności.