在调试模式下,我无法将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

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

推荐答案

问题的原因与系统权限有关(感谢@IsaacCisneros的建议).不知何故,HTC Wildfire(或许还有其他公司)需要从系统中获得比三星设备更多的东西.简单的解决方案是将Eclipse作为根运行,但这对于Fedora这样的非sudo Linux系统来说不是很舒服.

我找到了实现同样目标的另一种方法,它似乎比以超级用户权限运行整个IDE更友好,安全漏洞更小.请注意,这仍然只是解决问题的一个办法.系统根目录的使用应该仅限于管理任务,而"adb"设计用于无SUID的正常用户帐户.尽管SUID的正确设置非常安全,但每一次权限增加都是一个潜在的系统安全漏洞.

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

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 

Linux相关问答推荐

使用sed或awk映射自定义和任意函数

PERF显示不应该执行指令的内核的用户空间周期

仅使用Find搜索32字符长的目录

为什么在已连接的设备上调用 btmgmt conn-info 返回:状态 0x02(未连接)

在 Bash 中使用 shell 脚本从文件中解析版本号

在具有不同文件类型的文件夹中编辑多个 xml 文件 - 使用预定顺序

如何摆脱管道分隔字段中不需要的管道符号 - Linux

如何计算文本的时差,如 YYYYMMDDHHMMSSXXX 格式,包括毫秒

awk/sed 命令仅在模式 2 匹配时打印模式 1

如何/在哪里可以找到要修复的 Linux 内核错误?

使用 awk 或 sed 删除特定字符

如何在 Linux 中使用命令行将 PDF 转换为 JPG?

将 $_GET 参数传递给 cron 作业(job)

在 Linux 上的进程之间传递消息的最快技术?

为什么`du`的输出通常与`du -b`如此不同

*nix 系统上是否有与 COM 等效的功能?如果不是,那么 *nix 的可重用性方法是什么?

如何在 Linux 上查找不包含文本的文本文件?

os.walk 没有隐藏文件夹

.NET Core 中的跨平台文件名处理

查找和基本名称不能很好地播放