Ad hoc wifi on android

Can Android do peer-to-peer ad-hoc networking?

Is it possible to set up Android in ad-hoc peer-to-peer wifi mode? For example, I would like to have one phone broadcast a message, and have all peers in the network receive the broadcast, without having a server. I would like to use wifi since bluetooth range is more limited.

11 Answers 11

Here’s a bug report on the feature you’re requesting.

It’s status is «reviewed» but I don’t believe it’s been implemented yet.

Please vote this bug up, anyone who has an interest in Ad Hoc on Android — I’ve got an app idea that’s much trickier because of the lack of ad hoc

Although Android can’t find and connect to ad-hoc networks it sure can connect to Access Points. So as a work-around you can turn your Wireless Card into an Access Point using, for example, Connectify.

my friend and I are currently developing a java library implementing the AODV protocol (multihop routing suitable for mobile networks), in our bachelor thesis. The final ‘product’ includes a easy way to create/join an adhoc network on several android devices and an interface through the library, to send and receive messages. Unfortunately each type of phone such as hero, nexsus one. have a phonedepended way for createing a adhoc network so currently we are only supporting a few phones).

this means that once this project is finished, people with rooted phones can implement their distributed applications (file sharing, games, . ) by simply including the library .jar file in their android projects.

it’s all open source by the way

totally forgot this post, sorry. If anyone is interested, we have just handed in our thesis today (written in English!), and i would be glad to share information. My mail is jradi88@gmail.com

If you want to support other devices the only way to go unfortunately, is to implement the required commands (depends the phone!) for setting up and tearing down an ad-hoc network and compile a new C library based on the startstopadhoc.c (the file you need to modify). You can find the source code here: code.google.com/p/adhoc-on-android/source/browse/trunk/jni/… If you are lucky the commands you need to execute may be similar as the setup as Nexus One, so simply using the existing compiled C library may be all you need.

We basically got help to find out which commands are needed for setup by looking that the following project code.google.com/p/android-wifi-tether

Читайте также:  Mesh wi fi модули deco

Источник

Как соединить PC и смартфон по WiFi Ad-Hoc

Иногда нужно подключить телефон к интернету, но не через GPRS, а, например, через домашнего провайдера. Можно установить на смартфон GNUBox и попытаться брать интернет с домашнего компа через Bluetooth. Правда, говорят, после GNUBox’а на смартфорне начинают глючить обычные соединения. Можно поставить роутер с WiFi — и подключаться смартфоном к нему.

Если же нет желания разбираться с GNUBox’ом или покупать WiFi-роутер, можно настроить на домашнем компьютере WiFi Ad-Hoc соединение. Настроив Ad-Hoc WiFi между домашним компьютером и смартфоном, я получила возможность из дома звонить через SIP-клиент моего мобильника. Но главное — я смогла заставить дочку звонить на чужие мобильные не с домашнего МГТСовского телефона, а через SIP ее Nokia E70 (заставить ребенка надеть наушники и звонить с компа было нереально — она привыкла скакать по квартире, часами болтая по телефону). Экономия составила почти тысячу в месяц 🙂

Описанное ниже я делала, имея:
— компьютер с Fedora 7;
— WiFi-донгл ASUS WL-169gE;
— смартфон Nokia E61.

Если в вашем компьютере нет встроенного WiFi-модуля, купим внешний USB WiFi-адаптер и поколдуем над драйверами. Если же WiFi-модуль встроенный и определился системой (как в моем случае), переходим к пункту, посвященному настройке сетевого соединения .

УСТАНОВКА ДРАЙВЕРА
Для подключения своего USB WiFi-адаптера ASUS WL-169gE я воспользовалась утилитой ndiswrapper , которую установила следующим образом (замечу, что в начале установки WiFi-адаптер НЕ ДОЛЖЕН быть подключен к компьютеру):
# yum install ndiswrapper kmod-ndiswrapper

Драйвера, идущие с адаптером на CD, не годятся, поэтому пришлось скачать свежую версию с сайта www.asus.com и распаковать драйвер для Windows XP. Установим эти драйвера с помощью ndiswrapper (инструкцию для установки этого и других адаптеров можно найти на ndiswrapper.sourceforge.net/joomla/index.php?/component/option,com_openwiki/Itemid,33/id,list_a/):
# /usr/sbin/ndiswrapper -i bcmrndis.inf
# cp RNDISMPK.sys /etc/ndiswrapper/bcmrndis/rndismpk.sys
# cp usb8023k.sys /etc/ndiswrapper/bcmrndis/

Посмотрим на статус только что установленного драйвера:
# /usr/sbin/ndiswrapper -l
bcmrndis: driver installed

