Android usb wifi adapters

Wi-Fi адаптер через OTG

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

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

Итак, как подключить внешний Wi-Fi адаптер к устройству на Android или бег с препятствиями на дистанции «вставил — netcfg wlan0 up»:

Должно быть в наличии:

  1. Телефон на Android
  2. Поддержка OTG и сам OTG
  3. Terminal Emulator
  4. ROOT
  5. Исходники ядра

FAQ — структура выглядит так:

  • Внешний Wi-Fi адаптер («свисток»)
  • Его firmware
  • Linux дистрибутив
  • ADB (не обязательно, но так удобнее)
  • Мой случай:

    1. Samsung GT-P5100 Galaxy Tab 2 10.1, Андроид 4.2.2
    2. OTG «30-pin — USB»
    3. Terminal Emulator for Android
    4. ROOT
    5. Исходники стокового ядра 3.0.31-1919150 с сайта Самсунг
    6. Адаптер TP-LINK TL-WN722N на чипсете AR9271
    7. ath9k_htc/htc_9271.fw
    8. Дистрибутив Ubuntu 15.04 в VMware
    9. android-tools-adb

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

    I. Старт

    Первым делом необходимо добыть фирмварь вашего адаптера. Вставляю адаптер в компьютер и выполняю команду dmesg . Нахожу:

    Где слово правее слова driver — искомая информация. У меня это — ath9k_htc. Гуглю для него firmware. Качаю. Закидываю .fw-файл на телефон в /system/etc/firmware

    Затем устанавливаю ADB:

    apt-get install android-tools-adb

    Третьим этапом качаю тулчейн (компилятор под ARM) отсюда. Там большой архив, мне нужна лишь папка android-platform_prebuilt-android-sdk-adt_r20-0-ga4062cc.zip\android-platform_prebuilt-a4062cc\linux-x86\toolchain\arm-eabi-4.4.3, которую я распаковываю в произвольное место.

    II. Разгон

    Для начала пишу терминале:

    Затем перехожу в терминале в каталог с исходниками ядра, загруженными ранее, пишу

    make help и получаю тучу информации, среди которой нужно найти нечто, заканчивающееся на _defconfig, у меня это:

    Читайте также:  Плеер для очков виртуальной реальности android

    И в завершении запускаю графическую конфигурацию ядра:

    Появляется вот такое окно:

    Продвигаюсь по маршрутам:

      Networking support → Wireless
      Спускаюсь к Generic IEEE 802.11 Networking stack (mac80211) и нажимаю на пробел, наблюдая появление значка М перед этим пунктом

    Device Drivers -> Network device support → Wireless LAN
    Ставлю М у своего чипсета, в моем случае — Atheros Wireless Cards
    Затем перехожу в сам этот раздел и внутри отмечаю все тем же пробелом и знаком M нужный мне пункт.

    Сохраняю. Возвращаюсь в терминал, а если вы его закрыли, то в и каталог с исходниками тоже, и выполняю сначала make modules_prepare , а следом просто make . Результат потребует ожидания. Мой итоговый набор:

    Потребуются модули (.ko-файлы), включающие слово ath и mac80211.ko. Переношу их на телефон.

    Можно использовать adb, работая через компьютер, а можно не использовать и работать через терминал телефона, печатая команды пальцами по экрану. Я выбрал adb.

    Напомню, как он работает. Подключаю телефон через USB (отладка, естественно, включена) и выполняю:

    adb start-server
    adb shell
    su

    Я в телефоне и под рутом.

    Смотрю, какие модули уже есть командой lsmod и выгружаю их все, если это возможно, командой rmmod имямодуля

    Затем перехожу в каталог с вышеперечисленными модулями:

    cd /sdcard/ваш путь/

    Можно убедиться в их наличии командой ls .

    Загружаю их командой insmod имямодуля в такой и только такой последовательности (иначе просто не загрузится, выдавая ошибку):

    ath.ko
    ath9k_hw.ko
    ath9k_common.ko
    mac80211.ko
    ath9k_htc.ko

    III. Препятствия

    В этом и вся соль, без которой статья была бы слишком простой.

    1. Версии

    Естественно, первая ошибка возникает на первом этапе.

    Смотрю, что скажет об этом буфер сообщений ядра, выполнив команду dmesg :

    Не совпадают версии. 3.0.31 не есть 3.0.31-1919150.

    Открываю тот самый Makefile в исходниках ядра и в самом верху файла нахожу:

    VERSION = 3
    PATCHLEVEL = 0
    SUBLEVEL = 31
    EXTRAVERSION =
    NAME = Sneaky Weasel

    VERSION = 3
    PATCHLEVEL = 0
    SUBLEVEL = 31
    EXTRAVERSION = -1919150
    NAME = Sneaky Weasel

    И сохраняю.
    Заключительный этап пройдет в каталоге /include/config, где в файле kernel.release я поменяю 3.0.31 на 3.0.31-1919150
    Снова make modules_prepare , make и далее по предыдущему пункту.

    Читайте также:  Сертификаты не найдены андроид

    2. ewma

    Загружая mac80211.ko снова имею ошибку, о которой dmesg скажет следующее:

    Чудом прочитав на одном из англоязычных форумов опасное, но единственное в интернете, «решение», я перехожу в /net/mac80211/ и в файлах rx.c и sta_info.c и просто удаляю [либо комментирую (//)] строки ewma_add(&sta->avg_signal, -status->signal); и ewma_init(&sta->avg_signal, 1024, 8); соответственно.

    Опять перекомпилирую модули и двигаюсь дальше.

    3. Светодиод

    При загрузке ath9k_htc.ko и mac80211.ko очередные ошибки, у mac80211.ko это:

    А у ath9k_htc.ko это:

    Если ieee80211_-ошибки от ath9k_htc.ko это потому что я пытаюсь его загрузить до mac80211.ko, то led_-ошибки от обоих модулей от того, что телефон не понимает, что делать со светодиодом на моем адаптере. Тут два варианта развития событий.

    В первом просто убирается в графической конфигурации ядра значок [*] напротив
    Networking support → Wireless → Enable LED triggers и Device Drivers → LED Support.

    А во втором этот самый значок заморожен и снять его нельзя. Это значит, что при выборе моего адаптера, автоматически выбирается «поддержка» светодиода, убрать которую нельзя. Конечно же, это мой случай:

    Кнопка помощи по Device Drivers → LED Support выводит следующую информацию по разделу:


    config ATH9K_HTC
    tristate «Atheros HTC based wireless cards support»
    depends on USB && MAC80211
    select ATH9K_HW
    select MAC80211_LEDS
    select LEDS_CLASS
    select NEW_LEDS
    select ATH9K_COMMON
    .


    config ATH9K_HTC
    tristate «Atheros HTC based wireless cards support»
    depends on USB && MAC80211
    select ATH9K_HW
    select ATH9K_COMMON
    .

    и сохраняю. Теперь можно снимать галочки:

    Здесь и вовсе исчез пункт:

    Опять и снова перекомпиляция, новые модули и т.п.

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

    4. Версия firmware


    [ 7582.477874] C0 [ khubd] ath9k_htc 1-1:1.0: ath9k_htc: Please upgrade to FW version 1.3
    .

    Просто качаем другой фирмварь, но уже требуемой версии, и кладем его вместо прошлого.

    IV. Финиш

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

    Читайте также:  Как пользоваться виалон для андроида

    Ну а как и зачем зачастую используется режим монитора, вы и так все знаете. Спасибо за внимание!

    Источник

    Android usb wifi adapters

    Приветствую, не знаю, куда написать, вот и решил сюда, думаю, что в этой ветке найдётся много знающих людей.
    Как известно, существует способ взлома WiFi сети, использующей WPS авторизацию, через подбор WPS ключа. На компьютере под управлением Linux это весьма тривиальная задача и доходчиво описана в данной статье на хабре: Взломать Wi-Fi за 10 часов
    Учитывая тот факт, что многие производители пихают в свои детища один и тот же пинкод, то и взлом однотипных роутеров с WPS становится совсем детской забавой, занимающей несколько секунд: Взломать Wi-Fi за… 3 секунды
    Естественно пингвины — птицы ленивые, и уже состряпали для себя гуи с кнопкой «Сделать хорошо»: WPSCrackGUI

    Вопрос из всего вышесказанного простой — есть ли реализация reaver, airmon-ng, airodump-ng под андроид?
    Если нет, может, есть заинтересовавшиеся? Портировать это всё чудо, конечно же с целью проверки WiFi сетей на безопасность 🙂

    Спасибо. С удовольствием почитаю мнения форумчан.

    UPD:
    Со временем в обсуждении появились ссылки на некоторые решения:
    1. Тема с хабра об успешном запуске на телефоне SE Xperia Mini и Sony Xperia GO (возможно работает на всех телефонах Sony — надо проверять)
    http://habrahabr.ru/post/190554/
    2. Успешное использование aircrack-ng и reaver через установку Linux средствами Linux Deploy. На каком устройстве запущено неизвестно, возможно тот же Sony.
    http://svedm.net/?p=426

    UPD 2:
    Существует утилита в виде готового apk файла, позволяющая переводить wifi модули фирмы Broadcom в режим монитора.
    Сайт: http://bcmon.blogspot.ru/
    Прямая ссылка на скачивание: https://bcmon.googlecode.com/files/bcmon.apk
    Для работы программы требуется root и установленный BusyBox

    UPD 3:
    Появилась графическая оболочка Reaver-GUI for Android
    Упростит задачу тем, у кого на устройстве работает bcmon (bcm4329/4330).
    Краткое руководство по использованию от MaD_Mike_Nsk на русском здесь

    UPD 4:
    Пример использования внешнего usb wifi свистка, подключённого через OTG кабель к телефону. От sadykovildar читать здесь.

    Сообщение отредактировал derak1129 — 11.11.20, 20:51

    Источник

    Оцените статью