summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2019-07-26 00:46:28 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2019-07-26 00:46:28 +0000
commit2c79b41c80028a1ff57e60fabdedb8db5438f4db (patch)
tree706112de6b8e5838b908297a83d2a520260a446d
parent0fd0de39a66353f671a6f85a790a2b148875ab70 (diff)
parentf2c2e012029f25212a019ac87d33f030d2b8bacd (diff)
Merge "Add more logging in StagingManager"
-rw-r--r--services/core/java/com/android/server/pm/StagingManager.java13
1 files changed, 12 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/pm/StagingManager.java b/services/core/java/com/android/server/pm/StagingManager.java
index bf141a0f139b..bdeaf028bac8 100644
--- a/services/core/java/com/android/server/pm/StagingManager.java
+++ b/services/core/java/com/android/server/pm/StagingManager.java
@@ -180,6 +180,8 @@ public class StagingManager {
checkDowngrade(session, activePackage, pkg);
result.add(pkg);
}
+ Slog.d(TAG, "Session " + session.sessionId + " has following APEX packages: ["
+ + result.stream().map(p -> p.packageName).collect(Collectors.joining(",")) + "]");
return result;
}
@@ -206,7 +208,7 @@ public class StagingManager {
throws PackageManagerException {
final long activeVersion = activePackage.applicationInfo.longVersionCode;
final long newVersionCode = newPackage.applicationInfo.longVersionCode;
- boolean allowsDowngrade = PackageManagerServiceUtils.isDowngradePermitted(
+ final boolean allowsDowngrade = PackageManagerServiceUtils.isDowngradePermitted(
session.params.installFlags, activePackage.applicationInfo.flags);
if (activeVersion > newVersionCode && !allowsDowngrade) {
if (!mApexManager.abortActiveSession()) {
@@ -225,6 +227,7 @@ public class StagingManager {
}
private void preRebootVerification(@NonNull PackageInstallerSession session) {
+ Slog.d(TAG, "Starting preRebootVerification for session " + session.sessionId);
final boolean hasApex = sessionContainsApex(session);
// APEX checks. For single-package sessions, check if they contain an APEX. For
// multi-package sessions, find all the child sessions that contain an APEX.
@@ -243,6 +246,8 @@ public class StagingManager {
if (sessionContainsApk(session)) {
try {
+ Slog.d(TAG, "Running a pre-reboot verification for APKs in session "
+ + session.sessionId + " by performing a dry-run install");
installApksInSession(session, /* preReboot */ true);
// TODO(b/118865310): abort the session on apexd.
} catch (PackageManagerException e) {
@@ -277,6 +282,7 @@ public class StagingManager {
// On the other hand, if the order of the calls was inverted (first call apexd, then mark
// session as ready), then if a device gets rebooted right after the call to apexd, only
// apex part of the train will be applied, leaving device in an inconsistent state.
+ Slog.d(TAG, "Marking session " + session.sessionId + " as ready");
session.setStagedSessionReady();
if (!hasApex) {
// Session doesn't contain apex, nothing to do.
@@ -315,6 +321,7 @@ public class StagingManager {
}
private void resumeSession(@NonNull PackageInstallerSession session) {
+ Slog.d(TAG, "Resuming session " + session.sessionId);
final boolean hasApex = sessionContainsApex(session);
if (hasApex) {
// Check with apexservice whether the apex packages have been activated.
@@ -348,9 +355,12 @@ public class StagingManager {
+ "retry at next reboot.");
return;
}
+ Slog.i(TAG, "APEX packages in session " + session.sessionId
+ + " were successfully activated. Proceeding with APK packages, if any");
}
// The APEX part of the session is activated, proceed with the installation of APKs.
try {
+ Slog.d(TAG, "Installing APK packages in session " + session.sessionId);
installApksInSession(session, /* preReboot */ false);
} catch (PackageManagerException e) {
session.setStagedSessionFailed(e.error, e.getMessage());
@@ -370,6 +380,7 @@ public class StagingManager {
return;
}
+ Slog.d(TAG, "Marking session " + session.sessionId + " as applied");
session.setStagedSessionApplied();
if (hasApex) {
mApexManager.markStagedSessionSuccessful(session.sessionId);