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

相关推荐
大母猴啃编程14 分钟前
MySQL内置函数
数据库·sql·mysql·adb
养了一只皮卡丘31 分钟前
ubuntu22.04搭建mysql8.0.45 mgr (2)
android·adb
一切为了实战44 分钟前
10001-需求管理新增字段【ADB 模块】、【YUNTI 模块】需求文档(测试文档)
数据库·adb
深念Y1 小时前
手机碎屏急救,内屏碎裂想保数据
adb·智能手机·开发者模式·otg·无障碍·usb调试·拓展坞
吾诺2 小时前
【MySQL 的数据目录】
数据库·mysql·adb
Keanu-2 小时前
Mysql 组复制(MGR)部署
adb
无心水2 小时前
【OpenClaw:应用与协同】19、OpenClaw控制移动设备与物联网节点——ADB/MQTT集成实战
人工智能·物联网·adb·bm25·openclaw·openclaw·三月创作之星
拾贰_C12 小时前
【CentOS | MySQL | uninstall】关于安装的MySQL与系统版本不匹配问题,MySQL卸载与重装
mysql·adb·centos
风流 少年14 天前
mysql mcp
数据库·mysql·adb
轩情吖14 天前
MySQL初识
android·数据库·sql·mysql·adb·存储引擎