Каким образом Java Wifi-Stack связан с wpa_supplicant?
В «старое доброе время» Android, то Java полагался на некоторой JNI общаться с wpa_supplicant
использования пары локальных сокетов (файловые дескрипторы) для общения в текстовой форме с ним. Запись/чтение через select()
в файле des '. Если у вас есть wpa_supplicant
работает (или hostapd)
, если вы настроены эти правильно у вас есть локальный сокет, который вы можете выбрать/команды чтения/записи и получить результаты от
Смотрите здесь для некоторых объяснений по этому поводу:.
https://w1.fi/wpa_supplicant/devel/ctrl_iface_page.html
Вы можете экспериментировать с этим самостоятельно, используя wpa_cli
или hostapd_cli
программ на вашем компьютере, которые делают только что:. посылать команды демона, получить асинхронные ответы, и т.д. рамочный/Rince/повтор для ВПА вир»использовать его -C = ctrl_interface parameter
, а для hostapd используйте опцию пути -g global control interface
или сделайте это в соответствующий файл конфигурации. То, что вы в основном получаете, - это своего рода оболочка, сообщающаяся с демонами, поэтому все это сводится к созданию командных строк и анализу ответов строк. Вы можете обнаружить, что это находится в wifi-legacy
или что-то в этом дереве вашего Android-источника.
И это был очень прагматичный, простой подход, который только что сработал.
Теперь реальное, долгосрочное решение, правильный способ связи с ядром Wi-Fi mac80211/nl80211
уровней составляет libnl
. И из того, что я вижу, именно так использует Google в наши дни. НО! B UT: он имеет крутую кривую обучения, потому что библиотека libnl
, которая должна быть использована для этого, является очень расширяемой/общей, что означает «сложнее сделать самую основную вещь», и libnl
пришел с довольно многими Изменения API. Если вы Google, никаких проблем с этим, это очень ценная инвестиция, и мы не будем так долго обойти это, поэтому идите, мы будем использовать ее повсюду.Используйте команду libnl
для связи с уровнями ядра 802.11 и создайте над этим код более высокого уровня.
Если вы обычный пользователь, добро пожаловать на несколько дней (недель?), Чтобы попасть в libnl
для использования по стандарту 802.11.
Вы пытаетесь создать свой собственный ПЗУ на основе цианогенмода? –
Да, это верно Дэвид. – Martin