Android开发:在Linux系统上使用ADB连接Android手机

前言

由于 Linux 系统的安全性设置等原因,非 root 用户使用外部设备或者某些硬件接口会受到限制。Google 官方提供的 SDK 并不能直接工作,如找不到设备或者显示一堆问号以及 Permission Denied。

方法

记得以前有看过 Google 官方提供的解决方案,即将指定的 USB 设备读写权限赋予普通用户。

首先使用 lsusb 命令查看连接到计算机的 usb 设备,找到 Android 手机对应的厂商 ID 和产品 ID,如 Bus 001 Device 004: ID 0bda:0001,则 0bda 和 0001 分别对应厂商 ID 和产品 ID。

小技巧:在连接手机前先查看一次 lsusb 的结果,连上手机后找到 lsusb 里新增的那行记录即可。 国内有些小厂的厂商 ID 可能设为 Google 或 HTC 的。其实厂商 ID 设置成什么都无所谓,只是一个标志而已。

第二步,编辑/etc/udev/rules.d/70-android.rules 文件。写入以下内容(Ubuntu 下测试通过):

SUBSYSTEM=="usb", ATTRS{idVendor}=="0bda", ATTRS{idProduct}=="0001",MODE="0666"

其中0bda0001分别替换成对应的厂商 ID 和产品 ID。

第三步,赋予读和执行权限:chmod a+rx /etc/udev/rules.d/70-android.rules

最后,拔出手机,重启 adb 并插回手机即可:adb kill-server

查看设备列表以验证成功 adb devices

其实 Linux 连接 Android 手机比 Windows 方便多了,起码不用满世界找驱动。