Как посмотреть историю подключений к wifi на андроид

Обновлено: 06.07.2024

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

Тут пришлось столкнуться с несколькими трудностями: в офф.документации Android многие описанные классы стали deprecated (API level > 26), что никак не было в ней отражено; описание некоторых вещей в документации минимально (например поле capabilities класса ScanResult на момент написания не описано почти никак, хотя содержит много важных данных). Третья сложность может заключаться в том, что при первой близости с Wi-Fi, отличной от чтения теории и настройки роутера по localhost, приходится иметь дело с рядом аббревиатур, которые кажутся понятными по отдельности. Но может быть не очевидно, как их соотнести и структурировать (суждение субъективно и зависит от предыдущего опыта).

В данной статье рассмотрено как из Android кода получить исчерпывающие данные о Wi-Fi окружении без NDK, хаков, а лишь с помощью Android API и понять, как их интерпретировать.

Не будем тянуть и начнем писать код.

1. Создаем проект

Заметка рассчитана на тех, кто больше одного раза создавал Android проект, поэтому подробности данного пункта опускаем. Код ниже будет представлен на языке Kotlin, minSdkVersion=23.

2. Разрешения на доступы

Для работы с Wi-Fi из приложения понадобится получить от пользователя несколько разрешений. В соответствии с документацией, для того, чтобы осуществить сканирование сети на устройствах с ОС версий после 8.0, помимо доступа к просмотру состояния сетевого окружения нужен либо доступ на изменение состояния модуля Wi-Fi устройства, либо доступ к координатам (примерным или точным). Начиная с версии 9.0 необходимо запросить у пользователя и то и то, и при этом явно запросить у пользователя включить службу определения местоположения. Не забываем галантно объяснять пользователю, что это прихоть компании Google, а не наше желание устроить за ним слежку :)

Итого, в AndroidManifest.xml добавим:


А в коде, в котором есть ссылка на текущую Activity:

3. Создаем BroadcastReceiver и подписываемся на события обновления данных о сканировании сетевого окружения Wi-Fi

Метод WiFiManager.startScan в документации помечен как depricated с версии API 28, но офф. guide предлагает использовать его.

Итого, получили список объектов ScanResult.

4. Смотрим на ScanResult и разбираемся в терминах

Посмотрим на некоторые поля этого класса и опишем, что они означают:

SSID — Service Set Identifier – это название сети

BSSID – Basic Service Set Identifier – MAC адрес сетевого адаптера (Wi-Fi точки)

level — Received Signal Strength Indicator [dBm (русское дБм) — Децибел, опорная мощность 1 мВт.] — Показатель уровня принимаемого сигнала. Принимает значение от 0 до -100, чем дальше от 0, тем больше мощности сигнала потерялось по пути от Wi-Fi точки к вашему устройству. Подробнее можно посмотреть например на Википедии. Здесь же расскажу, что с помощью Android класса WifiManager можно проградуировать уровень сигнала по шкале от отличного до ужасного с выбранным вами шагом:


frequency — частота работы точки Wi-Fi [Гц]. Помимо самой частоты вас может заинтересовать так называемый канал. У каждой точки есть своя рабочая чистота. На момент написания текста наиболее популярным диапозоном Wi-Fi точек является 2.4 GHz. Но, если быть точнее, точка передает информацию на ваш телефон на пронумерованной частоте, близкой к названной. Количество каналов и значения соответствующих частот стандартизованы. Это сделано для того, чтобы точки поблизости работали на разных частотах, тем самым не создавая помехи друг другу и взаимно не понижая скорость и качество передачи. При этом точки работают не на одной частоте, а на диапазоне частот (пареметр channelWidth), называемом шириной канала. То есть точки, работающие на соседних (и не только на соседних, а даже на 3 от себя) каналах создают друг другу помехи. Вам может пригодится этот незамысловатый код, который позволяет вычислить номер канала по значению частоты для точек с частотой 2.4 и 5 Ghz:


capabilities — наиболее интересное поле для анализа, работа с которым потребовало много времени. Тут в строку записываются «возможности» точки. При этом подробности интерпритации строки в документации можно не искать. Вот несколько примеров того, что может лежать в этой строке:

5. Разбираемся в аббревиатурах и парсим capabilities

Будем действовать последовательно. Рассмотрим сначала вывод такого формата, при котором внутри скобок элементы отделены знаком "-":


