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

相关推荐
活宝小娜6 小时前
mysql详细安装教程
数据库·mysql·adb
zhangjin11208 小时前
adb install和 pm install 的区别是什么?
adb
炼川淬海DB1 天前
数据库开发规范
android·adb·数据库开发
何极光2 天前
MySQL 8.0详细安装教程(附下载地址)
数据库·mysql·adb
sevencheng7982 天前
【ADB】adb命令行常用按键模拟代码
linux·adb·模拟按键,返回键,音量键
shimly1234562 天前
win11 下载安装 virtualbox,安装 ubuntu24.04 镜像
virtualbox
QX_hao3 天前
mysqldump-vs-xtrabackup
adb·mysql备份
云计算磊哥@3 天前
运维开发宝典028-MySQL04数据库热备
数据库·adb·运维开发
charlee443 天前
Unity在安卓端如何调试输出信息
android·unity·adb·游戏引擎·真机调试
ai_coder_ai5 天前
如何使用adb实现自动化脚本?
运维·adb·自动化