Какие файлы отвечают за Wi-Fi на Android: полный гайд по системным конфигам

Если вы когда-нибудь пытались вручную настроить подключение к Wi-Fi на Android-устройстве или исправить ошибки сети, то наверняка сталкивались с ограничениями стандартного интерфейса. Большинство пользователей даже не подозревают, что за работу беспроводных сетей на смартфоне отвечает целый набор системных файлов — от конфигураций wpa_supplicant до логов DHCP-клиента и параметров ядра. Эти файлы хранят пароли, приоритеты сетей, настройки безопасности и даже историю подключений.

В этой статье мы детально разберём, где именно на Android расположены ключевые файлы Wi-Fi, за что каждый из них отвечает, и как их можно редактировать (если у вас есть root-доступ). Вы узнаете, как вручную добавить сеть, изменить приоритет подключения или диагностировать проблемы с помощью логов — без использования стандартного меню настроек. Важно: неправильное редактирование системных файлов может привести к потере подключения к сети или даже "брику" устройства, если задеть критические параметры ядра.

Материал будет полезен как опытным пользователям, так и разработчикам, которые хотят понять низкоуровневую работу Wi-Fi на Android. Мы не будем рассматривать базовые настройки через графический интерфейс — здесь речь пойдёт исключительно о "внутренней кухне" системы.

📊 Как вы обычно настраиваете Wi-Fi на Android?
Через стандартное меню настроек
Использую ADB-команды
Редактирую системные файлы вручную
Пользуюсь сторонними приложениями (например, WiFi Analyzer)
Не настраиваю, всё работает "из коробки"

1. Основной конфигурационный файл: /data/misc/wifi/WifiConfigStore.xml

Это главный файл, где Android хранит информацию о всех сохранённых Wi-Fi сетях, включая SSID, пароли, типы безопасности и приоритеты подключения. До версии Android 10 этот файл назывался wpa_supplicant.conf, но в современных прошивках его заменили на XML-формат.

Файл WifiConfigStore.xml содержит:

  • 📡 SSID сетей (имена точек доступа) в зашифрованном или открытом виде;
  • 🔑 Пароли (в зашифрованном формате, если устройство не рутовано);
  • 🛡️ Типы безопасности (WPA2-PSK, WPA3, Open Network и др.);
  • 📊 Приоритеты подключения (какая сеть будет выбрана первой при наличии нескольких);
  • Дополнительные параметры, такие как hiddenSSID (для скрытых сетей) или autoJoinEnabled.

Чтобы просмотреть содержимое файла, вам понадобится root-доступ или ADB с правами суперпользователя. Команды для извлечения:

adb shell

su

cat /data/misc/wifi/WifiConfigStore.xml

⚠️ Внимание: В некоторых прошивках (например, на устройствах Samsung или Xiaomi) путь к файлу может отличаться. На MIUI конфигурации иногда хранятся в /data/misc/wifi/WifiConfigStoreSoftAp.xml для режима точки доступа.

Если вы хотите вручную добавить сеть, можно отредактировать этот файл, но помните: после изменений необходимо перезагрузить службу Wi-Fi командой:

svc wifi disable

svc wifi enable

2. Файл wpa_supplicant.conf: устаревший, но всё ещё актуальный

На устройствах с Android 9 и старше (а также на некоторых кастомных прошивках) основные настройки Wi-Fi могут храниться в традиционном файле /data/misc/wifi/wpa_supplicant.conf. Этот файл использует синтаксис, аналогичный Linux-системам, и его проще редактировать вручную.

Пример содержимого:

network={

ssid="MyWiFi"

psk="mypassword123"

key_mgmt=WPA-PSK

priority=1

}

Где:

  • 🔄 priority — приоритет сети (чем выше число, тем раньше Android попробует подключиться);
  • 🔐 key_mgmt — метод аутентификации (WPA-PSK, WPA-EAP, NONE для открытых сетей);
  • 📶 scan_ssid=1 — параметр для скрытых сетей (если SSID не транслируется).

Чтобы применить изменения, перезапустите службу:

stop wpa_supplicant

start wpa_supplicant

⚠️ Внимание: На некоторых устройствах (например, Pixel с Android 12+) файл wpa_supplicant.conf может быть символической ссылкой на WifiConfigStore.xml. Проверьте это командой ls -l /data/misc/wifi/.

☑️ Проверка файла wpa_supplicant.conf

Выполнено: 0 / 5

3. Логи Wi-Fi: /data/misc/wifi/logs/ и dmesg

Если ваше устройство не подключается к Wi-Fi, полезно изучить логи системы. Android ведёт несколько типов логов, связанных с беспроводными сетями:

