问题描述
在尝试通过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。
正文完