Ubuntu配置连接android手机

在Ubuntu系统中,默认情况下一般用户是不能直接访问USB设备的。因此,为了能够让Ubuntu连接上android手机,我们需要做一定的配置。以下介绍几种配置的方法。

方法一

android官方网站建议我们采用以下方法配置列表内容

  • 新建规则文件

    1
    sudo touch /etc/udev/rules.d/51-android.rules
  • 执行命令添加

1
wget -S -O - http://source.android.com/source/51-android.rules | sed "s/<username>/$USER/" | sudo tee >/dev/null /etc/udev/rules.d/51-android.rules; sudo udevadm control --reload-rules

这种方式是android在其服务器中配置好了nexus系列手机的USB连接规则,然后通过命令获取并写入本地规则文件中。
但是有以下的缺点:只适合nexus系列手机,且断网情况下没法使用

方法二

单独配置每一台手机的USB规则

  • 查看当前插入的手机设备信息
1
2
3
4
5
6
7
lsusb -v | less
Bus 001 Device 027: ID 18d1:4e30 Google Inc.
Couldn't open device, some information will be missing
Device Descriptor:
...
idVendor 0x046d Google Inc.
idProduct 0xc31c
  • 配置规则
1
sudo vi /etc/udev/rules.d/51-android.rules

加入以下内容

1
2
# adb protocol on passion
SUBSYSTEM=="usb", ATTR{idVendor}=="046d", ATTR{idProduct}=="c31c", MODE="0600", OWNER="zhonghq"

OWNER为当前登录用户

  • 重启usb服务
1
sudo service udev restart

这种方法也存在较大的缺点,只能配置一台手机,而且配置操作叫复杂。

方法三

通用配置,是根据方法二的优化版本

  • 配置规则
1
sudo vi /etc/udev/rules.d/51-android.rules

加入以下内容

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

  • 重启usb服务
1
sudo service udev restart

此方法配置起来方便快捷,无需查看手机的信息,而且能够适配大部分的手机。

方法四

方法三已经非常实用了,但是在使用过程中,我们还是会发现有部分手机不能连接上,下面这种方法可以作为方法三的辅助。

  • 查看当前插入的手机设备信息
1
2
3
4
5
6
7
lsusb -v | less
Bus 001 Device 027: ID 18d1:4e30 Google Inc.
Couldn't open device, some information will be missing
Device Descriptor:
...
idVendor 0x046d Google Inc.
idProduct 0xc31c
  • 配置规则
1
vi ~/.android/adb_usb.ini

在文件中加入idVendor号

1
0x046d

  • 重启adb服务
adb stop-server
adb start-server

参考文档:Establishing a Build Environment