一尘不染

Android调试桥(adb)设备-无权限

linux

我在Fedora Linux 17中以调试模式连接HTC Wildfire A3333时遇到问题。Adb说:

./adb devices
List of devices attached 
????????????    no permissions

我的udev规则(适用于Samsung的第一条规则适用,适用于HTC的第二条规则则无效):

SUBSYSTEM=="usb",SYSFS{idVendor}=="04e8",SYMLINK+="android_adb",MODE="0666",GROUP="plugdev" 
SUBSYSTEM=="usb",SYSFS{idVendor}=="0bb4",SYMLINK+="android_adb",MODE="0666",GROUP="plugdev"

对于三星设备,一切正常:

 ./adb devices
List of devices attached 
00198a9422618e  device

阅读 295

收藏
2020-06-03

共1个答案

一尘不染

造成此问题的原因与系统权限有关(感谢@IsaacCisneros的建议)。无论如何,HTCWildfire(也许还有其他)从系统中需要的东西比三星设备还多。一个简单的解决方案是将Eclipse作为root用户运行,但是对于像Fedora这样的非sudo
Linux系统来说,这并不是很舒服。

我发现了实现相同目标的另一种方法,该方法似乎对用户更友好,并且与超级用户权限一起运行整个IDE时,安全漏洞较小。请注意,这仍然只是问题的解决方法。系统根使用仅应最小化用于管理任务,并且“adb”旨在与不带SUID的普通用户帐户一起使用。尽管SUID的正确设置非常安全,但每增加一次许可,都可能会导致系统安全漏洞。

1.设置adb二进制文件的所有权(所有者-根,所有者组-user_group):

chown root:user_group adb

2.使用SUID设置权限:

chmod 4550 adb

这将导致类似于以下内容(ls -llh):

-r-sr-x---. 1 root user_name 1.2M Jan 8 11:42 adb

之后,尽管您将使用普通用户帐户,但您将能够以root用户身份运行adb事件。您可以以普通用户身份运行Eclipse,并且应该正确发现HTC。

./adb devices 
List of devices attached 
HT0BPPY15230    device
2020-06-03