adb使用時出現unanthorized問題
ADB 啟動時,adb devices出現unanthorized問題。
-
檢查USB調試是否開啟。
-
重新拔插USB數據線是否有授權提示
-
重啟adb :adb kill-server和adb start-server
-
如果以上方法均不可以,則使用以下步驟
-
刪除C:\Users\你電腦的用戶名\.android下的adbkey和adbkey.pub
-
關閉USB調試
-
重新打開一個DOS命令窗口,進入ADB中
-
先adb kill-server關閉adb驅動,然后輸入adb start-server打開adb服務
-
插入USB數據線,打開USB調試,出現以下圖片,只有出現了第二張圖片中的序號,adb才可以配對成功。點擊確定,公鑰配對成功,只要出現了第二個圖片,不管配不配對,本地C:\Users\你電腦的用戶名\.android都會新出現兩個文件adbkey和adbkey.pub
-
輸入adb devices,成功打開adb服務,
-
解決原理:
-
原來當我們在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(公鑰);
-
Adbkey和adbkey.pub的存儲位置,
以window系統來說,當我們首次啟動adb.exe時,會在C盤的當前用戶的目錄下生成一個".android"目錄,其中adbkey與adbkey.pub就在這個目錄下;(adb.exe會在啟動時讀取這兩個文件(如果沒有生成就重新生成),所以如果你要是刪除或者修改了這兩個文件后,必須關閉adb.exe進程,重啟之后才能生效);
其次在android系統上,PC的公鑰被保存在一個文件中"/data/misc/adb/adb_keys";