Stos sieciowy

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śniej IpManager) 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 IPframeworks/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/NetworkStackpackages/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 w INetd.aidl Ten interfejs został przekonwertowany na stabilną wersję AIDL i jest poddawany testom zgodności.