Файл/команда Что содержит Как просмотреть
/data/misc/wifi/logs/wifi.log Подробные логи подключений, ошибки аутентификации, смены состояний cat /data/misc/wifi/logs/wifi.log
dmesg | grep wifi Сообщения ядра о загрузке драйверов Wi-Fi, ошибках оборудования Выполнить в ADB shell
logcat -b radio | grep Wifi Логи радио-модуля (включая сканирование сетей) adb logcat -b radio
/data/misc/dhcpcd/ Логи DHCP-клиента (получение IP-адреса) ls /data/misc/dhcpcd/

Пример типичной ошибки в wifi.log:

WifiConfigManager: Failed to connect to network "CafeWiFi" (SSID not found in scan results)

Это означает, что сеть CafeWiFi не обнаруžena при сканировании — возможно, она скрытая или выходите за пределы зоны покрытия.

Для диагностики проблем с DHCP (например, если устройство не получает IP-адрес), проверьте файлы в /data/misc/dhcpcd/. Там хранятся леазы (аренды IP) и ошибки типа:

dhcpcd: timed out waiting for a valid DHCP server response

4. Файлы драйверов и модулей ядра: /vendor/ и /system/

За работу Wi-Fi-адаптера на низком уровне отвечают драйверы, которые расположены в системных разделах /vendor/ и /system/. Эти файлы редко требуют ручного вмешательства, но их полезно знать для диагностики:

  • 🖥️ /vendor/firmware/ — прошивки для Wi-Fi/Bluetooth-чипов (например, WCNSS_qcom_wlan_nv.bin для Qualcomm);
  • 🔧 /vendor/lib/modules/ — модули ядра (например, wlan.ko);
  • 📄 /system/etc/wifi/ — конфигурации для конкретных чипсетов (например, ti_connectivity.ini для Texas Instruments).

Если после обновления прошивки Wi-Fi перестал работать, проблема может быть в несовместимости драйверов. Например, на устройствах с чипсетом Mediatek иногда требуется вручную копировать файлы из /vendor/firmware/ после сброса.

Чтобы узнать, какой чипсет используется в вашем устройстве, выполните:

adb shell getprop ro.boot.hardware

adb shell getprop ro.chipname

⚠️ Внимание: Удаление или замена файлов в /vendor/ может привести к полной неработоспособности Wi-Fi/Bluetooth. Эти разделы часто защищены dm-verity, и их изменение без отключения проверки приведёт к bootloop.

5. Настройки хостспота (точки доступа): SoftApConfigStore.xml

Если вы используете функцию "Режим модема" (раздача Wi-Fi с телефона), её настройки хранятся в отдельном файле:

/data/misc/wifi/SoftApConfigStore.xml

Тут можно найти:

  • 📛 Имя точки доступа (SSID);
  • 🔐 Пароль (passphrase);
  • 📡 Канал (channel) и стандарт (802.11a/b/g/n/ac);
  • 🔄 Максимальное количество подключённых устройств (maxClients).

Пример содержимого:

<SoftApConfiguration>

<SSID>MyHotspot</SSID>

<passphrase>password123</passphrase>

<channel>6</channel>

<band>2</band>

<maxClients>8</maxClients>

</SoftApConfiguration>

Если вы хотите изменить канал или стандарт (например, с 2.4 GHz на 5 GHz), отредактируйте этот файл и перезапустите хостспот:

svc wifi disable

svc wifi enable

setprop sys.usb.config rndis,diag,adb

Как сбросить настройки хостспота до заводских?

Удалите файл /data/misc/wifi/SoftApConfigStore.xml и перезагрузите устройство. После этого имя точки доступа и пароль сбросятся к значениям по умолчанию (обычно это модель устройства и случайный пароль).

6. Файлы кэша и временные данные: /data/misc/wifi/WifiStateTracker.xml

Android хранит временные данные о состоянии Wi-Fi в файле WifiStateTracker.xml. Здесь записываются:

  • 🔄 Последнее подключённое устройство;
  • ⚡ Уровень сигнала (RSSI);
  • 📡 Текущая частота (frequency);
  • ⏱️ Время последнего подключения/отключения.

Этот файл полезен для диагностики проблем с частыми разрывами соединения. Например, если вы видите запись:

<DisconnectEvent>

<reason>DEAUTH_LEAVING</reason>

<BSSID>00:11:22:33:44:55</BSSID>

</DisconnectEvent>

— это означает, что устройство было отключено роутером (возможно, из-за неверного пароля или блокировки по MAC-адресу).

Очистка этого файла может помочь, если Wi-Fi "завис" в странном состоянии (например, постоянно пытается подключиться к несуществующей сети). Для сброса:

