Package
com.android.wifi.resources.overlay
Guidance
A Runtime Resource Overlay (RRO) for the Wi-Fi module's resources package, not an app in its own right. AOSP builds that resources package as ServiceWifiResources, whose manifest declares the package name com.android.wifi.resources, and it holds the configuration values the Wi-Fi service reads at runtime. Because the values are kept in a resources APK, a device maker can change Wi-Fi behaviour for its hardware by shipping a small overlay that redefines them instead of modifying the Wi-Fi code. This package is one of those overlays: it carries no code, has no launcher entry in any of the observations recorded here, and is a few kilobytes in size, between about 12 KB and 17 KB, with the version name 1.0 throughout. The naming follows an AOSP convention rather than being a package Google ships. AOSP's own sample overlay lives at device/google/coral/rro_overlays/WifiOverlay and declares the package name com.android.wifi.resources.pixel, setting android:targetPackage to com.android.wifi.resources, android:targetName to WifiCustomization and android:isStatic to true. The Wi-Fi module's overlayable.xml points readers at that sample directly, noting that the values "can be overridden by OEM's by using an RRO overlay app". A package named com.android.wifi.resources.overlay is the same pattern with a generic suffix in place of a device name. WifiCustomization is the overlayable set involved, and its policy allows overlays from the odm, product, system or vendor partitions. The values it exposes are the hardware-shaped ones: which bands the device supports (config_wifi24ghzSupport, config_wifi5ghzSupport, config_wifi6ghzSupport, config_wifi60ghzSupport), whether 802.11ax and 802.11be support is overridden, whether WEP and WPA-Personal are treated as deprecated, fast BSS transition, the Wi-Fi Direct device type, background scan support, whether the country code reverts when cellular is lost, and the logger ring buffer sizes. One limit is worth stating plainly, because it changes how much this entry can tell you. This site records a package's own name, not the targetPackage inside its manifest, so which resources package a given device's copy of this overlay actually targets cannot be read from here. That distinction matters on Wi-Fi more than most places: AOSP warns that where the Wi-Fi module delivers its resources APK under the Google name, "you must set the overlay APKS targetPackage to com.google.android.wifi.resources to overlay Wi-Fi configurations successfully". The AOSP-named com.android.wifi.resources, the Google-named com.google.android.wifi.resources and Samsung's com.samsung.android.wifi.resources are each documented separately on this site. A second observation is recorded here without an explanation: the only permission this package declares is POST_NOTIFICATIONS, which a code-free overlay has no obvious use for. The Google-named tethering overlay reports the same single permission, so it looks like a property of how these overlay APKs are built or recorded rather than anything specific to Wi-Fi, but no source consulted accounts for it. Provenance fits an overlay compiled into each device image rather than something delivered centrally. In our sample it is signed by 13 distinct signing keys, every one of them classified as an OEM key that also signs the framework on its own devices, across Motorola, TCL, Newland, ANT DAO Technology, OUKITEL, vivo, Xiaomi, NUU and OPPO. It appears on 42 devices spanning 21 makes, weighted towards budget and ODM-built hardware (TCL, Lenovo, Motorola, OUKITEL, Infinix, Honor, Blackview, Cubot and others) rather than towards Samsung or Pixel. Version note: the Wi-Fi module (com.android.wifi) is in APEX format and is available for devices running Android 11 or higher, so this overlay belongs to the Android 11 and later module layout rather than to older builds where Wi-Fi configuration sat in the framework. That matches the field data, which records it from API 30 through API 36, targeting API 31 to 35. No change in the overlay's role across those releases could be sourced, and the flat 1.0 version name gives no signal either way. For Android Enterprise, EMM and kiosk use it has no role in enrolment or policy and nothing a user interacts with. What it does is tell the Wi-Fi stack what this particular radio supports, so disabling or removing it does not lock Wi-Fi down: it drops the device back to whatever the unoverlaid resources say, which is a route to a device that misreports its own band or standard support. Leave it in place and use your EMM's Wi-Fi configuration and restriction policies to control what users can do with Wi-Fi.
- Wi-Fi - Android Open Source Project →
- Change the value of an app's resources at runtime (RROs) - Android Open Source Project →
- ServiceWifiResources AndroidManifest.xml (packages/modules/Wifi) - Android source →
- ServiceWifiResources overlayable.xml, WifiCustomization (packages/modules/Wifi) - Android source →
- WifiOverlay AndroidManifest.xml, sample Wi-Fi RRO (device/google/coral) - Android source →
- Package provenance for com.android.wifi.resources.overlay - Android System App Database →
- Package provenance for com.google.android.networkstack.tethering.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.
- Re-signed by each device maker with its own platform key - 13 different certificates appear across 9 device makers in our sample. That is the signature of a stock AOSP/system package every OEM builds and signs itself, not a single maker's or a third party's preinstall. These are platform-level keys: they also sign the Android framework itself.
- 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 |
|---|---|---|---|---|---|
| ALCommon | ALCommon | Android 15 | - | 1 | 20 Jun 2025 |
| Ant Dao Technology Limited | B3 | Android 14 | OEM ANT DAO TECHNOLOGY LIMITED | 1 | 18 Aug 2026 |
| Blackview | VARG | Android 11 | - | 1 | 1 Sep 2025 |
| CUBOT | P80 | Android 13 | - | 2 | 20 Sep 2025 |
| HONOR | HEY-W09 | Android 12 | - | 3 | 26 Aug 2025 |
| HONOR | LLY-LX3 | Android 14 | - | 1 | 28 Jun 2025 |
| Infinix | Infinix X6525B | Android 13 | - | 1 | 5 Dec 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 | TB570FU | Android 15 | - | 1 | 17 Jun 2025 |
| Motorola | moto g - 2025 | Android 16 | OEM Motorola | 1 | 14 Dec 2025 |
| Motorola | moto g05 | Android 15 | OEM Motorola | 2 | 15 Apr 2026 |
| Motorola | moto g06 | Android 15 | - | 2 | 3 Mar 2026 |
| Motorola | moto g15 | Android 15 | - | 10 | 27 Nov 2025 |
| Motorola | moto g24 | Android 14 | OEM Motorola | 1 | 19 Dec 2025 |
| Newland | NLS-MT95 | Android 15 | OEM Newland | 1 | 19 Aug 2026 |
| Nothing | A015 | Android 15 | - | 2 | 14 May 2025 |
| NUU | S6707X | Android 14 | OEM NUU | 1 | 12 Jan 2026 |
| OPPO | CPH2591 | Android 15 | - | 1 | 10 Jul 2025 |
| OPPO | CPH2637 | Android 15 | OEM OPPO | 1 | 2 Feb 2026 |
| OUKITEL | WP100 TITAN | Android 14 | - | 2 | 25 Jul 2025 |
| OUKITEL | WP100 TITAN | Android 15 | - | 1 | 6 Dec 2025 |
| OUKITEL | WP60 | Android 15 | OEM OUKITEL | 3 | 9 Dec 2025 |
| realme | RMX2001 | Android 11 | - | 1 | 21 Aug 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 |
| TCL | 9566X | Android 15 | OEM TCL | 1 | 13 Mar 2026 |
| TCL | T517F | Android 16 | OEM TCL | 1 | 8 Aug 2026 |
| TCL | T610K | Android 14 | - | 1 | 24 Oct 2025 |
| TCL | T951K | Android 15 | OEM TCL | 8 | 8 Jan 2026 |
| Unihertz | Titan 2 | Android 15 | - | 2 | 5 Jan 2026 |
| vivo | V2550 | Android 16 | OEM vivo | 1 | 21 Jul 2026 |
| Xiaomi | 21091116UI | Android 13 | - | 1 | 8 Sep 2025 |
| Xiaomi | 23106RN0DA | Android 15 | - | 1 | 22 May 2025 |
| Xiaomi | 24117RN76O | Android 15 | OEM Xiaomi | 1 | 28 Dec 2025 |
Known labels
Locale-aware display names seen in the wild.
| Label | Locale | Seen |
|---|---|---|
| com.android.wifi.resources.overlay | en-gb | 23 |
| com.android.wifi.resources.overlay | en-us | 17 |
| com.android.wifi.resources.overlay | de-at | 10 |
| com.android.wifi.resources.overlay | es-es | 6 |
| com.android.wifi.resources.overlay | en | 5 |
| com.android.wifi.resources.overlay | en-US | 3 |
| com.android.wifi.resources.overlay | 2 | |
| com.android.wifi.resources.overlay | es-us | 2 |
| com.android.wifi.resources.overlay | en-GB | 2 |
| com.android.wifi.resources.overlay | th-th | 1 |
| com.android.wifi.resources.overlay | vi-VN | 1 |
| com.android.wifi.resources.overlay | vi-vn | 1 |
| com.android.wifi.resources.overlay | cs-cz | 1 |
| com.android.wifi.resources.overlay | en-in | 1 |
| com.android.wifi.resources.overlay | en-lk | 1 |
| com.android.wifi.resources.overlay | en-za-u-fw-mon-mu-celsius | 1 |
| com.android.wifi.resources.overlay | es-MX | 1 |
| com.android.wifi.resources.overlay | es-US | 1 |
| com.android.wifi.resources.overlay | es-mx | 1 |
| com.android.wifi.resources.overlay | ru-ru | 1 |