From 9f779ab4affc3bbe401ed6bb433ee78a934162a6 Mon Sep 17 00:00:00 2001 From: Chad Brubaker Date: Mon, 20 Jun 2016 12:40:20 -0700 Subject: [PATCH] Add getApplicationConfigForPackage getApplicationConfigForPackage will be used by system components that need to make connections for apps, e.g. DownloadManager, so that their secure connections have the same configuration as those from the app itself. Bug: 29505888 Change-Id: Idf1cac6307431911eda34529d3fd50f9ca0da314 --- .../android/security/NetworkSecurityPolicy.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/core/java/android/security/NetworkSecurityPolicy.java b/core/java/android/security/NetworkSecurityPolicy.java index 331063e2bfac5..1b1c30048ee76 100644 --- a/core/java/android/security/NetworkSecurityPolicy.java +++ b/core/java/android/security/NetworkSecurityPolicy.java @@ -17,7 +17,10 @@ package android.security; import android.annotation.TestApi; +import android.content.Context; +import android.content.pm.PackageManager; import android.security.net.config.ApplicationConfig; +import android.security.net.config.ManifestConfigSource; /** * Network security policy. @@ -98,4 +101,16 @@ public class NetworkSecurityPolicy { public void handleTrustStorageUpdate() { ApplicationConfig.getDefaultInstance().handleTrustStorageUpdate(); } + + /** + * Returns an {@link ApplicationConfig} based on the configuration for {@code packageName}. + * + * @hide + */ + public static ApplicationConfig getApplicationConfigForPackage(Context context, + String packageName) throws PackageManager.NameNotFoundException { + Context appContext = context.createPackageContext(packageName, 0); + ManifestConfigSource source = new ManifestConfigSource(appContext); + return new ApplicationConfig(source); + } }