feat(core): fade backlight even in case a background process is still running
What changed, and why it matters
This small change moves where the screen backlight fade happens in the Trezor hardware wallet's lock/suspend logic. Previously, the screen dimmed only inside the suspend function. Now it also dims earlier when the device decides it should suspend but is still waiting for a background task (like signing a transaction) to finish. The goal is to avoid leaving the screen bright while the user is waiting for a long operation before the device can lock. This is a user-experience and minor privacy improvement, not a fix for a serious security flaw.
Treat as a routine firmware improvement. No urgent action required. Review whether the earlier fade could affect user confirmation prompts during long-running workflows, since fading the backlight before suspend might make the screen hard to read while a background operation is still active and the device is not yet suspended.
Security signals we found
Information disclosure reduction: screen content is hidden sooner when the device is unattended during long background operations
UI/UX timing change in autolock flow
No cryptographic, authorization, or memory-safety changes
Evidence from the diff
In core/src/apps/common/lock_manager.py, the import of BacklightLevels and backlight_fade is moved from inside suspend() to the module level, and backlight_fade(BacklightLevels.NONE) is added at the start of lock_device(). This ensures the display fades immediately when the autolock decision is made, even when autolock_interrupts_workflow is False and the device must wait for a background workflow (e.g., transaction signing) to complete before entering suspend_device(). The change reduces the window during which the screen remains lit after the lock interval expires.
Changed components
core/src/apps/common/lock_manager.pyTrezor Safe firmware autolock/suspend behaviorInspect captured patch +2 / −1
diff --git a/core/src/apps/common/lock_manager.py b/core/src/apps/common/lock_manager.py
index b12357f4..ed660b93 100644
--- a/core/src/apps/common/lock_manager.py
+++ b/core/src/apps/common/lock_manager.py
@@ -10,6 +10,7 @@ if utils.USE_POWER_MANAGER:
from trezor import io
from trezor.power_management.autodim import autodim_display
from trezor.power_management.suspend import suspend_device
+ from trezorui_api import BacklightLevels, backlight_fade
if TYPE_CHECKING:
from trezor import protobuf
@@ -37,6 +38,7 @@ else:
"""
global _SHOULD_SUSPEND
+ backlight_fade(BacklightLevels.NONE)
_SHOULD_SUSPEND = True
set_homescreen()
@@ -59,7 +61,6 @@ else:
The function will only return after Trezor has woken up.
"""
from trezor.ui import CURRENT_LAYOUT
- from trezorui_api import BacklightLevels, backlight_fade
global _SHOULD_SUSPEND
Why this scored 23/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.