Restricting UiModeManager#setNightMode
Apps have been trying to set their night modes by calling this
function but they end up toggling the system-wide UiMode.
From now on, an error message will be logged if the app doesn't
hold the right permission.
Change-Id: Ie62c870b84190a62321a05a007cd2bf3dc9851f8
Fixes: 113605757
Test: manual. open app that tries to trigger night mode
diff --git a/services/core/java/com/android/server/UiModeManagerService.java b/services/core/java/com/android/server/UiModeManagerService.java
index cb03255..01be691 100644
--- a/services/core/java/com/android/server/UiModeManagerService.java
+++ b/services/core/java/com/android/server/UiModeManagerService.java
@@ -303,11 +303,10 @@
@Override
public void setNightMode(int mode) {
- if (isNightModeLocked() && (getContext().checkCallingOrSelfPermission(
+ if (isNightModeLocked() && (getContext().checkCallingOrSelfPermission(
android.Manifest.permission.MODIFY_DAY_NIGHT_MODE)
!= PackageManager.PERMISSION_GRANTED)) {
- Slog.e(TAG,
- "Night mode locked, requires MODIFY_DAY_NIGHT_MODE permission");
+ Slog.e(TAG, "Night mode locked, requires MODIFY_DAY_NIGHT_MODE permission");
return;
}
switch (mode) {