diff options
| author | 2025-03-21 00:55:06 -0700 | |
|---|---|---|
| committer | 2025-03-21 08:51:17 -0700 | |
| commit | e127fbce2c90d3f1abbf2cd4dc7afe9dc4fa84e4 (patch) | |
| tree | 58767feabb828c0aefaf09a82634ad30aa0338ef | |
| parent | 4df491445a5e9da47a58e20edd46c4ec8b280319 (diff) | |
[audio] Unify focus hardening log/override
For focus hardening
- Standardize log syntax
- Enable shell override for testing
- Additionally log OP_CONTROL_AUDIO level restrictions
Bug: 376481063
Flag: EXEMPT logging
Test: atest AudioControlForegroundTests
Change-Id: Ifd24b45c93077cd262ac683b7d62fd5e239b19f1
| -rw-r--r-- | services/core/java/com/android/server/audio/HardeningEnforcer.java | 37 |
1 files changed, 26 insertions, 11 deletions
diff --git a/services/core/java/com/android/server/audio/HardeningEnforcer.java b/services/core/java/com/android/server/audio/HardeningEnforcer.java index 9bb5160f108a..46693614e137 100644 --- a/services/core/java/com/android/server/audio/HardeningEnforcer.java +++ b/services/core/java/com/android/server/audio/HardeningEnforcer.java @@ -199,7 +199,9 @@ public class HardeningEnforcer { if (packageName.isEmpty()) { packageName = getPackNameForUid(callingUid); } - + // indicates would be blocked if audio capabilities were required + boolean blockedIfFull = !noteOp(AppOpsManager.OP_CONTROL_AUDIO, + callingUid, packageName, attributionTag); boolean blocked = true; // indicates the focus request was not blocked because of the SDK version boolean unblockedBySdk = false; @@ -213,22 +215,35 @@ public class HardeningEnforcer { Slog.i(TAG, "blockFocusMethod pack:" + packageName + " NOT blocking due to sdk=" + targetSdk); } - blocked = false; unblockedBySdk = true; } - metricsLogFocusReq(blocked, focusReqType, callingUid, unblockedBySdk); + boolean enforced = mShouldEnableAllHardening.get() || !unblockedBySdk; + boolean enforcedFull = mShouldEnableAllHardening.get(); - if (!blocked) { - return false; - } + metricsLogFocusReq(blocked && enforced, focusReqType, callingUid, unblockedBySdk); - String errorMssg = "Focus request DENIED for uid:" + callingUid - + " clientId:" + clientId + " req:" + focusReqType - + " procState:" + mActivityManager.getUidProcessState(callingUid); - mEventLogger.enqueueAndSlog(errorMssg, EventLogger.Event.ALOGI, TAG); + if (blocked) { + String msg = "AudioHardening focus request for req " + + focusReqType + + (!enforced ? " would be " : " ") + + "ignored for " + + packageName + " (" + callingUid + "), " + + clientId + + ", level: partial"; + mEventLogger.enqueueAndSlog(msg, EventLogger.Event.ALOGW, TAG); + } else if (blockedIfFull) { + String msg = "AudioHardening focus request for req " + + focusReqType + + (!enforcedFull ? " would be " : " ") + + "ignored for " + + packageName + " (" + callingUid + "), " + + clientId + + ", level: full"; + mEventLogger.enqueueAndSlog(msg, EventLogger.Event.ALOGW, TAG); + } - return true; + return blocked && enforced || (blockedIfFull && enforcedFull); } /** |