Loading services/core/java/com/android/server/pm/StagingManager.java +12 −10 Original line number Original line Diff line number Diff line Loading @@ -498,19 +498,21 @@ public class StagingManager { Slog.w(TAG, "Cannot abort applied session!"); Slog.w(TAG, "Cannot abort applied session!"); return; return; } } if (isStagedSessionFinalized(session.sessionId)) { abortSession(session); Slog.w(TAG, "Cannot abort session because it is not active or APEXD is not reachable"); boolean hasApex = sessionContainsApex(session); if (hasApex) { ApexSessionInfo apexSession = mApexManager.getStagedSessionInfo(session.sessionId); if (apexSession == null || isApexSessionFinalized(apexSession)) { Slog.w(TAG, "Cannot abort session because it is not active or APEXD is not reachable"); return; return; } } mApexManager.abortActiveSession(); mApexManager.abortActiveSession(); } abortSession(session); } } private boolean isStagedSessionFinalized(int sessionId) { private boolean isApexSessionFinalized(ApexSessionInfo session) { ApexSessionInfo session = mApexManager.getStagedSessionInfo(sessionId); /* checking if the session is in a final state, i.e., not active anymore */ /* 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; || session.isRolledBack; Loading Loading
services/core/java/com/android/server/pm/StagingManager.java +12 −10 Original line number Original line Diff line number Diff line Loading @@ -498,19 +498,21 @@ public class StagingManager { Slog.w(TAG, "Cannot abort applied session!"); Slog.w(TAG, "Cannot abort applied session!"); return; return; } } if (isStagedSessionFinalized(session.sessionId)) { abortSession(session); Slog.w(TAG, "Cannot abort session because it is not active or APEXD is not reachable"); boolean hasApex = sessionContainsApex(session); if (hasApex) { ApexSessionInfo apexSession = mApexManager.getStagedSessionInfo(session.sessionId); if (apexSession == null || isApexSessionFinalized(apexSession)) { Slog.w(TAG, "Cannot abort session because it is not active or APEXD is not reachable"); return; return; } } mApexManager.abortActiveSession(); mApexManager.abortActiveSession(); } abortSession(session); } } private boolean isStagedSessionFinalized(int sessionId) { private boolean isApexSessionFinalized(ApexSessionInfo session) { ApexSessionInfo session = mApexManager.getStagedSessionInfo(sessionId); /* checking if the session is in a final state, i.e., not active anymore */ /* 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; || session.isRolledBack; Loading