如何解决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