Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d9fd045e authored by Dimitry Ivanov's avatar Dimitry Ivanov Committed by android-build-merger
Browse files

Merge "Allow apps to load libraries from under /data" into nyc-dev am: a3165791 am: fde75119

am: d66b0b16

* commit 'd66b0b16':
  Allow apps to load libraries from under /data

Change-Id: I577ab4f344c5f20e427eb644bfe0c7de224c54e3
parents cb5eb8e6 d66b0b16
Loading
Loading
Loading
Loading
+6 −8
Original line number Diff line number Diff line
@@ -465,20 +465,18 @@ public final class LoadedApk {
        final String zip = mIncludeCode ? TextUtils.join(File.pathSeparator, zipPaths) : "";
        final boolean isBundledApp = mApplicationInfo.isSystemApp()
                && !mApplicationInfo.isUpdatedSystemApp();
        String libraryPermittedPath = mDataDir;

        // Apps are allowed to open any native library under /data
        // TODO (dimitry):This is something which could be limited to apps own directory
        // later on but currently there are number of apps relying on this.
        // (see http://b/27588281 and http://b/26954419 for examples)
        String libraryPermittedPath = "/data";
        if (isBundledApp) {
            // This is necessary to grant bundled apps access to
            // libraries located in subdirectories of /system/lib
            libraryPermittedPath += File.pathSeparator +
                                    System.getProperty("java.library.path");
        }
        // DO NOT SHIP: this is a workaround for apps loading native libraries
        // provided by 3rd party apps using absolute path instead of corresponding
        // classloader; see http://b/26954419 for example.
        if (mApplicationInfo.targetSdkVersion <= 23) {
            libraryPermittedPath += File.pathSeparator + "/data/app";
        }
        // -----------------------------------------------------------------------------

        final String librarySearchPath = TextUtils.join(File.pathSeparator, libPaths);