Начиная с 27 марта 2025 г. мы рекомендуем использовать android-latest-release
вместо aosp-main
для создания и участия в AOSP. Дополнительные сведения см. в разделе Изменения в AOSP .
Сетевой стек
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Сетевой стек — это обновляемый модуль Mainline, который обеспечивает адаптацию Android к развивающимся сетевым стандартам и позволяет взаимодействовать с новыми реализациями. Например, обновления обнаружения портала захвата и кода входа позволяют Android оставаться в курсе меняющихся моделей портала захвата, а обновления APF позволяют Android экономить заряд Wi-Fi, поскольку новые типы пакетов становятся обычным явлением.
Включенные компоненты
Модуль сетевого стека содержит следующие компоненты. На устройствах, использующих модуль, эти службы были перемещены в другой процесс и доступны через стабильный интерфейс AIDL.
IP-сервисы. IpClient
(ранее IpManager
) — компонент, отвечающий за предоставление и обслуживание уровня IP. В Android 9 он уже использовался кросс-процессно такими компонентами, как Bluetooth, и внутрипроцессно такими компонентами, как Wi-Fi. DhcpClient
получает IP-адреса от DHCP-серверов, чтобы их можно было назначить интерфейсам.
NetworkMonitor. Компонент NetworkMonitor
проверяет доступность интернета при подключении к новой сети или при сбоях в работе сети, при обнаружении порталов захвата и при проверке сетей.
Приложение для входа в Captive portal. Предустановленное приложение, отвечающее за управление входом в Captive portals. Это отдельное приложение с Android 5.0, но оно взаимодействует с NetworkMonitor
для пересылки некоторых пользовательских выборов в систему.
Затронутые пути
Пути, перенесенные в модуль сетевого стека в результате рефакторинга, перечислены ниже.
Новое расположение перемещенного кода находится в packages/modules/NetworkStack
, packages/modules/CaptivePortalLogin
и некоторых других общих расположениях. Указанные выше пути относятся к расположению файлов до перемещения туда для Mainline. Файлы в packages/modules/NetworkStack
и packages/modules/CaptivePortalLogin
являются частью модуля Mainline и не могут быть изменены.
Модуль сетевого стека содержит следующие компоненты в формате APK:
- IP-услуги
- Вход в портал Captive (
com.google.android.captiveportallogin
)
Этот модуль сопровождается модулем конфигурации разрешений сетевого стека, который представляет собой предустановленный APK-файл, определяющий необходимые разрешения для компонентов сетевого стека.
Зависимости
Модуль сетевого стека зависит от следующего:
Привилегированные методы @hide на системном сервере (например, в IConnectivityManager.aidl
). Эти API были сделаны @SystemApi
и соответствующим образом защищены, чтобы они были доступны для модуля Mainline, но не для других привилегированных приложений (например, с использованием нового разрешения подписи).
Связывание IPC с netd
, определенным в INetd.aidl
. Этот интерфейс был преобразован в стабильный AIDL и подлежит тестам на соответствие.
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-07-29 UTC.
[[["Прост для понимания","easyToUnderstand","thumb-up"],["Помог мне решить мою проблему","solvedMyProblem","thumb-up"],["Другое","otherUp","thumb-up"]],[["Отсутствует нужная мне информация","missingTheInformationINeed","thumb-down"],["Слишком сложен/слишком много шагов","tooComplicatedTooManySteps","thumb-down"],["Устарел","outOfDate","thumb-down"],["Проблема с переводом текста","translationIssue","thumb-down"],["Проблемы образцов/кода","samplesCodeIssue","thumb-down"],["Другое","otherDown","thumb-down"]],["Последнее обновление: 2025-07-29 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."]]