diff options
| author | 2023-03-13 16:24:46 +0000 | |
|---|---|---|
| committer | 2023-03-13 16:24:46 +0000 | |
| commit | 9a80b65ed1cc0606ce7274f16fe909988ae4577a (patch) | |
| tree | 86c8abf3d5bc054a2a4da09adea4f547a471e913 | |
| parent | 62229367d3013b235e5be409b24b4c3d9c25abc3 (diff) | |
| parent | 42b0291dabf6ec7ba857f8d9a339e106bb4d2487 (diff) | |
Merge "Prevent ST clients from auto-attach to fake HAL" into udc-dev
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; |