New "frozen" state during app move/upgrade.
This replaces mOperationPending, which was in an odd place. It adds
a new PackageSetting.frozen flag that is a last-ditch effort to
prevent ActivityManager from starting an app while it's being moved
or upgraded.
Also provides clearer guarding around all upgrades by freezing,
killing, upgrading, then unfreezing.
Bug: 20275579
Change-Id: I28bb0359a6f4e05080fb336b18dd2a249509d989
diff --git a/services/core/java/com/android/server/pm/PackageSettingBase.java b/services/core/java/com/android/server/pm/PackageSettingBase.java
index 5429517..f62c00c 100644
--- a/services/core/java/com/android/server/pm/PackageSettingBase.java
+++ b/services/core/java/com/android/server/pm/PackageSettingBase.java
@@ -108,6 +108,13 @@
int installStatus = PKG_INSTALL_COMPLETE;
+ /**
+ * Non-persisted value indicating this package has been temporarily frozen,
+ * usually during a critical section of the package update pipeline. The
+ * platform will refuse to launch packages in a frozen state.
+ */
+ boolean frozen = false;
+
PackageSettingBase origPackage;
/** Package name of the app that installed this package */