diff --git a/services/core/java/com/android/server/am/ActiveServices.java b/services/core/java/com/android/server/am/ActiveServices.java index 8041ec4a9727a..9743cae9d9fb9 100644 --- a/services/core/java/com/android/server/am/ActiveServices.java +++ b/services/core/java/com/android/server/am/ActiveServices.java @@ -6191,7 +6191,8 @@ public final class ActiveServices { r.mFgsNotificationDeferred, r.mFgsNotificationShown, durationMs, - r.mStartForegroundCount); + r.mStartForegroundCount, + ActivityManagerUtils.hashComponentNameForAtom(r.shortInstanceName)); } boolean canAllowWhileInUsePermissionInFgsLocked(int callingPid, int callingUid, diff --git a/services/core/java/com/android/server/am/ActivityManagerUtils.java b/services/core/java/com/android/server/am/ActivityManagerUtils.java index dd2414866542b..5506ad1b245b0 100644 --- a/services/core/java/com/android/server/am/ActivityManagerUtils.java +++ b/services/core/java/com/android/server/am/ActivityManagerUtils.java @@ -121,4 +121,12 @@ public class ActivityManagerUtils { return (((double) hash) / Integer.MAX_VALUE) <= rate; } + + /** + * @param shortInstanceName {@link ServiceRecord#shortInstanceName}. + * @return hash of the ServiceRecord's shortInstanceName, combined with ANDROID_ID. + */ + public static int hashComponentNameForAtom(String shortInstanceName) { + return getUnsignedHashUnCached(shortInstanceName) ^ getAndroidIdHash(); + } }