FrameX-Android
v1.5.25About Application
FrameX

Rootless Android performance overlay featuring live FPS metering, thermal diagnostics, and privileged gaming optimization via Shizuku.
[!NOTE] Gaming Performance Mode adapts dynamically based on your device hardware:
- Generic / Non-Vivo Devices: Applies standard AOSP optimizations (RAM cache purge, CPU process priority locks, network/doze bypass, and display/touch boosts).
- Vivo / iQOO (Hardware Optimizations ON): Activates the verified OriginOS/FuntouchOS hardware suite (1080p @ 120Hz Mode 4 lock, RMS display arbitration, touch boost, and OEM daemon whitelisting).
- Vivo / iQOO (Hardware Optimizations OFF): Safely executes only non-invasive baseline tweaks (RAM cache purge, background app suspension, and DND). Generic AOSP display/thermal overrides are deliberately bypassed to protect against 60Hz lockouts and RMS arbitration conflicts.
[!IMPORTANT] Encountering "Parse Failed" or "Unsupported Hardware"?
If thermal monitoring displays "Parse Failed" or "Unsupported Hardware" on your device:
- Clone the repository and install the Debug APK (
./gradlew installDebug) or download FrameX-v1.5.16-debug.apk. (Release builds strip diagnostic logs via ProGuard).- Open the Thermal Diagnostics screen in FrameX.
- Run the following ADB commands to capture complete diagnostics:
(On Windows PowerShell for Step 1:# 1. Capture FrameX internal thermal logs adb logcat -d | grep -E "ThermalMonitor|CmdRunner" # 2. Capture raw system thermal HAL dump adb shell dumpsys thermalservice # 3. Capture sysfs thermal zones (if dumpsys is empty/HAL Ready: false) adb shell "for z in /sys/class/thermal/thermal_zone*; do echo \"\$(cat \$z/type 2>/dev/null):\$(cat \$z/temp 2>/dev/null)\"; done"adb logcat -d | Select-String -Pattern "ThermalMonitor|CmdRunner")- Open a GitHub Issue attaching the outputs above along with your device model, SoC, and Android/ROM version.
What it does
FrameX displays a fully customizable, low-overhead overlay on top of any application or full-screen title.
| Category | Telemetry & Features |
|---|---|
| Real-Time Telemetry | FPS · CPU Frequencies · Thermals (CPU/GPU/Skin/NPU/Battery) · RAM Usage · Network Speed · Ping |
| System Optimization | • Crash-Safe Snapshots: Automatic pre-game setting capture & auto-revert on exit • Process Management: Background app suspension & Doze CPU whitelisting • Emergency Safety: One-swipe reset slider to purge overrides back to stock OS defaults |
| OEM Hardware Locks | • Vivo OriginOS Engine: Forces hardware Mode 4 ($1080 \times 2400$ @ 120Hz) lock • Triple Whitelisting: Automatic injection across 4 native OriginOS game-booster daemons |
Requirements
- Android 8.0 (API 26) or higher
- Shizuku installed and running
- Activate via Wireless Debugging (no PC needed on Android 11+) or ADB
- Works with the Sui module on rooted devices
Screenshots
![]() Onboarding 1 | ![]() Onboarding 2 | ![]() Dashboard (No Setup) | ![]() Dashboard (Running) | ![]() System Setup |
![]() Overlay Config | ![]() Appearance Settings | ![]() Performance Mode | ![]() Thermal Diagnostics | ![]() About & Legal |
How FPS is measured
FrameX measures frame rates directly at the Android OS compositor layer using privileged IPC calls to SurfaceFlinger --timestats. Because telemetry is gathered directly from the display pipeline, it adds zero overhead to game rendering threads or GPU pipelines.
Build
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
Permissions
| 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 8.8.8.8 (Google Public DNS) 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 |
| Modify system settings | Required to deploy per-game brightness, volume, and rotation overrides |
| Foreground service (Special Use) | Ensures Gaming Mode stays active on Android 14+ |
| Post Notifications (Android 13+) | Display session status & quick-control notification controls |
| QUERY_ALL_PACKAGES | Load installed games and apps for Game Launcher optimization |
| Shizuku Privileged API | High-precision FPS metering (SurfaceFlinger), multi-sensor thermal diagnostics (IThermalService), ART RAM heap compaction, and OriginOS Esports hardware engine |
Security & Privacy
- 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
Known Limitations
A small number of metrics depend on data some device vendors don't expose. See KNOWN_LIMITATIONS.md for confirmed cases and affected devices.
Credits
- Shizuku by RikkaW — the privileged API bridge that makes rootless system access possible. FrameX would not exist without it.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Release Notes & Changelog
FrameX v1.5.25 (BETA)
⚠️ Beta build. If you hit any problem, please open an issue and include the Audit Console log (Performance screen).
What's new
- Thermal throttling override is now fully opt-in. A new "Execution Center" section (About screen) shows exactly what privileged overrides Gaming Mode will apply, with a clear on/off switch and safety notes before anything touches your device's thermal limits. (#85)
- Quick Settings tile: toggle the overlay on/off directly from your notification shade, no need to open the app. (#80)
- Overlay: battery %, clock, and session timer are now available as overlay modules, each with its own icon. (#82)
- Overlay: mute the "CPU hot" warning. You can now disable the high-temperature popup from settings if you don't want to be interrupted. (#82)
- Overlay layout rebuilt for multi-metric setups:
- Expanded mode no longer stretches across the screen with large gaps — width is now bounded and columns stay aligned. (#77)
- Minimal and Compact modes no longer balloon in height when 4+ metrics are enabled; overlay wraps cleanly into rows instead of overflowing or breaking layout. (#77)
- Fixed CPU Clusters label/value taking up excessive space in the overlay.
Improvements
- Accessibility improvements across Dashboard, Onboarding, Permissions, Appearance, Overlay Customization, and About screens (better screen-reader labels, touch targets).
- Smoother entrance animations on Onboarding and About/Splash screens.
- Fixed a bug where freed memory (MB) was reported incorrectly after RAM cleanup on the Performance screen
Declared Android Permissions
19 totalShizuku API Permissions
This application connects to the Shizuku service to execute system-level operations with ADB elevated privileges.
Standard Android Permissions
Specifications
Install via ShizuStore to enable automatic updates and silent installations using Shizuku.
More in Development utilities
Other applications in this category
LibChecker
LibChecker
An app to view libraries used in apps on your device. Uses Shizuku to determine the installation source of other apps.









