现在很多移动设备都提供wifi hostpot功能,使用方便,也省下了原来无线路由器的成本。wifi和wifi hotspot功能是互斥的,即在同一时间里,你只能用其中一种功能。在Android较新版本(2.2之后)中已经实现,本文实现在命令行模式下完成wifi hotspot功能的启动,并简单介绍其中涉及到的相关工具。
0、确保eth0可以访问网络
1、修改framework/base/core/res/res/values/config.xml
-
- "wlap0"
- "eth0"
- "ppp0"
- "wlan0"
2、加载wifi驱动(我这使用的是atheros) insmod /system/wifi/ar6000.ko ifname=wlap0
若成功的话,则第3、4、5步自动执行。
3、设置IP地址
/system/bin/ifconfig wlap0 192.168.100.1 netmask 255.255.255.0
4、iptables设置
echo 1 > /proc/sys/net/ipv4/ip_forward
/system/bin/iptables -A FORWARD -i wlap0 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
/system/bin/iptables -A FORWARD -i wlap0 -o eth0 -j ACCEPT
/system/bin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
5、dnsmasq设置
/system/bin/dnsmasq --no-daemon --no-resolv --no-poll --dhcp-range=192.168.100.100,192.168.100.200,100h
当然也可以把相关配置写成文件再执行dnsmasq --conf-file=/*path*/dnsmasq.conf
6、启动hostapd
/system/bin/hostapd_wps -dd /data/misc/wifi/hostapd.conf
出现的问题
1、执行上述命令后,客户端去连接的时候获取不到IP地址,重新启动hostapd就OK?
可以采用如下方法修正
/sytem/bin/ndc softap set eth0 wlap0 djstava open
/system/bin/ndc softap start
/system/bin/ndc/softap startap
阅读(14539) | 评论(5) | 转发(0) |