PerfMTK
June 28, 2026 · View on GitHub
A high-performance systemless optimization module for MediaTek devices with Mali GPUs
Overview
PerfMTK is a Magisk/KernelSU/APatch module designed to maximize performance and power efficiency on MediaTek devices. By managing CPU clusters, GPU configurations, I/O schedulers, and thermal engines, PerfMTK provides complete and granular control over your hardware.
Features
- MediaTek SOC Tailored Optimizations: Custom adjustments tuned specifically for MediaTek platforms.
- Automatic Hardware Detection: Dynamically identifies CPU topology (big.LITTLE cluster layouts), Mali GPU models, FPSGO engine paths, and UFS platform configurations.
- Granular Profile Configurations: Easily edit custom configurations via clean, user-friendly
.conffiles. - Persistent Settings Storage:
- Device hardware configuration:
/data/adb/modules/perfmtk/config/device.conf - Active energy profiles:
/data/adb/modules/perfmtk/config/profiles/*.conf
- Device hardware configuration:
- Tailored Power Profiles:
performance– Maximum hardware output for gaming and demanding apps.balanced– Default profile balancing smoothness and battery longevity.powersave– Standard battery-saving tweaks.powersave+– Aggressive throttling for maximum battery duration.
- Thermal Engine Control: Option to toggle system-level thermal limitations (throttling limits).
- Storage Speedups: Optimized I/O request parameters for UFS storage nodes.
Compatibility & Requirements
- Processor: MediaTek SoC with a Mali GPU.
- Android OS: Android 9.0 (Pie) or higher.
- Linux Kernel: Version 4.14.x or higher.
- Root Managers: Magisk (v27+ recommended), KernelSU, or APatch.
Important
Attention KernelSU & APatch Users:
If you are using newer root solutions. It is highly recommended to install a magic mount helper module (like Hybrid Mount or Mountify module) to ensure proper filesystem mount capabilities.
Installation
- Ensure you have a supported root manager installed (Magisk, KernelSU, or APatch).
- Download the latest release
.zipfrom the Releases page. - Flash the
.zippackage using your root manager app. - During installation, select your preferred features using the Volume keys:
system.proptweakspost-fs-data.shconfigurationsservice.shsystem adjustments- PerfMTK Daemon (for app-specific profiles)
- Reboot your device to apply the modifications.
Automatic Profile Switching (Daemon Setup)
If you chose to install the PerfMTK Daemon, you can automatically switch energy profiles depending on the active foreground application:
- Install the LSPosed framework (if not already installed).
- Install the PerfMTK-Hook LSPosed companion app.
- Open the LSPosed manager and ensure the PerfMTK-Hook module is enabled.
- Reboot your device to activate automatic, app-aware profile shifting!
App-Specific Mapping
The daemon monitors apps and maps them using /data/local/app_profiles.conf. You can customize this file manually or manage it via the PerfMTK Manager app.
Example file configuration:
# Configuration file for PerfMTK Daemon
# Format: package_name=energy_profile
# Default global profile when no matching app is in the foreground
DEFAULT_PROFILE=balanced
com.tencent.ig=performance
com.miHoYo.GenshinImpact=performance
com.whatsapp=balanced
com.android.chrome=balanced
com.netflix.mediaclient=powersave
Module Components
| Component | Description |
|---|---|
| system.prop | Optimizes UI rendering properties to improve visual smoothness. |
| post-fs-data.sh | Core settings applied early in boot (cpuset, virtual memory, memory management). |
| service.sh | Boot-completed service optimizing MTK PPM and storage interface files. |
| perfmtk_daemon | Background listener that detects app focus and applies corresponding power profiles. |
Warning
Running the background daemon requires continuous focus polling, which may slightly increase standby power consumption. For maximum battery conservation, consider running the module without installing the daemon.
Usage
Command Line Interface (e.g. Termux)
Run the main menu (requires root):
su -c perfmtk
Get system options and commands:
su -c perfmtk --help
Manual Profile Application
su -c perfmtk performance # Apply performance profile
su -c perfmtk balanced # Apply balanced profile
su -c perfmtk powersave # Apply saving profile
su -c perfmtk powersave+ # Apply extreme saving profile
Thermal Throttling Control
su -c thermal_limit enable # Re-enable standard temperature controls
su -c thermal_limit disable # Bypass thermal throttle caps (Watch your temps!)
Advanced Engine Commands
perfmtk --detect # Scan hardware and build device.conf
perfmtk --generate # Build default active profile files
perfmtk --list # View existing config profiles
perfmtk --info # Show hardware detection details
perfmtk --status # Monitor live core frequencies & status
perfmtk --edit <profile> # Edit a configuration profile
perfmtk --validate <profile> # Scan profile for formatting/value issues
perfmtk --backup # Backup existing configs
perfmtk --restore # Restore configs from backup
Profile Configuration Format
Profiles are saved in INI format. You can customize them to lock down frequencies, Governors, and options:
[CPU]
# Sets governors and rate limits per cluster policy.
# One GOVERNOR value applies to all policies; multiple values follow CPU policy order.
GOVERNOR="schedutil schedutil"
# One value applies to all policies; multiple values follow CPU policy order.
DOWN_RATE_LIMIT_US="1000 1000"
UP_RATE_LIMIT_US="1000 1000"
# Optional individual override by policy index.
POLICY_1_GOVERNOR=schedutil
POLICY_1_UP_RATE_LIMIT_US=20000
CORE_CONFIG="cpu0:4:4|cpu4:4:0"
MAX_FREQS="2000000 1800000"
MIN_FREQS="500000 500000"
[GPU]
GPU_OPP_INDEX=-1
GPU_GOVERNOR="dummy"
[DEVFREQ]
DVF_GOVERNOR="userspace"
[UFS]
UFS_GOVERNOR="simple_ondemand"
UFS_CLK_ENABLE=1
[FPSGO]
FORCE_ONOFF=2
BOOST_TA=0
Troubleshooting
- Always check that you are running the latest release of PerfMTK.
- Avoid setting custom frequencies/governors that are not listed in your generated
device.conf. - If the PerfMTK Manager App fails to load profiles, double-check that you granted Root permission inside your Root Manager dashboard.
- If you face any issues, please open a ticket on the GitHub Issues page.
Caution
Bootloops can occasionally occur when flashing system properties on certain highly modified custom ROMs. If your device bootloops, remove the module folder /data/adb/modules/perfmtk via recovery terminal or safe mode. Consult the Magisk FAQ for detailed recovery steps.
Community & Support
Join the community for quick support, feature testing, and configuration sharing:
License & Disclaimer
- License: This project is licensed under the GNU GPLv3 License.
- Disclaimer: Use this module at your own risk. Overclocking/throttling modifications can cause heat or stability issues. The developer is not responsible for any bricked devices or hardware damage.