From c903ac37a5ffc5e0e848339ee427f97633d20a17 Mon Sep 17 00:00:00 2001 From: Abel Tesfaye Date: Mon, 29 Mar 2021 22:43:47 +0000 Subject: [PATCH] Fail early in AttentionManagerService if camera lock is enabled Test: locally with flame Bug: 177462182 Change-Id: I6a35f2324523afc5b8c0c87dc93bb31a703935a4 --- .../android/server/attention/AttentionManagerService.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/services/core/java/com/android/server/attention/AttentionManagerService.java b/services/core/java/com/android/server/attention/AttentionManagerService.java index 68cfc23699ce2..f566080b3fca4 100644 --- a/services/core/java/com/android/server/attention/AttentionManagerService.java +++ b/services/core/java/com/android/server/attention/AttentionManagerService.java @@ -38,6 +38,7 @@ import android.content.ServiceConnection; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.pm.ServiceInfo; +import android.hardware.SensorPrivacyManager; import android.os.Binder; import android.os.Handler; import android.os.IBinder; @@ -115,6 +116,7 @@ public class AttentionManagerService extends SystemService { private static String sTestAttentionServicePackage; private final Context mContext; private final PowerManager mPowerManager; + private final SensorPrivacyManager mPrivacyManager; private final Object mLock; @GuardedBy("mLock") @VisibleForTesting @@ -146,6 +148,7 @@ public class AttentionManagerService extends SystemService { mPowerManager = powerManager; mLock = lock; mAttentionHandler = handler; + mPrivacyManager = SensorPrivacyManager.getInstance(context); } @Override @@ -249,6 +252,11 @@ public class AttentionManagerService extends SystemService { return false; } + if (mPrivacyManager.isSensorPrivacyEnabled(SensorPrivacyManager.Sensors.CAMERA)) { + Slog.w(LOG_TAG, "Camera is locked by a toggle."); + return false; + } + // don't allow attention check in screen off state if (!mPowerManager.isInteractive()) { return false;