Первое значение описывает т.н. метод аутентификации (authentication). То есть, какую последовательность действий должны произвести устройство и точка доступа, чтобы точка доступа позволила собой пользоваться и каким образом шифровать полезную нагрузку. На момент написания поста самые частые варианты это WPA и WPA2, при котором либо каждое подключаемое устройство напрямую, либо через т.н. RADIUS-сервер (WPA-Enterprice) предоставляет пароль по зашифрованному каналу. Скорее всего у вас дома точка доступа предоставляет подключение по этой схеме. Отличие второй версии от первой в болеее стойком шифре: AES против небезопасного TKIP. Также постепенно внедряется WPA3, более сложный и продвинутый. Теоритически может встретиться вариант с enterprice-решением CCKM (Cisco Centralized Key Managment), но мне так и не встретился.

Точка доступа могла быть настроена на аутентификацию по MAC-адресу. Или, если точка доступа предоставляет данные по устаревшему алгоритму WEP, то аутентификации фактически нет (секретный ключ тут и является ключом шифрования). Такие варианты отнесем к типу OTHER.
Ещё есть полюбившийся в общественных wi-fi метод со скрытым Captive Portal Detection — запрос аутентификации через браузер. Такие точки доступа выглядят для сканера как открытые (какими с точки зраения физического подключения и являются). Поэтому отнесем их к типу OPEN.

Второе значение можно обозначить как алгоритм использования ключей (key management). Является параметром метода аутентификации, о котором написано выше. Говорит о том, как именно происходит обмен ключами шифрования. Рассмотрим возможные варианты. EAP — используется в упомянутом WPA-Enterprice, использует базу данных для сверки введеных аутентификационных данных. SAE — используется в продвинутом WPA3, более устойчива к перебору. PSK — самый частый вариант, подразумевает ввод пароля и его передачу в зашифрованном виде. IEEE8021X — по международному стандарту (отличному от поддержанным семейством WPA). OWE (Opportunistic Wireless Encryption) является расширением стандарта IEEE 802.11, для точек, которые мы отнесли к типу OPEN. OWE обеспечивает безопасность данных, передаваемых по незащищенной сети, за счет их шифрования. Также возможен варинант когда ключей доступа нет, назовем такой вариант NONE.

Третьим параметром является т.н. метод шифрования (encryption schemes) — как именно используется шифр для зашиты передаваемых данных. Перечислим варианты. WEP — использует поточный шифр RC4, секретный ключ является ключом шифрования, что в мире современной криптографии считается неприемлемым. TKIP — используется в WPA, CKIP — в WPA2. TKIP+CKIP — может быть указан в точках умеющих WPA и WPA2 для обратной совместимости.

Вместо трех элементов можно встретить одинокую пометку WEP:


Как мы обсудили выше, этого достаточно чтобы не конкретизировать алгоритм использования ключей, которого нет, и метода шифрования, которое одно по-умолчанию.

Теперь рассмотрим такую скобочку:


Это режим работы Wi-Fi или топология сетей Wi-Fi. Вам может встретиться Режим BSS (Basic Service Set) — когда есть одна точка доступа, через которую общаются подключенные устройства. Можно встретить в локальных сетях. Как правило точки доступа нужны для того, чтобы соединять устройства из разных локальных сетей, поэтому они являются частью Extended Service Sets — ESS. Тип IBSSs (Independent Basic Service Sets) говорит о том, что устройство является частью Peer-to-Peer сети.

Ещё может попасться флаг WPS:

6. Создаем модель и функцию парсинга

На основе того, что выяснили выше опишем data-классами то, что получилось:


Теперь напишем функцию, которая будет парсить поле capabilities:

8. Смотрим результат

Посканирую сеть и покажу, что получилось. Показаны результаты простого вывода через Log.d:

Спасибо Егору Пономареву за ценные дополнения.

В данной статье Вы узнаете, как посмотреть пароль от Wi-Fi сети, к которой подключен Ваш телефон/планшет на Android. Сразу хотим предупредить, если на Вашем Android-устройстве не установлен ROOT, узнать пароль от Wi-Fi не получится, за исключением узкого круга устройств, для которых можно применить способ 3 (см. ниже). Если Вы не знаете, установлен ли ROOT на Вашем телефоне/планшете, смотрите способ 2.

Способ 1 (нужен ROOT)

Самый быстрый способ узнать пароль от Wi-Fi на рутированном Android-устройстве – установить специальное приложение из Google Play Маркет, например, WiFi Key Recovery.

