adb授權的原理


在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(公鑰);

 

密鑰保存位置

       在PC上,首次啟動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命令


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM