Some people have encountered an issue with flashing custom ROM suchs as LineageOS, OxygenOS, CyanogenMod, etc. to their Android device; after flashing the ROM, their MAC address becomes corrupted and displays as 20:00:00:00 or some other incorrect number.
This is effecting a range of devices, and it seems to be caused by devices that have random MAC generators built into the kernel code. Please note that I am only addressing incorrect MAC address after flashing a custom ROM – if you’re on stock ROM and have never flashed a custom ROM, yet your MAC address is faulty, it very well could be a hardware problem.
First try this very simple solution:
Settings -> Backup and Reset -> Reset Network settings -> Reset
If that did not work, we will need to get a bit more technical, so follow me closely. There are several reasons why the MAC address may be corrupted, so we will try to address each one until your issue is resolved.
To continue troubleshooting, you should have ADB installed on your computer – please see “How to Install ADB on Windows” – Mac / Linux users have a far easier method that do not require a guide.
In any case, once you have ADB running on your PC, you should also grab a hex editor. I use Notepad++ with hex editor plugin, but other hex editor software should be fine.
With your phone connected to your PC, verify that ADB detects the USB connection by typing ‘adb devices’. If it displays a unique ID for your device, continue.
Type these following commands into ADB:
adb shell “su -c ‘dd if=/dev/block/bootdevice/by-name/misc of=/sdcard/misc.img'”
adb pull /sdcard/misc.img
Now you should be able to find misc.img in your ADB root folder. Open it with the hex editor software of your choice.
Find the hex offset 3000, and edit hex offsets 3000 to 3005 with your wifi MAC address – “00 90 3D F1 A2 31″ for example. Save and close the hex editor.
Now we’re going to push it back to your device through ADB, so type into ADB terminal:
adb push misc.img /sdcard/misc_edited.img
adb shell “su -c ‘dd if=/sdcard/misc_edited.img of=/dev/block/bootdevice/by-name/misc'”
Now type ‘adb reboot’ and after your phone restarts, check if the MAC address is okay. If not, lets continue.
The last step to try is to use a root file explorer to look inside persist/wifi/.macaddr and open .macaddr with a text editor. Add your MAC address inside this file, save it, and restart your device.
If none of these solutions worked for you, it very well likely could be a hardware problem – perhaps your WiFi antenna has become loose from the motherboard and needs to be soldered back on, or some related problem like that.