关于adb命令没有权限访问手机设备的问题

关于adb命令没有权限访问手机设备问题


在使用Ubuntu的朋友应该碰到过在执行adb相关命令的时候会提示如下的错误:

liubzh@liubzh-PC:/$ adb shell
error: insufficient permissions for device

liubzh@liubzh-PC:/$ adb devices
List of devices attached
????????????    no permissions

网络上搜索解决方案,发现最多的是如下的建议:

更改用户和组为root,方法摘自此处

转到adb所在的目录
shily@hh-desktop:~$cd ~/sdk/android-sdk_eng.sdk_linux-x86/tools
shily@hh-desktop:~/sdk/android-sdk_eng.sdk_linux-x86/tools$ls -ladb
-rwxr-xr-x 1 shily shily  341694 2010-05-11 05:46 adb
shily@hh-desktop:~/sdk/android-sdk_eng.sdk_linux-x86/tools$sudo chown root:root adb
[sudo] password for shily:
shily@hh-desktop:~/sdk/android-sdk_eng.sdk_linux-x86/tools$ls -ladb
-rwxr-xr-x 1root root  341694 2010-05-11 05:46 adb
shily@hh-desktop:~/sdk/android-sdk_eng.sdk_linux-x86/tools$sudo chmod u+s adb
shily@hh-desktop:~/sdk/android-sdk_eng.sdk_linux-x86/tools$ls -ladb
-rwsr-xr-x 1 root root   341694 2010-05-11 05:46 adb
shily@hh-desktop:~/sdk/android-sdk_eng.sdk_linux-x86/tools$

或者直接以root启动adb-server,此方法摘自此处

So you probably need to do “adb start-server” as root first:

ubuntu$ sudo ./out/host/linux-x86/bin/adb kill-server
ubuntu$ sudo ./out/host/linux-x86/bin/adb start-server
* daemon not running. starting it now *
* daemon started successfully *
ubuntu$ ./out/host/linux-x86/bin/adb shell

但是,这样还是很麻烦,我们应该通过Android官方网站的方式来解决这个问题:

Set up your system to detect your device.

  • If you're developing on Windows, you need to install a USB driver for adb. For aninstallation guide and links to OEM drivers, see theOEM USBDrivers document.
  • If you're developing on Mac OS X, it just works. Skip this step.
  • If you're developing on Ubuntu Linux, you need to add audev rules file that contains a USB configuration for each type of deviceyou want to use for development. In the rules file, each device manufactureris identified by a unique vendor ID, as specified by theATTR{idVendor} property. For a list of vendor IDs, seeUSB Vendor IDs, below. To set up device detection onUbuntu Linux:
    1. Log in as root and create this file: /etc/udev/rules.d/51-android.rules.

      Use this format to add each vendor to the file:
      SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666", GROUP="plugdev"

      In this example, the vendor ID is for HTC. The MODEassignment specifies read/write permissions, andGROUP defineswhich Unix group owns the device node.

      Note: The rule syntaxmay vary slightly depending on your environment. Consult theudevdocumentation for your system as needed. For an overview of rule syntax, seethis guide towriting udevrules.

    2. Now execute:
      chmod a+r /etc/udev/rules.d/51-android.rules
详见http://developer.android.com/tools/device.html

我们只需要这样在udev中订制化我们自己的usb设备即可。


如下命令我们可以查看vendor idproduct id:

liubzh@liubzh-PC:~$ lsusb
Bus 002 Device 009: ID 24e3:7112  
Bus 002 Device 003: ID 064e:c108 Suyin Corp. 
Bus 005 Device 002: ID 192f:0916 Avago Technologies, Pte. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

另见http://source.android.com/source/initializing.html#configuring-usb-access

Configuring USB Access


Under GNU/linux systems (and specifically under Ubuntu systems),regular users can't directly access USB devices by default. Thesystem needs to be configured to allow such access.

The recommended approach is to create a file/etc/udev/rules.d/51-android.rules (as the root user) and to copythe following lines in it.<username> must be replaced by theactual username of the user who is authorized to access the phonesover USB.

如:

SUBSYSTEM=="usb", ATTR{idVendor}=="24e3", ATTR{idProduct}=="7112", MODE="0600", OWNER="liubzh"

重新插拔USB设备,adb命令将会正常被执行


