ubuntu14.04 android设备调试问题
2015-08-02 10:22
661 查看
手头上两台设备,都不能在ubuntu下进行调试工作,于是做了以下努力:
1.下面内容转载自:http://blog.csdn.net/lincyang/article/details/9093239#quote
问题描述与背景:
新来个测试手机,连接PC后adb devices下无设备。或者是如下的no permissions:
$ adb devices
List of devices attached
???????????? no permissions
已经在手机端打开USB调试(Android4.0,设置—开发人员选项--选中USB调试),USB连接没有问题,可以打开手机的存储设备。
下面是解决的方法,主要参考网络。
1、lsusb找到设备ID
[plain] view
plaincopy
lsusb
Bus 001 Device 013: ID 1ebf:7028
1ebf是idVendor,7028是idProduct (注意 :我的终端中并没有显示这么详细,仅仅显示了idVendor,和idProduct)
2、注册到udev的rules文件:
[html] view
plaincopy
vim /etc/udev/rules.d/51-android.rules
添加这个ID:1ebf,如下:
SUBSYSTEM=="usb", ATTR{idVendor}=="1ebf", 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
如果想添加的更详细,也可以这样:SUBSYSTEM=="usb", ATTRS{idVendor}=="1ebf", ATTRS{idProduct}=="7028",MODE="0666"
3、启动adb的服务
这个网上的经验是在adb工具的目录下执行,我是按照做的,成功。
[html] view
plaincopy
cd ~/program/Android/sdk/platform-tools
sudo ./adb kill-server
sudo ./adb start-server
这样就可以了,请尝试调试的乐趣吧。
Tips:
查看当前使用的adb:which adb
后记
家里的Fedora14也遇到这个问题,adb shell时报错为error: insufficient permissions for device。
也会用同样的办法解决,只是两个系统略有些区别而已。
在Fedora中用sudo来编辑51-android.rules文件竟然没有权限被拒绝了,只好直接用root来做了。命令如下所示。
[plain] view
plaincopy
[root@localhost etc]# vim udev/rules.d/51-android.rules
[root@localhost etc]# chmod a+rx udev/rules.d/51-android.rules
[root@localhost etc]# ./init.d/udev-post restart
Usage: ./init.d/udev-post {start|stop|reload}
[root@localhost etc]# udevadm control --reload-rule
[root@localhost etc]# ./init.d/udev-post reload
Retrigger failed udev events [ OK ]
后记2
如果上述都已经做完,那么直接运行adb devices还是有问题。
只需要重新拔掉你设备的usb,重新连接就可以了!
后记3
来此source.android.com详尽的usb列表:
[plain] view
plaincopy
# adb protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e12", MODE="0600", OWNER="<username>"
# fastboot protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", MODE="0600", OWNER="<username>"
# adb protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e22", MODE="0600", OWNER="<username>"
# fastboot protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e20", MODE="0600", OWNER="<username>"
# adb protocol on stingray/wingray (Xoom)
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", ATTR{idProduct}=="70a9", MODE="0600", OWNER="<username>"
# fastboot protocol on stingray/wingray (Xoom)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="708c", MODE="0600", OWNER="<username>"
# adb protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0600", OWNER="<username>"
# fastboot protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e30", MODE="0600", OWNER="<username>"
# adb protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d101", MODE="0600", OWNER="<username>"
# adb protocol on panda (PandaBoard ES)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d002", MODE="0600", OWNER="<username>"
# fastboot protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d022", MODE="0600", OWNER="<username>"
# usbboot protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d00f", MODE="0600", OWNER="<username>"
# usbboot protocol on panda (PandaBoard ES)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d010", MODE="0600", OWNER="<username>"
# adb protocol on grouper/tilapia (Nexus 7)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e42", MODE="0600", OWNER="<username>"
# fastboot protocol on grouper/tilapia (Nexus 7)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e40", MODE="0600", OWNER="<username>"
# adb protocol on manta (Nexus 10)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee2", MODE="0600", OWNER="<username>"
# fastboot protocol on manta (Nexus 10)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee0", MODE="0600", OWNER="<username>"
后记4:
51-android.rules是个随便起的名字,改为android.rules也是可以的!
2.然后我做了如下内容的努力:
在ubuntu下我是这样做的:
1. 使用androidSDK目录\tools 下的android脚本,命令行中执行 android update adb(这步可以不执行)
2. 成功运行后,会在用户名录下产生,~/.android/adb_usb.ini文件
3.用vim 编辑上述文件,添加一行 0x15a2(15a2是你的idVendor,切记使用16进制)
4. adb kill-server 然后重新拔插usb线之后,就可以连接adb 了;(其实这一步应该用root权限执行,如果sdk路径没有配置到root下,就到SDK路径下的platform-tools文件夹下用sudo执行)
很幸运,在第二步的时候成功了!
1.下面内容转载自:http://blog.csdn.net/lincyang/article/details/9093239#quote
问题描述与背景:
新来个测试手机,连接PC后adb devices下无设备。或者是如下的no permissions:
$ adb devices
List of devices attached
???????????? no permissions
已经在手机端打开USB调试(Android4.0,设置—开发人员选项--选中USB调试),USB连接没有问题,可以打开手机的存储设备。
下面是解决的方法,主要参考网络。
1、lsusb找到设备ID
[plain] view
plaincopy
lsusb
Bus 001 Device 013: ID 1ebf:7028
1ebf是idVendor,7028是idProduct (注意 :我的终端中并没有显示这么详细,仅仅显示了idVendor,和idProduct)
2、注册到udev的rules文件:
[html] view
plaincopy
vim /etc/udev/rules.d/51-android.rules
添加这个ID:1ebf,如下:
SUBSYSTEM=="usb", ATTR{idVendor}=="1ebf", 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
如果想添加的更详细,也可以这样:SUBSYSTEM=="usb", ATTRS{idVendor}=="1ebf", ATTRS{idProduct}=="7028",MODE="0666"
3、启动adb的服务
这个网上的经验是在adb工具的目录下执行,我是按照做的,成功。
[html] view
plaincopy
cd ~/program/Android/sdk/platform-tools
sudo ./adb kill-server
sudo ./adb start-server
这样就可以了,请尝试调试的乐趣吧。
Tips:
查看当前使用的adb:which adb
后记
家里的Fedora14也遇到这个问题,adb shell时报错为error: insufficient permissions for device。
也会用同样的办法解决,只是两个系统略有些区别而已。
在Fedora中用sudo来编辑51-android.rules文件竟然没有权限被拒绝了,只好直接用root来做了。命令如下所示。
[plain] view
plaincopy
[root@localhost etc]# vim udev/rules.d/51-android.rules
[root@localhost etc]# chmod a+rx udev/rules.d/51-android.rules
[root@localhost etc]# ./init.d/udev-post restart
Usage: ./init.d/udev-post {start|stop|reload}
[root@localhost etc]# udevadm control --reload-rule
[root@localhost etc]# ./init.d/udev-post reload
Retrigger failed udev events [ OK ]
后记2
如果上述都已经做完,那么直接运行adb devices还是有问题。
只需要重新拔掉你设备的usb,重新连接就可以了!
后记3
来此source.android.com详尽的usb列表:
[plain] view
plaincopy
# adb protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e12", MODE="0600", OWNER="<username>"
# fastboot protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", MODE="0600", OWNER="<username>"
# adb protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e22", MODE="0600", OWNER="<username>"
# fastboot protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e20", MODE="0600", OWNER="<username>"
# adb protocol on stingray/wingray (Xoom)
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", ATTR{idProduct}=="70a9", MODE="0600", OWNER="<username>"
# fastboot protocol on stingray/wingray (Xoom)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="708c", MODE="0600", OWNER="<username>"
# adb protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0600", OWNER="<username>"
# fastboot protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e30", MODE="0600", OWNER="<username>"
# adb protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d101", MODE="0600", OWNER="<username>"
# adb protocol on panda (PandaBoard ES)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d002", MODE="0600", OWNER="<username>"
# fastboot protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d022", MODE="0600", OWNER="<username>"
# usbboot protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d00f", MODE="0600", OWNER="<username>"
# usbboot protocol on panda (PandaBoard ES)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d010", MODE="0600", OWNER="<username>"
# adb protocol on grouper/tilapia (Nexus 7)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e42", MODE="0600", OWNER="<username>"
# fastboot protocol on grouper/tilapia (Nexus 7)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e40", MODE="0600", OWNER="<username>"
# adb protocol on manta (Nexus 10)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee2", MODE="0600", OWNER="<username>"
# fastboot protocol on manta (Nexus 10)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee0", MODE="0600", OWNER="<username>"
后记4:
51-android.rules是个随便起的名字,改为android.rules也是可以的!
2.然后我做了如下内容的努力:
在ubuntu下我是这样做的:
1. 使用androidSDK目录\tools 下的android脚本,命令行中执行 android update adb(这步可以不执行)
2. 成功运行后,会在用户名录下产生,~/.android/adb_usb.ini文件
3.用vim 编辑上述文件,添加一行 0x15a2(15a2是你的idVendor,切记使用16进制)
4. adb kill-server 然后重新拔插usb线之后,就可以连接adb 了;(其实这一步应该用root权限执行,如果sdk路径没有配置到root下,就到SDK路径下的platform-tools文件夹下用sudo执行)
很幸运,在第二步的时候成功了!
相关文章推荐
- 如何在Android上编写高效的Java代码
- Android中ContentProvider详解例程
- Android DatePicker日期选择器、TimePicker时间选择器的使用
- 浅析Android Camera开发中的三个尺寸和三种变形 (贡献一个自适配Picturesize和Previewsize的工具类)
- Android ListView工作原理完全解析
- Android项目打包成APK文件
- android 进程/线程管理(二)----关于线程的迷思
- 需要根据字典获得drawable,只能写if-else吗
- [深入理解Android卷一全文-第三章]深入理解init
- Android Studio 1.2使用过程问题总结
- Android错误_adb不是内部或外部命令,也不是可运行的程序
- 超越系统权限----Android黑名单电话拦截
- [深入理解Android卷一全文-第三章]深入理解init
- Android 下拉框的实现
- [深入理解Android卷一 全文-第二章]深入理解JNI
- [深入理解Android卷一 全文-第二章]深入理解JNI
- Android_打开DDMS没有文件夹显示
- Android 菜单——上下文菜单、选择菜单以及子菜单
- [深入理解Android卷一全文-第一章]阅读前的准备工作
- Android 属性动画总小结