Package
com.android.networkstack.overlay
NetworkStackOverlay
Guidance
NetworkStackOverlay, a Runtime Resource Overlay (RRO) that supplies device-specific configuration to the NetworkStack module rather than an app in its own right. An RRO changes the resource values of a target package at runtime without altering the target's code, which is how a build customises a module it cannot edit. NetworkStack ships as an updatable module covering IP services, DHCP, network validation and the captive portal login flow, so per-device values reach it through an overlay installed on the product, system or vendor partition. What it can set is documented in the module's own overlayable declaration. The NetworkStack module declares an overlayable named NetworkStackConfig, and an overlay of this kind may override the values in it: the captive portal HTTP and HTTPS probe URLs and fallback URL lists, the DNS probe timeout, the regular expressions used to decide whether a validation probe succeeded or failed, whether multiple HTTP and HTTPS probe URLs are tried serially rather than together (config_probe_multi_http_https_url_serial), the default DNS servers used by the DHCP client, and whether the DHCP client sends a hostname option. The captive portal probe URLs are the entry worth knowing about on a managed network, since they determine which endpoint the device contacts to decide whether a network has internet access. The naming and signing are both varied, which is normal for this component. Labels seen in this site's sample include NetworkStackOverlay, NetworkStackResOverlay and NetworkStackOverlayGsi, the last being the variant that ships with a Generic System Image rather than a device build. It is seen both Google-signed and signed by the device maker's own platform key across Xiaomi, Motorola, OPPO, NUU, OUKITEL and others, and it is observed from API 30 through API 37, so it is not tied to one Android release. It has no launcher icon and is not user-facing. The AOSP-keyed name recorded here is com.android.networkstack.overlay; it pairs with the module itself, which this site records under the Google-signed name com.google.android.networkstack. For Android Enterprise, EMM and kiosk use it has no role in enrolment or policy, but it is part of how the platform decides whether a network is usable. Disabling or removing it does not harden anything: it removes the build's connectivity configuration and risks breaking network validation and the captive portal flow. Where kiosk mode is preventing a captive portal login from appearing, the supported fix is to allowlist the captive portal login package in the EMM application policy rather than to remove this overlay.
- NetworkStack module - Android Open Source Project →
- Change the value of an app's resources at runtime (RROs) - Android Open Source Project →
- NetworkStack overlayable.xml (packages/modules/NetworkStack) - Android source →
- Kiosk devices and captive portals - Android Enterprise FAQ →
- Package provenance for com.android.networkstack.overlay - Android System App Database →
Package intelligence
Observed signing, permission, version and size signals from contributing devices - descriptive of that sample, not a verdict. These come from the v2 Package Search sync, which not every device has contributed to yet, so for some packages this detail is partial or not present at all.
- Signed by Google's own signing key (the same key Google uses across devices), so it is a Google-provided preinstall that updates independently of the system image, though 14 different Google signing keys appear across the fleet.
- Its largest observed manifest declares 1 permissions: 1 runtime (user-granted).
- Never reported as user-facing, so it runs as a background or system component rather than an app the user opens.
Declared permissions (1)
Largest permission set observed for this package. Text is Android's own published description where one exists; platform permissions Android does not document show their granted protection level (in grey) instead; vendor or unknown constants show the name only.
| Permission | Description |
|---|---|
POST_NOTIFICATIONS |
Allows the app to show notifications |
Manage on devices
ADB commands for this package (the inverse of each is included so you can undo). Run from an authorised shell or wire the equivalent into your DPC. Verify on a test device first - this database doesn’t yet classify which packages are safe to change. --user 0 targets the current user; drop it (and use a privileged shell) to act device-wide.
/system, so Restore re-adds it (-k keeps app data)Seen on
Each record is a device profile (make + model + Android version). Each unique handset that syncs against a matching profile will increase the observations of a package, thereby increasing confidence that a package is expected to be on a device.
| OEM | Model | Android | Provenance | Observations | Last seen |
|---|---|---|---|---|---|
| Blackview | VARG | Android 11 | - | 1 | 1 Sep 2025 |
| CUBOT | P80 | Android 13 | - | 2 | 20 Sep 2025 |
| DOOGEE | S41 Max | Android 13 | - | 2 | 3 Oct 2025 |
| Fezawio | F11_V_US | Android 15 | - | 1 | 14 Jul 2026 |
| Pixel 10 | Android 16 | 1 | 5 Jun 2026 | ||
| Pixel 10 Pro | Android 16 | 1 | 26 Mar 2026 | ||
| Pixel 10 Pro | Android 17 | 1 | 26 Jul 2026 | ||
| Pixel 6 | Android 12 | - | 1 | 22 Jun 2025 | |
| Pixel 6 | Android 16 | - | 1 | 13 Oct 2025 | |
| Pixel 6 Pro | Android 15 | - | 9 | 23 Jun 2025 | |
| Pixel 7 | Android 13 | 1 | 19 Feb 2026 | ||
| Pixel 7 Pro | Android 16 | 1 | 9 Mar 2026 | ||
| Pixel 8 | Android 16 | - | 4 | 3 Jun 2026 | |
| Pixel 8a | Android 15 | - | 1 | 5 Oct 2025 | |
| Pixel 9 Pro XL | Android 16 | 21 | 29 Mar 2026 | ||
| Pixel 9 Pro XL | Android 17 | 2 | 28 Jul 2026 | ||
| Pixel 9a | Android 15 | - | 1 | 15 Jun 2025 | |
| Pixel 9a | Android 16 | 6 | 2 Jun 2026 | ||
| Pixel 9a | Android 17 | - | 1 | 16 Jul 2026 | |
| HONOR | HEY-W09 | Android 12 | - | 3 | 26 Aug 2025 |
| HONOR | LLY-LX3 | Android 14 | - | 1 | 28 Jun 2025 |
| Hotwav | TAB R9 Pro | Android 14 | - | 1 | 18 Sep 2025 |
| Infinix | Infinix X6871 | Android 14 | - | 1 | 21 May 2025 |
| Lenovo | Lenovo TB-7306F | Android 11 | - | 1 | 19 Jul 2025 |
| Lenovo | Lenovo TB-X6C6NBF | Android 12 | - | 1 | 15 May 2025 |
| Lenovo | TB132FU | Android 14 | - | 1 | 16 Jun 2025 |
| Lenovo | TB328FU | Android 12 | - | 1 | 15 Sep 2025 |
| Lenovo | TB570FU | Android 15 | - | 1 | 17 Jun 2025 |
| Motorola | moto g - 2025 | Android 16 | OEM Motorola | 1 | 14 Dec 2025 |
| Motorola | moto g14 | Android 13 | OEM Motorola | 1 | 19 Dec 2025 |
| Motorola | moto g24 | Android 14 | OEM Motorola | 1 | 19 Dec 2025 |
| NUU | S6707X | Android 14 | OEM NUU | 1 | 12 Jan 2026 |
| OPPO | CPH2637 | Android 15 | OEM OPPO | 1 | 2 Feb 2026 |
| OUKITEL | C59 Pro | Android 15 | - | 1 | 6 Nov 2025 |
| OUKITEL | WP28 E | Android 14 | OEM OUKITEL | 1 | 27 Jul 2026 |
| realme | RMX2001 | Android 11 | - | 1 | 21 Aug 2025 |
| realme | RMX3627 | Android 12 | - | 1 | 20 Sep 2025 |
| realme | RMX3690 | Android 12 | - | 1 | 25 Nov 2025 |
| Revoview | S6518 | Android 11 | - | 1 | 30 Mar 2026 |
| Rhino | T8 | Android 14 | - | 1 | 17 May 2025 |
| Smt_hk | Helium Pro | Android 12 | - | 1 | 19 Jul 2025 |
| TCL | 6025D_EEA | Android 11 | - | 1 | 17 Sep 2025 |
| TCL | 6165H | Android 13 | - | 1 | 16 Sep 2025 |
| TCL | 9466X | Android 13 | - | 1 | 13 Jan 2026 |
| TCL | 9491G | Android 14 | - | 1 | 26 Aug 2025 |
| Ulefone | Power Armor X11 Pro | Android 12 | - | 1 | 15 Sep 2025 |
| vivo | V2550 | Android 16 | OEM vivo | 1 | 21 Jul 2026 |
| Xiaomi | 21091116UI | Android 13 | - | 1 | 8 Sep 2025 |
| Xiaomi | 220333QNY | Android 13 | OEM Xiaomi | 1 | 16 Feb 2026 |
| Xiaomi | 24117RN76O | Android 15 | OEM Xiaomi | 1 | 28 Dec 2025 |
| Xiaomi | M2012K11AG | Android 13 | - | 1 | 1 Oct 2025 |
| Xiaomi | M2101K6G | Android 13 | OEM Xiaomi | 1 | 8 Mar 2026 |
Known labels
Locale-aware display names seen in the wild.
| Label | Locale | Seen |
|---|---|---|
| NetworkStackOverlay | en-us | 30 |
| NetworkStackOverlay | en | 19 |
| NetworkStackOverlay | nl-NL | 17 |
| NetworkStackOverlay | en-gb | 10 |
| NetworkStackResOverlay | en-us | 6 |
| NetworkStackResOverlay | en-gb | 6 |
| NetworkStackOverlay | en-GB | 4 |
| NetworkStackOverlayGsi | en-us | 4 |
| NetworkStackResOverlay | es-es | 4 |
| NetworkStackOverlay | 3 | |
| NetworkStackOverlay | nl-nl | 3 |
| com.android.networkstack.overlay | en-gb | 3 |
| NetworkStackOverlay | en-au | 2 |
| NetworkStackOverlayGsi | en-GB | 2 |
| NetworkStackOverlayGsi | en-gb | 2 |
| NetworkStackOverlayGsi | ru-ru | 2 |
| NetworkStackResOverlay | 2 | |
| NetworkStackResOverlay | en-US | 2 |
| NetworkStackOverlay | es-es | 1 |
| NetworkStackOverlay | es-us | 1 |
| NetworkStackOverlay | en-us-u-fw-mon-ms-ussystem-mu-fahrenhe | 1 |
| NetworkStackOverlay | ru-ru | 1 |
| NetworkStackOverlay | en-in | 1 |
| NetworkStackOverlay | en-de | 1 |
| NetworkStackOverlay | en-ca-u-fw-mon-mu-celsius | 1 |
| NetworkStackOverlay | es-US | 1 |
| NetworkStackOverlayGsi | it-it | 1 |
| NetworkStackOverlayGsi | en | 1 |
| NetworkStackOverlayGsi | th-th | 1 |
| NetworkStackOverlayGsi | ja-jp | 1 |
| NetworkStackResOverlay | es-mx | 1 |
| NetworkStackResOverlay | es-us | 1 |
| NetworkStackResOverlay | ru-ru | 1 |
| NetworkStackResOverlay | vi-VN | 1 |
| NetworkStackResOverlay | en-GB | 1 |
| NetworkStackResOverlay | vi-vn | 1 |
| NetworkStackResOverlay | es-MX | 1 |
| NetworkStackResOverlay | es-US | 1 |
| com.android.networkstack.overlay | es-es | 1 |