diff options
| author | 2020-08-27 11:40:21 +0100 | |
|---|---|---|
| committer | 2020-08-27 17:30:49 +0000 | |
| commit | d4324c4ced81fa91d507d08047b73c6aed46c060 (patch) | |
| tree | c920dc9ce9810de57d821cc06438dcc213d40dae | |
| parent | a78d25cdfb34e465b024177329526ed77ad44513 (diff) | |
Append error code with error message
Before ag/12117351, we used to create an extra apk session for
verification of apks in session, and listened for result via an intent
receiver. If verification for the extra session failed, the error
message would reach StagingManager via dispatchSessionFinished call
which appended the error code with error message.
On ag/12117351, we stopped creating the extra session and attached the
error message on staged session directly. This broke
CtsInstallHostTestCases#DowngradeTest which expects
to find "INSTALL_FAILED_VERSION_DOWNGRADE" error code string in staged
session error message.
Bug: 159336213
Test: atest DowngradeTest
Change-Id: I1c169e01f028dface1e5152d62522f839e34ac76
| -rw-r--r-- | services/core/java/com/android/server/pm/PackageInstallerSession.java | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/pm/PackageInstallerSession.java b/services/core/java/com/android/server/pm/PackageInstallerSession.java index 4e429cf362b5..51164ba412b3 100644 --- a/services/core/java/com/android/server/pm/PackageInstallerSession.java +++ b/services/core/java/com/android/server/pm/PackageInstallerSession.java @@ -1561,19 +1561,20 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { dispatchSessionFinished(error, detailMessage, null); } - private void onSessionVerificationFailure(int error, String detailMessage) { - Slog.e(TAG, "Failed to verify session " + sessionId + " [" + detailMessage + "]"); + private void onSessionVerificationFailure(int error, String msg) { + final String msgWithErrorCode = PackageManager.installStatusToString(error, msg); + Slog.e(TAG, "Failed to verify session " + sessionId + " [" + msgWithErrorCode + "]"); // Session is sealed and committed but could not be verified, we need to destroy it. destroyInternal(); if (isStaged()) { setStagedSessionFailed( - SessionInfo.STAGED_SESSION_VERIFICATION_FAILED, detailMessage); + SessionInfo.STAGED_SESSION_VERIFICATION_FAILED, msgWithErrorCode); // TODO(b/136257624): Remove this once all verification logic has been transferred out // of StagingManager. mStagingManager.notifyVerificationComplete(sessionId); } else { // Dispatch message to remove session from PackageInstallerService. - dispatchSessionFinished(error, detailMessage, null); + dispatchSessionFinished(error, msg, null); } } |