Android adb unauthorized 问题


关于这个问题,就像感冒一样,因人而异。也有很多朋友给出了很好的解决方案和解释,这里我记录一下自己碰上的情况。

我的问题在于:在开发者选项中撤回USB除错授权后打开USB调试,始终没有弹出授权界面(该界面如下图)。

解决方案是:

1. cmd > echo %ANDROID_SDK_HOME%   --->查看电脑环境变量中Android SDK的值是否正确(我的问题就是因为换了SDK位置导致的)

2. 修正ANDROID_SDK_HOME后,重启adb(adb kill 或者 任务管理器中杀掉进程就行)

3. 重新连接手机,adb devices。



碰上两次这样的情况了,因为没有总结,每次都重来一遍,我也是累了。。。

以后有机会还是应该看看源码的。

https://android.googlesource.com/platform/system/core/+/d5fcafaf41f8ec90986c813f75ec78402096af2d

这里有概述:

adb: Add public key authentification

Secure adb using a public key authentication, to allow USB debugging
only from authorized hosts.

When a device is connected to an unauthorized host, the adb daemon sends
the user public key to the device. A popup is shown to ask the user to
allow debugging once or permanantly from the host. The public key is
installed on the device in the later case. Other keys may be installed
at build time.

On the host, the user public/private key pair is automatically generated,
if it does not exist, when the adb daemon starts and is stored in
$HOME/.android/adb_key(.pub) or in $ANDROID_SDK_HOME on windows. If needed,
the ADB_KEYS_PATH env variable may be set to a :-separated (; under
Windows) list of private keys, e.g. company-wide or vendor keys.

On the device, vendors public keys are installed at build time in
/adb_keys. User-installed keys are stored in /data/misc/adb/adb_keys.

ADB Protocol change:
If the device needs to authenticate the host, it replies to CNXN
packets with an AUTH packet. The AUTH packet payload is a random token.
The host signs the token with one of its private keys and sends an AUTH(0)
packet. If the signature verification succeeds, the device replies with
a CNXN packet. Otherwise, it sends a new AUTH packet with a new token so
that the host can retry with another private key. Once the host has tried
all its keys, it can send an AUTH(1) packet with a public key as
payload. adbd then sends the public key to the framework (if it has been
started) for confirmation.


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: adb unauthorized问题通常是由于设备没有授权连接到计算机上导致的。解决方法如下: 1. 确认设备已开启USB调试模式。在设备的设置中找到“开发者选项”,打开USB调试模式。 2. 确认设备连接到计算机时是否出现了授权提示框。如果没有出现,可以尝试更换USB线或更换USB接口。 3. 如果设备已经授权连接,但仍然出现unauthorized的提示,可以尝试在计算机上删除adb的缓存文件。在计算机上找到adb的缓存文件夹,一般在用户目录下的.android文件夹中,删除其中的adbkey和adbkey.pub文件,然后重新连接设备。 4. 如果以上方法都无法解决问题,可以尝试重启设备和计算机,或者卸载并重新安装adb驱动程序。 ### 回答2: ADB unauthorizedAndroid移动设备与计算机连接时常见的一种问题,意味着您无法使用ADB工具与设备进行通信。这种情况通常通过核对计算机和设备之间的连接和授权权限来解决。 以下是一些常见的解决方法: 方法一:重新启动ADB服务 1. 在计算机上查找ADB所在文件路径(ADB.exe)并将其关闭 2. 在移动设备上打开开发者模式并开启USB调试选项 3. 重新启动计算机和移动设备 4. 连接设备到电脑,然后重新启动ADB服务 方法二:撤销USB授权权限 1. 断开USB连接 2. 在移动设备上进入“开发者选项->撤销USB授权”选项 3. 重新连接设备并尝试使用ADB 方法三:重新安装ADB驱动程序 1. 从设备厂商的网站下载最新的ADB驱动程序 2. 安装驱动程序并将设备连接到电脑 3. 打开命令提示符并进入ADB文件路径 4. 输入“ADB devices”命令查看设备是否被识别 以上是一些常见的解决方法,如果这些方法不能解决问题,请参考官方文档或者寻求专业技术支持。 ### 回答3: ADBAndroid Debug Bridge 的简称,它是 Android 平台提供的一种工具,用于连接手机与电脑并进行调试、安装应用等操作。当连接 Android 设备到电脑时,有时会出现 ADB unauthorized 的情况,导致无法进行操作。 原因: ADB unauthorized 的原因可能有很多,比如设备没有授权,USB 调试未打开,USB 连接线松动等。但是通常出现这种情况的情况是因为连接到电脑的 Android 设备,没有授权给当前电脑,因此需要进行一些操作以解决此问题。 解决办法: 以下是几种解决 ADB unauthorized 的方法: 1. 测试连接 首先检查连接的 USB 转接线是否松动并重新连接手机和电脑,然后运行 cmd 命令 adb devices 检查连接状况。如果手机提示“充电中”,则表明该线不支持数据传输。 2. 授权 Android 设备 当首次连接 Android 设备时,可能需要授权才能允许 ADB 访问设备,如果已经连接了设备并且授权过,则可以尝试断开连接重新连接设备,弹出授权窗口,点击允许即可。 3. 检查 USB 调试 在 Android 设备上打开“开发者选项”功能,并允许 USB 调试。此时在设备上会弹出对话框以显示是否允许此计算机访问设备。确保选择“允许”以授权设备。 4. 设备与 adb 版本不兼容 确保 Android 设备上的 Android 版本与电脑上的 adb 版本兼容,并更新 adb 版本。 总结: 以上是解决 ADB unauthorized 的几种方法,通常情况下需要检查连接的 USB 转接线是否松动,检查设备的 USB 调试和授权设置,同时,还需要检查电脑上的系统驱动。如果以上方法都不能解决问题,则可能是 USB 线材的问题或者手机硬件问题,可以更换 USB 电缆或者进行维修。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值