Система Android так же как и остальные современные операционные системы, сохраняет настройки подключения Wi-Fi сетей, чтобы в последствии иметь возможность быстрого подключения к ним.
Не нарушая замыслов создателей этой системы, мы можем в своем приложении создать новое wifi соединение и подключить устройство к нему. Узнать пароли от ранее подключенных сетей мы не можем.
Таково ограничение безопасности, иначе вирусов для андроида было бы гораздо больше.
Но стоит вспомнить что внутри Android лежит ядро Linux. И хранятся пароли от беспроводных сетей в нем точно также в файле wpa_supplicant.conf. Доступ к этому файлу можно получить имея ROOT на устройстве. Обычно этот текстовый файл содержит информацию в не зашифрованном виде. Расположен на устройстве по пути :
/data/misc/wifi/wpa_supplicant.conf
или иногда по пути:
/etc/wifi/wpa_supplicant.conf
Первый путь встречается очень часто, но иногда производители устройств меняют месторасположение системных файлов.Имя файла останется таким же, поэтому придется просто походить по папкам в поисках.
Вот содержимое файла :
Пароль находится в поле psk. Если сеть открытая, то поле psk отсутствует.
Для более быстрого доступа к этой информации я написал своё приложение “Напоминатель паролей от Wi-Fi”. Оно доступно по ссылке в Google Play https://play.google.com/store/apps/details?id=com.rusdelphi.wifipassword
В нем можно сделать архив известных сетей или быстро поделиться wifi подключением с другом.
Часто пользователи жалуются на то, что поле psk содержит пароли в зашифрованном виде.
Вот пример экрана с такого устройства:
Обычно такая ошибка появляется у пользователей Samsung устройств (например samsung galaxy s5).
Решение проблемы найдено на форуме :
http://forum.xda-developers.
Чтобы отключить шифрование, подредактируйте значение в файле build.prop > ro.securestorage.support
перезагрузите устройство и все должно заработать без шифрации.