Brightness is temporarily set to max after using the fingerprint sensor
- /e/ version: 1.17-t (dev)
- Device model(s): OnePlus 7T (hotdogb)
- Developer mode enabled: yes
- Device rooted: no
- Trackers blocker enabled: no
Summary
Whenever the fingerprint sensor usage is prompted, after it is dismissed (whether or not you actually scan your fingerprint), the display brightness is set to maximum. The brightness setting does not appear to be changed, however; instead, it is only visually set to max. Changing the brightness setting in any way resolves this temporary increase.
The problem
- Get the fingerprint sensor prompt to appear (e.g. when unlocking the phone)
- Dismiss the fingerprint sensor (e.g. unlock the phone with your fingerprint)
What is the current behavior?
The display is at maximum brightness.
What is the expected correct behavior?
The display is at the configured brightness.
Technical informations
Relevant logs (adb logcat
)
I filtered the logcat output for brightness or biometrics related entries. The actions I took that generated these logs are as follows: 0. Start with display off and phone locked
- Press power button to turn on display
- Put finger on the fingerprint scanner
- Phone unlocks
- Drag down the notification shade and set the brightness
--------- beginning of system
12-05 14:35:23.106 1761 1842 V DisplayPowerController[0]: Brightness [0.040225886] reason changing to: 'manual', previous reason: 'screen_off'.
12-05 14:35:23.106 1761 1842 I DisplayPowerController[0]: BrightnessEvent: disp=0, physDisp=local:4630946883826275713, brt=0.040225886, initBrt=0.0, rcmdBrt=NaN, preBrt=NaN, lux=0.0, preLux=0.0, hbmMax=1.0, hbmMode=off, rbcStrength=84, powerFactor=1.0, thrmMax=1.0, wasShortTermModelActive=false, flags=, reason=manual, autoBrightness=false
12-05 14:35:23.106 1761 1842 I DisplayPowerController[0]: BrightnessEvent: disp=0, physDisp=local:4630946883826275713, brt=0.040225886, initBrt=0.040225886, rcmdBrt=NaN, preBrt=NaN, lux=0.0, preLux=0.0, hbmMax=1.0, hbmMode=off, rbcStrength=84, powerFactor=1.0, thrmMax=1.0, wasShortTermModelActive=false, flags=, reason=manual, autoBrightness=false
12-05 14:35:23.199 1761 1842 I DisplayPowerController[0]: BrightnessEvent: disp=0, physDisp=local:4630946883826275713, brt=0.040225886, initBrt=0.040225886, rcmdBrt=NaN, preBrt=NaN, lux=0.0, preLux=0.0, hbmMax=1.0, hbmMode=off, rbcStrength=84, powerFactor=1.0, thrmMax=1.0, wasShortTermModelActive=false, flags=, reason=manual, autoBrightness=false
12-05 14:35:23.288 1761 1842 I DisplayPowerController[0]: BrightnessEvent: disp=0, physDisp=local:4630946883826275713, brt=0.040225886, initBrt=0.040225886, rcmdBrt=NaN, preBrt=NaN, lux=0.0, preLux=0.0, hbmMax=1.0, hbmMode=off, rbcStrength=84, powerFactor=1.0, thrmMax=1.0, wasShortTermModelActive=false, flags=, reason=manual, autoBrightness=false
--------- beginning of kernel
12-05 14:35:24.571 539 539 E : (3)[539:crtc_commit:139][20231205_14:35:24.569174]@3 dsi_cmd hbm_brightness_off brightness 91
12-05 14:35:24.591 539 539 E : (3)[539:crtc_commit:139][20231205_14:35:24.581557]@3 dsi_cmd hbm_brightness_off brightness 91
12-05 14:35:24.600 1761 1761 V Biometrics/AuthenticationClient: onAuthenticated(true), ID:765233471, Owner: com.android.systemui, isBP: false, listener: com.android.server.biometrics.sensors.ClientMonitorCallbackConverter@acaaec4, requireConfirmation: false, user: 0, clientMonitor: {[572] com.android.server.biometrics.sensors.fingerprint.hidl.FingerprintAuthenticationClient, proto=3, owner=com.android.systemui, cookie=0, requestId=251, userId=0}
12-05 14:35:24.601 1761 1761 D BaseClientMonitor: marking operation as done: {[572] com.android.server.biometrics.sensors.fingerprint.hidl.FingerprintAuthenticationClient, proto=3, owner=com.android.systemui, cookie=0, requestId=251, userId=0}
12-05 14:35:24.605 1761 1761 D BiometricStateCallback: Client finished, state updated to 0, client {[572] com.android.server.biometrics.sensors.fingerprint.hidl.FingerprintAuthenticationClient, proto=3, owner=com.android.systemui, cookie=0, requestId=251, userId=0}
12-05 14:35:24.605 1761 1761 D BiometricSchedulerOperation: [Finished / destroy]: {[572] com.android.server.biometrics.sensors.fingerprint.hidl.FingerprintAuthenticationClient, proto=3, owner=com.android.systemui, cookie=0, requestId=251, userId=0}
12-05 14:35:24.611 1761 1761 D BiometricScheduler/Fingerprint21: [Finishing] {[572] com.android.server.biometrics.sensors.fingerprint.hidl.FingerprintAuthenticationClient, proto=3, owner=com.android.systemui, cookie=0, requestId=251, userId=0}, success: true
12-05 14:35:24.611 1761 1761 D BiometricCoexCoordinator: removeAuthenticationClient(Udfps), client: {[572] com.android.server.biometrics.sensors.fingerprint.hidl.FingerprintAuthenticationClient, proto=3, owner=com.android.systemui, cookie=0, requestId=251, userId=0}
12-05 14:35:24.669 724 16908 I keystore2: keystore2::super_key: In try_unlock_user_with_biometric: Successfully unlocked with biometric
12-05 14:35:27.082 1761 1842 V DisplayPowerController[0]: Brightness [0.040225886] reason changing to: 'temporary', previous reason: 'manual'.
12-05 14:35:27.082 1761 1842 I DisplayPowerController[0]: BrightnessEvent: disp=0, physDisp=local:4630946883826275713, brt=0.040225886, initBrt=0.040225886, rcmdBrt=NaN, preBrt=NaN, lux=0.0, preLux=0.0, hbmMax=1.0, hbmMode=off, rbcStrength=84, powerFactor=1.0, thrmMax=1.0, wasShortTermModelActive=false, flags=, reason=temporary, autoBrightness=false
12-05 14:35:27.087 1761 1842 V DisplayPowerController[0]: Brightness [0.04858939] reason changing to: 'manual', previous reason: 'temporary'.
12-05 14:35:27.087 1761 1842 I DisplayPowerController[0]: BrightnessEvent: disp=0, physDisp=local:4630946883826275713, brt=0.04858939(user_set), initBrt=0.040225886, rcmdBrt=NaN, preBrt=NaN, lux=0.0, preLux=0.0, hbmMax=1.0, hbmMode=off, rbcStrength=84, powerFactor=1.0, thrmMax=1.0, wasShortTermModelActive=false, flags=user_set , reason=manual, autoBrightness=false
12-05 14:35:27.088 1761 1761 I BrightnessSynchronizer: [2446] New Update 0.04858939(f) set brightness values: 13(i)
Relevant screenshots
Not applicable
Solutions
Workaround
Simply changing the brightness in any way fixes the brightness to be back to what is configured.
Another solution I found that is tailored for unlocking the phone is to use the enable the setting "Long press on fingerprint sensor to unlock phone". When the display is off, and you unlock the phone by placing your finger on the sensor, the phone will unlock, very briefly flash the display at max brightness, and then revert to the configured brightness value. This does not resolve using the fingerprint sensor for other usages, such as authenticating in an application.
Possible fixes
I don't have any familiarity with the OS code, so I am unable to suggest a solution.