今天在使用adb命令時發生一個奇怪的現象,所有 adb命令全部卡死不返回,包括adb kill-server。
記錄一下我的解決過程,再遇到類似的情況可能原因差不多。
2. 再懷疑是不是adb的驅動出問題了,用ADBDriverInstaller也查看了,沒有問題,如下圖
3. 懷疑我的手機是不是有問題,用其它的PC試了一下,可以正常操作,說明還是我的PC的問題
4. 最后用procexp查看進程及線程,看看卡在哪兒了,首先發現一個dll,引起我的懷疑,如下圖:
我感覺八成是上圖中 “ASProxy.dll” 搞的鬼,在仔細看一下線程棧確定一下。
初步確認是ASProxy.dll引起的,這個dll是AStrill當中的,一個FQ軟件。
卸載后再試試,一切就好了。
AStrill 用這種方式做代理雖然能兼容很多的軟件,但是也會引起很多錯誤。
幾年前我用golang編譯出來的程序就與AStrill沖突過,今天又來了。
使用AStrill最安全的辦法就找機器單獨安裝,使用者配一個http的代理就可以了,這樣最干凈。
最后再多說一句關於 ASProxy.dll,這個dll其實是一個 SPI,它可以注入到每一個使用網絡的進程中去,再來一張圖:
就是這么的,可以讓ASProxy.dll注入到adb的進程中,從而影響了adb的正常運行。