summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/am/ActivityManagerService.java2
-rw-r--r--services/core/java/com/android/server/am/FgsStartTempAllowList.java28
2 files changed, 30 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index 9e5d7e4c3325..0905f167057e 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -9238,6 +9238,8 @@ public class ActivityManagerService extends IActivityManager.Stub
pw.print(ptw.callingUid);
}
}
+ pw.println(" mFgsStartTempAllowList:");
+ mFgsStartTempAllowList.dump(pw);
}
if (mDebugApp != null || mOrigDebugApp != null || mDebugTransient
|| mOrigWaitForDebugger) {
diff --git a/services/core/java/com/android/server/am/FgsStartTempAllowList.java b/services/core/java/com/android/server/am/FgsStartTempAllowList.java
index 1f897b5928ce..a844c2aa4f05 100644
--- a/services/core/java/com/android/server/am/FgsStartTempAllowList.java
+++ b/services/core/java/com/android/server/am/FgsStartTempAllowList.java
@@ -19,10 +19,15 @@ package com.android.server.am;
import static com.android.server.am.ActivityManagerDebugConfig.TAG_AM;
import android.annotation.Nullable;
+import android.os.PowerWhitelistManager;
import android.os.PowerWhitelistManager.ReasonCode;
import android.os.SystemClock;
+import android.os.UserHandle;
import android.util.Slog;
import android.util.SparseArray;
+import android.util.TimeUtils;
+
+import java.io.PrintWriter;
/**
* List of uids that are temporarily allowed to start FGS from background.
@@ -113,4 +118,27 @@ final class FgsStartTempAllowList {
void remove(int uid) {
mTempAllowListFgs.delete(uid);
}
+
+ void dump(PrintWriter pw) {
+ final long currentTimeNow = System.currentTimeMillis();
+ final long elapsedRealtimeNow = SystemClock.elapsedRealtime();
+ for (int i = 0; i < mTempAllowListFgs.size(); i++) {
+ final int uid = mTempAllowListFgs.keyAt(i);
+ final TempFgsAllowListEntry entry = mTempAllowListFgs.valueAt(i);
+ pw.println(
+ " " + UserHandle.formatUid(uid) + ": " +
+ " callingUid=" + UserHandle.formatUid(entry.mCallingUid) +
+ " reasonCode=" + PowerWhitelistManager.reasonCodeToString(entry.mReasonCode) +
+ " reason=" + entry.mReason);
+ pw.print(" duration=" + entry.mDuration +
+ "ms expiration=");
+
+ // Convert entry.mExpirationTime, which is an elapsed time since boot,
+ // to a time since epoch (i.e. System.currentTimeMillis()-based time.)
+ final long expirationInCurrentTime =
+ currentTimeNow - elapsedRealtimeNow + entry.mExpirationTime;
+ TimeUtils.dumpTimeWithDelta(pw, expirationInCurrentTime, currentTimeNow);
+ pw.println();
+ }
+ }
}