A free and open-source 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, for example, to customize MAC behavior for privacy, or to assist devices with limited captive portal support to access the Internet on certain Wi-Fi networks.
On modern Android, the Wi-Fi subsystem is capable of randomizing device MAC address per network or per connection. This module hooks the following system server methods to allow manual MAC assignment when randomization is enabled,
WifiVendorHal.setStaMacAddress()WifiVendorHal.setApMacAddress()For better compatibility, the module can also be used to force enable MAC randomization by specifying the following resource booleans,
config_wifi_connected_mac_randomization_supported: support for standard Wi-Ficonfig_wifi_p2p_mac_randomization_supported: support for Wi-Fi Direct or P2Pconfig_wifi_ap_mac_randomization_supported: support for mobile hotspotThis is useful on devices where the hardware and chipset drivers do support MAC randomization, but the device vendor does not implement proper software support. This can also happen on some alternative Android builds where MAC randomization is not explicitly enabled.
Hardware support on certain chipsets can be checked by looking at /vendor{/etc/wifi/kiwi_v2,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.
io.github.jqssun.maceditor