Added adb commands to set and reset brightness.
adb shell cmd display set-brightness BRIGHTNESS command sets the
screen brightness programatically.
adb shell cmd display reset-brightness resets the brightness
configuration to the default configuration.
Test: run "adb shell cmd display set-brightness <number>" and watch
the magic happen.
Test: run "adb shell cmd jobscheduler run -f
com.google.android.apps.turbo 104" to push a new configuration,
then run "adb shell cmd display reset-brightness-configuration"
to reset it. If it's not noticable enough, you can manually
edit /data/system/display-manager-state.xml: for example, set
nits="0.0" for all the <brightness-point />s in the
<brightness-curve /> to make it as dark as posible.
Fixes: 77574628
Change-Id: I37e19c1e662370e60c9f616a3710780f16418620
diff --git a/services/core/java/com/android/server/display/DisplayManagerService.java b/services/core/java/com/android/server/display/DisplayManagerService.java
index c7ae1f4..93e0bd5 100644
--- a/services/core/java/com/android/server/display/DisplayManagerService.java
+++ b/services/core/java/com/android/server/display/DisplayManagerService.java
@@ -61,12 +61,15 @@
import android.os.PowerManager;
import android.os.Process;
import android.os.RemoteException;
+import android.os.ResultReceiver;
import android.os.ServiceManager;
+import android.os.ShellCallback;
import android.os.SystemClock;
import android.os.SystemProperties;
import android.os.Trace;
import android.os.UserHandle;
import android.os.UserManager;
+import android.provider.Settings;
import android.text.TextUtils;
import android.util.IntArray;
import android.util.Slog;
@@ -1030,7 +1033,7 @@
}
private void setBrightnessConfigurationForUserInternal(
- @NonNull BrightnessConfiguration c, @UserIdInt int userId,
+ @Nullable BrightnessConfiguration c, @UserIdInt int userId,
@Nullable String packageName) {
final int userSerial = getUserManager().getUserSerialNumber(userId);
synchronized (mSyncRoot) {
@@ -1983,6 +1986,29 @@
}
}
+ @Override // Binder call
+ public void onShellCommand(FileDescriptor in, FileDescriptor out,
+ FileDescriptor err, String[] args, ShellCallback callback,
+ ResultReceiver resultReceiver) {
+ final long token = Binder.clearCallingIdentity();
+ try {
+ DisplayManagerShellCommand command = new DisplayManagerShellCommand(this);
+ command.exec(this, in, out, err, args, callback, resultReceiver);
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
+ }
+
+ void setBrightness(int brightness) {
+ Settings.System.putIntForUser(mContext.getContentResolver(),
+ Settings.System.SCREEN_BRIGHTNESS, brightness, UserHandle.USER_CURRENT);
+ }
+
+ void resetBrightnessConfiguration() {
+ setBrightnessConfigurationForUserInternal(null, mContext.getUserId(),
+ mContext.getPackageName());
+ }
+
private boolean validatePackageName(int uid, String packageName) {
if (packageName != null) {
String[] packageNames = mContext.getPackageManager().getPackagesForUid(uid);