概述
最近由于内置的合作商比较多,本人使用的Ubuntu系统好多厂商的Android手机都无法正确的识别,经过一番折腾,和查阅SDK,现把Linux下ADB驱动配置的方法和当中会遇到的相关问题的解决方法整理出来贡献给大家。
Linux下使用手机USB调试模式连接ADB进行Android程序的调试,配置驱动没有Windows来的直观。
具体步骤
首先确认手机连接上电脑,lsusb查看下设备记录。
matthew@matthew-1230-laptop:~$lsusb
Bus007Device009:ID18d1:4e12
Bus007Device001:ID1d6b:0002LinuxFoundation2.0roothub
Bus006Device001:ID1d6b:0001LinuxFoundation1.1roothub
Bus005Device001:ID1d6b:0001LinuxFoundation1.1roothub
Bus003Device001:ID1d6b:0002LinuxFoundation2.0roothub
Bus002Device001:ID1d6b:0001LinuxFoundation1.1roothub
Bus001Device001:ID1d6b:0001LinuxFoundation1.1roothub
Bus004Device004:ID093a:2510PixartImaging,Inc.
Bus004Device001:ID1d6b:0001LinuxFoundation1.1roothub
我这里是:
Bus007Device009:ID18d1:4e12
然后在/etc/udev/rules.d/下创建一个配置文件:51-android.rules
sudovim/etc/udev/rules.d/50-android.rules
文件里添加如下配置参数:
SUBSYSTEM=="usb",SYSFS{"HighTechComputerCorp."}=="0bb4",MODE="0666"
保存,给配置文件设置下权限
sudochmoda+rx/etc/udev/rules.d/50-android.rules
Restart
sudo/etc/init.d/udevrestart
最后再重启下adb服务,就可以了(没配置环境变量的请进入AndroidSDKtools目录执行sudo./adbkill-server./adbdevices)
sudoadbkill-server
sudoadbdevices
补充
SYSFS参数:
SYSFS{"idVendor"}="xxx"
针对LinuxADB驱动配置文件里的SYSFS参数是指设备厂商。当初因为是HTC帮Google做的手机,所以官网一开始的用例上写的是”HighTechComputerCorp.”。但现在Moto,索爱,三星等一批手机厂商的加入,Android生产厂商已不只HTC一家。而且且如果设备型号不是0bb4那该怎么办呢?
读sdk帮助文档的时候,发现sdk已经提供了说明:
(详见:docs/guide/developing/device.html)
Ifyou’redevelopingonUbuntuLinux,youneedtoaddarulesfilethatcontainsaUSBconfigurationforeachtypeofdeviceyouwanttousefordevelopment.EachdevicemanufacturerusesadifferentvendorID.TheexamplerulesfilesbelowshowhowtoaddanentryforasinglevendorID(theHTCvendorID).Inordertosupportmoredevices,youwillneedadditionallinesofthesameformatthatprovideadifferentvaluefortheSYSFS{idVendor}property.ForotherIDs,seethetableofUSBVendorIDs,below.
1.Loginasrootandcreatethisfile:/etc/udev/rules.d/51-android.rules.
ForGusty/Hardy,editthefiletoread:[注:ubuntu7.10及以后版本]
SUBSYSTEM==”usb”,SYSFS{idVendor}==”0bb4″,MODE=”0666″
ForDapper,editthefiletoread:[注:ubuntu6.06及以前版本]
SUBSYSTEM==”usb_device”,SYSFS{idVendor}==”0bb4″,MODE=”0666″
2.Nowexecute:
chmoda+r/etc/udev/rules.d/51-android.rules
只要按照说明把创建的51-android.rules文件中的0bb4修改为相应的USB供应商ID信息即可。
比如我的手机是motorola,idVender是22b8
那么这一行就是
SUBSYSTEM=="usb",SYSFS{idVendor}=="22b8",MODE="0666"
不过,你可以写多行,以使用各种设备。比如我就写了所有的,如下:
#Acer0502
SUBSYSTEM=="usb",SYSFS{idVendor}=="0502",MODE="0666"
#Dell413c
SUBSYSTEM=="usb",SYSFS{idVendor}=="413c",MODE="0666"
#Foxconn0489
SUBSYSTEM=="usb",SYSFS{idVendor}=="0489",MODE="0666"
#Garmin-Asus091E
SUBSYSTEM=="usb",SYSFS{idVendor}=="091e",MODE="0666"
#HTC0bb4
SUBSYSTEM=="usb",SYSFS{idVendor}=="0bb4",MODE="0666"
#Huawei12d1
SUBSYSTEM=="usb",SYSFS{idVendor}=="12d1",MODE="0666"
#Kyocera0482
SUBSYSTEM=="usb",SYSFS{idVendor}=="0482",MODE="0666"
#LG1004
SUBSYSTEM=="usb",SYSFS{idVendor}=="1004",MODE="0666"
#Motorola22b8
SUBSYSTEM=="usb",SYSFS{idVendor}=="22b8",MODE="0666"
#Nvidia0955
SUBSYSTEM=="usb",SYSFS{idVendor}=="0955",MODE="0666"
#Pantech10A9
SUBSYSTEM=="usb",SYSFS{idVendor}=="10A9",MODE="0666"
#Samsung04e8
SUBSYSTEM=="usb",SYSFS{idVendor}=="04e8",MODE="0666"
#Sharp04dd
SUBSYSTEM=="usb",SYSFS{idVendor}=="04dd",MODE="0666"
#SonyEricsson0fce
SUBSYSTEM=="usb",SYSFS{idVendor}=="0fce",MODE="0666"
#ZTE19D2
SUBSYSTEM=="usb",SYSFS{idVendor}=="19D2",MODE="0666"
但是这上面的ID,并不能包括所有,我手上就有一台设备的USBID就不在上述之列。
解决办法是你可以使用lsusb命令查看你的USBID
matthew@matthew-1230-laptop:~$lsusb
Bus002Device003:ID413c:2003DellComputerCorp.Keyboard
Bus002Device002:ID0461:4d22PrimaxElectronics,Ltd
Bus002Device001:ID1d6b:0001LinuxFoundation1.1roothub
Bus001Device010:ID18a1:0002
Bus001Device001:ID1d6b:0002LinuxFoundation2.0roothub
找到上面的ID为18a1,在文件中添加设备就可以了。
SUBSYSTEM=="usb",SYSFS{idVendor}=="18a1",MODE="0666"
修改/etc/udev/rules.d/51-android.rules不需要重启Linux机器,重新插拔一下设备就可以了。再次运行adbdevices就可以看到你的设备已经连接
分享到:
相关推荐
64位通用ADB驱动,可以WIN8 64位下刷机了
Android手机adb驱动,安装后就可以使用adb命令
AndroidUSB调试驱动,ADB调试找不到驱动的直接用它,手动选择安装即可
适用Mediatek平台,Usb驱动,win10亲测好用
通用版 Android手机adb驱动 开发调试没反应驱动 安装此驱动,在手机中开启开发者调试,即可在手机上看到代码运行效果
Androidadb操作详解 db操作阐述 不错的哦
LInux android adbLInux android adbLInux android adbLInux android adbLInux android adbLInux android adbLInux android adbLInux android adbLInux android adbLInux android adbLInux android adbLInux android...
android adb, cmd line android
自己用的LG android手机通用驱动,win7 下可以正常使用;
Linux下完美安装adb,亲测经验,无不兼容等其他问题。 如有其他问题请留言。 thanks!
Android usb adb 驱动,可以直接安装。
Win xp下的adb驱动. adb的全称为Android Debug Bridge,就是起到调试桥的作用。通过adb我们可以在Eclipse中方便通过DDMS来调试Android程序,说白了就是debug工具。adb的工作方式比较特殊,采用监听Socket TCP 5554等...
ADB Driver是小米手机安卓系统在XP-Win7系统下通用的ADB驱动安装包。支持WINXP/7/8/10 32位或者64位系统。 使用说明 1、通过USB连接你的安卓设备到电脑。 2、确保在Android设备上启用了USB调试模式。 3、在ADB驱动...
windows 版本的 Android 手机adb驱动程序.............
安卓adb驱动(adb工具包)是Android设备(如手机)连接电脑PC时所需要的驱动程序,一般Android设备连接WinXP是无需安装驱动的。但时如果遇到链接不上的情况,请把这个安卓adb驱动下载安装试试。ADB是一个客户端-服务器端...
交叉编译arm Linux环境下的android-tools-adb工具,本资源包含了完整的Ubuntu1604平台下的android-tools-adb源码包,openssl源码包,zlib源码包。以及完整的编译说明和指导,按照说明操作,可以轻松生成arm平台下可...
Android G7 ADB 驱动,已经添加需要的字段,安装即可。
资源中包括android4.2.2的adb的源码以及依赖的库的源码。首先进入openssl/crypto中,修改makefile中的CROSS_COMPILE,修改为自己的编译环境,然后执行make,生成libCrypto.a。然后回到adb根目录,同样修改makefile的...
中兴adb驱动安装错误解决办法,V880