diff options
| -rw-r--r-- | services/java/com/android/server/pm/Installer.java | 6 | ||||
| -rw-r--r-- | services/java/com/android/server/pm/PackageManagerService.java | 10 |
2 files changed, 11 insertions, 5 deletions
diff --git a/services/java/com/android/server/pm/Installer.java b/services/java/com/android/server/pm/Installer.java index d9c85bf6974b..734d07136aff 100644 --- a/services/java/com/android/server/pm/Installer.java +++ b/services/java/com/android/server/pm/Installer.java @@ -307,8 +307,8 @@ public final class Installer { return execute(builder.toString()); } - public int getSizeInfo(String pkgName, int persona, String apkPath, String fwdLockApkPath, - String asecPath, PackageStats pStats) { + public int getSizeInfo(String pkgName, int persona, String apkPath, String libDirPath, + String fwdLockApkPath, String asecPath, PackageStats pStats) { StringBuilder builder = new StringBuilder("getsize"); builder.append(' '); builder.append(pkgName); @@ -317,6 +317,8 @@ public final class Installer { builder.append(' '); builder.append(apkPath); builder.append(' '); + builder.append(libDirPath != null ? libDirPath : "!"); + builder.append(' '); builder.append(fwdLockApkPath != null ? fwdLockApkPath : "!"); builder.append(' '); builder.append(asecPath != null ? asecPath : "!"); diff --git a/services/java/com/android/server/pm/PackageManagerService.java b/services/java/com/android/server/pm/PackageManagerService.java index fcea9e7238ac..4c6bcdf38096 100644 --- a/services/java/com/android/server/pm/PackageManagerService.java +++ b/services/java/com/android/server/pm/PackageManagerService.java @@ -9164,18 +9164,22 @@ public class PackageManagerService extends IPackageManager.Stub { } PackageParser.Package p; boolean dataOnly = false; + String libDirPath = null; String asecPath = null; synchronized (mPackages) { p = mPackages.get(packageName); + PackageSetting ps = mSettings.mPackages.get(packageName); if(p == null) { dataOnly = true; - PackageSetting ps = mSettings.mPackages.get(packageName); if((ps == null) || (ps.pkg == null)) { Slog.w(TAG, "Package named '" + packageName +"' doesn't exist."); return false; } p = ps.pkg; } + if (ps != null) { + libDirPath = ps.nativeLibraryPathString; + } if (p != null && (isExternal(p) || isForwardLocked(p))) { String secureContainerId = cidFromCodePath(p.applicationInfo.sourceDir); if (secureContainerId != null) { @@ -9194,8 +9198,8 @@ public class PackageManagerService extends IPackageManager.Stub { publicSrcDir = applicationInfo.publicSourceDir; } } - int res = mInstaller.getSizeInfo(packageName, userHandle, p.mPath, publicSrcDir, - asecPath, pStats); + int res = mInstaller.getSizeInfo(packageName, userHandle, p.mPath, libDirPath, + publicSrcDir, asecPath, pStats); if (res < 0) { return false; } |