转载请著名出处

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 如果驱动安装成功但是adb devices没有显示设备的话,可能出现以下几种情况: 1. Android设备USB连接模式问题:请确保 Android 设备的 USB 调试模式已打开。前往 设备设置 > 开发者选项,勾选 USB 调试选项。 2. 电脑ADB服务未启动:请检查电脑上的ADB服务是否已启动。先打开命令提示符(CMD),输入 adb devices 命令,如果提示adb 不是内部或外部命令,则需要安装或配置ADB环境变量。 3. USB 接口问题:有时候可能是 USB 接口桩问题导致设备无法被识别,请尝试更换USB数据线,或者将设备连接到其他 USB 接口上。 4. 驱动版本不匹配:检查驱动是否为最新版本,并与设备型号相匹配。有时候驱动更新后可能需要重新安装或者驱动与设备不兼容。 5. 防火墙或安全软件阻止连接:如果你的电脑上运行着防火墙或安全软件,请确认其是否阻止了ADB连接。尝试暂时禁用防火墙或安全软件,然后重新连接设备。 6. 设备驱动未正确安装:请确保驱动已经完全安装成功,可以在设备管理器中检查设备是否正常连接,如果设备管理器中有黄色"!"标记或者未知设备,可能需要重新安装驱动或更新驱动。 如果以上办法都无法解决问题,可以尝试在设备管理器中卸载设备驱动,然后重新插拔设备,再重新安装驱动,或者尝试在其他电脑上连接设备进行测试。 ### 回答2: 驱动安装成功后,ADB (Android Debug Bridge) 设备列表没有显示设备的情况可能是由于以下几个原因: 1. USB连接问题:请确保你的Android设备通过USB正确连接到计算机,并确保USB线连接良好。尝试更换USB线、更换USB端口或将设备连接到另一台计算机,以排除连接问题是否导致的。 2. ADB服务未启动:请检查ADB服务是否已正确启动。在计算机上打开命令提示符窗口(Windows)或终端(Mac/Linux),输入`adb devices`并按下回车键,确保ADB服务已成功启动。 3. ADB版本不匹配:请确保你的ADB版本与设备Android版本兼容。如果你的设备运行的是最新的Android版本,但你的ADB版本较旧,可能会导致设备无法在ADB设备列表中显示。 4. 设备驱动问题:尽管驱动安装成功,但仍可能存在驱动问题。你可以尝试卸载设备驱动并重新安装,确保使用最新的设备驱动程序。 5. 设备开发者选项未启用:在设备的设置菜单中,找到关于手机或关于平板电脑的选项,然后连续点击构建号(Build Number),直到开发者选项被启用。然后返回设置菜单,找到开发者选项,并确保启用了ADB调试功能。 如果上述问题都已经检查并排除,但ADB设备列表仍然没有显示设备,建议咨询设备制造商或在相关技术社区中寻求帮助,以获取更详细的支持。 ### 回答3: 驱动安装成功后,adb devices没有显示设备的情况可能由以下几个原因造成: 1. USB连接问题:首先,确保设备已通过USB接口正确连接到计算机。可以尝试更换USB端口、更换数据线或者重新插拔USB连接来解决连接问题。 2. USB调试模式未启用:请确保在Android设备的设置中已启用USB调试模式。在手机的设置中通常可以在开发者选项中找到此选项。开发者选项需要手动启用,可以通过连续点击“关于手机”中的“版本号”来开启。 3. 许可问题:在连接Android设备时,可能会出现弹窗询问是否信任计算机。请确保在设备上已授权计算机的访问权限。如果出现了这个弹窗但是没有按“允许”按钮,则可能导致adb devices无法显示设备。 4. 驱动兼容性问题:虽然驱动安装成功,但某些情况下可能存在兼容性问题。可以尝试卸载已安装的驱动并重新安装最新版本的驱动程序。 5. adb路径问题:在使用adb命令之前,请确保adb命令所在的路径已正确配置到操作系统的环境变量中。可以通过在命令提示符窗口中输入“adb version”来检查adb命令是否正常工作。如果找不到adb命令,需要正确配置adb路径。 综上所述,如果驱动已成功安装但是adb devices无法显示设备,可以通过检查USB连接、USB调试模式、许可问题、驱动兼容性和adb路径等方面排查问题,以确保设备能够被adb识别。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值