Merge "Prevent ST clients from auto-attach to fake HAL" into udc-dev

This commit is contained in:
Atneya Nair
2023-03-13 16:24:46 +00:00
committed by Android (Google) Code Review
3 changed files with 21 additions and 9 deletions

View File

@@ -78,6 +78,11 @@ public class SoundTrigger {
private SoundTrigger() {
}
/**
* @hide
*/
public static final String FAKE_HAL_ARCH = "injection";
/**
* Status code used when the operation succeeded
*/

View File

@@ -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
}

View File

@@ -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;