1.插入wifi驱动
insmod /system/wifi/wlan.ko
2.配置WIFI (wlan0 为无线无卡名称,可通过iwconfig 查看)
ifconfig wlan0 up
iwconfig wlan0 mode ad-hoc
iwconfig wlan0 essid "android-ap" (搜索时看到的AP的名字)
iwconfig wlan0 essid on (这个不设置,可能无法搜索到)
3.配置WIFI的加密方式,可以不配
iwconfig wlan0 key s:12345678
iwconfig wlan0 key restricted
iwconfig wlan0 commit
4.删除可能存在的iptable规则
iptables -N wireless-tether
iptables -F wireless-tether
iptables -t nat -F PREROUTING
iptables -t nat -F POSTROUTING
iptables -t nat -F
5.新建iptable规则(iptable功能需要内核支持)
iptables -A wireless-tether -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A wireless-tether -s 192.168.2.0/24 -j ACCEPT
iptables -A wireless-tether -p 47 -j ACCEPT
iptables -A wireless-tether -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
iptables -A FORWARD -j wireless-tether
iptables -t nat -I POSTROUTING -s 192.168.2.0/24 -j MASQUERADE
# Enabling IP forwarding
echo "1" >/proc/sys/net/ipv4/ip_forward
6.启动DNS及DHCP服务,否则无法获取IP地址和DNS服务
附:
# cat dnsmasq.conf
dhcp-authoritative
dhcp-range=192.168.2.100,192.168.2.105,12h
dhcp-leasefile=/data/data/android-ap/var/dnsmasq.leases
pid-file=/data/data/android-ap/var/dnsmasq.pid
user=root
no-negcache
# cat resolv.conf
nameserver 208.67.220.220