如何解決adb卡死,命令不返回的問題


今天在使用adb命令時發生一個奇怪的現象,所有 adb命令全部卡死不返回,包括adb kill-server。

記錄一下我的解決過程,再遇到類似的情況可能原因差不多。


1. 最先懷疑 5037端口被占用,tcpview看了一下,發現端口沒有被占用。

2. 再懷疑是不是adb的驅動出問題了,用ADBDriverInstaller也查看了,沒有問題,如下圖

    image

3. 懷疑我的手機是不是有問題,用其它的PC試了一下,可以正常操作,說明還是我的PC的問題

4. 最后用procexp查看進程及線程,看看卡在哪兒了,首先發現一個dll,引起我的懷疑,如下圖:

    image

    我感覺八成是上圖中 “ASProxy.dll” 搞的鬼,在仔細看一下線程棧確定一下。

    image

    初步確認是ASProxy.dll引起的,這個dll是AStrill當中的,一個FQ軟件。
    卸載后再試試,一切就好了。

   AStrill 用這種方式做代理雖然能兼容很多的軟件,但是也會引起很多錯誤。

   幾年前我用golang編譯出來的程序就與AStrill沖突過,今天又來了。
   使用AStrill最安全的辦法就找機器單獨安裝,使用者配一個http的代理就可以了,這樣最干凈。




最后再多說一句關於 ASProxy.dll,這個dll其實是一個 SPI,它可以注入到每一個使用網絡的進程中去,再來一張圖:


image

就是這么的,可以讓ASProxy.dll注入到adb的進程中,從而影響了adb的正常運行。


免責聲明!

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



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