如何查看安卓设备adb连接日志以排查WiFi连接被拒绝问题
问题解答
日志查看方式与存储位置
你可以在已root的安卓设备上获取adb相关的调试日志,具体分为三类:
- adbd运行日志
设备上的adb服务进程adbd的运行日志默认输出到系统logcat中,可通过USB连接设备后执行以下命令实时查看:
如需保存到本地文件,执行:adb logcat -s adbd
日志存储路径为设备内部存储根目录的adb logcat -s adbd -f /sdcard/adbd_log.txtadbd_log.txt。
如需获取更详细的调试级日志,可通过root权限开启adbd调试模式:- 进入root shell:
adb shell su - 停止adbd服务:
setprop ctl.stop adbd - 开启调试模式:
setprop persist.adb.debug 1 - 重启adbd服务:
setprop ctl.start adbd
开启后debug级日志同样会输出到logcat中,可按上述方式抓取。
- 进入root shell:
- 内核网络日志
如果是端口监听被拦截、内核权限限制导致的连接失败,可查看内核日志,执行命令:
内核日志默认存储在adb shell su -c dmesg | grep -E 'adb|5555'/proc/kmsg路径,需要root权限才可直接读取。 - iptables防火墙日志
部分自定义ROM会默认开启iptables拦截非系统端口,可通过以下命令查看防火墙拦截规则:
防火墙规则存储在adb shell su -c iptables -L INPUT -v -n/proc/net/ip_tables_names相关路径下,也可直接导出全量规则到文件:iptables-save > /sdcard/iptables_rules.txt
常见故障排查参考(自定义ROM场景)
结合你给出的报错Connection refused,优先排查以下常见问题:
- 检查adbd是否正常监听5555端口:
执行命令adb shell su -c netstat -tulpn | grep :5555,如果无输出说明adbd未开启网络监听,执行setprop service.adb.tcp.port 5555后重启adbd即可。 - 检查iptables是否拦截5555端口:
如防火墙规则存在对5555端口的DROP规则,执行以下命令添加放行规则:iptables -I INPUT -p tcp --dport 5555 -j ACCEPT - 排查SELinux权限限制:
临时关闭SELinux测试连接:setenforce 0,如果此时可以正常连接,说明自定义ROM的SELinux规则存在对adbd网络权限的限制,需修改对应SELinux策略即可。
内容的提问来源于stack exchange,提问作者Eray Erdin
相关产品推荐
相关产品推荐

