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以后基本就可以找到设备了。

相关推荐
vistaup18 小时前
通过ADB 触发gc
adb
Tangcan-19 小时前
【MySQL】 事务
数据库·mysql·adb
qinyia1 天前
在Ubuntu 22.04.5 LTS上安装MySQL 8并设置root密码的完整协作流程
mysql·ubuntu·adb
怣502 天前
[特殊字符] MySQL数据表操作完全指南:增删改查的艺术
数据库·mysql·adb
小天源2 天前
银河麒麟 V10(x86_64)离线安装 MySQL 8.0
android·mysql·adb·麒麟v10
86Eric3 天前
VirtualBox 增强功能(Guest Additions)安装与共享文件夹配置全攻略
virtualbox·guest additions·虚拟机共享
Dxy12393102163 天前
Python判断MySQL表是否存在,不存在则创建
python·mysql·adb
五五六六05244 天前
adb server is out of date. killing...问题的解决
网络安全·adb
蜗牛、Z4 天前
Android 日常开发Adb常用命令附档
android·adb
86Eric5 天前
Vagrant 镜像打包与新环境部署全流程实操(避坑指南)
运维·vagrant·virtualbox·vagrantfile