Приложение выводит список всех сетей Wi-Fi, к которым когда-либо подключался телефон/планшет. В строке "psk" для каждой сети отображается пароль. Если нажать на сеть, появится контекстное меню, где можно скопировать пароль (Copy password), всю информацию о сети (Copy All) или сгенерировать QR код (Show QR Code), чтобы отсканировать другим телефоном/планшетом для подключения к Wi-Fi.

WiFi Key Recovery

Способ 2 (нужен ROOT)

Принцип работы приложений для просмотра паролей от Wi-Fi сводится к анализу конфигурационного файла "/data/misc/wifi/wpa_supplicant.conf" в системе Android. Поэтому вместо их использования можно напрямую просмотреть этот файл. Для доступа к системным файлам нужен файловый менеджер с ROOT-доступом и встроенным текстовым редактором. Для этой цели вполне подойдет ES Проводник.

По умолчанию ROOT-доступ в ES Проводнике отключен, активировать его можно в боковой панели меню приложения. Кстати, если Вы не знаете, установлен ли ROOT на устройстве, при попытке включить этот режим ES Проводник уведомит Вас об этом. Если ROOT в системе не установлен приложение выдаст предупреждение, а если установлен – появится запрос на разрешение предоставления ROOT-прав приложению ES Проводник, в котором нужно нажать на кнопку "ПРЕДОСТАВИТЬ".

Предоставление root-прав приложению ES Проводник

В той же боковой панели нажмите на пункт "Локальное хранилище > Устройство", перейдите в каталог "/data/misc/wifi" и найдите файл "wpa_supplicant.conf".

Файл wpa_supplicant.conf с паролями от Wi-Fi в системе Android

Скорее всего открыть этот файл в указанном месте не получится из-за ограничений прав доступа. Чтобы не модифицировать системный файл, нажмите и удерживайте его, пока рядом с ним не загорится зеленая галочка. Нажмите на пункт "Еще" внизу экрана и выберите из открывшегося списка пункт "Копировать в". По умолчанию приложение предложит скопировать в корень карты памяти или внешней памяти устройства (путь прописан в верху окна копирования).

Копирование файла wpa_supplicant.conf на внешнюю память

Информация о Wi-Fi сетях в файле wpa_supplicant.conf

Как видно, можно узнать пароль не только до текущей, но и до раннее подключенных сетей.

Способ 3 (без ROOT)

Как уже упоминалось выше, данный способ предназначен для узкого круга устройств, в которых поддержка просмотра пароля к Wi-Fi предоставляется самой системой Android. Например, телефоны Xiaomi позволяют поделиться паролем от Wi-Fi в настройках управления сетями, правда, отображают они этот пароль не в открытом виде, а как QR-код.

Вы можете установить на другой телефон, который нужно подключить к сети Wi-Fi, приложение для чтения QR-кодов, например, Barcode Scanner и отсканировать код.

Если же Вам нужно увидеть пароль, на тех же телефонах Xiaomi присутствует встроенное приложение "Сканер", позволяющее сканировать коды с изображений. Сделайте скриншот QR-кода (кнопки "Громкость -" + "Вкл./Выкл.") и откройте его с помощью программы "Сканер". Приложение отсканирует картинку и покажет результат. По умолчанию пароль отображается звездочками, тапните по нему, чтобы показать.

Просмотр пароля Wi-Fi на телефонах Xiaomi без root

Если в телефоне нет предустановленного приложения "Сканер", отсканировать картинку можно с помощью приложения из Google Play Маркет – "QR Code Reader Extreme".

Сегодня разберем 5 лучших приложений для анализа Wi-Fi сетей на Андройд. Такие программы для мобильных устройств бывают очень полезными, имеют широкий функционал и позволяют решить различные задачи. Использование таких приложений позволяет не только анализировать качество беспроводной сети, но иногда вычислять пароль и даже тип защиты у точки доступа. В условиях большого количества сетей, можно проанализировать качество каждой, и подключиться к сети с лучшим покрытием и скоростью интернета. Почему будем рассматривать приложения именно для Андроид? Да потому что Андроид все еще остается открытой платформой, и в отличии от iOS приложения созданные для Андроид имеют гораздо более широкий функционал. Впрочем аналоги некоторых приложений, которые мы сегодня разберем, существуют и для iPhone, и при необходимости их можно там найти под такими же названиями.

Wi-Fi Warden

