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

Commit 7cefdd37 authored by Joanne Chung's avatar Joanne Chung Committed by Android (Google) Code Review
Browse files

Merge "RESTRICT AUTOMERGE Disable the Trusted Hotword requirement" into tm-dev

parents 17cdad7b c5e8f7f5
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -413,8 +413,8 @@ public class LegacyPermissionManagerService extends ILegacyPermissionManager.Stu
                return result;
            }
            mContext.getSystemService(AppOpsManager.class).noteOpNoThrow(
                    AppOpsManager.OP_RECEIVE_AMBIENT_TRIGGER_AUDIO, uid, packageName,
                    attributionTag, reason);
                    AppOpsManager.OP_RECORD_AUDIO_HOTWORD, uid, packageName, attributionTag,
                    reason);
            return result;
        }
    }
+2 −3
Original line number Diff line number Diff line
@@ -202,9 +202,8 @@ public final class AppOpsPolicy implements AppOpsManagerInternal.CheckOpsDelegat
    }

    private static boolean isHotwordDetectionServiceRequired(PackageManager pm) {
        // The HotwordDetectionService APIs aren't ready yet for Auto or TV.
        return !(pm.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE)
                || pm.hasSystemFeature(PackageManager.FEATURE_LEANBACK));
        // Usage of the HotwordDetectionService won't be enforced until a later release.
        return false;
    }

    @Override
+6 −7
Original line number Diff line number Diff line
@@ -46,11 +46,9 @@ import static com.android.internal.util.FrameworkStatsLog.HOTWORD_DETECTOR_KEYPH
import static com.android.internal.util.FrameworkStatsLog.HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED__RESULT__REJECTED;
import static com.android.internal.util.FrameworkStatsLog.HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED__RESULT__REJECTED_FROM_RESTART;
import static com.android.internal.util.FrameworkStatsLog.HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED__RESULT__REJECT_UNEXPECTED_CALLBACK;
import static com.android.server.voiceinteraction.SoundTriggerSessionPermissionsDecorator.enforcePermissionForPreflight;

import android.annotation.NonNull;
import android.annotation.Nullable;
import android.app.AppOpsManager;
import android.content.ComponentName;
import android.content.ContentCaptureOptions;
import android.content.Context;
@@ -1162,11 +1160,12 @@ final class HotwordDetectionConnection {
    // TODO: Share this code with SoundTriggerMiddlewarePermission.
    private void enforcePermissionsForDataDelivery() {
        Binder.withCleanCallingIdentity(() -> {
            enforcePermissionForPreflight(mContext, mVoiceInteractorIdentity, RECORD_AUDIO);
            int hotwordOp = AppOpsManager.strOpToOp(AppOpsManager.OPSTR_RECORD_AUDIO_HOTWORD);
            mContext.getSystemService(AppOpsManager.class).noteOpNoThrow(hotwordOp,
                    mVoiceInteractorIdentity.uid, mVoiceInteractorIdentity.packageName,
                    mVoiceInteractorIdentity.attributionTag, OP_MESSAGE);
            // Hack to make sure we show the mic privacy-indicator since the Trusted Hotword
            // requirement isn't being enforced for now. Normally, we would note the HOTWORD op here
            // instead.
            enforcePermissionForDataDelivery(mContext, mVoiceInteractorIdentity,
                    RECORD_AUDIO, OP_MESSAGE);

            enforcePermissionForDataDelivery(mContext, mVoiceInteractorIdentity,
                    CAPTURE_AUDIO_HOTWORD, OP_MESSAGE);
        });