Некоторые люди сталкиваются с проблемой прошивка пользовательского ROM такие как LineageOS, OxygenOS, CyanogenMod и т.д. на Android-устройство; после прошивки ROM их MAC-адрес становится поврежденным и отображается как 20:00:00:00 или другое неправильное число.
Это касается целого ряда устройств, и, похоже, вызвано устройствами, в которых генераторы случайных MAC встроены в код ядра. Обратите внимание, что я рассматриваю неправильный MAC-адрес только после прошивки пользовательским ROM — Если вы находитесь на стоковом ROM и никогда не прошивали пользовательский ROM, но ваш MAC-адрес неисправен, это вполне может быть аппаратной проблемой.
Решение
Сначала попробуйте это очень простое решение:
Настройки -> Резервное копирование и сброс -> Сброс сетевых настроек -> Сброс
Если это не сработало, нам придется прибегнуть к более техническим средствам, так что внимательно следите за мной. Существует несколько причин, по которым MAC-адрес может быть поврежден, поэтому мы постараемся рассмотреть каждую из них, пока ваша проблема не будет решена.
Чтобы продолжить поиск неисправностей, на вашем компьютере должен быть установлен ADB — пожалуйста, смотрите «Как установить ADB на Windows» — У пользователей Mac / Linux есть гораздо более простой метод, который не требует руководства.
В любом случае, как только вы запустили ADB на своем ПК, вам также следует обзавестись шестнадцатеричным редактором. Я использую Notepad++ с плагином шестнадцатеричного редактора, но и другие программы шестнадцатеричного редактора должны подойти.
Подключив телефон к компьютеру, убедитесь, что ADB обнаруживает USB-соединение, введя ‘устройства adb‘. Если он отображает уникальный идентификатор вашего устройства, продолжайте.
Введите следующие команды в ADB:
adb shell “su -c ‘dd if=/dev/block/bootdevice/by-name/misc of=/sdcard/misc.img’”
adb pull /sdcard/misc.img
Теперь вы должны иметь возможность найти misc.img в корневой папке ADB. Откройте его с помощью выбранного вами шестнадцатеричного редактора.
Найдите шестнадцатеричное смещение 3000 и отредактируйте шестнадцатеричные смещения с 3000 по 3005 с вашим MAC-адресом wifi — «00 90 3D F1 A2 31″, например. Сохраните и закройте шестнадцатеричный редактор.
Теперь мы собираемся вернуть его на ваше устройство через ADB, поэтому введите в терминале ADB:
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’”
Теперь введите ‘adb reboot и после перезагрузки телефона проверьте, все ли в порядке с MAC-адресом. Если нет, продолжим.
Последний шаг, который нужно попробовать, это использовать проводник корневых файлов, чтобы заглянуть внутрь persist/wifi/.macaddr и открыть .macaddr с помощью текстового редактора. Добавьте свой MAC-адрес в этот файл, сохраните его и перезагрузите устройство.
Если ни одно из этих решений не помогло, вполне вероятно, что это аппаратная проблема — возможно, ваша антенна WiFi отклеилась от материнской платы и ее нужно припаять обратно, или какая-то другая подобная проблема.