adb使用时出现unanthorized问题

 

ADB 启动时,adb devices出现unanthorized问题。

  1. 检查USB调试是否开启。
  2. 重新拔插USB数据线是否有授权提示
  3. 重启adb :adb kill-server和adb start-server
  4. 如果以上方法均不可以,则使用以下步骤
  1. 删除C:\Users\你电脑的用户名\.android下的adbkey和adbkey.pub

     

  2. 关闭USB调试

  3. 重新打开一个DOS命令窗口,进入ADB中

     

  4. 先adb kill-server关闭adb驱动,然后输入adb start-server打开adb服务

     

  5. 插入USB数据线,打开USB调试,出现以下图片,只有出现了第二张图片中的序号,adb才可以配对成功。点击确定,公钥配对成功,只要出现了第二个图片,不管配不配对,本地C:\Users\你电脑的用户名\.android都会新出现两个文件adbkey和adbkey.pub

     

  6. 输入adb devices,成功打开adb服务,
    1. 解决原理:

原来当我们在window电脑上启动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(公钥);

  1. Adbkey和adbkey.pub的存储位置,

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

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

 

posted on 2018-07-19 23:10  夜尽天明00  阅读(1895)  评论(0编辑  收藏  举报