小编典典

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

all

我在调试模式下将 HTC Wildfire A3333 与我的 Fedora Linux 17 连接时遇到问题。Adb 说:

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

我的 udev 规则(三星的第一条规则可以正常工作,而 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

我一直在尝试类似线程中给出的所有答案,但没有任何运气:Using HTC wildfire for android
development


阅读 82

收藏
2022-07-14

共1个答案

小编典典

该问题的原因与系统权限有关(感谢@IsaacCisneros 的此建议)。不知何故,HTC
Wildfire(也许还有其他人)需要的系统比三星设备更多。简单的解决方案是以 root 身份运行 Eclipse,但这对于像 Fedora 这样的非
sudo Linux 系统来说不是很舒服。

我找到了实现相同目标的另一种方法,这似乎对用户更友好,并且比以超级用户权限运行整个 IDE 的安全漏洞更小。请注意,这仍然只是问题的一种解决方法。系统
root 的使用应该被最小化只用于管理任务,并且“db”旨在与没有 SUID 的普通用户帐户一起使用。尽管正确设置 SUID
是相当安全的,但每一次权限增加都是潜在的系统安全漏洞。

1.设置 adb 二进制文件的所有权(owner - root, owner group - 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
2022-07-14