您当前的位置: 首页 >  ar
  • 0浏览

    0关注

    674博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Charles清除代理三种方式

沙漠一只雕得儿得儿 发布时间:2020-01-14 21:12:05 ,浏览量:0

adb设置代理用如下命令:adb shell settings put global http_proxy 127.0.0.1:8888 换成自己电脑的IP地址即可。

但是有时我们想抓取HTTPS请求,在设备上输入 http://charlesproxy.com/getssl 后死活就是不弹出输入证书名字的对话框,这应该是之前设置过代理没有清除造成的。但是如何清除代理今天试了三种方法,成功的是二和三。

方案一(各个博客里提到的最多的方式,本人试了试,没有成功过):

移除代理:

adb shell settings delete global http_proxy

adb shell settings delete global global_http_proxy_host

adb shell settings delete global global_http_proxy_port

使用adb命令时这里遇到报错,反正就是无法执行,

Invalid command: delete
usage:  settings [--user NUM] get namespace key
        settings [--user NUM] put namespace key value

'namespace' is one of {system, secure, global}, case-insensitive
If '--user NUM' is not given, the operations are performed on the owner user.
方案二:设置代理的信息存在 com.android.providers.settings 这个应用中的数据库里,那么我们删除掉数据库的这三个表即可,切记需要root权限。

(1)adb root

adb root 是为了保证设备是可以获取root的,因为后面需要删除data/data/com.android.providers.settings目录下面的数据库中的三张代理设置表的数据

(2)adb shell

adb shell后进入root命令模式

 

(3)sqlite3 /data/data/com.android.providers.settings/databases/settings.db

输入sqlite3命令,打开settings 应用的数据库

(4)sqlite> select * from global;

查询所有的数据表,

看到最后这三个就是我们需要删除的设置代理的数据表

(5)sql删除三张数据表

sqlite> delete from global where name="global_http_proxy_host";

sqlite> delete from global where name="global_http_proxy_port";

sqlite> delete from global where name="http_proxy";

整体的截图:

(6)重启设备即可生效。这时我们再在设备上打开浏览器,输入 http://charlesproxy.com/getssl 就会弹出重新设置的弹窗了。

方案三:最简单有效的方式,

(1)设置代理为:adb shell settings put global http_proxy 127.0.0.1:8888,

(2)打开浏览器输入 http://charlesproxy.com/getssl,此时网页出错,因为没有网络

(3)再重新设置自己的电脑代理,例如我的:adb shell settings put global http_proxy 10.1.97.44:8888 ,刷新下网页即可

 总结:

方案一目前试了试无效,方案二需要root还要敲一堆代码比较麻烦,方案三怀疑是不是触发了代理重置,因此简单有效。

还有一些需要注意的点:

 

关注
打赏
1657159701
查看更多评论
立即登录/注册

微信扫码登录

0.0393s