我知道这是一个老问题,但我在撤消代理黑客方面花了很多时间,所以我想我会分享。
我使用 ADB 将权限传递给设备,这让我可以使用自己的自定义应用程序将值更改为代理设置。
问题是一旦我将我的应用程序与
一起使用
Settings.Secure.putString(getContentResolver(), Settings.Secure.HTTP_PROXY, "127.0.0.1:8007");
无论我尝试什么(null,空白,“NONE”),它都不会让我将其设置回默认值(无代理),基本上如果我没有通过代理连接它就不会与外部对话世界。即使重启后。
我找到的解决方案:
这些设置存储在 SQL 数据库中,因此当手机重新启动时会应用这些设置。您只需要进入数据库并从表中删除这些行。我做了什么:
~user$ adb shell
shell@cinco:/ $ su -
仅供参考...不确定您是否需要超级用户,但这不会对您造成伤害。 . .
root@cinco:/ $ sqlite3 /data/data/com.android.providers.settings/databases/settings.db
您可以通过以下操作查看全局表中内容的完整列表:
sqlite> select * from global;
在列表中,您应该能够看到您为 http_proxy、global_http_proxy_host 和 global_http_proxy_port 编写的值,也许您知道将这些设置为什么神奇值以使其正常工作,但我不...我的解决方案,只需删除它们:
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";
重新启动手机,就像魔术一样,没有更多的代理,我得到了互联网!!