summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Mohammad Samiul Islam <samiul@google.com> 2020-07-31 11:29:08 +0100
committer Mohammad Samiul Islam <samiul@google.com> 2020-07-31 11:29:08 +0100
commita1cf2319a225ccd635506cfc272c4f9e93028177 (patch)
treec278dce56e951c6e109086d75e105e4fc1ca7313
parent8d7614fb52468e982ceaa6d5b41918da0a04725d (diff)
Put finalized child staged session at correct place in dumpsys
Child staged sessions do not get marked as applied or failed individually. We only mark the parent session as such. As such, child staged sessions were being printed as active sessions in dumpsys. Bug: 162518337 Test: used `adb install-multi-package` to create multi package session and manually checked dumpsys that child session gets printed under correct section. Change-Id: I88d41085a49bba6b29502a501af2fa5ab1a9dbae
-rw-r--r--services/core/java/com/android/server/pm/PackageInstallerService.java8
1 files changed, 7 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/pm/PackageInstallerService.java b/services/core/java/com/android/server/pm/PackageInstallerService.java
index 312dcddd577d..55e7ca8ca838 100644
--- a/services/core/java/com/android/server/pm/PackageInstallerService.java
+++ b/services/core/java/com/android/server/pm/PackageInstallerService.java
@@ -1284,10 +1284,16 @@ public class PackageInstallerService extends IPackageInstaller.Stub implements
int N = mSessions.size();
for (int i = 0; i < N; i++) {
final PackageInstallerSession session = mSessions.valueAt(i);
- if (session.isStagedAndInTerminalState()) {
+
+ // Do not print finalized staged session as active install sessions
+ final PackageInstallerSession rootSession = session.hasParentSessionId()
+ ? getSession(session.getParentSessionId())
+ : session;
+ if (rootSession.isStagedAndInTerminalState()) {
finalizedSessions.add(session);
continue;
}
+
session.dump(pw);
pw.println();
}