From c7cb310f4118937ef3e3b765ad2b2ceede351b85 Mon Sep 17 00:00:00 2001 From: Achim Thesmann Date: Wed, 5 Jun 2024 22:57:25 +0000 Subject: Add target SDK versions to BAL metric The target SDK version is important to determine which set of rules applies to an app involved in an activity start. Flag: EXEMPT bugfix (adding missing fields to metric) Bug: 339245692 Test: atest BackgroundActivityLaunchTest Change-Id: I97d0c06250e33c32356bcedb565aad3651a3fe8d --- .../wm/BackgroundActivityStartController.java | 30 ++++++++++++---------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/services/core/java/com/android/server/wm/BackgroundActivityStartController.java b/services/core/java/com/android/server/wm/BackgroundActivityStartController.java index 19d7a3c8d86c..a4fb95964a5c 100644 --- a/services/core/java/com/android/server/wm/BackgroundActivityStartController.java +++ b/services/core/java/com/android/server/wm/BackgroundActivityStartController.java @@ -427,19 +427,6 @@ public class BackgroundActivityStartController { return name + "[debugOnly]"; } - /** @return valid targetSdk or -1 */ - private int getTargetSdk(String packageName) { - if (packageName == null) { - return -1; - } - try { - PackageManager pm = mService.mContext.getPackageManager(); - return pm.getTargetSdkVersion(packageName); - } catch (Exception e) { - return -1; - } - } - private boolean hasRealCaller() { return mRealCallingUid != NO_PROCESS_UID; } @@ -1730,7 +1717,9 @@ public class BackgroundActivityStartController { state.mResultForRealCaller == null ? BAL_BLOCK : state.mResultForRealCaller.getRawCode(), state.mBalAllowedByPiSender.allowsBackgroundActivityStarts(), - state.realCallerExplicitOptInOrOut() + state.realCallerExplicitOptInOrOut(), + getTargetSdk(state.mCallingPackage), + getTargetSdk(state.mRealCallingPackage) ); } @@ -1811,6 +1800,19 @@ public class BackgroundActivityStartController { + ", taskFragment=" + ar.getTaskFragment(); } + /** @return valid targetSdk or -1 */ + private int getTargetSdk(String packageName) { + if (packageName == null) { + return -1; + } + try { + PackageManager pm = mService.mContext.getPackageManager(); + return pm.getTargetSdkVersion(packageName); + } catch (Exception e) { + return -1; + } + } + private class FinishedActivityEntry { int mUid; int mTaskId; -- cgit v1.2.3-59-g8ed1b