Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ba40fe89 authored by Nate Myren's avatar Nate Myren
Browse files

TEMP: trust recognition service providers

temporarily trust select recognition service packages

Bug: 184963112
Test: manual
Change-Id: I374ae2809dbd51b7d6af0cbbe170529743bb0785
parent 327db785
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -3065,6 +3065,13 @@ public class AppOpsService extends IAppOpsService.Stub {
                shouldCollectAsyncNotedOp, message, shouldCollectMessage, skipProxyOperation);
    }

    // TODO b/184963112: remove once full blaming is implemented
    private boolean isRecognitionServiceTemp(int code, String packageName) {
        return code == OP_RECORD_AUDIO
                && (packageName.equals("com.google.android.googlequicksearchbox")
                || packageName.equals("com.google.android.tts"));
    }

    private SyncNotedAppOp noteProxyOperationImpl(int code, AttributionSource attributionSource,
            boolean shouldCollectAsyncNotedOp, String message, boolean shouldCollectMessage,
            boolean skipProxyOperation) {
@@ -3091,7 +3098,8 @@ public class AppOpsService extends IAppOpsService.Stub {
        final boolean isSelfBlame = Binder.getCallingUid() == proxiedUid;
        final boolean isProxyTrusted = mContext.checkPermission(
                Manifest.permission.UPDATE_APP_OPS_STATS, -1, proxyUid)
                == PackageManager.PERMISSION_GRANTED || isSelfBlame;
                == PackageManager.PERMISSION_GRANTED || isSelfBlame
                || isRecognitionServiceTemp(code, proxyPackageName);

        if (!skipProxyOperation) {
            final int proxyFlags = isProxyTrusted ? AppOpsManager.OP_FLAG_TRUSTED_PROXY