Ubuntu EC2实例执行adb devices无设备显示求助
解决AWS EC2 Linux实例ADB无法识别物理设备的问题
基础连接验证
- 首先明确:普通EC2虚拟实例无法直接连接本地物理USB设备,必须通过USB over IP工具(如USB/IP、Remote USB等)实现远程挂载,或使用支持USB passthrough的裸金属实例。先确认你的设备是通过合规方式连接到EC2的。
- 执行
lsusb命令,查看输出中是否包含你的移动设备厂商ID和产品ID(格式如18d1:4ee7)。如果没有,说明设备未被系统检测到,优先排查硬件连接或USB转网络工具的配置。
Udev规则有效性验证
- 检查你添加的规则文件(如
/etc/udev/rules.d/51-android.rules)格式是否正确,示例格式:
其中SUBSYSTEM=="usb", ATTR{idVendor}=="XXXX", ATTR{idProduct}=="YYYY", MODE="0666", GROUP="plugdev"XXXX和YYYY替换为lsusb查到的厂商/产品ID。 - 重新加载规则并触发生效:
sudo udevadm control --reload-rules sudo udevadm trigger adb kill-server && adb start-server - 确认当前用户属于
plugdev组:执行groups查看,若未包含,执行sudo usermod -aG plugdev $USER后重新登录。
ADB权限与兼容性排查
- 尝试以root权限运行ADB:
sudo adb kill-server && sudo adb start-server sudo adb devices - 检查ADB版本兼容性:执行
adb version,若版本过旧,替换为对应平台的最新ADB工具。 - 确认移动设备已开启USB调试模式,且在首次连接时授权了EC2实例的调试请求(USB over IP连接需确保设备端授权框已确认)。
EC2实例专属配置检查
- 若使用裸金属实例,确认已启用USB passthrough功能,部分实例类型需在启动时配置PCI设备透传。
- 检查EC2安全组和本地防火墙,确保USB over IP工具使用的端口(如5037、自定义传输端口)未被拦截。
内容的提问来源于stack exchange,提问作者Uday Kumar
相关产品推荐
相关产品推荐

