Linux 万能的android.rules文件 解决 adb devices no permissions

本文介绍了如何在Linux系统中通过编辑51-android.rules文件,添加相应规则,赋予adb设备必要的权限。内容包括:1. 在/etc/udev/rules.d/目录下编辑51-android.rules文件,添加针对不同设备的USB Vendor ID和Product ID的规则;2. 修改文件权限为755;3. 重启udev服务和adb服务器。同时,还补充了udev的简介、USB设备的标识方法和查看USB设备信息的命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、编辑 xx-android.rules

命令: sudo vim /etc/udev/rules.d/51-android.rules

51 这个 数字根据不同电脑可能不一样

a、加入以下内容:

SUBSYSTEM=="usb" ENV{DEVTYPE}=="usb_device", MODE="0666"
# adb protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e12", MODE="0600", OWNER="jejay"
# fastboot protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", MODE="0600", OWNER="jejay"
# adb protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e22", MODE="0600", OWNER="jejay"
# fastboot protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e20", MODE="0600", OWNER="jejay"
# adb protocol on stingray/wingray (Xoom)
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", ATTR{idProduct}=="70a9", MODE="0600", OWNER="jejay"
# fastboot protocol on stingray/wingray (Xoom)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="708c", MODE="0600", OWNER="jejay"
# adb protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0600", OWNER="jejay"
# fastboot protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e30", MODE="0600", OWNER="jejay"
# adb protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d101", MODE="0600", OWNER="jejay"
# adb protocol on panda (PandaBoard ES)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d002", MODE="0600", OWNER="jejay"
# fastboot protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d022", MODE="0600", OWNER="jejay"
# usbboot protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d00f", MODE="0600", OWNER="jejay"
# usbboot protocol on panda (PandaBoard ES)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d010", MODE="0600", OWNER="jejay"
# adb protocol on grouper/tilapia (Nexus 7)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e42", MODE="0600", OWNER="jejay"
# fastboot protocol on grouper/tilapia (Nexus 7)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e40", MODE="0600", OWNER="jejay"
# adb protocol on manta (Nexus 10)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee2", MODE="0600", OWNER="jejay"
# fastboot protocol on manta (Nexus 10)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee0", MODE="0600", OWNER="jejay"
# SUBSYSTEM=="usb", ATTR{idVendor}=="2c73", ATTR{idProduct}=="7029", MODE="0666", OWNER="jejay"
SUBSYSTEM=="usb", ATTR{idVendor}=="2a45", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVendor}=="2c73", MODE="0666", GROUP="plugdev"


b、修改权限

命令: sudo chmod 755 /etc/udev/rules.d/51-android.rules

2、重启udev

命令:sudo service udev restart

3、重启adb server

命令:sudo adb kill-server


4、补充

1、udev简介

udev是Linux下的设备管理器。 通过规则文件可以帮助设备能被内核识别,规则文件存储在/etc/udev/rules.d/目录下的文件中,该文件名必须以.rules结束。 udev默认的规则存储在/etc/udev/rules.d/50-udev.rules文件中。 udev按照字母排序依次解释这些文件中的规则,因此,如果你希望自己添加的规则在默认规则之后处理,那么文件名开头必须大于50,比如51。这就是51-android.rules命名的缘由,它希望自己在默认的udev规则之后处理

2、usb设备的标识

一个USB设备由两个ID来标识,Vender ID和Product ID,Vender ID由设备制造商向USB执行论坛申请,Product ID则由设备制造商自行分配。

3、查看usb设备信息

命令:lsusb

Bus 003 Device 007: ID 0fce:61ba Sony Ericsson Mobile Communications AB 

其中,0fce  就是 Vendor ID, 61ba 就是 Product ID


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值