From 8d28e4f07f73142b13edeb7eac977332eca026ef Mon Sep 17 00:00:00 2001 From: Chad Brubaker Date: Fri, 11 Dec 2015 12:35:11 -0800 Subject: [PATCH] Use the application's usesCleartextTraffic flag When no config is specified use the application's usesCleartextTraffic flag when building the default config. Change-Id: I07378f88da47b49f63e9089fca7f1e99efede272 --- .../security/net/config/ManifestConfigSource.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/core/java/android/security/net/config/ManifestConfigSource.java b/core/java/android/security/net/config/ManifestConfigSource.java index bf1fb8a5a7217..0e137cddc148c 100644 --- a/core/java/android/security/net/config/ManifestConfigSource.java +++ b/core/java/android/security/net/config/ManifestConfigSource.java @@ -79,7 +79,9 @@ public class ManifestConfigSource implements ConfigSource { if (DBG) { Log.d(LOG_TAG, "No Network Security Config specified, using platform default"); } - source = new DefaultConfigSource(); + boolean usesCleartextTraffic = + (info.flags & ApplicationInfo.FLAG_USES_CLEARTEXT_TRAFFIC) != 0; + source = new DefaultConfigSource(usesCleartextTraffic); } mConfigSource = source; return mConfigSource; @@ -87,9 +89,18 @@ public class ManifestConfigSource implements ConfigSource { } private static final class DefaultConfigSource implements ConfigSource { + + private final NetworkSecurityConfig mDefaultConfig; + + public DefaultConfigSource(boolean usesCleartextTraffic) { + mDefaultConfig = NetworkSecurityConfig.getDefaultBuilder() + .setCleartextTrafficPermitted(usesCleartextTraffic) + .build(); + } + @Override public NetworkSecurityConfig getDefaultConfig() { - return NetworkSecurityConfig.DEFAULT; + return mDefaultConfig; } @Override