summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/java/com/android/server/pm/PackageManagerService.java9
1 files changed, 8 insertions, 1 deletions
diff --git a/services/java/com/android/server/pm/PackageManagerService.java b/services/java/com/android/server/pm/PackageManagerService.java
index 88f5ec52f8dc..778e1d8f9209 100644
--- a/services/java/com/android/server/pm/PackageManagerService.java
+++ b/services/java/com/android/server/pm/PackageManagerService.java
@@ -7839,7 +7839,7 @@ public class PackageManagerService extends IPackageManager.Stub {
}
p = ps.pkg;
}
- if (p != null && isExternal(p)) {
+ if (p != null && (isExternal(p) || isForwardLocked(p))) {
String secureContainerId = cidFromCodePath(p.applicationInfo.sourceDir);
if (secureContainerId != null) {
asecPath = PackageHelper.getSdFilesystem(secureContainerId);
@@ -7862,6 +7862,13 @@ public class PackageManagerService extends IPackageManager.Stub {
if (res < 0) {
return false;
}
+
+ // Fix-up for forward-locked applications in ASEC containers.
+ if (!isExternal(p)) {
+ pStats.codeSize += pStats.externalCodeSize;
+ pStats.externalCodeSize = 0L;
+ }
+
return true;
}