adbkey与adbkey.pub

本文详细介绍了在使用ADB调试Android设备时遇到的授权问题及其解决方法。当首次连接时,设备会显示授权提示,这是因为adb通过RSA密钥对进行身份验证。PC端的adbkey和adbkey.pub存放在用户目录的.android文件夹下,而Android设备上则保存在/data/misc/adb/adb_keys。若要禁止未经授权的连接,可以删除adb_keys文件。此外,已授权的PC可以通过复制adbkey与adbkey.pub来实现无屏幕情况下的远程调试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

error: device unauthorized. Please check the confirmation dialog on your device.

用adb调试android设备时,首次连接时,会出现一个授权提示:

error: device unauthorized. Please check the confirmation dialog on your device.

这时候,正常情况下,在手机上会出现一个提示框,让用户确认是否授权这个PC设备允许调试,你只需要点击确认就可以了!

工作原理是什么?

原来在我们的PC机(以windows为例)上启动了adb.exe进程时,adb会在本地生成一对密钥adbkey(私钥)与adbkey.pub(公钥);

根据弹框提示“The computer's RSA key fingerprint is:xxxx”,可以看出是一对RSA算法的密钥,其中公钥是用来发送给手机的;

当你执行“adb shell”时,adb.exe会将当前PC的公钥(或者公钥的hash值)(fingerprint)发送给android设备;这时,如果android上已经保存了这台PC的公钥,则匹配出对应的公钥进行认证,建立adb连接;如果android上没有保存这台PC的公钥,则会弹出提示框,让你确认是否允许这台机器进行adb连接,当你点击了允许授权之后,android就会保存了这台PC的adbkey.pub(公钥);

当然手机厂商也有可能会内置一些adbkey.pub(公钥);

那么问题来了,这些密钥在PC与Android上分别存储在哪里?

首先PC上,以Windows7为例,当你首次启动adb.exe时,会在C盘的当前用户的目录下生成一个".android"目录,其中adbkey与adbkey.pub就在这个目录下;(adb.exe会在启动时读取这两个文件(没有就重新生成),所以如果你要是删除或者修改了这两个文件之后,必须要关闭adb.exe进程,重启之后才能生效;)

其次Android上,PC的公钥被保存在一个文件中"/data/misc/adb/adb_keys";

在知道了adb这种认证的原理之后,你可以在不希望自己android设备授权任何PC设备进行adb链接时,清除"/data/misc/adb/adb_keys"文件;

也可以在没有屏幕的情况下,让已经认证过的PC将你PC上的adbkey.pub中的公钥导入到android中的"/data/misc/adb/adb_keys"文件中,或者将已经认证过的PC机上的adbkey与adbkey.pub拷贝到本机上覆盖你自己的adbkey与adbkey.pub,然后重启adb.exe,即可执行adb命令;

### 回答1: adb unauthorized的问题通常是由于设备没有授权连接到计算机上导致的。解决方法如下: 1. 确认设备已开启USB调试模式。在设备的设置中找到“开发者选项”,打开USB调试模式。 2. 确认设备连接到计算机时是否出现了授权提示框。如果没有出现,可以尝试更换USB线或更换USB接口。 3. 如果设备已经授权连接,但仍然出现unauthorized的提示,可以尝试在计算机上删除adb的缓存文件。在计算机上找到adb的缓存文件夹,一般在用户目录下的.android文件夹中,删除其中的adbkeyadbkey.pub文件,然后重新连接设备。 4. 如果以上方法都无法解决问题,可以尝试重启设备和计算机,或者卸载并重新安装adb驱动程序。 ### 回答2: ADB unauthorized是Android移动设备计算机连接时常见的一种问题,意味着您无法使用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: ADB 是 Android 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、付费专栏及课程。

余额充值