Теперь пропишем в файле /etc/udev/rules.d/99-custom.rules (если этого файла нет — создадим его) строку:
BUS==«usb», SYSFS==«1717», SYSFS==«0B05», RUN+

Подключим WiFi-брелок к USB-порту.
Загрузим ndiswrapper в память:
# /sbin/modprobe -v ndiswrapper

А вообще эту команду стоит прописать в rc.local .
Командой
# /sbin/iwconfig
можно посмотреть конфигурацию беспроводной карты.

Чтобы устройство подключалось при загрузке, добавим в /etc/modprobe.conf строку:
alias wlan0 ndiswrapper

Теперь при загрузке система будет находить и инициализировать WiFi-адаптер.

НАСТРОЙКА СЕТЕВОГО СОЕДИНЕНИЯ НА КОМПЬЮТЕРЕ

Создадим на компьютере 6 файлов. На том компе, к которому я подключала внешний WiFi, система определила WiFi-адаптер как устройство с именем wlan0 . На ноутбуке со встроенным WiFi-модулем он носит «системное имя» eth1 . Соответственно, для моего компа с внешним WiFi имя первого из перечисленных ниже файлов — /etc/sysconfig/network-scripts/ifcfg-wlan0 (этого файла не было в системе, я его создала), а для ноута со встроенным модулем — /etc/sysconfig/network-scripts/ifcfg-eth1 (этот файл уже существовал, и я просто отредактировала его, сделав на всякий случай копию старого файла). Итак, вот 6 файлов, определяющих конфигурацию сетевого соединения:
/etc/sysconfig/network-scripts/ifcfg-имя WiFi-адаптера
/etc/sysconfig/network-scripts/keys-имя WiFi-адаптера
/etc/sysconfig/networking/devices/ifcfg-имя WiFi-адаптера
/etc/sysconfig/networking/devices/keys-имя WiFi-адаптера
/etc/sysconfig/networking/profiles/default/ifcfg-имя WiFi-адаптера
/etc/sysconfig/networking/profiles/default/keys-имя WiFi-адаптера

В файлах keys-имя WiFi-адаптера пропишем строку (укажите здесь свои 13 цифр, которые будут использоваться в качестве ключа для доступа к сети):
KEY=s:1234567890123

Читайте также:  Телевизор перестал работать через вай фай

А в файл ifcfg-имя WiFi-адаптера — конфигурацию WiFi-адаптера, назначив ему IP-адрес 10.0.0.1, а WiFi-сети — имя my_wifi:
# Please read /usr/share/doc/initscripts-*/sysconfig.txt
# for the documentation of these parameters.
ONBOOT=yes
USERCTL=yes
IPV6INIT=no
PEERDNS=yes
TYPE=Wireless
DEVICE=имя WiFi-адаптера
HWADDR=
BOOTPROTO=none
DOMAIN=
ESSID=my_wifi
CHANNEL=3
MODE=Ad-Hoc
RATE=Auto
NETMASK=255.255.255.0
DHCP_HOSTNAME=
IPADDR=10.0.0.1

Перезагрузимся или включим только что произведенные настройки без перезагрузки, скомандовав:
# /sbin/ifup wlan0

НАСТРОЙКА СЕТЕВОГО СОЕДИНЕНИЯ НА СМАРТФОНЕ

Связь -> Дисп.соед. -> Доступн.WLAN . В списке обнаруженных сетей должна появиться только что созданная my_wifi. Закроем список сетей и перейдем к «рабочему столу» телефона. Теперь Меню -> Средства -> Настройки -> Соединения -> Точки доступа . Функции -> Новая тчк доступа -> Исп. стд параметры . Заполним появившиеся поля настройки соединения:
Имя соединения: my_wifi
Канал данных: WLAN
Имя сети WLAN: поиск сетевых имен
Состояние сети: Открытая
Режим сети WLAN: Одноранговая
Режим защиты WLAN: WEP
Пар. защиты WLAN:
Текущий ключ WEP: #1
Тип аутентификац.: Открытый
Парам. ключа WEP:
Шифрование WEP: 64 бит
Формат ключа WEP: ASCII
Ключ WEP: 1234567890123 (сюда нужно прописать те 13 цифр, которые мы ранее указали в файлах keys-wlan0)

Теперь назначим телефону IP:
Функции -> Доп.параметры -> Настройки IPv4
IP-адрес телефона: 10.0.0.2
Маска подсети: 255.255.255.0
Шлюз по умолчанию: 10.0.0.1
Адрес DNS: сюда пропишем адреса DNS-серверов, которые указаны в на компьютере в настройках соединения интернет
.

Теперь, запустив на смартфоне PuTTY, браузер или FTP-клиент, мы можем соответственно, работать на компьютере в текстовой консоли, обращаться к нему как к Web- или FTP-серверу. Главное, чтобы на компьютере крутился Apache и какой-нибудь FTP-сервер (о простейшей настройке компа как сервера я уже писала ).

