解决Ubuntu下adb不识别Android真机的问题

buntu 11.04 Natty Narwhal(以下简称Natty)的beta版出来也有好几天了,删除了Maverick(Ubuntu 10.10)开始体验Natty,新系统还不是很稳定,折腾了很久啊……因为把Maverick删了,所以很多东西要重新配置了.

下面说说使用ADB(Android Debug Bridge)的一些具体问题。

ADB是在Android SDK里获得的

Part One. 安装ADB

SDK下载回来,解压后进入tools目录,看到一个名为adb_has_moved.txt的文件,原来是随着SDK的更新,ADB已经不默认包含在tools里了,要通过安装Android SDK Platform-tools来获得。在运行tools文件夹下的android程序,在Availalbe Packages里找到Android SDK Platform-tools,勾选安装,安装之后回到SDK的根目录就可以看到一个名为platform-tools的文件夹,adb就在里面了。可以在这个文件夹下运行adb,不过为了更方便还是把它放在 /usr/local/bin/下吧,在tools文件夹下执行命令:

1
sudo cp adb /usr/local/bin/

这样就可以在终端直接运行adb命令了。
连上手机,运行adb devices看看,诶?

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

这是怎么回事?

Part Two. 解决no permissions问题

Google一番,得知可以通过

lsusb:查看usb设备厂商码用root权限启动adb server来解决问题,但是每次用adb不会很麻烦嘛?!


后来发现在SDK的帮助文档里有关于这个问题的说明:

If you’re developing on Ubuntu Linux, you need to add a rules file that contains a USB configuration for each type of device you want to use for development. Each device manufacturer uses a different vendor ID. The example rules files below show how to add an entry for a single vendor ID (the HTC vendor ID). In order to support more devices, you will need additional lines of the same format that provide a different value for the SYSFS{idVendor} property. For other IDs, see the table of USB Vendor IDs, below.

  1. Log in as root and create this file: /etc/udev/rules.d/51-android.rules.

    For Gusty/Hardy, edit the file to read:
    SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"

    For Dapper, edit the file to read:
    SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0bb4", MODE="0666"

  2. Now execute:
    chmod a+r /etc/udev/rules.d/51-android.rules

 

只要按照说明,在/etc/udev/rules.d/目录下创建51-android.rules文件,写入自己手机的信息就好了。
什么?你有多个不同品牌的Android手机或平板?每一个都添加自然是可以的,当然也有简便方法啦。
只要在51-android.rules中保留一行

1
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0666"

就好了~
修改以后重新插入你的Android设备,运行adb devices命令看看:

 

List of devices attached
M1105bfb6840 device

怎么样可以识别了吧~


你可能感兴趣的:(android,ubuntu,File,tools,permissions)