Android 为开发设置设备(????无权限)
我正在使用三星galaxy nexus手机(Android 4.0平台) 我正在Ubuntu linux操作系统上开发Android应用程序。我想直接在三星手机设备上运行我的应用程序,因此我执行了以下设置步骤:Android 为开发设置设备(????无权限),android,linux,ubuntu,adb,fastboot,Android,Linux,Ubuntu,Adb,Fastboot,我正在使用三星galaxy nexus手机(Android 4.0平台) 我正在Ubuntu linux操作系统上开发Android应用程序。我想直接在三星手机设备上运行我的应用程序,因此我执行了以下设置步骤: 在我的项目AndroidManifest.xml文件中,向元素添加了android:debuggable=“true” 在设备上,在设置>安全中启用未知源 在设备上,在设置>开发者选项中启用USB调试 在我的计算机上,创建了包含以下内容的/etc/udev/rules.d/51 andr
AndroidManifest.xml
文件中,向
元素添加了android:debuggable=“true”
/etc/udev/rules.d/51 android.rules
文件:
SUBSYSTEM=="usb", ATTR{idVendor}=="04E8", MODE="0666", GROUP="plugdev"
chmoda+r/etc/udev/rules.d/51 android.rules
命令adb devices
命令,我得到:
List of devices attached
???????????? no permissions
因为我没有看到我的设备,而只看到????????????没有权限
,然后运行以下命令:
adb kill-server
adb start-server
adb devices
sudo cp /tmp/android.rules /etc/udev/rules.d/51-android.rules
sudo chmod 644 /etc/udev/rules.d/51-android.rules
sudo chown root. /etc/udev/rules.d/51-android.rules
sudo service udev restart
sudo killall adb
但我还是得到了:
List of devices attached
???????????? no permissions
为什么??我缺少什么?尝试使用用户的主组,而不是
GROUP=“plugdev”
。对我有效的方法是再次关闭并启动adb服务器。在linux上:sudoadb kill服务器
,然后sudoadb启动服务器
。然后,它将检测几乎所有现成的设备。当您重新启动udev时,杀死adb服务器并启动adb服务器转到android sdk安装路径并在sudo上执行所有操作。然后运行adb设备,它将解决权限问题。输入以下命令:
adb kill-server
adb start-server
adb devices
sudo cp /tmp/android.rules /etc/udev/rules.d/51-android.rules
sudo chmod 644 /etc/udev/rules.d/51-android.rules
sudo chown root. /etc/udev/rules.d/51-android.rules
sudo service udev restart
sudo killall adb
adb kill服务器
sudo./adb启动服务器
adb设备
no permissions (verify udev rules); see [http://developer.android.com/tools/device.html]
当您不是以root用户身份运行adb服务器时,就会发生这种情况。在我最终找到答案之前,我什么都做不到: 我在这里复制文本,以防将来它消失 创建一个名为/tmp/android.rules的文件,其中包含以下内容(十六进制供应商编号取自供应商列表页面): 运行以下命令:
adb kill-server
adb start-server
adb devices
sudo cp /tmp/android.rules /etc/udev/rules.d/51-android.rules
sudo chmod 644 /etc/udev/rules.d/51-android.rules
sudo chown root. /etc/udev/rules.d/51-android.rules
sudo service udev restart
sudo killall adb
断开手机和计算机之间的USB电缆
重新连接电话
运行adb设备
,确认现在它有权访问手机
请注意,可以在.rules
文件中使用,USER=“$LOGINNAME”
而不是,MODE=“0666”
,将$LOGINNAME
替换为您的登录名,即id-nu
打印的内容
在某些情况下,可能需要为udev规则文件指定一个排序接近末尾的名称,例如
z51 android.rules
我也遇到了同样的问题,解决方案如下:(顺便说一句,您不必为设备设置根目录。)
/etc/udev/rules.d/51 android.rules中0bb4
的供应商id替换为18d1
或添加另一行,内容如下:
SUBSYSTEM=="usb", SYSFS{idVendor}=="18d1", MODE="0666"
对于使用debian的用户,在Ubuntu下设置设备以创建文件“/etc/udev/rules.d/51 android.rules”的指南不起作用。我听从了老师的指示。在这里写下同样的内容以供参考 以超级用户身份编辑此文件
sudo nano /lib/udev/rules.d/91-permissions.rules
找到与此类似的文本
# usbfs-like devices
SUBSYSTEM==”usb”, ENV{DEVTYPE}==”usb_device”, \ MODE=”0664″
然后将模式更改为0666,如下所示
# usbfs-like devices
SUBSYSTEM==”usb”, ENV{DEVTYPE}==”usb_device”, \ MODE=”0666″
这允许adb工作,但是我们仍然需要设置设备,以便能够识别。我们需要以超级用户身份创建此文件
sudo nano /lib/udev/rules.d/99-android.rules
进入
SUBSYSTEM==”usb”, ENV{DEVTYPE}==”usb_device”, ATTRS{idVendor}==”0bb4″, MODE=”0666″
上面这一行是HTC的,请跟随@grebulon的帖子查看完整的列表
保存文件,然后以超级用户身份重新启动udev
sudo /etc/init.d/udev restart
通过USB连接手机,在编译和运行项目时应该可以检测到。在我的ubuntu 12.04 LTS上,我不得不将我的HTC难以置信的USB模式从充电模式更改为媒体模式,然后设备显示在adb下。当然,在这两种情况下,调试都已经开始了。我使用了su,它开始工作。当我与普通用户一起使用Jetbrains时,我看到了这个问题,但在su模式下重新启动Jetbrains后,我可以看到我的设备,而无需执行任何操作
我使用的是Ubuntu 13.04和Jetbrains 12.1.4,我的Galaxy S3也有同样的问题。 我的问题是,
idVendor
值04E8
不正确。
要找到合适的,请将智能手机连接到计算机,并在终端中运行lsusb
。它将列出您的智能手机,如下所示:
Bus 002 Device 010: ID 18d1:d002 Google Inc.
因此,右边的idVendor
值是18d1
。/etc/udev/rules.d/51 android.rules
中的行必须是:
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"
然后我运行
sudo udevadm control——重新加载规则,一切正常 我的设备是积极的,我的操作系统是Ubuntu 14.04 LTS
所以,我的问题是变量名
我创建文件/etc/udev/rules.d/51-android.rules
并将SUBSYSTEM==“usb”,SYSFS{idVendor}==“1662”,MODE=“0666”
我断开了设备
并执行:
$ sudo udevadm control --reload-rules
$ sudo service udev restart
在这之后,我再次以开发者模式连接android设备,并
$ adb devices
List of devices attached
1A883XB1K device
您还可以尝试编辑adb_usb.ini文件,该文件位于/home/username/.android/。此文件包含要连接的设备的id供应商列表。您只需在新行中添加设备的id供应商(每行一个id)。然后重新启动adb服务器并重新安装设备
在Ubuntu12.10上它对我很有效。在Archlinux上,这种情况偶尔会发生。修复方法:
$ sudo -s
# adb kill-server
# adb start-server
试了以上所有的方法,没有一个奏效。。终于工作了
no permissions (verify udev rules); see [http://developer.android.com/tools/device.html]
sudo -s
adb kill-server
adb start-server
# udevadm control --reload-rules
# usermod -aG adbusers $LOGNAME
./.add_device_permissions.sh
#!/bin/bash
# Add permissions
ADB="/home/vadimm/Android/Sdk/platform-tools/adb"
$ADB devices
$ADB kill-server
cat .permissions_redmi_note | sudo -S $ADB devices
$ADB kill-server
cat .permissions_redmi_note | sudo -S $ADB devices
# Clone this repository
git clone https://github.com/M0Rf30/android-udev-rules.git
cd android-udev-rules
# Copy rules file
sudo cp -v 51-android.rules /etc/udev/rules.d/51-android.rules
# OR create a sym-link to the rules file - choose this option if you'd like to update your udev rules using git.
sudo ln -sf "$PWD"/51-android.rules /etc/udev/rules.d/51-android.rules
# Change file permissions
sudo chmod a+r /etc/udev/rules.d/51-android.rules
# If adbusers group already exists remove old adbusers group
groupdel adbusers
# add the adbusers group if it's doesn't already exist
sudo mkdir -p /usr/lib/sysusers.d/ && sudo cp android-udev.conf /usr/lib/sysusers.d/
sudo systemd-sysusers # (1)
# OR on Fedora:
groupadd adbusers
# Add your user to the adbusers group
sudo usermod -a -G adbusers $(whoami)
# Restart UDEV
sudo udevadm control --reload-rules
sudo service udev restart
# OR on Fedora:
sudo systemctl restart systemd-udevd.service
# Restart the ADB server
adb kill-server
# Replug your Android device and verify that USB debugging is enabled in developer options
adb devices
# You should now see your device
sudo usermod -aG plugdev $LOGNAME
sudo usermod -aG plugdev $LOGNAME
sudo apt-get install android-sdk-platform-tools-common