Loading services/core/java/com/android/server/pm/PackageManagerShellCommand.java +3 −1 Original line number Diff line number Diff line Loading @@ -1060,7 +1060,9 @@ class PackageManagerShellCommand extends ShellCommand { + "; isStaged = " + session.isStaged() + "; isReady = " + session.isStagedSessionReady() + "; isApplied = " + session.isStagedSessionApplied() + "; isFailed = " + session.isStagedSessionFailed() + ";"); + "; isFailed = " + session.isStagedSessionFailed() + "; errorMsg = " + session.getStagedSessionErrorMessage() + ";"); } private Intent parseIntentAndUser() throws URISyntaxException { Loading services/core/java/com/android/server/pm/StagingManager.java +17 −6 Original line number Diff line number Diff line Loading @@ -605,13 +605,14 @@ public class StagingManager { // If checkpoint is supported, then we only resume sessions if we are in checkpointing // mode. If not, we fail all sessions. if (supportsCheckpoint() && !needsCheckpoint()) { String errorMsg = "Reverting back to safe state. Marking " + session.sessionId + " as failed"; if (!TextUtils.isEmpty(mFailureReason)) { errorMsg = errorMsg + ": " + mFailureReason; } Slog.d(TAG, errorMsg); session.setStagedSessionFailed(SessionInfo.STAGED_SESSION_UNKNOWN, errorMsg); String revertMsg = "Reverting back to safe state. Marking " + session.sessionId + " as failed."; final String reasonForRevert = getReasonForRevert(); if (!TextUtils.isEmpty(reasonForRevert)) { revertMsg += " Reason for revert: " + reasonForRevert; } Slog.d(TAG, revertMsg); session.setStagedSessionFailed(SessionInfo.STAGED_SESSION_UNKNOWN, revertMsg); return; } } catch (RemoteException e) { Loading Loading @@ -715,6 +716,16 @@ public class StagingManager { } } private String getReasonForRevert() { if (!TextUtils.isEmpty(mFailureReason)) { return mFailureReason; } if (!TextUtils.isEmpty(mNativeFailureReason)) { return "Session reverted due to crashing native process: " + mNativeFailureReason; } return ""; } private List<String> findAPKsInDir(File stageDir) { List<String> ret = new ArrayList<>(); if (stageDir != null && stageDir.exists()) { Loading Loading
services/core/java/com/android/server/pm/PackageManagerShellCommand.java +3 −1 Original line number Diff line number Diff line Loading @@ -1060,7 +1060,9 @@ class PackageManagerShellCommand extends ShellCommand { + "; isStaged = " + session.isStaged() + "; isReady = " + session.isStagedSessionReady() + "; isApplied = " + session.isStagedSessionApplied() + "; isFailed = " + session.isStagedSessionFailed() + ";"); + "; isFailed = " + session.isStagedSessionFailed() + "; errorMsg = " + session.getStagedSessionErrorMessage() + ";"); } private Intent parseIntentAndUser() throws URISyntaxException { Loading
services/core/java/com/android/server/pm/StagingManager.java +17 −6 Original line number Diff line number Diff line Loading @@ -605,13 +605,14 @@ public class StagingManager { // If checkpoint is supported, then we only resume sessions if we are in checkpointing // mode. If not, we fail all sessions. if (supportsCheckpoint() && !needsCheckpoint()) { String errorMsg = "Reverting back to safe state. Marking " + session.sessionId + " as failed"; if (!TextUtils.isEmpty(mFailureReason)) { errorMsg = errorMsg + ": " + mFailureReason; } Slog.d(TAG, errorMsg); session.setStagedSessionFailed(SessionInfo.STAGED_SESSION_UNKNOWN, errorMsg); String revertMsg = "Reverting back to safe state. Marking " + session.sessionId + " as failed."; final String reasonForRevert = getReasonForRevert(); if (!TextUtils.isEmpty(reasonForRevert)) { revertMsg += " Reason for revert: " + reasonForRevert; } Slog.d(TAG, revertMsg); session.setStagedSessionFailed(SessionInfo.STAGED_SESSION_UNKNOWN, revertMsg); return; } } catch (RemoteException e) { Loading Loading @@ -715,6 +716,16 @@ public class StagingManager { } } private String getReasonForRevert() { if (!TextUtils.isEmpty(mFailureReason)) { return mFailureReason; } if (!TextUtils.isEmpty(mNativeFailureReason)) { return "Session reverted due to crashing native process: " + mNativeFailureReason; } return ""; } private List<String> findAPKsInDir(File stageDir) { List<String> ret = new ArrayList<>(); if (stageDir != null && stageDir.exists()) { Loading