Od 27 marca 2025 r. zalecamy używanie android-latest-release
zamiast aosp-main
do kompilowania i wspołtworzenia AOSP. Więcej informacji znajdziesz w artykule o zmianach w AOSP.
Stos sieciowy
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Warstwę sieciową stanowi moduł Mainline, który można aktualizować. Zapewnia ona możliwość dostosowania Androida do zmieniających się standardów sieciowych i umożliwia interoperacyjność 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śniej IpManager
) 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 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 opcje użytkownika do systemu.
Ścieżki, których dotyczy problem
Poniżej znajdziesz listę ścieżek przeniesionych do modułu Network Stack w ramach refaktoryzacji.
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ć.
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ł „Sieć” 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).
IPC bindera do netd
zdefiniowane w INetd.aidl
.
Ten interfejs został przekonwertowany na stabilną wersję AIDL i podlega testom zgodności.
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-27 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2025-07-27 UTC."],[],[],null,["# Network Stack is an updatable Mainline module that ensures that Android can\nadapt to evolving network standards and allows for interoperability with new\nimplementations. For example, updates to captive portal detection and login code\nallow Android to stay up to date with changing captive portal models, and\nupdates to APF allow Android to save power on Wi-Fi as new types of packets\nbecome common.\n\nIncluded components\n-------------------\n\nThe Network Stack module contains the following components. On devices using the\nmodule, these services were moved to a different process and are accessed\nthrough a stable AIDL interface.\n\n- **IP services.** `IpClient` (formerly `IpManager`) is a component in charge of\n IP layer provisioning and maintenance. In Android 9, it was already used\n cross-process by components such as Bluetooth, and in-process by components\n such as Wi-Fi. `DhcpClient` obtains IP addresses from DHCP servers so they can\n be assigned to interfaces.\n\n- **NetworkMonitor.** The `NetworkMonitor` component tests for internet\n reachability when connecting to a new network or upon network failures, when\n detecting captive portals, and when validating networks.\n\n- **Captive portal login app.** A preinstalled app in charge of managing login\n on captive portals. This has been a separate app since Android 5.0, but it\n interacts with `NetworkMonitor` to forward some user choices to the system.\n\nAffected paths\n--------------\n\nThe paths moved to the Network Stack module by the refactor are listed below.\n\n- **IP services.** In `frameworks/base/services/net/java/android/net/`:\n\n - `apf`\n - `dhcp`\n - `ip`\n - `netlink`\n - `util` (partly)\n- **Captive portal detection and login.** In `frameworks/base/`:\n\n - `core/java/android/net/captiveportal/`\n - `services/core/java/com/android/server/connectivity/NetworkMonitor.java`\n - `packages/CaptivePortalLogin/*`\n\nThe new location of the moved code is in `packages/modules/NetworkStack`,\n`packages/modules/CaptivePortalLogin` and some other shared locations. The above\npaths refer to the location of files before being moved there for Mainline.\nFiles in `packages/modules/NetworkStack` and\n`packages/modules/CaptivePortalLogin` are part of the Mainline module and cannot\nbe modified.\n\nPackage format\n--------------\n\nThe Network Stack module contains the following components in APK format:\n\n- IP services\n- Captive portal login (`com.google.android.captiveportallogin`)\n\nThis module is accompanied by the Network Stack Permission Config module,\nwhich is a pre-installed APK file that defines the necessary permissions for the\nNetwork Stack components.\n\nDependencies\n------------\n\nThe Network Stack module depends on the following:\n\n- Privileged @hide methods in the system server (e.g., in\n `IConnectivityManager.aidl`). These APIs have been made `@SystemApi` and\n appropriately protected so that they are accessible to the Mainline module but\n not other privileged apps (e.g., using a new signature permission).\n\n- Binder IPCs to `netd` defined in\n [`INetd.aidl`](https://android.googlesource.com/platform/system/netd/+/android16-release/server/binder/android/net/INetd.aidl).\n This interface has been converted to stable AIDL and is subject to conformance\n tests."]]