Skip to content

Releases: mayusi/Calibrate-SoC

Calibrate SoC 0.3.9-alpha — steps aside for ANY performance app, not just known ones

Choose a tag to compare

@mayusi mayusi released this 03 Jul 18:43

AutoTDP now backs off for any app that's actually running your performance — even one it's never seen — while staying careful not to touch your tune for normal apps.

Backs off for any performance app, not just a known list

  • AutoTDP now stands down for any tuner or game runtime that's controlling performance, even one it doesn't recognise by name. Before, it only backed off for a built-in list (your game runtime, Winlator, a couple of named tools); now it also spots an unfamiliar app by behaviour — one that holds the special system-tuning permission (WRITE_SECURE_SETTINGS) and is actually overriding your clocks. When that happens it reverts to stock and pauses, then resumes on its own once the app is gone. The screen shows "Suspended — another performance app appears to be in control."
  • Won't trip on normal apps. It only treats an unknown app as "in control" when it both holds that tuning permission and is genuinely changing your clocks right then — plus it isn't a game, isn't one you've set up a profile for, and isn't Calibrate SoC itself. So an automation app like Tasker that you granted the permission to (for button-mapping) won't pause your tune just by being on screen. The known-app list still works too, as an instant shortcut.

Same safety as always

  • Purely additive. Temperature and battery cut-offs are unchanged; backing off only ever returns your device to stock clocks.

Adversarially reviewed · 2911 tests, 0 failures · debug-signed alpha.

Calibrate SoC 0.3.8-alpha — steps aside for your game runtime + GPU runs free

Choose a tag to compare

@mayusi mayusi released this 03 Jul 14:53

Calibrate SoC now hands the SoC back when another app is running the show — and stops throttling your GPU for no reason.

Plays nice with your game runtime and other tuners

  • AutoTDP backs off automatically when another app controls performance. Launch your game runtime (Nova / GameNative), Winlator, or another tuner and AutoTDP instantly reverts CPU/GPU to stock and pauses — you get exactly the performance that app intends. It resumes on its own the moment the other app is gone. No restart, no fiddling.
  • New "Pause tuning (another app in control)" switch on the AutoTDP screen — flip it before a session, flip it off after; takes effect live.
  • Notices clock-override tug-of-wars (something else keeps changing the speed) and stands down rather than fight — a one-off kernel adjustment is ignored.
  • Leaves untuned games alone — a game you haven't set up a profile for stays on stock instead of being guessed at.
  • Steady, not twitchy — it stands down the instant another app takes over but only resumes once things stay clear for a moment, so a split-second flicker won't yank your tune around.
  • Always shows why — "Suspended — …" with the reason.

GPU no longer throttled to save power

  • GPU clock barely affects battery, so capping it just cost you frames. AutoTDP and Adaptive now keep the GPU running high and do all power management on the CPU/TDP side. Thermal safety still trims the GPU if the device genuinely overheats, and there's an opt-in "allow GPU power-capping" switch in Adaptive's advanced settings if you want the old behaviour.

Same safety as always

  • Purely additive — temperature and battery cut-offs are unchanged and still fully stop the daemon. Backing off only ever returns the device to stock clocks; nothing is left pinned.

Adversarially reviewed · 2902 tests, 0 failures · debug-signed alpha.

Calibrate SoC 0.3.7-alpha — access grants reflect instantly (no reopen)

Choose a tag to compare

@mayusi mayusi released this 02 Jul 16:33

Grant live-tuning access and the app updates within ~2 seconds — no more reopening.

Fixed

  • Access grants now reflect immediately. When you grant WRITE_SECURE_SETTINGS via adb (or Shizuku / root / a vendor unlock) while the app is open, it used to keep showing the old "not granted" state — sometimes until you force-closed and reopened it. Now the Dashboard, Tune, and Settings screens re-check access the moment you return to the app and on a light 2-second background check while you're looking at them, so the privilege tier / "live" state flips within ~2s on its own. The check fully stops when the app isn't on screen, so there's no battery cost.
  • Added a "Re-check access" button next to the WRITE_SECURE_SETTINGS instructions in Settings, for when you want to force it instantly.

Verified on a Retroid Pocket 6 · 2865 tests, 0 failures · debug-signed alpha.

Calibrate SoC 0.3.6-alpha — AYANEO CPU/TDP tuning via performance modes

Choose a tag to compare

@mayusi mayusi released this 02 Jul 13:45

AutoTDP now tunes the CPU on AYANEO too — through the vendor's own performance modes.

