手机adb shell问题

本文详细介绍了在Linux系统中解决ADB连接平板时遇到的权限不足问题。通过查看USB设备ID,修改udev规则,实现设备识别与ADBShell的正常运行。

今天在linux下连接平板usb,试用adb shell时出现error: insufficient permissions for device,

而且我们输入adb devices显示:

xxnan@xxnan-pt:~$ adb devices
List of devices attached 
????????????    device
那么我们怎么解决它呢?

 

首先在终端查看usb的ID,输入lsusb命令,我们可以看到我们刚插如usb的ID号,如:

xxnan@xxnan-pt:~$ lsusb
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 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 003: ID 0461:4d80 Primax Electronics, Ltd 
Bus 001 Device 004: ID 1c7a:0801 LighTuning Technology Inc. Fingerprint Reader
Bus 002 Device 003: ID 5986:0190 Acer, Inc 
Bus 001 Device 019: ID 0bb4:0c02 High Tech Computer Corp. Dream / ADP1 / G1 / Magic / Tattoo (Debug)

红色的就是我们插入usb的ID号。

 

那么我们进入到cd /etc/udev/rules.d/下,新建一个51-android.rules文件(sudo  vim  51-android.rules),在这个文件中写上:

SUBSYSTEM=="usb", ATTRS{idVendor}==" 0bb4", ATTRS{idProduct}=="0c02",MODE="0666"

保存,再为51-android.rules加上权限(sudo chmod a+x 51-android.rules).

 

拔掉usb重新插上就可以了,如:

xxnan@xxnan-pt:~$ adb devices
List of devices attached 
AB100607    device

这样就解决了不能识别USB的问题

target连上ubuntu,打adb shell后出现insufficient permissions for device错误 

解决办法:用root权限 

Cmd代码  

  1. sudo -s  
  2. adb kill-server  
  3. adb devices  

ubuntu 下解决android ddms连接permissions问题

 

在使用 `adb shell` 命令连接 Android 设备时,可能会遇到命令执行失败的情况。以下是一些常见的问题原因及对应的解决方法: ### 1. USB调试模式未正确开启 确保 Android 设备的开发者选项已启用,并且 **USB调试模式** 已打开。如果设备未正确授权,PC 端会提示需要授权 RSA 密钥。此时,请在设备上确认授权提示,以允许 PC 与设备通信。 ### 2. ADB服务未正常运行 有时 ADB 服务可能未启动或出现异常。可以通过以下命令重启 ADB 服务: ```bash adb kill-server adb start-server ``` 重启后,重新连接设备并尝试执行 `adb shell` 命令[^1]。 ### 3. 设备未被正确识别 执行以下命令检查设备是否被识别: ```bash adb devices ``` 如果设备未列出或显示为 `unauthorized`,请尝试更换 USB 数据线或端口,并确保设备处于解锁状态。此外,可以尝试在设备上清除 ADB 授权信息,重新连接设备以重新授权。 ### 4. 权限不足 某些 `adb shell` 命令需要设备具有 root 权限。如果设备未 root,尝试执行需要高权限的命令时会失败。可以通过以下命令检查是否具有 root 权限: ```bash adb shell su -c id ``` 如果提示权限被拒绝,则需要 root 设备或使用其他方法获取权限。 ### 5. ADB版本过旧 确保使用的 ADB 工具是最新版本。旧版本的 ADB 可能无法支持某些设备或功能。可以通过 Android SDK Manager 更新 ADB 工具[^1]。 ### 6. 设备系统限制 部分 Android 设备(如小米、华为等)可能对 ADB 命令进行了限制,特别是在较新的系统版本中。可以通过设备厂商提供的官方工具(如华为手机助手、MIUI 开发者工具等)检查是否支持相关功能。 ### 7. 使用 Auto.js 等工具替代方案 如果通过 ADB 执行命令存在困难,可以考虑使用 Auto.js 等自动化脚本工具,它提供了与操作系统交互的功能,类似于 `adb shell`。可以通过以下方式执行命令: ```javascript var res = shell("input keyevent KEYCODE_HOME", 1); ``` 该方法使用内嵌终端模拟器执行命令,适用于具备 Root 权限的设备[^2]。 ### 8. Python脚本调用 ADB Shell 命令 在 Python 脚本中调用 `adb shell` 命令时,需要注意环境变量的设置。例如,在定时任务中执行脚本时,可能需要手动导入环境变量,以确保命令正常执行。示例脚本如下: ```bash #!/bin/bash # 导入环境变量 export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin # 执行 ADB 命令 adb shell input keyevent KEYCODE_HOME ``` 此方法可避免因环境变量缺失导致的命令执行失败问题[^3]。 ### 9. 检查 Android 应用权限 如果通过 Android 应用执行 `adb shell` 命令,需要确保应用具有执行命令的权限。可以通过以下代码检查是否具有执行权限: ```java Process process = Runtime.getRuntime().exec("su"); ``` 如果设备未 root,该命令将无法执行。需要 root 设备或使用其他方式获取权限[^4]。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值