rm /data/misc/wifi/WifiStateTracker.xml

svc wifi disable

svc wifi enable

7. Как резервировать и восстанавливать настройки Wi-Fi

Если вы планируете сбросить устройство или прошить кастомную прошивку, полезно сохранить текущие настройки Wi-Fi. Для этого:

  1. Скопируйте все файлы из /data/misc/wifi/ на компьютер:
    adb pull /data/misc/wifi/ ~/wifi_backup/
  2. После сброса или прошивки верните файлы обратно:
    adb push ~/wifi_backup/ /data/misc/wifi/
    

    adb shell chmod -R 660 /data/misc/wifi/

    adb shell chown -R system:wifi /data/misc/wifi/

  3. Перезагрузите устройство.

Если вы используете TWRP или другой кастомный recovery, можно создать резервную копию раздела /data целиком — это сохранит все настройки, включая Wi-Fi.

⚠️ Внимание: При восстановлении настроек на другом устройстве или прошивке могут возникнуть конфликты (например, если чипсет Wi-Fi отличается). В таком случае лучше вручную перенести только WifiConfigStore.xml.

8. Проблемы и решения: частые ошибки при работе с файлами Wi-Fi

При ручном редактировании файлов Wi-Fi пользователи часто сталкиваются с типичными проблемами:

Проблема Возможная причина Решение
Wi-Fi не включается после редактирования файлов Ошибка в синтаксисе WifiConfigStore.xml или wpa_supplicant.conf Восстановите резервную копию или проверьте файл на валидность XML
Устройство не видит сети после обновления прошивки Отсутствуют драйверы в /vendor/firmware/ Скопируйте файлы прошивки из старой версии или перепрошейте устройство полностью
Постоянные разрывы соединения Неправильные настройки roaming или RSSI в WifiStateTracker.xml Сбросьте файл или измените параметр roamThreshold вручную
Не работает хостспот (точка доступа) Ошибка в SoftApConfigStore.xml или конфликт каналов Проверьте логи logcat | grep SoftAp и измените канал в настройках

Если после изменений Wi-Fi перестал работать совсем, попробуйте сбросить настройки сети через меню Настройки → Система → Сброс → Сброс настроек Wi-Fi, мобильной сети и Bluetooth. Это удалит все сохранённые сети, но вернёт работоспособность.

Для диагностики сложных проблем используйте комбинацию команд:

adb shell dumpsys wifi

adb shell dumpsys connectivity

Это выведет полный отчёт о состоянии Wi-Fi и сетевых подключений.

FAQ: Частые вопросы о файлах Wi-Fi на Android

Можно ли просмотреть пароли от Wi-Fi без root-доступа?

Нет, без root или ADB с правами суперпользователя прочитать пароли из системных файлов невозможно. Стандартные приложения для просмотра паролей (например, WiFi Password Viewer) требуют рут-прав. Альтернатива — использовать функцию "Поделиться паролем" в настройках Wi-Fi (доступно на Android 10+).

Почему после редактирования wpa_supplicant.conf изменения не применяются?

Вероятные причины:

  1. Файл имеет неправильные права доступа (должны быть 660 и владелец system:wifi);
  2. Синтаксическая ошибка в файле (пропущена скобка или кавычка);
  3. Служба wpa_supplicant не была перезапущена (используйте svc wifi disable && svc wifi enable).
Где хранятся настройки Wi-Fi на устройствах с Android 13+?

Начиная с Android 13, Google ужесточила контроль за системными файлами. Теперь:

  • WifiConfigStore.xml может быть зашифрован;
  • Доступ к /data/misc/wifi/ ограничен даже для root (требуется отключение SELinux);
  • Некоторые настройки перенесены в /data/vendor/wifi/.

Для работы с этими файлами может понадобиться Magisk с модулем SQLite for Root или специализированные утилиты вроде WiFi Analyzer (но они не дают полного доступа).

Как сбросить все настройки Wi-Fi до заводских?

Есть два способа:

  1. Через меню настроек: Настройки → Система → Сброс → Сброс Wi-Fi, мобильной сети и Bluetooth;
  2. Вручную (требуется root):
    rm -rf /data/misc/wifi/*
    

    reboot

После сброса все сохранённые сети и пароли будут удалены.

Можно ли перенести настройки Wi-Fi с одного Android-устройства на другое?

Теоретически да, но на практике это часто приводит к проблемам из-за:

  • Разных чипсетов Wi-Fi (например, Qualcomm vs Mediatek);
  • Разных версий wpa_supplicant;
  • Зашифрованных паролей (они привязаны к конкретному устройству).

Лучше переносить только SSID и пароли вручную, без копирования бинарных файлов.