CamDroid连接WiFi

没有了GUI的支持,没有办法进入「设置」,「开启WiFi」选中,输入密码就自动连接上WiFi,需要按照Linux的方式或者Android的手动命令行方便连接WiFi了。

对于 Android来说,从上到下来讲,第一个跟WiFi有关的命令就是svc了,以下是他们的使用方法:

svc wifi enable //打开wifi
svc wifi disable //关闭wifi

但是实际操作中发现系统中这个命令也裁掉了,看来是因为估计这个命令也只是和Android上层服务进行通讯来实现的功能,上层服务都没有了,这个命令自然也没有存在的必要了。

Android 已连接过的WIFI如何让它自动连接_配置文件

那么接下来需要试试ifconfig,发现这个并不能查看出网卡,而我一般是使用busybox ifconfig,需要先把busybox装上。之前编译的有静态连接busybox,直接通过U盘拷贝过来。再看网卡信息:

Android 已连接过的WIFI如何让它自动连接_Android_02


能看到网上信息,说明驱动是好的,这里就不用考虑驱动的问题了。下面就是如何启动它了。同时查看了CamDroid还保留了wpa_supplicant,那么差不多还能使用NanoPC-T2(Android 5.1)手动开启 设置WiFi,熟悉wpa_supplicant工作原理的方法进行启动WiFi。

Android 已连接过的WIFI如何让它自动连接_无密码_03


按照上面引用文章方法测试:

busybox ifconfig wlan0 up
start wpa_supplicant

Android 已连接过的WIFI如何让它自动连接_Android_04


测试结果是:能够将网卡up起来,但是不能start wpa_supplicantwpa_supplicant启动起来,如果能启动起来就可以使用wpa_cli了。或许是配置的问题,有待后续研究了。

连接无密码WiFi

连接带密码的需要使用到wpa_supplicant,如果连接不带密码的WiFi,就比较简单了,先连接简单的无密码WiFi:

# 1.查看所有网络接口
busybox ifconfig -a 
# 2.使用该网卡                    
busybox ifconfig wlan0 up   
# 3.搜索AP 并记下ESSID这里以ChinaNet为例        
iwlist wlan0 scan    
# 4.连接无密码的ESSID,为了测试专门设置一个无密码的。                       
iwconfig wlan0 essid ChinaNet 
# 5. 获取ip地址 
dhcpd wlan0  
# 6. 再看网卡状态,可以看到已经成功获取ip地址了。                                   
busybox ifconfig            
# 7. 先ping百度ip.(百度IP会变,最好查一下最新的)                
ping 14.215.177.39

执行结果:

Android 已连接过的WIFI如何让它自动连接_配置文件_05

连接带密码WiFi

能连接不带密码的WiFi就说明驱动都正常了,下面来连接带密码的WiFi。

将类似这样的配置文件放到/data/misc/wifi/wpa_supplicant.conf并修改权限

chown system:wifi /data/misc/wifi/wpa_supplicant.conf
chmod 660 /data/misc/wifi/wpa_supplicant.conf

wpa_supplicant.conf内容如下:

ctrl_interface=wlan0
update_config=1
device_name=wing_mbox203
manufacturer=unknown
model_name=SoftwinerEvb
model_number=SoftwinerEvb
serial_number=
device_type=10-0050F204-5
config_methods=physical_display virtual_push_button keypad

network={
	ssid="xxxxxx"
	psk="xxxxxxxx"
	key_mgmt=WPA-PSK
	priority=1
}

启动

ifconfig wlan0 up
start wpa_supplicant

Android 已连接过的WIFI如何让它自动连接_无密码_06


注意:需要保证init.rc中的wpa_supplicant配置正确,确保不为热点(p2p)模式

搜索热点

wpa_cli -iwlan0
> SCAN
> SCAN_RESULTS

结果如下图:

Android 已连接过的WIFI如何让它自动连接_无密码_07

连接

配置文件中已经配置好了WiFi名称和密码,这里直接使能即可。

wpa_cli -i wlan0 enable_network 0
dhcpcd wlan0

执行结果:

Android 已连接过的WIFI如何让它自动连接_配置文件_05


汇总 两步即可:

start wpa_supplicant
dhcpcd wlan0
# 配置DNS能ping通域名
setprop net.dns1 8.8.8.8 
ping baidu.com

如果不想放配置文件可以如下:

# 拷贝配置文件并启动
cp /system/etc/wifi/wpa_supplicant.conf /data/misc/wifi/wpa_supplicant.conf
start wpa_supplicant

# 添加网络并连接
wpa_cli -i wlan0 add_network
wpa_cli -i wlan0 set_network 0 ssid '"name"'
wpa_cli -i wlan0 set_network 0 psk '"psk"'
wpa_cli -i wlan0 set_network 0 key_mgmt WPA-PSK
wpa_cli -i wlan0 enable_network 0

# 获取IP并设置DNS
dhcpcd wlan0
setprop net.dns1 8.8.8.8 
ping baidu.com

Android 已连接过的WIFI如何让它自动连接_无密码_09