GitHub - ElectricBits/HandyTuner: All-in-one tuner for Android gaming handhelds: in-game HUD and Quick Menu, per-game presets, AutoTDP, fan, battery and network tools, with the PULSE engine built in. No root. Beta: tested on the AYN Odin 2 Portal, support for more handhelds planned. · GitHub
Skip to content

About

All-in-one tuner for Android gaming handhelds: in-game HUD and Quick Menu, per-game presets, AutoTDP, fan, battery and network tools, with the PULSE engine built in. No root. Beta: tested on the AYN Odin 2 Portal, support for more handhelds planned.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

6 stars

Watchers

1 watching

Forks

HandyTuner

HandyTuner

One app to tune your Android gaming handheld: a game HUD, a Quick Menu you open from inside any game, per-game presets, and the PULSE performance engine built in. Meet HandyHelper, who walks you through setup.

Made and tested on the AYN Odin 2 Portal first, with support for more handhelds planned: see Supported devices.

Note

Honest heads-up: HandyTuner is vibe-coded. I build it with AI (Claude), and half the time I don't fully know what I'm doing — but I'm learning as I go. I test everything on my own Odin 2 Portal before it ships, but expect rough edges. Bug reports, tips and code help are all very welcome!

Warning

Beta (0.10). So far everything has been tested on the AYN Odin 2 Portal (Android 13) only. Other devices aren't tested yet: on them it may not work, or may change settings it shouldn't. If you try it on another device, please open an issue with the result and an exported log (System → Export log file) — that's exactly how support for more devices gets added. "Reset everything to stock" (System) puts back what HandyTuner changed.

Highlights

  • Works with game frontends like Cocoon. Start a game from Cocoon and HandyTuner knows exactly which game it is, even Windows games running through GameNative or Winlator, and switches to that game's preset by itself.
  • Per-game presets in your emulators too: start a game from Cocoon (or another frontend that hands the emulator the game file) and HandyTuner knows exactly which game it is, like "The Legend of Zelda - The Wind Waker" in Dolphin, and switches to that game's own preset. Tested with Dolphin; works the same way for PPSSPP, RetroArch, DuckStation and others. Started inside the emulator itself, the emulator gets one preset for all its games.
  • Auto mode (AutoTDP): pick an FPS target (30, 40, 60 or 120) and it uses the least power that still holds it.
  • A Quick Menu over any game (both sticks + R1): performance mode, FPS target, fan, HUD, screenshots and more, without leaving the game.
  • Per-game presets (Battery, Optimal, Performance, Competitive, or your own) that apply when a game opens.
  • One app instead of many: HUD, performance, fan, battery, network and controller tools in one place, so they don't fight over the same settings.
  • No root, no ads, no tracking. Free and open source (GPL-2.0).

What it does

HandyTuner's Home page

  • Made for the controller: L1/R1 switch sections, the D-pad changes settings, B goes back.
  • HUD over your games: FPS, CPU/GPU load and temperature, battery time left, ping, refresh rate.
  • Quick Menu (both sticks + R1): performance mode, AutoTDP and its FPS target, frame cap (30/40/60), fan, presets, brightness, volume, refresh rate, screenshots, screen recording, AFK mode and Speed Up.
  • Per-game presets: Battery, Optimal, Performance, Competitive, or your own. Applied automatically when a game opens, including Windows games in GameNative. Export and import them as a file.
  • PULSE engine: power tiers, AutoTDP, frame caps, fan control including Hold temp (keeps the chip at a temperature you choose, never above 88 °C), and sleep underclock while the screen is off.
  • Battery: charge limit and play-while-charging, using AYN's own charging switch.
  • Network: connection test, Low Latency mode, a DNS benchmark and one-tap Private DNS.
  • Controller: face button layout, stick lights, and (beta) external controllers like 8BitDo and Xbox: battery, button and stick test, button shortcuts and a controller preset.
  • Dock & Display (beta): resolution for the Odin's screen and the TV, docked and couch presets, a TV-size HUD, a docked charge limit, and more.
  • System: Light or Dark theme, every permission at a glance, and Export log file for bug reports.
  • Safe mode stops HandyTuner changing anything if the overlay keeps crashing; Reset everything to stock puts your device back.

📖 Read the full user guide: every page and feature explained, plus FAQ and troubleshooting.

Supported devices

Device Status
AYN Odin 2 Portal ✅ Tested: everything in this README works.
AYN Odin 3 ⚠️ Untested. The PULSE engine already has a profile for its chip, but HandyTuner hasn't been tried on it.
AYN Thor ⚠️ Untested. The PULSE engine already has a profile for its chip, but HandyTuner hasn't been tried on it.
Retroid Pocket 6 ⚠️ Untested. The PULSE engine already has a profile for its chip, but HandyTuner hasn't been tried on it.
Other AYN and Retroid handhelds 🔜 Planned. HandyTuner checks what each device supports, but each one needs testing.

Want your device supported sooner? Try it and open an issue with your device and the log from System → Export log file, or say hi on Discord.

Install

Get it on Obtainium

With Obtainium (gets updates automatically): tap the badge on the Odin, or add https://github.com/ElectricBits/HandyTuner in Obtainium and turn on Include prereleases.

Or by hand:

  1. Download the latest HandyTuner-<version>.apk from Releases.
  2. Open it on the Odin and allow installing from that app when Android asks.
  3. Open HandyTuner and follow HandyHelper's setup.

No root is needed: HandyTuner uses the system service AYN builds into the Odin.

Uninstalling? Run System → Reset everything to stock first, so settings like the charge limit are put back.

Permissions, and why

Permission Why
Accessibility service Draws the HUD and Quick Menu over games and reads the button combos that open them. Android 13 grays this switch out for apps installed from outside the Play Store until you tap Allow restricted settings on HandyTuner's App info page; setup shows you how.
Usage access Knows which game is in front, to apply its preset.
Notifications The status notification and short notices (screenshots saved, preset applied).
Query all packages Lists your games and finds a game's network connection for the ping reading.

HandyTuner also turns off Odin Assistant's game detection by default, because it changes performance per game and fights HandyTuner. Only that one accessibility service is switched off; the app stays. You can turn this off on the Performance page.

Privacy

No accounts, ads, analytics or tracking. HandyTuner sends nothing about you anywhere. It only uses the network when you ask: the Network test, the DNS benchmark (your own DNS and a fixed list of well-known providers), and links you tap. Logs stay on your device unless you export and share them.

Build from source

Needs JDK 17 and the Android SDK.

./gradlew testDebugUnitTest assembleDebug

The APK is in app/build/outputs/apk/debug/. Release builds are signed with the author's key, which is not part of this repository.

Help improve HandyTuner

  • Found a bug, or tried it on another device? Open an issue and attach the log from System → Export log file.
  • Want to send code? Fork the repo and open a pull request. CONTRIBUTING.md explains how, and CODE_OF_CONDUCT.md covers how we treat each other.
  • Found a security problem? Please report it privately: see SECURITY.md.
  • Questions, ideas, presets, or just hanging out? Join the HandyHelper Realm Discord.

Support

HandyTuner is free and always will be. If it helps you, you can buy me a coffee on Ko-fi — there's also a button in the app's About card. Thank you!

License

Copyright (C) 2026 ElectricBits. HandyTuner is free software under the GNU General Public License, version 2 only (GPL-2.0-only, see LICENSE). It comes with no warranty: it changes performance, fan, display and network settings, so use it at your own risk.

It includes the engine of PULSE, copyrighted by keiretrogaming and its contributors and used under the GPL, which builds on ClusterTune and O2P Tweaks. Credits, fonts, icons and the full list of changes are in NOTICE.md and pulse/NOTICE.md.

HandyTuner is an independent project. It is not made by, affiliated with or endorsed by AYN, and it is not the official PULSE.

About

All-in-one tuner for Android gaming handhelds: in-game HUD and Quick Menu, per-game presets, AutoTDP, fan, battery and network tools, with the PULSE engine built in. No root. Beta: tested on the AYN Odin 2 Portal, support for more handhelds planned.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

6 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages