今天在使用adb命令时发生一个奇怪的现象,所有 adb命令全部卡死不返回,包括adb kill-server。
记录一下我的解决过程,再遇到类似的情况可能原因差不多。
2. 再怀疑是不是adb的驱动出问题了,用ADBDriverInstaller也查看了,没有问题,如下图
3. 怀疑我的手机是不是有问题,用其它的PC试了一下,可以正常操作,说明还是我的PC的问题
4. 最后用procexp查看进程及线程,看看卡在哪儿了,首先发现一个dll,引起我的怀疑,如下图:
我感觉八成是上图中 “ASProxy.dll” 搞的鬼,在仔细看一下线程栈确定一下。
初步确认是ASProxy.dll引起的,这个dll是AStrill当中的,一个翻墙软件。
卸载后再试试,一切就好了。
AStrill 用这种方式做代理虽然能兼容很多的软件,但是也会引起很多错误。
几年前我用golang编译出来的程序就与AStrill冲突过,今天又来了。
使用AStrill最安全的办法就找机器单独安装,使用者配一个http的代理就可以了,这样最干净。
最后再多说一句关于 ASProxy.dll,这个dll其实是一个 SPI,它可以注入到每一个使用网络的进程中去,再来一张图:
就是这么的,可以让ASProxy.dll注入到adb的进程中,从而影响了adb的正常运行。