diff options
| -rw-r--r-- | core/java/android/app/LoadedApk.java | 20 | ||||
| -rw-r--r-- | core/java/android/webkit/WebViewZygote.java | 2 |
2 files changed, 16 insertions, 6 deletions
diff --git a/core/java/android/app/LoadedApk.java b/core/java/android/app/LoadedApk.java index afe9651d82f5..e00a7f0e4ab9 100644 --- a/core/java/android/app/LoadedApk.java +++ b/core/java/android/app/LoadedApk.java @@ -266,7 +266,7 @@ public final class LoadedApk { setApplicationInfo(aInfo); final List<String> newPaths = new ArrayList<>(); - makePaths(mActivityThread, aInfo, newPaths, null /*libPaths*/); + makePaths(mActivityThread, aInfo, newPaths); final List<String> addedPaths = new ArrayList<>(newPaths.size()); if (oldPaths != null) { @@ -314,8 +314,17 @@ public final class LoadedApk { mCredentialProtectedDataDirFile = FileUtils.newFileOrNull(aInfo.credentialProtectedDataDir); } - public static void makePaths(ActivityThread activityThread, ApplicationInfo aInfo, - List<String> outZipPaths, List<String> outLibPaths) { + public static void makePaths(ActivityThread activityThread, + ApplicationInfo aInfo, + List<String> outZipPaths) { + makePaths(activityThread, false, aInfo, outZipPaths, null); + } + + public static void makePaths(ActivityThread activityThread, + boolean isBundledApp, + ApplicationInfo aInfo, + List<String> outZipPaths, + List<String> outLibPaths) { final String appDir = aInfo.sourceDir; final String[] splitAppDirs = aInfo.splitSourceDirs; final String libDir = aInfo.nativeLibraryDir; @@ -398,7 +407,7 @@ public final class LoadedApk { } } - if (aInfo.isSystemApp() && !aInfo.isUpdatedSystemApp()) { + if (isBundledApp) { // Add path to system libraries to libPaths; // Access to system libs should be limited // to bundled applications; this is why updated @@ -471,11 +480,12 @@ public final class LoadedApk { // space and initialize to a small value (instead of incurring growth code). final List<String> zipPaths = new ArrayList<>(10); final List<String> libPaths = new ArrayList<>(10); - makePaths(mActivityThread, mApplicationInfo, zipPaths, libPaths); final boolean isBundledApp = mApplicationInfo.isSystemApp() && !mApplicationInfo.isUpdatedSystemApp(); + makePaths(mActivityThread, isBundledApp, mApplicationInfo, zipPaths, libPaths); + String libraryPermittedPath = mDataDir; if (isBundledApp) { // This is necessary to grant bundled apps access to diff --git a/core/java/android/webkit/WebViewZygote.java b/core/java/android/webkit/WebViewZygote.java index 2d6f44352ba7..f9d733201e59 100644 --- a/core/java/android/webkit/WebViewZygote.java +++ b/core/java/android/webkit/WebViewZygote.java @@ -176,7 +176,7 @@ public class WebViewZygote { // paths and pass them to the zygote as strings. final List<String> zipPaths = new ArrayList<>(10); final List<String> libPaths = new ArrayList<>(10); - LoadedApk.makePaths(null, sPackage.applicationInfo, zipPaths, libPaths); + LoadedApk.makePaths(null, false, sPackage.applicationInfo, zipPaths, libPaths); final String librarySearchPath = TextUtils.join(File.pathSeparator, libPaths); final String zip = (zipPaths.size() == 1) ? zipPaths.get(0) : TextUtils.join(File.pathSeparator, zipPaths); |