ADB Android设备未经授权

Qua*_*uak 331 usb android device unauthorized adb

自从我重新安装Eclipse(只是删除并再次下载)后,我无法在Samsung Galaxy i9001(使用CyanogenMod - Android 4.4.2)上调试我的应用程序.它在重新安装之前工作正常.

拔下/插入,取消选中/选中"Debug Enabled",adb kill-server/adb start-server,重启手机/电脑对我不起作用.在设备授权对话框上永远不会出现(但我记得在重新安装之前出现了对话框).我不知道如何强制显示此授权对话框..android目录中没有abd_key.pub文件.当我尝试读取cpu信息DDMS说:

[2014-04-15 12:47:06 - DDMS] device unauthorized. Please check the confirmation dialog on your device.
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?是否可以手动生成密钥而无需确认对话框?

USB连接 通过USB

无线连接 通过Wi-Fi

小智 922

无论出于何种原因,该设备很可能不再在ADB上获得授权.

1.检查是否授权:

<ANDROID_SDK_HOME>\platform-tools>adb devices
List of devices attached
4df798d76f98cf6d        unauthorized
Run Code Online (Sandbox Code Playgroud)

2.撤消手机上的USB调试

如果设备显示为未授权,请转至手机上的开发人员选项,然后单击"撤消USB调试授权"(使用JellyBean和Samsung GalaxyIII进行测试).

3.重新启动ADB服务器:

然后重启adb服务器

adb kill-server
adb start-server
Run Code Online (Sandbox Code Playgroud)

4.重新连接设备

设备将询问您是否同意连接计算机ID.你需要确认一下.

5.现在检查设备

它现在被授​​权!

adb devices
<ANDROID_SDK_HOME>\platform-tools>adb devices
List of devices attached
4df798d76f98cf6d        device
Run Code Online (Sandbox Code Playgroud)

  • 设备没有询问(或者我没有看到它询问)是否同意重新连接,但是在完成上述步骤之后,关闭并重新启动usb-debugging,它就可以了. (11认同)
  • 关闭 USB 调试并再次打开。唯一对我有用的方法...... (8认同)
  • 这里没有第二步,但是也找不到该菜单。 (3认同)
  • 对我不起作用,我没有确认对话框 (3认同)
  • 对我不起作用;Android 6.0 Marshmallow 没有“撤销 USB 调试授权”选项。注意:杀死 ADB 后,我得到“此 adbd 的 $ADB_VENDOR_KEYS 未设置;如果看起来不对,请尝试 'adb kill-server'”;以及“错误:设备未经授权”等。 (3认同)
  • 我在Android 4.4.4上找不到选项“撤消USB调试授权”。它在哪里? (2认同)
  • 如果您的设备未提示授权,则可能是因为您运行`adb`的帐户无权处理密钥.如果您遇到这种情况,请尝试提升权限(例如`sudo`). (2认同)

Qua*_*uak 85

哦,最后我明白了!删除Eclipse目录后,我将其安装到另一个目录中.

echo %ANDROID_SDK_HOME%
Run Code Online (Sandbox Code Playgroud)

显示错误的sdk目录路径.

  1. set ANDROID_SDK_HOME "E:\adt-bundle-windows-x86_64-20140321\sdk"
  2. 拔掉设备
  3. adb kill-server
  4. adb start-server
  5. 插头装置

完成这些步骤后,我能够在手机上看到带有RSA指纹的确认对话框:)

  • 我把`unplug device`作为命令来运行...注意自己,这意味着_physicallly_(un)plug (17认同)

小智 39

我遇到了与nexus7相同的问题.

以下是为了解决这个问题.

  1. DeveloperSettings设备的菜单中打开选项.

  2. Switch off 屏幕右上角的按钮.

  3. Delete全部debug permission来自菜单列表.

  4. Switch on 屏幕右上角的按钮.

现在将您的设备重新连接到您的PC,一切都应该没问题.

抱歉我的英语不好,菜单(按钮)的某些名称可能不正确,因为我的是日语.

  • 这对我有用.第3步看起来很模糊,但为此我"撤销了usb调试授权." 当我重新连接设备时(在再次启用调试选项和USB调试之后),它促使我保存计算机的RSA密钥.谢谢 :) (3认同)

e18*_*18r 35

尝试强制ADB创建新密钥。

  • 在Linux上:

    $ mv ~/.android/adbkey ~/.android/adbkey.old
    $ mv ~/.android/adbkey.pub ~/.android/adbkey.pub.old
    $ adb kill-server
    $ adb start-server
    
    Run Code Online (Sandbox Code Playgroud)
  • 在Windows上(谢谢Pau Coma RamirezNaveen!):

    • 前往%HOMEPATH%\.android\%USERPROFILE%\.android\
    • 查找名为adbkey或的文件adbkey.pub
    • 删除这些文件。或者,如果您想安全起见,请将其移至另一个目录。
    • 再试一次

