From f88000f4bdd7d1e958dcae63b0df9fb4134d95a5 Mon Sep 17 00:00:00 2001 From: Hui Yu Date: Tue, 1 Jun 2021 17:41:35 -0700 Subject: [PATCH] Generate new field short_name_hash for atom ForegroundServiceStateChanged. A new field short_name_hash is added to atom ForegroundServiceStateChanged. This field is SHA-1 hashed ServiceRecord#shortInstanceName combined with ANDROID_ID. Bug: 187857932 Test: atest cts/tests/app/src/android/app/cts/ActivityManagerFgsBgStartTest.java Change-Id: I959d50205f72ea3ed7b2a0b0ed2df77bd393ed1c --- .../core/java/com/android/server/am/ActiveServices.java | 3 ++- .../java/com/android/server/am/ActivityManagerUtils.java | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) 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(); + } }