Android NDK开发系列(四):Linux开发机与Android设备有线连接指南

android-ndk开发(4): linux开发机有线连接android设备

2025/05/05

1. 概要

linux 系统, 例如最常见的 ubuntu, 在通过 USB 线把 android 设备连接到开发机上时, 仅仅是 ”物理上的连接”。 这时候 adb 是无法识别到 android 设备的。 需要配置 udev 规则才能发现设备。

要想真的让系统识别到 android 设备,

2. 添加 udev 规则的步骤

2.1 获取 idVendor 和 idProduct 信息

在开发机上, 分别在插入、不插入手机usb线的情况下,执行 lsusb 命令来获得 idVendor 和 idProduct。 例如:

⚡ lsusb                                                           
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub    
Bus 001 Device 002: ID 046d:c077 Logitech, Inc. M105 Optical Mouse
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub    

其中ID后的xxxx:yyyy分别是idVendor和idProduct,在udev规则文件中需要他俩。

2.2 添加udev规则

根据上一步查找的idVendor和idProduct,添入新建的规则文件中:

vim /etc/udev/rules.d/51-android.rules, 增加:

SUBSYSTEM=="usb", ATTR{idVendor}=="2717", ATTRS{idProduct}=="ff48", MODE="0666"

保存文件, 并授予赋予读取权限:

chmod a+r /etc/udev/rules.d/51-android.rules

2.3 让 udev 规则生效

可尝试 sudo systemctl restart udev, 或重新插拔设备。 若确实长时间没反应(1分钟以上), 可考虑重启主机。

通常很快就能查询到设备 (adb devices).

2.4 设备上的设定

  • 需要开启USB调试(设置->…->开启“开发者选项”,并且开启”USB调试“和”USB安装“

  • 需要选择MTP连接(新版Android叫做“传输文件”)方式,否则可能遇到报错:

  • adb: insufficient permissions for device: user in plugdev group; are your udev rules wrong?
    

    参考: https://stackoverflow.com/questions/28704636/insufficient-permissions-for-device-in-android-studio-workspace-running-in-opens

    3. 总结

    本篇给出了 Linux 开发机上, 配置 udev 规则的步骤和注意事项, 从而让后续通过 USB 线连接设备时, 能自动识别设备, 顺畅的使用 adb 命令。

    作者:ArthurBreeze

    物联沃分享整理
    物联沃-IOTWORD物联网 » Android NDK开发系列(四):Linux开发机与Android设备有线连接指南

    发表回复