Merge "Use shared namespace for bundled app classloader"
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java
index 83d4152..a2ef410 100644
--- a/core/java/android/app/ActivityThread.java
+++ b/core/java/android/app/ActivityThread.java
@@ -119,6 +119,7 @@
import java.net.InetAddress;
import java.text.DateFormat;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import java.util.Locale;
import java.util.Map;
@@ -814,8 +815,13 @@
// Tell the VMRuntime about the application, unless it is shared
// inside a process.
if (!sharable) {
+ final List<String> codePaths = new ArrayList<>();
+ codePaths.add(appInfo.sourceDir);
+ if (appInfo.splitSourceDirs != null) {
+ Collections.addAll(codePaths, appInfo.splitSourceDirs);
+ }
VMRuntime.registerAppInfo(appInfo.packageName, appInfo.dataDir,
- appInfo.processName);
+ codePaths.toArray(new String[codePaths.size()]));
}
}
diff --git a/core/java/android/security/FrameworkNetworkSecurityPolicy.java b/core/java/android/security/FrameworkNetworkSecurityPolicy.java
index e3dac5e..83f173ec 100644
--- a/core/java/android/security/FrameworkNetworkSecurityPolicy.java
+++ b/core/java/android/security/FrameworkNetworkSecurityPolicy.java
@@ -32,4 +32,9 @@
public boolean isCleartextTrafficPermitted() {
return mCleartextTrafficPermitted;
}
+
+ @Override
+ public boolean isCleartextTrafficPermitted(String hostname) {
+ return isCleartextTrafficPermitted();
+ }
}
diff --git a/core/java/android/security/NetworkSecurityPolicy.java b/core/java/android/security/NetworkSecurityPolicy.java
index 7991d37..46aa1af 100644
--- a/core/java/android/security/NetworkSecurityPolicy.java
+++ b/core/java/android/security/NetworkSecurityPolicy.java
@@ -43,7 +43,7 @@
/**
* Returns whether cleartext network traffic (e.g. HTTP, FTP, WebSockets, XMPP, IMAP, SMTP --
- * without TLS or STARTTLS) is permitted for this process.
+ * without TLS or STARTTLS) is permitted for all network communication from this process.
*
* <p>When cleartext network traffic is not permitted, the platform's components (e.g. HTTP and
* FTP stacks, {@link android.app.DownloadManager}, {@link android.media.MediaPlayer}) will
@@ -64,6 +64,18 @@
}
/**
+ * Returns whether cleartext network traffic (e.g. HTTP, FTP, XMPP, IMAP, SMTP -- without
+ * TLS or STARTTLS) is permitted for communicating with {@code hostname} for this process.
+ *
+ * @see #isCleartextTrafficPermitted()
+ * @hide
+ */
+ public boolean isCleartextTrafficPermitted(String hostname) {
+ return libcore.net.NetworkSecurityPolicy.getInstance()
+ .isCleartextTrafficPermitted(hostname);
+ }
+
+ /**
* Sets whether cleartext network traffic is permitted for this process.
*
* <p>This method is used by the platform early on in the application's initialization to set