Где хранятся пароли от Wi-Fi сетей в Android устройстве?

Система Android так же как и остальные современные операционные системы, сохраняет настройки подключения Wi-Fi  сетей, чтобы в последствии иметь возможность быстрого подключения к ним.

Не нарушая замыслов создателей этой системы, мы можем в своем приложении создать новое wifi  соединение и подключить устройство к нему. Узнать пароли от ранее подключенных сетей мы не можем.

Таково ограничение безопасности, иначе вирусов для андроида было бы гораздо больше.

Но стоит вспомнить что  внутри Android лежит ядро Linux. И хранятся пароли от беспроводных сетей в нем точно также в файле wpa_supplicant.conf. Доступ к этому файлу можно получить имея ROOT на устройстве. Обычно этот  текстовый файл содержит информацию в не зашифрованном виде. Расположен на устройстве по пути :

/data/misc/wifi/wpa_supplicant.conf

или иногда по пути:

/etc/wifi/wpa_supplicant.conf

Первый путь встречается очень часто, но иногда производители устройств меняют месторасположение системных файлов.Имя файла останется таким же, поэтому придется просто походить по папкам в поисках.

Вот содержимое файла :

Screenshot_20160407-133902Пароль находится в поле psk. Если сеть открытая, то поле psk отсутствует.

Для более быстрого доступа к этой информации я написал своё приложение  “Напоминатель паролей от Wi-Fi”.  Оно доступно по ссылке  в Google Play https://play.google.com/store/apps/details?id=com.rusdelphi.wifipassword

В нем можно сделать архив известных сетей или быстро поделиться wifi подключением с другом.

Часто пользователи жалуются на то, что поле psk содержит пароли в зашифрованном виде.

Вот пример экрана с такого устройства:

Screenshot_2016-04-03-22-58-19Обычно такая ошибка появляется у пользователей  Samsung  устройств (например samsung galaxy s5).

Решение проблемы найдено на форуме :

http://forum.xda-developers.com/showthread.php?p=58672476#post58672476

Чтобы отключить шифрование, подредактируйте значение в файле build.prop > ro.securestorage.support
перезагрузите устройство и все должно заработать без шифрации.