From 050f400b3f4bb054250506f398078fdf45bdd7bb Mon Sep 17 00:00:00 2001 From: Nate Myren Date: Thu, 10 Jun 2021 15:37:43 -0700 Subject: [PATCH] Properly check for SDK before nullifying attribution tag Also adds @SuppressLint to RecognitionService#createContext Fixes: 190759697 Test: manual Change-Id: I8ad14f93f86285127d5d2674b0f9a4963b03c933 --- core/java/android/speech/RecognitionService.java | 1 + .../java/com/android/server/appop/AppOpsService.java | 12 ++++++------ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/core/java/android/speech/RecognitionService.java b/core/java/android/speech/RecognitionService.java index 055e71f0077b6..8b4c0d9e21f5d 100644 --- a/core/java/android/speech/RecognitionService.java +++ b/core/java/android/speech/RecognitionService.java @@ -229,6 +229,7 @@ public abstract class RecognitionService extends Service { protected abstract void onStopListening(Callback listener); @Override + @SuppressLint("MissingNullability") public Context createContext(@NonNull ContextParams contextParams) { if (contextParams.getNextAttributionSource() != null) { if (mHandler.getLooper().equals(Looper.myLooper())) { diff --git a/services/core/java/com/android/server/appop/AppOpsService.java b/services/core/java/com/android/server/appop/AppOpsService.java index ce8cbafeba33b..a52d34e7ce016 100644 --- a/services/core/java/com/android/server/appop/AppOpsService.java +++ b/services/core/java/com/android/server/appop/AppOpsService.java @@ -4551,15 +4551,15 @@ public class AppOpsService extends IAppOpsService.Stub { } try { - if (mPlatformCompat.isChangeEnabledByPackageName( + if (!mPlatformCompat.isChangeEnabledByPackageName( SECURITY_EXCEPTION_ON_INVALID_ATTRIBUTION_TAG_CHANGE, packageName, - userId) && mPlatformCompat.isChangeEnabledByUid( + userId) || !mPlatformCompat.isChangeEnabledByUid( SECURITY_EXCEPTION_ON_INVALID_ATTRIBUTION_TAG_CHANGE, - callingUid) && !isAttributionTagValid) { - Slog.e(TAG, msg); - } else { - Slog.e(TAG, msg); + callingUid)) { + // Do not override tags if overriding is not enabled for this package + isAttributionTagValid = true; } + Slog.e(TAG, msg); } catch (RemoteException neverHappens) { } }