summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Atneya Nair <atneya@google.com> 2023-03-13 16:24:46 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-03-13 16:24:46 +0000
commit9a80b65ed1cc0606ce7274f16fe909988ae4577a (patch)
tree86c8abf3d5bc054a2a4da09adea4f547a471e913
parent62229367d3013b235e5be409b24b4c3d9c25abc3 (diff)
parent42b0291dabf6ec7ba857f8d9a339e106bb4d2487 (diff)
Merge "Prevent ST clients from auto-attach to fake HAL" into udc-dev
-rw-r--r--core/java/android/hardware/soundtrigger/SoundTrigger.java5
-rw-r--r--core/java/android/service/voice/AlwaysOnHotwordDetector.java12
-rw-r--r--media/java/android/media/soundtrigger/SoundTriggerManager.java13
3 files changed, 21 insertions, 9 deletions
diff --git a/core/java/android/hardware/soundtrigger/SoundTrigger.java b/core/java/android/hardware/soundtrigger/SoundTrigger.java
index e63f57b5224c..55939896ab98 100644
--- a/core/java/android/hardware/soundtrigger/SoundTrigger.java
+++ b/core/java/android/hardware/soundtrigger/SoundTrigger.java
@@ -79,6 +79,11 @@ public class SoundTrigger {
}
/**
+ * @hide
+ */
+ public static final String FAKE_HAL_ARCH = "injection";
+
+ /**
* Status code used when the operation succeeded
*/
public static final int STATUS_OK = 0;
diff --git a/core/java/android/service/voice/AlwaysOnHotwordDetector.java b/core/java/android/service/voice/AlwaysOnHotwordDetector.java
index b1dc68605991..2830fb7750e4 100644
--- a/core/java/android/service/voice/AlwaysOnHotwordDetector.java
+++ b/core/java/android/service/voice/AlwaysOnHotwordDetector.java
@@ -805,11 +805,13 @@ public class AlwaysOnHotwordDetector extends AbstractDetector {
Identity identity = new Identity();
identity.packageName = ActivityThread.currentOpPackageName();
if (moduleProperties == null) {
- List<SoundTrigger.ModuleProperties> modulePropList =
- mModelManagementService.listModuleProperties(identity);
- if (modulePropList.size() > 0) {
- moduleProperties = modulePropList.get(0);
- }
+ moduleProperties = mModelManagementService
+ .listModuleProperties(identity)
+ .stream()
+ .filter(prop -> !prop.getSupportedModelArch()
+ .equals(SoundTrigger.FAKE_HAL_ARCH))
+ .findFirst()
+ .orElse(null);
// (@atneya) intentionally let a null moduleProperties through until
// all CTS tests are fixed
}
diff --git a/media/java/android/media/soundtrigger/SoundTriggerManager.java b/media/java/android/media/soundtrigger/SoundTriggerManager.java
index 0e9ef4c0c8dd..ae8121a59abf 100644
--- a/media/java/android/media/soundtrigger/SoundTriggerManager.java
+++ b/media/java/android/media/soundtrigger/SoundTriggerManager.java
@@ -94,12 +94,17 @@ public final class SoundTriggerManager {
originatorIdentity.packageName = ActivityThread.currentOpPackageName();
try (SafeCloseable ignored = ClearCallingIdentityContext.create()) {
- List<ModuleProperties> modulePropertiesList = soundTriggerService
- .listModuleProperties(originatorIdentity);
- if (!modulePropertiesList.isEmpty()) {
+ ModuleProperties moduleProperties = soundTriggerService
+ .listModuleProperties(originatorIdentity)
+ .stream()
+ .filter(prop -> !prop.getSupportedModelArch()
+ .equals(SoundTrigger.FAKE_HAL_ARCH))
+ .findFirst()
+ .orElse(null);
+ if (moduleProperties != null) {
mSoundTriggerSession = soundTriggerService.attachAsOriginator(
originatorIdentity,
- modulePropertiesList.get(0),
+ moduleProperties,
mBinderToken);
} else {
mSoundTriggerSession = null;