Real-time performance overlay for Android. Powered by Shizuku — no root required.
Important
The Gaming Performance Mode engine is a specialized implementation specifically hardened and optimized for Android 16 and Vivo OriginOS/FuntouchOS environments. Its package suspension and restricted-state flows are custom-tailored for peak efficiency on these devices and may not reflect universal behavior on all Android skins.
FrameX shows a draggable, fully customisable overlay with live system stats on top of any app or game — including full-screen titles.
Available metrics: FPS · CPU frequency · RAM usage · Battery temperature · Network speed · Ping
Performance Mode: Optimize your device for gaming by suspending bloatware, restricting background apps, and enabling advanced Do Not Disturb.
- Android 8.0 (API 26) or higher
- Shizuku installed and running
- Activate via Wireless Debugging (no PC needed on Android 11+) or ADB
- Also works with the Sui module on rooted devices
- Install Shizuku and follow its setup guide to activate the service
- Open FrameX and complete onboarding — it will request overlay and Shizuku permissions
- From the dashboard tap Start Overlay
- The overlay appears on screen and stays on top of everything including games
- Drag it anywhere · Long-press to cycle display modes without leaving the game
- Metrics — choose which stats are visible via Overlay Customization
- Appearance — change opacity, background, border, text color, text size, font
- Performance — Activate Gaming Mode to suspend OEM bloatware and restrict background noise
| Mode | Description |
|---|---|
| Minimal | Single line, values only, minimal visual footprint |
| Compact | Two-column grid of enabled metrics with labels |
| Expanded | Full grid with icons and labels, best for side-mounted position |
- Background — Black / Navy / Charcoal / Transparent
- Border — Accent color / None / Subtle / Ghost
- Text color — White / Accent / Silver / Auto (FPS-adaptive green → amber → red)
- Accent color — 6 presets
- Text size — Small / Medium / Large
- Font — Default or JetBrains Mono
All settings and the last overlay position persist across restarts.
FPS is read from SurfaceFlinger via Shizuku — the same compositor-level frame timing data used by production performance tools. It adds zero overhead to the game's rendering pipeline.
Other metrics poll at 1–5 second intervals and run only when their module is enabled, so disabled metrics cost nothing.
Standard Android Gradle project. Requires JDK 17 and Android SDK 34.
git clone https://github.com/MaheshSharan/FrameX-Android.git
cd FrameX-Android
./gradlew assembleDebug| Permission | Why |
|---|---|
| Draw over other apps | Display the overlay on top of games |
| Foreground service | Keep the overlay alive while the screen is on |
| Wake lock | Prevent CPU sleep during an active session |
| PACKAGE_USAGE_STATS | Identify which game is in the foreground |
| REQUEST_IGNORE_BATTERY_OPTIMIZATIONS | Survive aggressive OEM background-kill policies |
| Receive boot completed | Auto-restart overlay after reboot if it was active |
| Internet | Ping measurement to google.com only |
| Kill background processes | Used to purge cached background apps during Gaming Mode activation |
| Access notification policy | Required to toggle Do Not Disturb mode automatically |
| Foreground service (Special Use) | Ensures Gaming Mode stays active on Android 14+ |
- No data collection — nothing is sent anywhere
- No analytics — no Firebase, no Crashlytics, no tracking SDKs
- No accounts — FrameX has no sign-in or user identity
- No ads — ever
- All data stays on-device
- Shizuku by RikkaW — the privileged API bridge that makes rootless system access possible. FrameX would not exist without it.
MIT License — see LICENSE for details.