Ubuntu下执行Adb devices Android找不到设备

本文介绍了解决Qcom平台设备无法通过ADB连接的问题。首先通过lsusb命令找到设备ID,然后修改udev规则文件来识别设备。若问题仍未解决,可以尝试在adb_usb.ini文件中添加设备ID。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

近段时间需要由MTK平台转到Qcom平台开发,发现执行adb devices 命令,显示找不到设备,最后通过强大的度娘成功地解决问题,解决方案如下:

1) 在终端运行 lsusb,找到设备ID

结果显示:

hwruanjian@hwruanjian-Name:~$ lsusb  
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub  
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub  
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub  
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub  
Bus 001 Device 003: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse  
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub  
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub  
Bus 003 Device 010: ID 271d:9015
2、注册到udev的rules文件

vim  /etc/udev/rules.d/51-android.rules    
添加这个ID:1ebf,如下:    
SUBSYSTEM=="usb", ATTR{idVendor}=="<span style="color: rgb(51, 51, 51); line-height: 24px; font-family: Arial; ">271d</span>", MODE="0666"    
保存文件并运行:    
sudo chmod a+rx /etc/udev/rules.d/51-android.rules    
sudo /etc/init.d/udev restart    
运行结果如下:    
Rather than invoking init scripts through /etc/init.d, use the service(8)    
utility, e.g. service udev restart    
Since the script you are attempting to invoke has been converted to an    
Upstart job, you may also use the stop(8) and then start(8) utilities,    
e.g. stop udev ; start udev. The restart(8) utility is also available.    
udev stop/waiting    
udev start/running, process 14636 
3、启动adb的服务

cd ~/tools/android-sdk-linux_x86/platform-tools  
sudo ./adb kill-server  
sudo ./adb start-server

一般情况,到此就可以直接用 adb 来进行操作了。然而,以上方法还不管用(本人情况),则执行以下操作:

1)使用lsusb查找到devID

2)以16进制写入到本地电脑隐藏目录文件[/home/用户名/.android/adb_usb.ini]中(如果不存在,就创建一个)。
# ANDROID 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT.  
# USE 'android update adb' TO GENERATE.  
# 1 USB VENDOR ID PER LINE.  
0x271D  
3)最后打开一个命令行执行./adb devices即可

Tips:
1)查看当前使用的adb:which adb
2)搜索到设备,显示没有权限
注意:量产版本是不允许用adb调试的 原理: 
adb权限受ro.secure这个属性控制,ro.secure =1 时adb权限受限,很多功能不能使用。 该属性在手机根目录的default.prop文件中,手机根目录, 也即root文件系统和kernel一起打包在boot.img中。 
在本地编译时user_variant为空,ro.secure = 0,adb调试不受限。 
在提交版本发布请求时,人为填了一个值,ro.secure=1,所以从服务器下载的bin版本,有的就没有adb调试权限  
解决方案: 
  在本地用最新的代码编译bootimage 
./mk  bootimage  
用flashtools 单独下载本地编译生成的bootimage(boot.img)













评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值