Allow apps to load libraries from under /data
Allow all application classloaders to load native libraries from anywhere under /data Bug: http://b/26954419 Change-Id: I8a808bcdf4a00f7d40b513d4e2ca3d1e76c0909f
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user