ADB密钥指纹不匹配的问题解决指南

8次阅读
没有评论

问题描述

在尝试通过adb连接手机时,手机显示的公钥指纹与电脑上计算出的公钥指纹不一致。手机上的指纹较长(64字符),而电脑上的指纹较短(32字符)。这可能是由于Android使用了不同于链接帖子中所述的方法来生成指纹。

解决方案

方案1

使用SHA256算法生成指纹

根据回复1,手机上显示的指纹是通过使用SHA256哈希函数生成的。可以通过以下命令在电脑上生成相同的指纹:

cat ~/.android/adbkey.pub | openssl base64 -A -d -a | openssl sha256 -c

执行上述命令后,会得到一个长度为64字符的指纹,这应该与手机上显示的指纹相同。

方案2

检查运行adb服务器的用户ID

根据回复2,如果在电脑上运行adb服务器的用户ID与手机上显示的指纹对应的用户ID不同,则需要比较对应用户家目录下的公钥指纹。具体操作如下:
1. 确认电脑上运行adb服务器的用户ID。
2. 在该用户家目录下查找~/.android/adbkey.pub文件。
3. 使用相同的方法计算该用户家目录下的公钥指纹。
4. 将计算出的指纹与手机上显示的指纹进行对比。

方案3

使用正确的公钥文件

确保使用的adbkey.pub文件是正确的,没有被误操作或覆盖。可以尝试重新生成adbkey文件,步骤如下:
1. 删除现有的~/.android/adbkey~/.android/adbkey.pub文件。
2. 重新生成新的adbkey文件:
bash
adb kill-server
adb start-server

3. 再次检查手机和电脑上的指纹是否一致。

通过上述方案,可以解决ADB密钥指纹不匹配的问题。建议优先尝试方案1,因为这是最直接的方法。如果方案1无法解决问题,则可以考虑方案2和方案3。

正文完