[DO NOT MERGE] Prevent extra sessions owned by staged install from living across restarts am: 4d60cca9f7
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/12955637 Change-Id: Ief1c57c1541acc3dd8090b5ffde6ec02b2e06d58
This commit is contained in:
committed by
Automerger Merge Worker
commit
e0083d78b4
@@ -393,6 +393,8 @@ public class PackageInstallerService extends IPackageInstaller.Stub implements
|
|||||||
Slog.w(TAG, "Abandoning old session created at "
|
Slog.w(TAG, "Abandoning old session created at "
|
||||||
+ session.createdMillis);
|
+ session.createdMillis);
|
||||||
valid = false;
|
valid = false;
|
||||||
|
} else if (isExtraSessionForStagedInstall(session)) {
|
||||||
|
valid = false;
|
||||||
} else {
|
} else {
|
||||||
valid = true;
|
valid = true;
|
||||||
}
|
}
|
||||||
@@ -423,6 +425,13 @@ public class PackageInstallerService extends IPackageInstaller.Stub implements
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Extra sessions are created during staged install on temporary basis. They should not be
|
||||||
|
// allowed to live across system server restart.
|
||||||
|
private boolean isExtraSessionForStagedInstall(PackageInstallerSession session) {
|
||||||
|
return (session.params.installFlags & PackageManager.INSTALL_DRY_RUN) != 0
|
||||||
|
|| (session.params.installFlags & PackageManager.INSTALL_DISABLE_VERIFICATION) != 0;
|
||||||
|
}
|
||||||
|
|
||||||
@GuardedBy("mSessions")
|
@GuardedBy("mSessions")
|
||||||
private void addHistoricalSessionLocked(PackageInstallerSession session) {
|
private void addHistoricalSessionLocked(PackageInstallerSession session) {
|
||||||
CharArrayWriter writer = new CharArrayWriter();
|
CharArrayWriter writer = new CharArrayWriter();
|
||||||
|
|||||||
Reference in New Issue
Block a user