diff options
| author | 2019-05-23 14:33:46 -0700 | |
|---|---|---|
| committer | 2019-05-28 13:40:07 -0700 | |
| commit | 64fcdf63a80da68f16ced532321f032ed6d7e26b (patch) | |
| tree | 8d37d8da9b55531ce73023525725f5fc8890fc55 | |
| parent | 612f71b1df26f5fc5b7891625f615b4b52758323 (diff) | |
Appropriately sets all installs on *any* failure of one
During multi-package install, this change ensures that all of the
install results have their reason set to a value besides
INSTALL_SUCCEEDED to avoid post install steps treating them as if they
were successfully installed.
Test: atest com.android.tests.atomicinstall.AtomicInstallTest#testEarlyFailureFailsAll
Fixes: 133380744
Change-Id: I60b5c5376a27979d3fa4dfb67914dbd3573e280b
| -rw-r--r-- | services/core/java/com/android/server/pm/PackageManagerService.java | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 84470f9c2838..2dc6893cda3a 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -17071,6 +17071,13 @@ public class PackageManagerService extends IPackageManager.Stub cleanUpAppIdCreation(result); } } + // TODO(patb): create a more descriptive reason than unknown in future release + // mark all non-failure installs as UNKNOWN so we do not treat them as success + for (InstallRequest request : requests) { + if (request.installResult.returnCode == PackageManager.INSTALL_SUCCEEDED) { + request.installResult.returnCode = PackageManager.INSTALL_UNKNOWN; + } + } } for (PrepareResult result : prepareResults.values()) { if (result.freezer != null) { |