Virtualbox adb device找不到设备解决办法

电脑上是windows系统,但是本人喜欢ubuntu系统,搞双系统又觉得麻烦,所以就装了个virtualbox,里面搞了个ubuntu。

用这个ubuntu系统来开发andorid的应用,遇到一个问题,就是在Virtualbox的右下usb图标里面已经探测到了我的android设备"18d1"(如果没有探测到,请确定android设备打开了adb调试开关以及授权这台PC来调试Android)。但是adb device里面却始终没有设备,经过一番折腾总算知道是什么原因了。下面提供排查解决的步骤:

  • 1 首先输入lsusb来看看你的Android设备是否有被ubuntu识别到,如果没有,则继续第二步骤。
  • 2 在/etc/udev/rules.d/51-Android.rules里面添加如下(如果没有该文件可以创建一个):
bash 复制代码
SUBSYSTEM=="USB",ATTR{idVendor}=="18d1",MODE="0666",GROUP="plugdev"
  • 3 输入如下指令:sudo udevadm control --reload-rules以及sudo service udev restart

经过2-3的操作,一般情况lsusb就会出现你的设备。但是这个时候adb device依然有可能发现不了设备。

注意:我搜索了下网上的资料,很多资料说在~/.android/这个里面搞个什么adb_usb.ini。可以很负责的告诉大家,屁用没有。不要去尝试了。

  • 如果遇到这种情况输入dmesg|grep usb来看看内核和驱动的日志:

发现出现:"device is not authorized for usage"这种跟在你usb设备加载的日志后面。说明usb设备被ban了。到底被谁ban了?去google了上述的关键字,发现有个老外也提出了相同的问题,但是他后来纠正了自己的错误,说是自己错误的启用了usbguard服务。

我查看了下本机的服务,发现usbguard确实在运行,有三种方法解决:

1 干掉usbguard(永久):

bash 复制代码
sudo systemctl disable usbguard
sudo systemctl stop usbguard

2 临时禁用:sudo systemctl stop usbguard

3 配置usbguard允许android设备访问

bash 复制代码
#获取设备id
usbguard list-devices
#允许该设备
sudo usbguard allow-device <device_id>
#重新启动usbguard
sudo systemctl start usbguard

做完这些adb kill-server,adb start-server以后基本就可以找到设备了。

相关推荐
龙之叶11 小时前
【Android Monkey源码解析四】- 异常捕获/页面控制
android·windows·adb·monkey
大房身镇、王师傅13 小时前
【VirtualBox】VirtualBox 7.1.6 RockyLinux10 配置增强功能 设置共享目录
运维·服务器·virtualbox·rockylinux10
HyEISN15 小时前
Android 9 开启远程adb
android·adb
王文搏19 小时前
MySQL 常用函数用法速查(含解释与示例)
数据库·mysql·adb
June bug21 小时前
adb装包常见报错信息
adb
小小ken2 天前
ubuntu通过virtualbox安装win10虚拟机简要步骤及排错
ubuntu·虚拟机·virtualbox
a3158238062 天前
Android修改调试屏幕的选择方向
android·adb·屏幕旋转
UrSpecial2 天前
IM项目——用户管理子服务
android·adb
不会Android的潘潘2 天前
adb指令扩展方案
android·adb·aosp
Dr.勿忘3 天前
MUMU模拟器adb连接失败:cannot connect to 127.0.0.1:16384: 由于目标计算机积极拒绝,无法连接。 (10061)
游戏·unity·adb·游戏程序·调试·模拟器