Wi-Fi Warden – приложение для Android-устройств, имеющее огромный функционал. Данная разработка позволяет:

  • Анализировать Wi-Fi сети.
  • Повысить безопасность мобильного устройства.
  • Подключиться к Wi-Fi с помощью WPS и пароля.
  • Рассчитать WPS контакты для некоторых маршрутизаторов.
  • Просматривать сохраненные пароли (требуются root-права и доступ к корневой системе файлов).
  • Получать информацию обо всех устройствах, подключенных к данной сети (включая имя, МАС-адрес провайдера, IP).
  • Осуществлять поиск открытых портов устройства в сети.
  • Создавать безопасные пароли.

Поиск сетей на Wi-Fi Werden

Поиск сетей на Wi-Fi Werden

Основное назначение Wi-Fi Warden – анализ сетей. Пользователь, подключаясь к любой сетевой точке, автономно получает всю информацию вокруг него, включая SSID, BSSID, номер канала, пропускную способность, производителя маршрутизатора, шифрование, безопасность, расстояние и множество других параметров.

 Качество сигнала на Wi-Fi Werden

Качество сигнала на Wi-Fi Werden

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

Для подключения к WPS нет необходимости получения корневого доступа только у версий Android 5 и выше. Это нужно учитывать.

Устройства в ети

Выводит все устройства подключенные к Wi-Fi

Для просмотра паролей Wi-Fi, получения серийного номера точки доступа, проверки блокировки WPS, пользователь должен получить root-права на всех Android-устройствах.

Wi-Fi Analyzer – это бесплатное приложение для Android-устройств, доступное в Google play, Microsoft Store на все версии ОС (Windows 10, XP, 7, 8) и смартфонов.

Доступные точки в Wi-Fi Analyzer

Информация о доступных точках

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

Качество сигнала в Wi-Fi Analyzer

Качество сигнала в Wi-Fi Analyzer

Особый параметр рекомендуемых каналов позволяет выбрать наиболее мощные сети без помех c помощью LAN neighbours. В нем перечислены все устройства, подключенные к той же сети, в которой находится пользователь.

Уровень Wi-Fi сигнала в виде графика

Уровень Wi-Fi сигнала в виде графика

Данный инструмент предназначен исключительно для домашнего пользования. Покупка полной версии позволяет убрать всю рекламу. Версия Pro добавляет следующие функции:

  1. Поддержку Live-Tile – подключение звукового сигнала.
  2. Возможность подключения к сетям Wi-Fi непосредственно из приложения.
  3. Фильтры.
  4. Отключение тайм-аута и блокировки поворота экрана.
  5. Возможность изменения границ уровня сигнала.

Сила Wi-Fi

Сила Wi-Fi на выбранной точке доступа

Однако ни одна из этих функций не является слишком существенной, так что большинство пользователей могут использовать бесплатную версию с ее главным предназначением – поиском и показом ближайших рабочих сетей.

Данное приложение полностью бесплатно и поддерживает почти все версии Android. Оно позволяет смартфону осуществлять автономный поиск ближайших открытых сетевых каналов с возможностью прямого подключения. При этом пользователь сохраняет все данные и важную информацию о себе. Встроенные антивирус увеличивает безопасность и защиту личности в несколько раз.

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

Расположение на карте точки доступа

Расположение на карте точки доступа

Особенность разработки заключается в возможности настройки собственной сети – корпоративной, домашней или рабочей. После выявления самой надежной точки пользователь может настроить приоритет для определенного роутера из всего перечня устройств.

Клиенты выбранной Wi-Fi сети

Подключенные клиенты выбранной Wi-Fi сети

Главный минус разработки в том, что в отличие от вышеприведенных приложений, это не имеет достаточного функционала. «Бесплатный Wi-Fi соединение» способен подключаться только к свободным соединениям, защищенные он полностью игнорирует. Это означает отсутствие поддержки WPS, BSSID, CSSID и множества других параметров.

Особая карта поиска Wi-Fi точек по всему миру. Приложение очень удобное. Оно соединяется с устройством пользователя. Получение доступа к геолокации позволяет найти местные каналы свободного и защищенного подключения.

Wi-Fi Map легко находит и подключается к бесплатным сетям в автономном режиме. Это возможно благодаря встроенным автономным картам. Даже при очень слабом интернет соединении, пропускной способности хватает. С помощью карт пользователь может:

  • Сохранять данные о Wi-Fi соединениях.
  • Снижать телефонные счета.
  • Уменьшить загрузки веб-страниц и объем данных, необходимых для работы устройства. В некоторых случаях наблюдается резкое увеличение скорости мобильного соединения.