Added — AYANEO CPU-side tuning

  • AutoTDP now moves your AYANEO's CPU, not just the GPU. AYANEO's system quietly walks back any raw CPU-frequency cap, so 0.3.5 tuned the GPU only. This release drives AYANEO's own performance mode (save / balanced / game / firepower / streaming) — the single control the device actually honors — which sets the CPU clocks, governor, GPU, and fan together in one atomic, sticky change. When a goal mode wants more or less CPU power, it steps that mode up or down; on stop it returns your device to the stock balanced mode.
  • Can't get left throttled. If AutoTDP is running and the app is force-closed or crashes, the app now automatically restores your AYANEO to its stock performance mode the next time it launches (and on reboot) — no more getting stuck in a low-power mode with no way out.
  • On AYANEO the performance mode owns the CPU/GPU together (so the two never fight); Odin, Retroid, and rooted devices are completely unchanged and still cap the CPU cluster directly.

Verified on a Pocket DS · 2857 tests, 0 failures · debug-signed alpha.

Calibrate SoC 0.3.5-alpha — AutoTDP actuates AYANEO (GPU lever) + no vendor-app crash

Choose a tag to compare

@mayusi mayusi released this 01 Jul 23:39

AutoTDP now actually tunes AYANEO — and can't crash its system UI anymore.

Fixed — AYANEO AutoTDP works for real

  • AutoTDP now drives your AYANEO's power live. On AYANEO (Pocket DS and siblings) the vendor service refuses any CPU-frequency cap below the stock ceiling, so AutoTDP was silently stuck — it kept trying a write the system rejected and nothing ever changed. It now recognizes the CPU-frequency cap isn't a usable lever on AYANEO and drives the GPU (plus governor/fan) instead — the levers AYANEO does honor. Verified on a Pocket DS: engaging a goal mode steps the GPU clock down through its whole range live, then restores cleanly on stop.
  • No more crashing AYANEO's system UI. The old stuck-write behavior hammered the AYANEO performance overlay with rejected writes and could crash it. That storm is gone entirely — the overlay stays healthy across a full tuning session.
  • Adaptive governor is reachable now. The Adaptive tab's Start button previously fell back to the legacy path and never engaged the adaptive coordinator, and a charging-triggered auto-start could override it. Adaptive now truly turns on from its own button, stays the single owner of the loop while active, and its persisted on/off state no longer drifts.

Note

On AYANEO, AutoTDP tunes via GPU + governor + fan (the CPU-frequency cap is a no-op there and is skipped). Odin, Retroid, and rooted devices are unchanged and still cap the CPU cluster directly. A future update will add AYANEO's own TDP profile control for CPU-side tuning.

Verified on AYANEO Pocket DS · 2818 tests, 0 failures · debug-signed alpha.

Calibrate SoC 0.3.4-alpha — firmware-robust AYANEO detection + accessibility fix

Choose a tag to compare

@mayusi mayusi released this 01 Jul 20:46

0.3.4-alpha — better AYANEO support + an accessibility fix

🟢 AYANEO tuning detection is firmware-robust now

Newer AYANEO Pocket DS firmware moved (and un-exported) its performance service, so Calibrate couldn't find it and fell back to read-only. It now tries several known service locations and uses whichever your firmware exposes — with honest per-attempt logging. If none are available on your firmware, it says so honestly and uses another tuning path instead of showing a false "live" state. Lights up automatically if a firmware re-exports the service.

♿ Accessibility fix

The app's screens can now be read by screen readers (TalkBack) and automated testing tools — previously the Compose UI wasn't exposing its content to the accessibility layer at all (it returned an empty tree). Verified on-device.


2792 tests passing. Same signer as prior releases — in-app update works.

Calibrate SoC 0.3.3-alpha — polish + correctness (AYANEO/vendor display, Wi-Fi/fan, root-optional copy)

Choose a tag to compare

@mayusi mayusi released this 30 Jun 20:38

0.3.3-alpha — polish + correctness: everything shows right now, including on AYANEO

A focused pass (driven by a full UI audit + live on-device testing) fixing things that weren't showing correctly and tightening the polish.

🟢 Systems now show correctly

  • AYANEO devices display their live tuning honestly now. The tier badge, the AutoTDP "LIVE" banner, and the device-info screen used to claim "PServer / root" — or even show "read-only / grant via adb" — on an AYANEO that was actually tuning live via its own vendor service. They now show the real active path (AYANEO binder, PServer, root, Shizuku, or direct sysfs — whichever is true).
  • Wi-Fi on the Hardware screen no longer shows a blank "—" while connected — it reads the real link/standard.
  • Fan readout no longer reports a bogus 100% duty at idle — it shows the fan's real speed, with a loading indicator during the read.
  • Plain phones/tablets now get the proper "here's what works on your device" setup screen instead of being shown handheld-only script steps.
  • Tune presets refresh after changes instead of going stale; the Insights "applied" badge marks the right game; the game-tune import "wrong device" warning actually fires now.

🧹 Changed

  • Settings wording around root is consistent with the app being root-optional (root is just one path — Shizuku, vendor service, or a supported handheld also unlock live tuning).
  • Internal cleanup: unified color tokens, removed dead code, corrected stale text.

2792 tests passing. The capability engine, AutoTDP, and all safety guardrails are unchanged. Same signer as prior releases — in-app update works.

Calibrate SoC 0.3.2-alpha — works on any device (root optional, better on handhelds)

Choose a tag to compare

@mayusi mayusi released this 30 Jun 17:22

0.3.2-alpha — Calibrate works on any device now (root is optional, just better on handhelds)

Calibrate SoC is root-optional: the HUD overlay, FPS & performance monitoring, benchmarks, profiles, and insights all work on any Android device with no special access. Root / PServer / Shizuku only unlock the extra live CPU/GPU tuning — and mostly that only matters on handhelds.

🔓 No more getting locked out

A recent build wrongly required the one-tap setup just to get into the app. That's fixed — every device can always enter and use the full set of no-root features. The live-tuning grant is always offered (and re-reachable later from Settings/Tune), never forced.

🎯 Setup now matches your device

Onboarding detects what you have and offers the right path:

  • PServer handhelds (AYN Odin, Retroid Pocket) → the one-tap auto-setup.
  • Rooted devices → a simple "enable root tuning" step (these used to be ignored and fell back to no-access).
  • Shizuku → the full Shizuku setup flow, finally wired into onboarding.
  • Other handhelds with a vendor settings runner → the run-as-root unlock script — and a device that runs the script can now actually finish setup (it used to get stuck on the final screen and never let you in).
  • Phones / tablets → an honest "here's what already works, and how to unlock live tuning if you want it."

2738 tests passing. The capability engine, AutoTDP, and all safety guardrails are unchanged. Same signer as prior releases — in-app update works.

Calibrate SoC 0.3.1-alpha — AutoTDP now actually changes your clocks (the big fix)

Choose a tag to compare

@mayusi mayusi released this 29 Jun 07:19

0.3.1-alpha — AutoTDP now actually changes your clocks (the big fix)

🐛 The fix that matters

  • AutoTDP would engage but never actually change anything — it'd get stuck. Root cause: when your device's firmware nudged a requested clock to a slightly different valid value, the app treated the write as failed and kept re-sending the same write every tick, forever. It looked like it was running, but your clocks never moved. Now it accepts the value the kernel actually applied and converges — so tuning works. It still honestly reports a real failure if a write genuinely had no effect (no fake success).
  • Also fixed a related unit bug (Hz vs kHz) that could wedge the new Adaptive GPU control on some kernels.

🔒 Setup is now mandatory (cleaner)

  • On supported handhelds, the one-tap grant is now part of getting in — no more accidentally skipping past it and then wondering why tuning doesn't work. Devices that genuinely can't use the root bridge are never locked out, and a still-detecting device is never trapped.

🧹 Removed the leftover clutter

  • The old "re-unlock" / unlock-script card no longer shows up on devices where everything already works, and the misleading "Re-run Unlock" button is gone. Stale "advanced unlock" wording across the app now points to the right place (Tune → HUD & FPS permissions).

2716 tests passing. Same secure root foundation; all safety guardrails (clock floors, thermal cutoff, always-revert-on-exit) unchanged. Same signer as prior releases — in-app update works.

Calibrate SoC 0.3.0-alpha — Adaptive: one dial tunes your whole chip (CPU + GPU)

Choose a tag to compare

@mayusi mayusi released this 28 Jun 19:59

0.3.0-alpha — Adaptive: one dial tunes your whole chip (CPU and GPU)

The headline feature: a new Adaptive mode that coordinates the entire SoC for a single intent you pick — not just the CPU.

🎛️ Adaptive — a whole-SoC governor

  • One intent, everything tuned. Pick what you want — Max Performance → Performance → Balanced → Efficiency → Max Battery — and Adaptive tunes the whole chip for it: CPU clocks + governor, a brand-new GPU governor (it now adapts your GPU clock to load the same way AutoTDP does for the CPU), GPU over/underclock, and memory bias. It's AutoTDP, but holistic across the entire SoC.
  • Advanced (Custom) mode — dial the priorities yourself: how much you value raw performance vs frame stability vs battery vs staying cool.
  • GPU overclock, two ways, clearly explained:
    • Within vendor limits (recommended) — run your GPU at the top speed your manufacturer ships and hold it when a game needs it. Safe, no extra heat risk beyond normal gaming.
    • Beyond stock (experimental) — tries to push past your manufacturer's limit, if your kernel allows it. Calibrate actually tests whether your device accepts it and tells you honestly if it doesn't. A strong heat guard backs the GPU off well before any unsafe temperature, and everything resets when you stop. Opt-in only.
  • Always safe. Every guardrail still applies — the clock floors, the 105°C thermal cutoff, and the always-restore-on-exit behavior all hold. Aggressive intents raise ceilings; the heat protection always wins.

✨ Polish

  • Cleaner, more consistent UI across the dashboard, settings, insights, and the newer screens.
  • README refreshed to reflect everything the app does now.

2692 tests passing. Built on the same secure root foundation; the Adaptive coordinator reuses the proven AutoTDP engine without touching its safety logic. Same signer as prior releases — in-app update works.