From c942d1e96317bfab10d3862325d276afcf2dd74f Mon Sep 17 00:00:00 2001 From: Felix Oghina Date: Fri, 12 May 2023 15:54:28 +0000 Subject: [hotword] make service exemption configurable via sysprop Bug: 279405774 Test: Set prop to true, run assistant with DSP off, see permanent mic indicator Change-Id: Ifcbd5ad74e2f9702db1ba605d253ca1f0b8b3688 --- services/core/java/com/android/server/policy/AppOpsPolicy.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/policy/AppOpsPolicy.java b/services/core/java/com/android/server/policy/AppOpsPolicy.java index 7a5664f8135e..2cbe8db19fd2 100644 --- a/services/core/java/com/android/server/policy/AppOpsPolicy.java +++ b/services/core/java/com/android/server/policy/AppOpsPolicy.java @@ -37,6 +37,7 @@ import android.os.Bundle; import android.os.IBinder; import android.os.PackageTagsList; import android.os.Process; +import android.os.SystemProperties; import android.os.UserHandle; import android.service.voice.VoiceInteractionManagerInternal; import android.service.voice.VoiceInteractionManagerInternal.HotwordDetectionServiceIdentity; @@ -68,6 +69,8 @@ public final class AppOpsPolicy implements AppOpsManagerInternal.CheckOpsDelegat private static final String ACTIVITY_RECOGNITION_TAGS = "android:activity_recognition_allow_listed_tags"; private static final String ACTIVITY_RECOGNITION_TAGS_SEPARATOR = ";"; + private static final boolean SYSPROP_HOTWORD_DETECTION_SERVICE_REQUIRED = + SystemProperties.getBoolean("ro.hotword.detection_service_required", false); @NonNull private final Object mLock = new Object(); @@ -201,8 +204,11 @@ 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)); + if (pm.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE) + || pm.hasSystemFeature(PackageManager.FEATURE_LEANBACK)) { + return false; + } + return SYSPROP_HOTWORD_DETECTION_SERVICE_REQUIRED; } @Override -- cgit v1.2.3-59-g8ed1b