НАСТРОЙКА РАБОТЫ С КИРИЛЛИЦЕЙ ДЛЯ PuTTY

Так как у меня по умолчанию стоит локаль ru_RU.UTF-8 (проверить локаль можно командой $ locale ), то для того, чтобы при входе со смартфонной PuTTY читабельными были все символы, а не только латынь, пришлось дописать в конец файла ~/.bashrc следующие команды:
if [[ «$TERM» = «xterm» ]] && [[ «$LANG» = *.UTF-8 ]]; then
# putty needs it to enable utf-8
echo -ne ‘\e%G’
fi

На компьютере создадим файл /opt/iptables.txt и введем в него следующий текст. Внимание: в приведенном ниже тексте замените в трех местах адрес 130.234.201.155 на IP-адрес своего компьютера в локальной сети (домашней или рабочей, через которую ваш комп может выходить в интернет), например на 192.168.1.2 , а встречающуюся один раз пару 130.234.0.0/255.255.0.0 на данные, соответствующие настройкам вашей сети, например, 192.168.1.0/255.255.255.0 ):

Читайте также:  Wi fi модуль atheros ar5b125

# Generated by iptables-save v1.3.5 on Tue Dec 12 06:08:26 2006
*nat
:PREROUTING ACCEPT [102343:16097956]
:POSTROUTING ACCEPT [11574:715293]
:OUTPUT ACCEPT [11574:715293]
-A POSTROUTING -s 10.0.0.0/255.255.255.0 -o eth0 -j SNAT —to-source 130.234.201.155
COMMIT
# Completed on Tue Dec 12 06:08:26 2006
# Generated by iptables-save v1.3.5 on Tue Dec 12 06:08:26 2006
*filter
:INPUT ACCEPT [746408:376053423]
:FORWARD ACCEPT [69495:52803710]
:OUTPUT ACCEPT [314025:40294091]
-A INPUT -s 130.234.0.0/255.255.0.0 -d 130.234.201.155 -p tcp -m tcp —sport 513:65535 —dport 22 -m state —state NEW,ESTABLISHED -j ACCEPT
-A INPUT -d 130.234.201.155 -p tcp -m tcp —sport 513:65535 —dport 22 -m state —state NEW,ESTABLISHED -j DROP
COMMIT
# Completed on Tue Dec 12 06:08:26 2006

Запустим нашу Ad-Hoc сеть, скомандовав:
# /sbin/sysctl -w net.ipv4.ip_forward=1
# /sbin/iptables-restore ./iptables.txt

Теперь смартфон может подключаться не только к установленным на НК Web- и FTP-серверам, но и заходить и на интернет-сайты, подключаться к FTP-серверам «большой» сети.

Источник

Дружим Android с Ad-hoc Wi-fi сетями

Wi-Fi Andriod

Если у вас есть Symbian-устройство с дешевым интернетом, и вы ипользуете программу типа JoikuSpot для расшаривания интернета по Wi-Fi, то для подключения с некоторых Android-устройств (например Lenovo A750) нужно править файл настройки вайфая. ( JoikuSpot создает не полноценную точку доступа типа роутер, а Ad-hoc). Для этой операции вы уже должны иметь root-доступ на вашем устройтве.

Жмем «добавить сеть Wi-Fi» и в ручную указываем «имя точки доступа joikuspot». Затем идем в /data/misc/wifi и редактируем файлик /wpa_supplicant.conf. (Делать это можно rootexplorer-ом — сверху справа переключаем в R/W режим, заходим в /data/misc/wifi, и для редактирования файла долго удерживаем на нем палец, затем выбираем «редактировать при помощи текстового редактора»)

ГЛАВНОЕ . Проверить права и владельца на этот файлик (должно быть 660 wpa_supplicant.conf или rwrw— ) — иначе wi-fi НЕ ЗАПУСТИТСЯ — будет писать «Не удалось запустить Wi- Fi».

В начало добавляем строку:

ap_ scan= 2 (при этом будут сканироваться все сети, в том числе и ad- hoc)
а затем в раздел
network= ssid=»наш ssid»
scan_ ssid= 1
key_ mgmt=NONE
priority= 20
wep_ key0=» пароль»< -- -- -- -- -- добавляем эту строку если есть пароль и wep
mode= 1 < -- -- -- -- -- добавляем эту строку (для указания ad- hoc)
>
сохраняем, и идем обратно в системные настройки wi-fi, точка должна увидеться и получить от нее адресс и т. п .

Комментарии

Спасибо за статью.

На таком же телефоне (Lenovo A750) у меня заработало подключение к ad-hoc без пароля с параметром ap_scan=1.

Источник

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