From 48f98c54c499b32282b0885d0c005ea6c0f892c7 Mon Sep 17 00:00:00 2001 From: Evan Severson Date: Thu, 18 Feb 2021 11:50:40 -0800 Subject: [PATCH] Add permission check on disabling sensor privacy Test: Test app to abuse this exploit Verify unmuting via notification still works Fixes: 180419855 Change-Id: Ic5a02ea2b26b834e152caeba335bb13dda910f96 --- .../java/com/android/server/SensorPrivacyService.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/SensorPrivacyService.java b/services/core/java/com/android/server/SensorPrivacyService.java index 0aee78050929e..1ec456b32ddc4 100644 --- a/services/core/java/com/android/server/SensorPrivacyService.java +++ b/services/core/java/com/android/server/SensorPrivacyService.java @@ -16,6 +16,7 @@ package com.android.server; +import static android.Manifest.permission.MANAGE_SENSOR_PRIVACY; import static android.app.ActivityManager.RunningServiceInfo; import static android.app.ActivityManager.RunningTaskInfo; import static android.app.AppOpsManager.MODE_ALLOWED; @@ -199,7 +200,8 @@ public final class SensorPrivacyService extends SystemService { Intent.EXTRA_USER)).getIdentifier(), intent.getIntExtra(EXTRA_SENSOR, UNKNOWN), false); } - }, new IntentFilter(ACTION_DISABLE_INDIVIDUAL_SENSOR_PRIVACY)); + }, new IntentFilter(ACTION_DISABLE_INDIVIDUAL_SENSOR_PRIVACY), + MANAGE_SENSOR_PRIVACY, null); } @Override @@ -461,12 +463,12 @@ public final class SensorPrivacyService extends SystemService { */ private void enforceSensorPrivacyPermission() { if (mContext.checkCallingOrSelfPermission( - android.Manifest.permission.MANAGE_SENSOR_PRIVACY) == PERMISSION_GRANTED) { + MANAGE_SENSOR_PRIVACY) == PERMISSION_GRANTED) { return; } throw new SecurityException( "Changing sensor privacy requires the following permission: " - + android.Manifest.permission.MANAGE_SENSOR_PRIVACY); + + MANAGE_SENSOR_PRIVACY); } /**