如何用adb shell配置Android Things树莓派WiFi?迁移wpa_supplicant失败求助
关于Android Things树莓派WiFi配置的两个问题解答
问题1:如何使用adb shell在运行Android Things的树莓派上设置带用户名和密码的WiFi?
首先得确保你的树莓派已经和电脑通过USB或者网络adb连上了,然后跟着下面的步骤操作就行:
- 先进入adb shell:
adb shell - (可选)扫描附近的WiFi,确认你要连接的SSID名称:
wpa_cli scan wpa_cli scan_results - 编辑WiFi配置文件,路径一般是
/data/misc/wifi/wpa_supplicant.conf。你可以用vi编辑,或者用echo命令直接追加配置:
用vi的话,输入命令进入编辑模式:
然后添加这段内容(把vi /data/misc/wifi/wpa_supplicant.conf你的WiFi名称和你的WiFi密码换成实际信息):
要是觉得network={ ssid="你的WiFi名称" psk="你的WiFi密码" key_mgmt=WPA-PSK }vi麻烦,直接用echo追加更快捷:echo 'network={ ssid="你的WiFi名称" psk="你的WiFi密码" key_mgmt=WPA-PSK }' >> /data/misc/wifi/wpa_supplicant.conf - 重启WiFi服务让配置生效:
svc wifi disable svc wifi enable - 最后验证一下连接状态,看看是不是连上了:
wpa_cli status # 或者看IP地址确认 ifconfig wlan0
问题2:复制旧版Android Things的wpa_supplicant文件到新版设备后无法连接WiFi,遗漏了哪些步骤?
这种情况我碰到过好几次,主要是不同版本的Android Things在WiFi配置规则、权限上有变化,你大概率遗漏了下面这些关键点:
配置格式或加密协议不兼容:
新版系统可能对加密协议的要求更严格,旧版里一些没明确指定的参数(比如proto)在新版里必须明确设置。比如旧配置可能只写了key_mgmt=WPA-PSK,新版可能需要加上proto=WPA2才能正常识别。建议检查旧配置里的参数,对照新版系统的要求调整。文件权限不对:
复制文件后,新设备上的wpa_supplicant.conf权限肯定和原版不一样,系统读不了就没法连接。你得把权限改回默认的:chown wifi:wifi /data/misc/wifi/wpa_supplicant.conf chmod 660 /data/misc/wifi/wpa_supplicant.conf没彻底重启WiFi服务:
光开关WiFi可能不够,最好先禁用等几秒再启用,或者直接重启设备:svc wifi disable sleep 5 svc wifi enable # 或者直接重启设备 reboot新版系统的配置机制变了:
有些新版Android Things不再直接读取wpa_supplicant.conf,而是用系统的Settings Provider来管理WiFi配置。这种情况下复制文件根本没用,得用新版支持的方式重新配置——比如用adb打开设置界面手动配,或者用新版的WiFi命令工具操作。PSK是哈希值而非明文:
如果旧配置里的psk是哈希字符串而不是明文密码,新版系统可能不识别。换成明文密码重新配置,让系统自己生成正确的哈希值就行。
内容的提问来源于stack exchange,提问作者austinjohnsto
相关产品推荐
相关产品推荐

