summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/pm/ApexManager.java6
-rw-r--r--services/core/java/com/android/server/pm/StagingManager.java10
2 files changed, 14 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/pm/ApexManager.java b/services/core/java/com/android/server/pm/ApexManager.java
index 46dfd13baacb..dafb9f1f2f77 100644
--- a/services/core/java/com/android/server/pm/ApexManager.java
+++ b/services/core/java/com/android/server/pm/ApexManager.java
@@ -286,6 +286,12 @@ class ApexManager {
ipw.println("State: ACTIVATED");
} else if (si.isActivationFailed) {
ipw.println("State: ACTIVATION FAILED");
+ } else if (si.isSuccess) {
+ ipw.println("State: SUCCESS");
+ } else if (si.isRollbackInProgress) {
+ ipw.println("State: ROLLBACK IN PROGRESS");
+ } else if (si.isRolledBack) {
+ ipw.println("State: ROLLED BACK");
}
ipw.decreaseIndent();
}
diff --git a/services/core/java/com/android/server/pm/StagingManager.java b/services/core/java/com/android/server/pm/StagingManager.java
index e956b74cf214..cbf5e9e3f35a 100644
--- a/services/core/java/com/android/server/pm/StagingManager.java
+++ b/services/core/java/com/android/server/pm/StagingManager.java
@@ -257,7 +257,7 @@ public class StagingManager {
+ "activated");
return;
}
- if (apexSessionInfo.isActivationFailed || apexSessionInfo.isUnknown) {
+ if (isApexSessionFailed(apexSessionInfo)) {
session.setStagedSessionFailed(SessionInfo.STAGED_SESSION_ACTIVATION_FAILED,
"APEX activation failed. Check logcat messages from apexd for "
+ "more information.");
@@ -468,7 +468,13 @@ public class StagingManager {
ApexSessionInfo session = mApexManager.getStagedSessionInfo(sessionId);
/* checking if the session is in a final state, i.e., not active anymore */
- return session.isUnknown || session.isActivationFailed || session.isSuccess;
+ return session.isUnknown || session.isActivationFailed || session.isSuccess
+ || session.isRolledBack;
+ }
+
+ private static boolean isApexSessionFailed(ApexSessionInfo apexSessionInfo) {
+ return apexSessionInfo.isActivationFailed || apexSessionInfo.isUnknown
+ || apexSessionInfo.isRolledBack;
}
@GuardedBy("mStagedSessions")