summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Chad Brubaker <cbrubaker@google.com> 2016-01-22 21:48:07 -0800
committer Chad Brubaker <cbrubaker@google.com> 2016-01-22 22:04:20 -0800
commit056e8b5a5ac041fd3db0a1e02b819baf38ebdc88 (patch)
tree43979046943230425fee1b48d67d425a0c4b32c6
parentb7fbe1104fd93b426dd6a6f2ed9dfc9cb12b4dd8 (diff)
Add getApplicationConfigForPackage
This allows services which make network connections on behalf of applications to honor the application's network security policy. Change-Id: I562b7bd0eb20f2f8c9f8342c211166d4e3397780
-rw-r--r--core/java/android/security/NetworkSecurityPolicy.java18
1 files changed, 18 insertions, 0 deletions
diff --git a/core/java/android/security/NetworkSecurityPolicy.java b/core/java/android/security/NetworkSecurityPolicy.java
index 46aa1af247de..83c4e4a50f91 100644
--- a/core/java/android/security/NetworkSecurityPolicy.java
+++ b/core/java/android/security/NetworkSecurityPolicy.java
@@ -16,6 +16,11 @@
package android.security;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.security.net.config.ApplicationConfig;
+import android.security.net.config.ManifestConfigSource;
+
/**
* Network security policy.
*
@@ -87,4 +92,17 @@ public class NetworkSecurityPolicy {
FrameworkNetworkSecurityPolicy policy = new FrameworkNetworkSecurityPolicy(permitted);
libcore.net.NetworkSecurityPolicy.setInstance(policy);
}
+
+
+ /**
+ * 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);
+ }
}