Описание доступных точек Wi-Fi

Описание доступных точек Wi-Fi

Данные по клиентам от WiFi WPS Plus

Данные по клиентам от WiFi WPS Plus

Как это сделать?

ПИНы от маршрутизатора в Wi-Fi WPS

ПИНы от маршрутизатора

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

Подобная проблема возникает, когда слишком много пользователей находится на том же Wi-Fi канале, что и вы. В этом случае вы можете воспользоваться одним из разработанных для Android приложений-анализаторов Wi-Fi, позволяющих увидеть наименее загруженные каналы. Некоторые из этих приложений можно также использовать для проверки уровня сигнала Wi-Fi.

Рассмотрим лучшие приложения для анализа Wi-Fi сетей, доступные для устройств, работающих на платформе Android.


Это приложение для анализа Wi-Fi является одним из самых популярных в Play Store. Работает оно быстро и имеет простой в использовании интерфейс. Благодаря ему вы можете найти лучшие каналы, используя график каналов или их рейтинг.

Сканер показывает уровень сигнала каждой точки доступа в режиме реального времени и расчёты расстояния. Кроме того, вы можете посмотреть скрытые Wi-Fi.

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

WiFi Analyzer (open source)


Если вы беспокоитесь о конфиденциальности и ищете приложение с открытым кодом, то этот анализатор Wi-Fi станет лучшим вариантом для вас.

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

Чтобы вы смогли определить лучший канал, данное Android-приложение предоставляет график каналов и страницу рейтинга каналов. Есть также временной график.

WiFi Analyzer от Zoltán Pallagi


Это наиболее полное приложение для анализа Wi-Fi из этой подборки. Оно сканирует вашу сеть Wi-Fi, чтобы определить уровень сигнала, скорость и задержку.

Данный бесплатный анализатор Wi-Fi обладает всеми стандартными функциями, такими как рейтинг каналов, график каналов, мощность сети в реальном времени и многое другое.

В приложении также есть сетевой сканер, с помощью которого можно найти неизвестные устройства, подключённые к вашей сети. Кроме того, из данного приложения вы можете увидеть и отредактировать настройки роутера.

Network Cell Info Lite


Если вы ищете приложение для определения уровня сигнала Wi-Fi, то обязательно обратите внимание на Network Cell Info Lite. Оно, бесспорно, является одним из лучших.

Приложение отобразит на карте информацию о сети и поможет вам диагностировать проблемы с подключением. Network Cell Info Lite поддерживает GSM, CDMA, UMTS (WCDMA), WLAN, LTE и LTE+.

Измерения параметров сетей можно экспортировать в различные типы баз данных, в том числе в KML 2.2, CLF v.3, OpenCellID csv, CMW и т.д. Хотя приложение хорошо подходит для измерения уровня сигнала, вы не можете использовать его для просмотра каналов Wi-Fi.

WiFiman


По-моему, это одно из лучших тематических приложений для Android. Оно идеально подходит для тех, кто хочет проверить уровень сигнала своего Wi-Fi. И в нём нет рекламы.

Приложение имеет простой пользовательский интерфейс и позволяет легко перемещать точки доступа на другие каналы для повышения скорости интернета. Вы можете сравнить сигналы Wi-Fi, проверить скорость загрузки и выгрузки и многое другое.

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

WiFi Signal Meter


Используя WiFi Signal Meter, вы можете проверить скорость вашего Wi-Fi, измерить уровень сигнала и увидеть каналы с наименьшей загруженностью.

Приложение имеет обновлённый пользовательский интерфейс, а подробная инструкция поможет вам легко выбрать правильный канал Wi-Fi. Кроме того, WiFi Signal Meter обладает прочими необходимыми функциями, такими как просмотр графических данных в режиме реального времени, просмотр скорости загрузки и выгрузки в конкретной сети и т.д.

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

Network Analyzer


Это полноценное приложение для сканирования каналов Wi-Fi, которое также способно диагностировать проблемы в вашей сети Wi-Fi и на удалённых серверах.

Данное приложение для Android (есть версия для iOS) лучше всего подходит тем, кто хочет знать каждую мелочь о своей локальной сети. Network Analyzer имеет различные инструменты сетевой диагностики, такие как сканер портов, поиск DNS и многое другое. Кроме того, с его помощью вы можете посмотреть уровень сигнала Wi-Fi, его шифрование и производителя роутера.

Читайте также: