Skip to content

Screen_off policy overrides low_power policy ( #15

@vitovt

Description

@vitovt

High-performance cores (cpu6/cpu7) re-enabled after screen unlock in Low Power mode

App/Module: XtremeBS (Xtreme Battery Saver)
Version: 2.1.3
Device: MTK Dimensity 7025 CPU, Android 15
Root environment: Magisk

Configuration:

low_power={
  keep_on_charge=true
  handle_cores=cpu0 cpu1 cpu2
  disable_cores=cpu3 cpu4 cpu5 cpu6 cpu7
  handle_apps=nice
  handle_gms=false
  handle_proc=false
  low_ram=false
  doze=false
  kill_wifi=false
}
screen_off={
  handle_cores=cpu0 cpu1 cpu2 cpu3 cpu4 cpu5
  disable_cores=cpu6 cpu7
  handle_apps=nice
}

Steps to reproduce:

  1. Enable Low Power mode.
  2. Verify that cpu3–cpu7 are disabled as expected.
  3. Turn screen off → cores behave as configured (cpu6/7 disabled, cpu3–5 disabled).
  4. Unlock the screen.

Expected behavior:
Low Power restrictions should remain active after screen unlock (cpu3–cpu7 stay offline).

Actual behavior:
On screen unlock, the screen_off event undo action resets CPU configuration and re-enables cpu6 and cpu7, even though Low Power mode is still active.

Logs:

  • Low Power applied → cores disabled correctly.
08-25-2025 11:58:56 [VERBOSE] Low Power event was triggered
08-25-2025 11:58:56 [DEBUG] Parsing the config for low_power event
08-25-2025 11:58:57 [INFO] Performing actions for low_power event
08-25-2025 11:58:57 [DEBUG] Disabling cpu3
08-25-2025 11:58:57 [DEBUG] Disabling cpu4
08-25-2025 11:58:57 [DEBUG] Disabling cpu5
08-25-2025 11:58:57 [DEBUG] Disabling cpu6
08-25-2025 11:58:57 [DEBUG] Disabling cpu7
08-25-2025 11:58:57 [DEBUG] Setting powersave on cpu0
08-25-2025 11:58:57 [DEBUG] Setting powersave on cpu1
08-25-2025 11:58:57 [DEBUG] Setting powersave on cpu2
08-25-2025 11:58:57 [INFO] Actions for low_power completed

cpu0: powersave
cpu1: powersave
cpu2: powersave
cpu3: offline
cpu4: offline
cpu5: offline
cpu6: offline
cpu7: offline
Low RAM: 
WiFi: enabled
Doze: inactive
  • Screen off → cores disabled as expected.
08-25-2025 12:00:01 [VERBOSE] Screen change was detected
08-25-2025 12:00:01 [DEBUG] Parsing the config for screen_off event
08-25-2025 12:00:02 [INFO] Performing actions for screen_off event
08-25-2025 12:00:02 [DEBUG] Disabling cpu6
08-25-2025 12:00:02 [DEBUG] Disabling cpu7
08-25-2025 12:00:02 [DEBUG] Setting powersave on cpu0
08-25-2025 12:00:03 [DEBUG] Setting powersave on cpu1
08-25-2025 12:00:03 [DEBUG] Setting powersave on cpu2
08-25-2025 12:00:03 [DEBUG] Setting powersave on cpu3
08-25-2025 12:00:03 [DEBUG] Setting powersave on cpu4
08-25-2025 12:00:03 [DEBUG] Setting powersave on cpu5
08-25-2025 12:00:05 [INFO] Actions for screen_off completed

cpu0: powersave
cpu1: powersave
cpu2: powersave
cpu3: offline
cpu4: offline
cpu5: offline
cpu6: offline
cpu7: offline
Low RAM: 
WiFi: enabled
Doze: inactive
  • Screen unlock → “Undoing actions for screen_off” restores cpu6/7 online.
08-25-2025 12:00:53 [VERBOSE] Screen change was detected
08-25-2025 12:00:53 [DEBUG] Parsing the config for screen_off event
08-25-2025 12:00:54 [INFO] Undoing actions for screen_off
08-25-2025 12:00:54 [DEBUG] Enabling cpu6
08-25-2025 12:00:54 [DEBUG] Enabling cpu7
08-25-2025 12:00:54 [DEBUG] Resetting cpu0
08-25-2025 12:00:54 [DEBUG] Resetting cpu1
08-25-2025 12:00:54 [DEBUG] Resetting cpu2
08-25-2025 12:00:54 [DEBUG] Resetting cpu3
08-25-2025 12:00:54 [DEBUG] Resetting cpu4
08-25-2025 12:00:54 [DEBUG] Resetting cpu5
08-25-2025 12:00:55 [INFO] Actions for screen_off undo

cpu0: online
cpu1: online
cpu2: online
cpu3: offline
cpu4: offline
cpu5: offline
cpu6: online
cpu7: online
Low RAM: 
WiFi: enabled
Doze: inactive

Notes:
It looks like the screen_off event undo overrides the low_power event settings.

High-performance cores (cpu6/cpu7) are re-enabled after screen unlock in Low Power mode
Question: Is this intended behavior, or should Low Power settings persist regardless of screen unlock?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions