其他人可能在ubuntu linux下遇到adb调试问题。
症状是usb连接的Android设备的可用性,例如与日食。 您可以使用
进行测试adb usb
当你得到
error: insufficient permissions for device
你可能遇到像我这样的问题。
但是,我在互联网上发现了一些或多或少的次优解决方案
基本思路是以root身份启动adb。我发现的解决方案很麻烦。
一个建议是每个sudo启动adb。另一个建议是在/etc/init.d
中设置启动脚本我的解决方案是授予adb以root身份启动的权限。为此,请切换到root
sudo bash
chown root adb
chmod ug+s-w adb
安全狂热分子可能会提议
sudo chown root adb
sudo chmod ug+s-w adb
如果adb已经在运行,你需要杀死恶魔以root权限开始
adb kill-server
当一切顺利时
adb usb
应该返回
restarting in USB mode
如果没有,请尝试lsusb检查您的设备是否已连接
答案 0 :(得分:11)
Google建议的处理ADB设备权限的方法是创建一个UDEV规则,该规则将设置适当的设备枚举权限。
根据http://developer.android.com/tools/device.html
如果您正在使用Ubuntu Linux进行开发,则需要添加udev规则 包含每种类型设备的USB配置的文件 想用于发展。在规则文件中,每个设备 制造商由唯一的供应商ID标识,由 ATTR {idVendor}属性。有关供应商ID的列表,请参阅USB供应商ID, 下面。在Ubuntu Linux上设置设备检测:以root身份登录 创建此文件:/etc/udev/rules.d/51-android.rules。使用此格式 将每个供应商添加到文件中:SUBSYSTEM ==“usb”, ATTR {idVendor} ==“0bb4”,MODE =“0666”,GROUP =“plugdev”
在此示例中,供应商ID适用于HTC。 MODE分配 指定读/写权限,GROUP定义哪个Unix组 拥有设备节点。注意:规则语法可能略有不同 取决于您的环境。请参阅udev文档 系统根据需要。有关规则语法的概述,请参阅本指南 写udev规则。现在执行:chmod a + r /etc/udev/rules.d/51-android.rules当通过USB插入时,可以 通过执行adb设备验证您的设备是否已连接 你的SDK平台工具/目录。如果已连接,您将看到 设备名称列为“设备”。
答案 1 :(得分:3)
使用以下三个命令为我工作
sudo bash
adb kill-server
adb usb