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 dostosowywać się do zmieniających się standardów sieciowych i umożliwia współdziałanie 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ą systemowi Android na oszczędzanie energii w sieci Wi-Fi, gdy nowe typy pakietów stają się powszechne.

Dołączone elementy

Moduł stosu sieciowego zawiera następujące elementy. Na urządzeniach korzystających z modułu usługi te zostały przeniesione do innego procesu i są dostępne za pośrednictwem stabilnego interfejsu AIDL.

  • Usługi IP. IpClient (dawniej IpManager ) jest komponentem odpowiedzialnym za dostarczanie i konserwację warstwy IP. W systemie Android 9 był już używany w procesie cross-process przez komponenty, takie jak Bluetooth, i 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 testuje dostępność Internetu podczas łączenia się z nową siecią lub w przypadku awarii sieci, podczas wykrywania portali przechwytujących oraz podczas sprawdzania poprawności sieci.

  • Aplikacja logowania do portalu przechwytującego. Preinstalowana aplikacja odpowiedzialna za zarządzanie logowaniem w portalach przechwytujących. Jest to osobna aplikacja od Androida 5.0, ale współpracuje z NetworkMonitor , aby przekazać niektóre wybory użytkownika do systemu.

Dotknięte ścieżki

Ścieżki przeniesione do modułu stosu sieciowego przez refaktoryzację są wymienione poniżej.

  • Usługi IP. W frameworks/base/services/net/java/android/net/ :

    • apf
    • dhcp
    • ip
    • netlink
    • util (częściowo)
  • Wykrywanie i logowanie do portalu przechwytującego. 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 wspólnych 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 mogą być modyfikowane.

Format pakietu

Moduł stosu sieciowego zawiera następujące komponenty w formacie APK:

  • Usługi IP
  • Logowanie do portalu przechwytującego ( com.google.android.captiveportallogin )

Modułowi temu towarzyszy moduł konfiguracji uprawnień stosu sieciowego, który jest preinstalowanym plikiem APK, który definiuje niezbędne uprawnienia dla składników stosu sieciowego.

Zależności

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

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

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