在这之后,我什至不需要拔掉手机的电源:授权提示已经在那里。祝好运!

  • 其他答案均无济于事,这个答案就定了!非常感谢!=) (2认同)
  • 对于Windows,请检查“%HOMEPATH%\。android \”或“%USERPROFILE%\。android \”中的键。谢谢,这个为我工作! (2认同)
  • 帮我修好了,谢谢! (2认同)

Kha*_*dov 33

对我来说,我首先意外地授权了我的设备,后来我才发现。要将其恢复为重新授权:

  1. 断开 USB 设备与笔记本电脑/计算机的连接
  2. 单击开发者选项中的“撤销 USB 调试授权”。
  3. 禁用顶部的开发者选项。
  4. 再次重新启用它。
  5. 启用USB调试
  6. adb kill-server在终端上运行命令“ ”
  7. adb start-server在终端上运行命令“ ”
  8. 将您的移动设备连接到笔记本电脑/计算机
  9. 重新授权
  10. 按赞)

注意:如果上述方法不起作用,请尝试重新启动笔记本电脑,然后再重新连接


Tim*_*and 26

我有同样的问题.通过将"USB计算机连接"设置为"相机(PTP)"而不是"媒体设备(MTP)"解决了问题

  • 我将运行 Android 11 的三星 Galaxy S21 5G 连接到运行 macOS 11.6 的 Mac Mini (2018),但我的手机没有提示授权。我将“使用 USB 用于”从“传输文件/Android Auto”更改为“传输图像”并且有效 (4认同)

ale*_*mix 21

我在这个愚蠢的问题上浪费了几个小时.上述解决方案都不能单独为我工作.

我正在运行Windows 10.我有一个旧手动安装的Android SDK以及Android Studio的SDK.我删除了手动安装的SDK,所有设备都停止了工作.这些是症状:

$ adb usb
error: device unauthorized.
This adb server's $ADB_VENDOR_KEYS is not set
Try 'adb kill-server' if that seems wrong.
Otherwise check for a confirmation dialog on your device.
Run Code Online (Sandbox Code Playgroud)

以及

$ adb devices
List of devices attached
id1        unauthorized
id2        unauthorized
id3        unauthorized
Run Code Online (Sandbox Code Playgroud)

说实话,我不确定这些步骤中的哪一个让我得到了允许USB调试?提示回来,所以我列出了一切的完整性.按顺序从最简单到最难.在前两节之后,大多数人似乎都重新站起来了.


重启ADB

我将在以下每个部分之后执行此操作.

adb kill-server
adb usb
Run Code Online (Sandbox Code Playgroud)

对开发者选项感到疯狂

  1. 打开开发人员选项,然后再打开
  2. 打开USB调试,然后再打开
  3. 撤消USB调试授权.在USB调试开启时尝试此操作,如果可能,请在USB调试关闭时尝试.

重新插入设备

  1. 拔下USB电缆并将其重新插入手机.
  2. 在PC上切换USB电缆所连接的物理端口
  3. 切换用于连接设备的物理USB电缆

开始重启一切

  1. 重新启动所有设备并重新连接
  2. 重新启动电脑
  3. 打开和关闭WIFI

开始删除内容

  1. 小心删除~/.android文件夹.有时此文件夹可能具有错误的权限,这可能会导致问题.您可能希望先备份此文件夹.
  2. 从添加/删除程序卸载所有制造商特定的驱动程序.我卸载了以下(名称不准确)
    • LG联合USB驱动程序
    • HTC移动USB驱动程序
    • OnePlus USB驱动程序1.00
    • 三星USB驱动程序
  3. 我还卸载了所有模拟器及其各自的驱动程序(可选)
    • Nox及相关司机
    • 蓝叠
    • Genymotion

删除所有与Android相关的环境变量.

  1. %ANDROID_HOME%如果已设置,请删除
  2. %ANDROID_SDK_HOME%如果已设置,请删除

在这一点上,我的所有设备都神奇地变为现实并开始显示允许USB调试?通过亚行正确提示和连接.如果你已经做到这一点并且没有找到解决方案,我真的很抱歉你处于这种困境中.确保在所有这些步骤结束时重新启动所有设备和开发机器,并使用新电缆连接到新的USB端口.

如果仍然无效,请尝试以下主题中的其他SO帖子:

  • 这里的其他建议都没有奏效,但是这个建议让我走上了正确的轨道。~/.android 目录部分几乎是正确的。在最近针对 SDK adb 的 Android Studio 更新停止工作后,正是这些症状。最后我发现 ~/.android/adbkey 和 ~/.android/adbkey.pub 都是 0 大小的文件,所以我删除了它们,重新启动了 adb 服务器,等等!立即得到我的身份验证提示。 (7认同)
  • 也很高兴删除`~/.android` (3认同)
  • 谢谢。在完成所有其他事情并在那里呆了很长时间之后,删除〜/ .android为我解决了它! (2认同)

Ale*_*yon 16

重新检查开发人员选项中的“USB 调试”选项对我有帮助


