在Linux系统中通过ADB(Android Debug Bridge)连接手机是进行Android设备调试、文件传输或应用安装的常见操作,整个过程可分为准备工作、USB连接、WiFi连接及常见问题解决几个步骤,需确保设备与系统环境配置正确。
准备工作
-
安装ADB工具
Linux系统通常需手动安装ADB,不同发行版包管理器命令不同:- Ubuntu/Debian:
sudo apt update && sudo apt install android-tools-adb
- Fedora/CentOS:
sudo dnf install android-tools
- Arch Linux:
sudo pacman -S android-tools
安装后可通过adb version
命令验证是否成功(显示版本号即安装成功)。
- Ubuntu/Debian:
-
开启手机USB调试模式
- 首先在手机“设置”中找到“关于手机”,连续点击“版本号”或“构建号”7次,启用“开发者选项”;
- 返回“设置-系统-开发者选项”,开启“USB调试”开关(部分品牌手机需额外开启“USB调试(安全模式)”)。
USB连接手机
-
物理连接与授权
- 用USB数据线连接手机与Linux电脑,确保线缆支持数据传输(部分充电线仅支持供电);
- 手机首次连接时,屏幕会弹出“允许USB调试吗?”的对话框,勾选“始终允许”并点击“确定”,否则电脑端ADB无法识别设备。
-
Linux端检查识别
- 连接后,在终端执行
adb devices
命令,若设备正常授权,会显示设备序列号(如xxxxxxxx device
); - 若显示
unauthorized
,说明手机未授权,需重新确认对话框;若显示offline
,可能是驱动或USB接口问题,尝试更换数据线或USB口。
- 连接后,在终端执行
-
权限问题解决(Ubuntu为例)
部分Linux系统(如Ubuntu)默认限制普通用户访问USB设备,需配置udev规则:- 执行
lsusb
查找手机厂商ID(如12d1:107e
表示华为某型号); - 创建规则文件:
sudo nano /etc/udev/rules.d/51-android.rules
SUBSYSTEM=="usb", ATTR{idVendor}=="12d1", ATTR{idProduct}=="107e", MODE="0666"
(替换为实际ID); - 保存后执行
sudo chmod 644 /etc/udev/rules.d/51-android.rules
和sudo systemctl restart udev
,重新连接设备即可。
- 执行
WiFi连接手机(无需USB线)
若需无线连接,需先通过USB配对,步骤如下:
-
USB配对并开启TCP/IP模式
- 确保USB连接正常(
adb devices
能识别设备); - 执行
adb tcpip 5555
(端口号可自定义,默认5555),手机提示“重启TCPIP模式”后拔掉USB线。
- 确保USB连接正常(
-
获取手机IP并连接
- 在手机WiFi设置中查看当前IP地址(如
168.1.100
); - Linux终端执行
adb connect 192.168.1.100:5555
,若显示connected to 192.168.1.100:5555
则连接成功; - 后续可直接通过WiFi调试,无需USB线,断开连接执行
adb disconnect
即可。
- 在手机WiFi设置中查看当前IP地址(如
常见问题解决
问题现象 | 可能原因及解决方法 |
---|---|
adb devices 无设备显示 |
未开启USB调试;2. 数据线仅支持充电;3. Linux权限未配置(需修改udev规则);4. 手机USB接口故障。 |
设备显示offline |
USB接口接触不良,重新插拔;2. 手机USB调试被禁用,重新开启;3. 执行adb kill-server && adb start-server 重启ADB服务。 |
WiFi连接失败 | 手机与电脑不在同一WiFi网络;2. 防火墙阻止端口5555,关闭Linux防火墙(sudo ufw disable );3. IP地址错误,重新确认手机IP。 |
ADB命令执行无响应 | 重启ADB服务(adb kill-server && adb start-server );2. 重启手机或电脑;3. 检查ADB工具版本是否过旧,更新包。 |
相关问答FAQs
Q1:为什么执行adb devices
时设备显示“unauthorized”?
A:该提示表示手机未授权当前电脑的ADB调试权限,需在手机屏幕弹出的“允许USB调试”对话框中勾选“始终允许”并点击“确定”,部分品牌手机(如小米)需在开发者选项中额外开启“USB调试(安全模式)”,若未弹出对话框,可尝试更换USB线或重新连接设备。
Q2:如何通过WiFi连接ADB时自动获取手机IP,避免手动输入?
A:可通过ADB命令自动获取手机IP,在手机端执行adb shell ip route | awk '{print $9}'
(获取默认网关IP),或直接执行adb shell ifconfig | grep "inet " | grep -v "127.0.0.1" | awk '{print $2}'
(获取手机WiFi IP),也可编写Shell脚本自动化操作,
#!/bin/bash IP=$(adb shell ifconfig wlan0 | grep "inet " | awk '{print $2}' | cut -d ":" -f 2) adb connect $IP:5555
将脚本保存为adb-wifi-connect.sh
,赋予执行权限(chmod +x adb-wifi-connect.sh
),后续直接运行即可自动连接。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/26339.html