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

Commit 2ddb682b authored by Narayan Kamath's avatar Narayan Kamath Committed by Automerger Merge Worker
Browse files

Merge "AppOpsService: Add a special case for OP_RECORD_AUDIO_HOTWORD." into...

Merge "AppOpsService: Add a special case for OP_RECORD_AUDIO_HOTWORD." into rvc-qpr-dev am: 76cf5841

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/12470810

Change-Id: I2ff7b7ba4c4dc40deb1c87aad98879b4a41710ad
parents 8f58cc1e 76cf5841
Loading
Loading
Loading
Loading
+14 −1
Original line number Original line Diff line number Diff line
@@ -39,6 +39,7 @@ import static android.app.AppOpsManager.OP_FLAG_TRUSTED_PROXIED;
import static android.app.AppOpsManager.OP_NONE;
import static android.app.AppOpsManager.OP_NONE;
import static android.app.AppOpsManager.OP_PLAY_AUDIO;
import static android.app.AppOpsManager.OP_PLAY_AUDIO;
import static android.app.AppOpsManager.OP_RECORD_AUDIO;
import static android.app.AppOpsManager.OP_RECORD_AUDIO;
import static android.app.AppOpsManager.OP_RECORD_AUDIO_HOTWORD;
import static android.app.AppOpsManager.OpEventProxyInfo;
import static android.app.AppOpsManager.OpEventProxyInfo;
import static android.app.AppOpsManager.RestrictionBypass;
import static android.app.AppOpsManager.RestrictionBypass;
import static android.app.AppOpsManager.SAMPLING_STRATEGY_BOOT_TIME_SAMPLING;
import static android.app.AppOpsManager.SAMPLING_STRATEGY_BOOT_TIME_SAMPLING;
@@ -3415,6 +3416,18 @@ public class AppOpsService extends IAppOpsService.Stub {
            return AppOpsManager.MODE_IGNORED;
            return AppOpsManager.MODE_IGNORED;
        }
        }


        // As a special case for OP_RECORD_AUDIO_HOTWORD, which we use only for attribution
        // purposes and not as a check, also make sure that the caller is allowed to access
        // the data gated by OP_RECORD_AUDIO.
        //
        // TODO: Revert this change before Android 12.
        if (code == OP_RECORD_AUDIO_HOTWORD) {
            int result = checkOperation(OP_RECORD_AUDIO, uid, packageName);
            if (result != AppOpsManager.MODE_ALLOWED) {
                return result;
            }
        }

        RestrictionBypass bypass;
        RestrictionBypass bypass;
        try {
        try {
            bypass = verifyAndGetBypass(uid, packageName, attributionTag);
            bypass = verifyAndGetBypass(uid, packageName, attributionTag);