A partire dal 27 marzo 2025, ti consigliamo di utilizzare android-latest-release
anziché aosp-main
per compilare e contribuire ad AOSP. Per ulteriori informazioni, vedi Modifiche ad AOSP.
Network Stack
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Network Stack è un modulo Mainline aggiornabile che garantisce che Android possa adattarsi agli standard di rete in evoluzione e consente l'interoperabilità con le nuove implementazioni. Ad esempio, gli aggiornamenti al rilevamento dei captive portal e al codice di accesso consentono ad Android di rimanere al passo con i modelli di captive portal in evoluzione e gli aggiornamenti all'APF consentono ad Android di risparmiare energia sul Wi-Fi man mano che nuovi tipi di pacchetti diventano comuni.
Componenti inclusi
Il modulo Network Stack contiene i seguenti componenti. Sui dispositivi che utilizzano il modulo, questi servizi sono stati spostati in un processo diverso e vi si accede tramite un'interfaccia AIDL stabile.
Servizi IP. IpClient
(in precedenza IpManager
) è un componente responsabile del provisioning e della manutenzione del livello IP. In Android 9, veniva già utilizzato tra processi da componenti come il Bluetooth e all'interno del processo da componenti come il Wi-Fi. DhcpClient
ottiene gli indirizzi IP dai server DHCP in modo che possano essere assegnati alle interfacce.
NetworkMonitor. Il componente NetworkMonitor
esegue test di raggiungibilità di internet quando si connette a una nuova rete o in caso di errori di rete, quando rileva i captive portal e quando convalida le reti.
App di accesso al captive portal.Un'app preinstallata incaricata di gestire l'accesso ai captive portal. Si tratta di un'app separata da Android 5.0, ma interagisce con NetworkMonitor
per inoltrare alcune scelte dell'utente al sistema.
Percorsi interessati
Di seguito sono elencati i percorsi spostati nel modulo Network Stack dal refactoring.
La nuova posizione del codice spostato è in packages/modules/NetworkStack
,
packages/modules/CaptivePortalLogin
e in alcune altre posizioni condivise. I percorsi sopra indicati si riferiscono alla posizione dei file prima che vengano spostati lì per Mainline.
I file in packages/modules/NetworkStack
e
packages/modules/CaptivePortalLogin
fanno parte del modulo Mainline e non possono essere
modificati.
Il modulo Network Stack contiene i seguenti componenti in formato APK:
- Servizi IP
- Accesso al captive portal (
com.google.android.captiveportallogin
)
Questo modulo è accompagnato dal modulo di configurazione delle autorizzazioni dello stack di rete,
che è un file APK preinstallato che definisce le autorizzazioni necessarie per i componenti dello stack di rete.
Dipendenze
Il modulo Network Stack dipende da quanto segue:
Metodi @hide con privilegi nel server di sistema (ad es. in
IConnectivityManager.aidl
). Queste API sono state rese @SystemApi
e
adeguatamente protette in modo che siano accessibili al modulo Mainline, ma
non ad altre app con privilegi (ad es. utilizzando una nuova autorizzazione di firma).
Binder IPC a netd
definito in
INetd.aidl
.
Questa interfaccia è stata convertita in AIDL stabile ed è soggetta a test di conformità.
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2025-07-27 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 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."]]