diff options
| author | 2020-07-31 11:29:08 +0100 | |
|---|---|---|
| committer | 2020-07-31 11:29:08 +0100 | |
| commit | a1cf2319a225ccd635506cfc272c4f9e93028177 (patch) | |
| tree | c278dce56e951c6e109086d75e105e4fc1ca7313 | |
| parent | 8d7614fb52468e982ceaa6d5b41918da0a04725d (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.java | 8 |
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(); } |