小智 15

作为参考,我刚刚在Linux上遇到了同样的问题,并且花了很多时间搞清楚它.我最终确定我有一个root权限的〜/ .android目录(感谢以root身份运行adb,同时试图弄清楚其他连接问题).删除根拥有的〜/ .android目录,下次重新连接设备时解决了丢失的授权对话框.

简单地改变所有权也可以解决问题 - 我猜测这是一个简单的缺乏对存储在内部的adb密钥文件的访问权限,这是问题的根源.我没有验证,但是,我不会故意打破我来之不易的连接,所以我可以检查;-)


vov*_*ost 13

对我有用的步骤:
1.从USB电缆断开电话
2.撤消手机上的USB调试
3.重启设备
4.重新连接设备

最重要的部分是重启设备.没有它就行不通.


Dek*_*eko 9

在 osx 和 Nexus 5 (A6.0.1) 上有类似的问题。尽管 Android Studio 或任何其他 IDE 都无法连接到设备,但我确实收到了授权弹出窗口并进行了确认。

原来我的 Nexus()丢失了关键文件。

  • 重新启动 Android 设备进入恢复状态
  • 运行代码粘贴在下面
  • 重新启动 Android 设备,adb 现在可以识别设备

将密钥从计算机推送到 Android 设备:

 cd ~/.android && adb push adbkey.pub /data/misc/adb/adb_keys
Run Code Online (Sandbox Code Playgroud)

解决方案来自这里


gau*_*aus 9

只需关闭设备上的开发人员选项,然后再次打开,将 USB 与设备和工作系统连接,然后打开 USB 调试。


Shi*_*oft 8

如消息所述,您需要允许在手机上访问adb.

您需要先使用USB线将手机连接到PC,然后屏幕上会弹出授权消息.勾选记住您的选择,然后允许它.

如果您的设备在连接到PC时没有显示任何消息.只需这样做.

删除/ data/misc/adb/adb_key,重新启动手机并再次尝试连接.该消息应该出现.

  • 仍然没有消息.我现在不知道该怎么做:(我不想在模拟器上调试... (2认同)

GDe*_*der 8

我的Nexus 10出现了这个错误.我尝试了所有可以找到的答案,然后我意识到我使用的是不同于通常的USB端口.我切换到使用我经常使用的端口,这是我的笔记本电脑的另一端,授权在我的平板电脑上弹出!


Mar*_*377 6

解决方案是将您的文件~/.android/adbkey.pub(在 GNU/Linux 或%USERPROFILE%\.android\adbkey.pubWindows 上)复制到 Android,并将其放置为/data/misc/adb/adb_keys. 你需要 root 权限才能做到这一点。

您可以通过任何您喜欢(或能够)的方式传输文件,无论是 USB、电子邮件还是临时文件上传服务。就我而言,由于它是虚拟机中的新 Android-x86 安装,没有可用的 Web 浏览器,并且网络/TCP adb 无法正常工作,因此我必须实际输入 715 个字符。

至少它奏效了。


Sam*_*osa 6

如果您使用的是 ubuntu,请尝试以 root 身份运行服务器:

sudo adb kill-server

sudo adb start-server

Run Code Online (Sandbox Code Playgroud)


isX*_*der 6

断开您的设备与计算机的连接。

进入开发者设置。

关闭开发者设置。

打开开发者设置。

启用 USB 调试(以及您之前启用的任何其他设置)

将您的设备重新连接到计算机。

再试一次。

为我工作,希望它对你有用!


Shi*_*mmy 6

在花了一个多小时对三星(主要是)、谷歌发誓之后,我的发现最终帮助我获得了认可:

  1. 在设备上:
    • 设置开发者模式
    • 允许USB调试
    • 默认 USB 配置> 选择USB 网络共享
    • 将设备连接到 PC USB
  2. 在电脑上:
    • 提升的 cmd/ps 提示(可能不是强制性的,但那是我的练习)
    • adb kill-server(以.\ps 开头)
    • adb start-server连接设备时)> 注意设备上的提示
  3. 在设备上:
    • 始终允许来自这台计算机的连接>
  4. 在电脑上:
    • adb devices 得到以下输出:
List of devices attached
278c250cce217ece        device
Run Code Online (Sandbox Code Playgroud)


Sak*_*ain 5

我对此进行了分层,我通过关闭手机的Wi-Fi获得了该权限对话框.


lak*_*989 5

我的手机上没有弹出 RSA 指纹。

我不得不进入

  C:\Users\<userName>\.android\adbkey and adbkey.pub 
Run Code Online (Sandbox Code Playgroud)

文件,删除这些文件,然后终止并重新启动 adb 服务器。我必须停止并重新启动调试器并以 PTP 模式作为 USB 连接。

由于 RSA 授权密钥存储在此路径中,因此终止并重新启动 adb 服务器没有帮助。


归档时间:

查看次数:

592667 次

最近记录:

6 年,1 月 前