Note: This is a modified fork of the original MAC Editor by jqssun. All credits go to the original author. This version adds several enhancements (see below).
MAC Editor is a free and open-source Xposed module that gives you granular control over the Wi-Fi MAC address on Android devices. It supports manual MAC override and enables native MAC randomization support exposed by Android on supported hardware regardless of the OEM's implementation.
You can use it to:
- Customize MAC behavior for privacy.
- Override the randomized MAC with a fixed value.
- Force-enable MAC randomization on devices where the vendor disabled it.
- Optionally control whether the mobile hotspot (AP) interface uses the custom MAC – disable this if your device fails to start hotspot when MAC is overridden.
- Manual MAC override – set any valid unicast MAC address (first octet even).
- Force MAC randomization – enable hidden randomization support for standard Wi-Fi, Wi‑Fi Direct, and mobile hotspot.
- Per‑network or per‑connection control – works when “Use randomized MAC” is selected in Wi‑Fi network details.
- AP MAC override toggle – independently enable/disable MAC replacement for the hotspot interface (default: off). Helps devices where changing AP MAC breaks hotspot functionality.
- Multi‑language UI – supports English and Chinese, switchable via the app menu.
- Android 12+ (tested up to Android 16 QPR2)
- Rooted devices with LSPosed framework installed
On modern Android, the Wi-Fi subsystem (via WifiNative) can randomize MAC addresses per network or per connection. This module hooks the following system server methods to allow manual MAC assignment when randomization is enabled:
WifiVendorHal.setStaMacAddress()– for station (client) Wi‑Fi.WifiVendorHal.setApMacAddress()– for access point (hotspot) mode.
The module also forces the system to believe that MAC randomization is supported by overriding the following resource booleans:
config_wifi_connected_mac_randomization_supportedconfig_wifi_p2p_mac_randomization_supportedconfig_wifi_ap_mac_randomization_supported
This is useful on devices where the hardware and chipset drivers do support MAC randomization, but the vendor did not enable it in software.
Some devices fail to start the mobile hotspot when the MAC address is modified (error logs show Could not set interface MAC address for wlan2). To avoid this, the module provides a dedicated switch in the UI to disable MAC override for AP mode (default: off). When this switch is off, the module will not intercept calls to setApMacAddress, letting the system use the default random MAC for the hotspot.
If you need a custom MAC for hotspot as well, simply turn this switch on.
- Install the module and activate it in LSPosed (scope: System Framework).
- Reboot your device.
- Open the MAC Editor app.
- Enable “Override randomized MAC” if you want to replace the randomized MAC with a custom one.
- Enter a valid MAC address (e.g.,
02:00:00:00:00:01) or tap “Generate Random MAC”. - Tap “Apply MAC Address”.
- For Wi‑Fi connections, ensure “Use randomized MAC” is selected in the network’s “Privacy” setting.
- To use the custom MAC for hotspot, enable “Override AP MAC address” (recommended to keep it off if hotspot fails to start).
- Reconnect Wi‑Fi or restart hotspot to apply changes.
The app supports English and Chinese. To switch:
- Tap the three-dot menu in the top‑right corner.
- Select “Language” and choose your preferred language.
- The UI will refresh immediately.
Hardware support on certain chipsets can be checked by looking at:
/vendor/etc/wifi/kiwi_v2/WCNSS_qcom_cfg.ini/vendor/firmware/wlan/qca_cld/WCNSS_qcom_cfg.ini
For legacy Qualcomm devices without MAC randomization support, consider editing wlan_mac.bin or /sys/wifi/mac_addr directly instead of using this module.
This project is a fork of the original MAC Editor by jqssun.
The initial open‑source system server hook implementation was provided by David Berdik.
We thank the original authors for their great work.
This project was developed with the assistance of AI tools.
This project is licensed under the GNU General Public License v3.0. All original copyright notices are retained.