Skip to content

Axion SPSM v3.0.1 (RMX3430)

Choose a tag to compare

@arena-ai-coding-agent arena-ai-coding-agent released this 12 Sep 16:38
· 0 commits to main since this release

Ten real bugs fixed

A second, deliberately adversarial pass over every module script. Each fix below was reproduced with a failing test before it was touched; the test stays in the suite. The APK is unchanged apart from its version stamp — classes.dex is byte-identical to v3.0, so all of this is in the scripts.

Download: Axion-SPSM-v3.0.1-RMX3430.zip, also committed at release/ in this tag. Flash in KernelSU/Magisk, then reboot.

Your settings are safe on exit — this is the point of the release

  • The brightness cap could brighten your screen. It wrote the cap unconditionally, so a display you deliberately keep darker got brighter when the mode switched on, and the exit wrote back a value that was never yours. It now only ever lowers.
  • Re-applying the idle phase saved our own values as yours. The deep phase runs again on every screen-off cycle and each run overwrote the record of what your apps looked like — so after a second cycle every app stayed restricted after exit. The first record per idle period now stands.
  • Sleeping Google re-enabled packages you disabled yourself. Now it only undoes its own change and leaves your choices alone.
  • A setting the mode never touched was deleted on exit (battery_saver_constants), whatever it held.
  • An interrupted exit destroyed the record of the phone's real values. Re-entering the mode after a crash used the capped value as the new "original" — the failure mode where settings quietly drift further every time. Unfinished records are now kept, so the export restores to the true original.
  • A value spanning several lines came back truncated at its first line, and a value holding a literal backslash-n came back as a newline. The journal is one record per line with values encoded, and the codec is an exact inverse.
  • Re-entering the mode after a wake restores the true original instead of a value the phone had since moved past.

Safety nets made precise instead of loud

  • Exiting forced cores, governor and backlight whenever any journal existed — including a session where every knob was switched off and nothing was recorded. Your own choices paid for it. It now forces only when a value of ours is genuinely still in place.
  • The "phone is stuck dark" net fired on a dim screen you had chosen, on every exit. It now acts only when the journal proves the value is still ours, the mode is off, and the screen is on and unreadably dark. The emergency lift itself is unchanged and still tested.
  • The same question at boot: a journal full of finished records no longer causes a forced restore over your settings on the next boot.
  • A lock left by a dead process made the next action wait out a 20-second timer and then report "busy". It is taken at once when the owner is gone.
  • Stepping out of doze was reported as an "external change" because the snapshot recorded a state the system moves by itself. It records the force flag now.

Tests

tests/run.sh: 19 cases / 86 assertions → 30 cases / 119 assertions, passing, plus tests/run-install.sh 21/21. Suite grew by the cases that pinned these bugs down, verified stable over repeated runs.