summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Evan Severson <evanseverson@google.com> 2020-05-02 00:07:06 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2020-05-02 00:07:06 +0000
commitb0c9d6181a16453a48231fb7094008122997c8ed (patch)
tree1baf9d9e3ac01a2ecca25c6bf1cb60d77eedb0cd
parent38d2bcd4323bfa0629eeac25c2db1fbd128bce4a (diff)
parentb0f777028f7d6c5aef62fcd09810f3de990ba60e (diff)
Merge "Check permission for soundtrigger detection service" into rvc-dev am: 7714a18236 am: 3aaf8a9e0e am: a0d7766796 am: b0f777028f
Change-Id: I42dfefb838291c7db491048612dbf4f72de702ea
-rw-r--r--services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java12
1 files changed, 12 insertions, 0 deletions
diff --git a/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java b/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java
index 170bee841e74..42e2bbf08834 100644
--- a/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java
+++ b/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java
@@ -443,6 +443,8 @@ public class SoundTriggerService extends SystemService {
enforceCallingPermission(Manifest.permission.MANAGE_SOUND_TRIGGER);
+ enforceDetectionPermissions(detectionService);
+
if (!isInitialized()) return STATUS_ERROR;
if (DEBUG) {
Slog.i(TAG, "startRecognition(): id = " + soundModelId);
@@ -1532,6 +1534,16 @@ public class SoundTriggerService extends SystemService {
}
}
+ private void enforceDetectionPermissions(ComponentName detectionService) {
+ PackageManager packageManager = mContext.getPackageManager();
+ String packageName = detectionService.getPackageName();
+ if (packageManager.checkPermission(Manifest.permission.CAPTURE_AUDIO_HOTWORD, packageName)
+ != PackageManager.PERMISSION_GRANTED) {
+ throw new SecurityException(detectionService.getPackageName() + " does not have"
+ + " permission " + Manifest.permission.CAPTURE_AUDIO_HOTWORD);
+ }
+ }
+
//=================================================================
// For logging