以编程方式设置 Wifi 代理凭据

2022-09-04 03:56:02

应用将使用系统签名进行签名,因此最终可能会授予一些受保护的权限(如android.permission.WRITE_SECURE_SETTINGS)。

那么我的问题是,如何在特定的WiFi网络上为代理全局设置凭据,知道该应用程序将使用系统签名进行签名?

我找不到有关如何执行此操作的任何信息。根据在标准Java应用程序中可以执行的操作,以下代码可能有效:

        System.setProperty("http.proxyUser", usr);
        System.setProperty("http.proxyPassword", pwd);

但是,这是在Android上设置代理凭据的方法吗?它是否要全局设置代理凭据(即使用默认http支持的所有应用程序)?(IMO,即使此调用有效,也不会更改流程边界之外的任何内容)

我还检查了android.provider.Settings的代码.java在其中我发现了一些关于全局代理的属性:但没有关于代理身份验证的任何属性。global_http_proxy_hostglobal_http_proxy_port


答案 1

Android 用于在 frameworks/base/core/java/android/net/Proxy 中设置代理.javaSystem.setSystemProp

我想如果你有系统权限,你可以做同样的事情。

我不确定它是否会影响。android.webkit


答案 2

无法在 Android 中设置全局代理凭据。整个AOSP中根本没有可以容纳它的结构。

不幸的是,我没有设法找到任何解释。相关问题跟踪器项目不公开,源代码中的评论很少。开发人员博客中没有关于此问题的内容。Karim Yaghmour的嵌入式Android也没有阐明这个问题。

附言:这个答案纯粹基于代码分析。


推荐