Use CONNECTIVITY_INTERNAL for global proxy

The Global http proxy shouldn't be used by apps, but can be useful in certain
conditions.

bug:8264794
bug:8557674
Change-Id: Ia3cbe542e448d9e74d0492626a13e9fd34ad797a
This commit is contained in:
Robert Greenwalt
2013-04-10 15:32:18 -07:00
parent f9661d357f
commit 6477bd0519
2 changed files with 11 additions and 6 deletions

View File

@@ -1136,7 +1136,7 @@ public class ConnectivityManager {
* HTTP proxy. A {@code null} value will clear the global HTTP proxy.
*
* <p>This method requires the call to hold the permission
* {@link android.Manifest.permission#CHANGE_NETWORK_STATE}.
* {@link android.Manifest.permission#CONNECTIVITY_INTERNAL}.
* {@hide}
*/
public void setGlobalProxy(ProxyProperties p) {

View File

@@ -3045,7 +3045,7 @@ public class ConnectivityService extends IConnectivityManager.Stub {
}
public void setGlobalProxy(ProxyProperties proxyProperties) {
enforceChangePermission();
enforceConnectivityInternalPermission();
synchronized (mProxyLock) {
if (proxyProperties == mGlobalProxy) return;
if (proxyProperties != null && proxyProperties.equals(mGlobalProxy)) return;
@@ -3063,10 +3063,15 @@ public class ConnectivityService extends IConnectivityManager.Stub {
mGlobalProxy = null;
}
ContentResolver res = mContext.getContentResolver();
final long token = Binder.clearCallingIdentity();
try {
Settings.Global.putString(res, Settings.Global.GLOBAL_HTTP_PROXY_HOST, host);
Settings.Global.putInt(res, Settings.Global.GLOBAL_HTTP_PROXY_PORT, port);
Settings.Global.putString(res, Settings.Global.GLOBAL_HTTP_PROXY_EXCLUSION_LIST,
exclList);
} finally {
Binder.restoreCallingIdentity(token);
}
}
if (mGlobalProxy == null) {