首先按照 SDK 上的说明建立 udev 的 rules 文件,然后:

在 Ubuntu 11.04 下通过usb连接 Android设备,使用 adb 时,会返回无法找到设备,解决办法如下:

1. 在终端运行 lsusb

会发现结果有会有如下类似记录:

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

注意最后一个
Bus 001 Device 003: ID 12d1:360e Huawei Technologies Co., Ltd.

这时键入,新建一个50-Android.rules文件,如下所示:

sudo vim /etc/udev/rules.d/50-Android.rules

在打开的文件中增加以下文本:

SUBSYSTEM=="usb", SYSFS{"High Tech Computer Corp."}=="12d1", MODE="0666"

2. 运行以下命令:

sudo chmod a+rx /etc/udev/rules.d/50-Android.rules

让设备管理器重启

sudo /etc/init.d/udev restart


udev 是Linux kernel 2.6系列的设备管理器。它主要的功能是管理/dev目录底下的设备节点。它同时也是用来接替devfs及hotplug的功能,这意味着它要在添加/删除硬件时处理/dev目录以及所有用户空间的行为,包括加载firmware时。udev的最新版本依赖于升级后的Linux kernel 2.6.13的uevent接口的最新版本。使用新版本udev的系统不能在2.6.13以下版本启动,除非使用noudev参数来禁用udev并使用传统的/dev来进行设备读取。


3. 在 Android sdk 的 platform-tools 目录下运行 (这一步很重要,必须要sudo,否则没效果,在之后的sdk都将adb放在了platform-tools中)

sudo ./adb kill-server
sudo ./adb devices

然后,就可以直接用 adb 来进行操作了。

若继续在Ubuntu 11.04 下执行adb devices命令, 返回的结果是:

List of devices attached
???????????? no permissions

这意味着,USB连接的设备是能够被识别的。经过上网查找之后,得知adb server需要以root的权限启动,于是有了如下命令:

www.linuxidc.com@linuxidc-laptop:~/Dev/Java/Android/android-sdk-linux_86/tools$ ./adb kill-server

www.linuxidc.com@linuxidc-laptop:~/Dev/Java/Android/android-sdk-linux_86/tools$ sudo ./adb start-server
* daemon not running. starting it now *
* daemon started successfully *

第一条命令用来杀死当前正在运行的server, 第二条命令则以root的权限启动了新的server. 我们可以再次查看devices:

www.linuxidc.com@linuxidc-laptop:~/Dev/Java/Android/android-sdk-linux_86/tools$ ./adb devices
List of devices attached
HT848KV04386 device

这次设备就被正确识别了。自然地, 像ddms之类的工具也能派上用场了。
Logo

更多推荐