Getting root rights on Xiaomi smartphones opens up access to advanced system features, but simultaneously deprives the user of warranties, blocks updates over the air and causes problems with banking applications. However, there are ways to mask root rights that allow you to circumvent these restrictions. In this article, we will discuss current methods of hiding root on Xiaomi, Redmi and POCO devices running MIUI 14/15 and Android 13/14.
It's important to understand that completely hiding root from all applications is technically impossible β modern security mechanisms (for example, SafetyNet or Play Integrity API) are constantly being improved, but with the right tools, you can make 90% of applications work, including Google Pay, SberBank Online and games with cheating protection, the main thing is to follow the instructions without skipping and take into account the features of your model.
Why apps are finding root rights on Xiaomi
Xiaomi smartphones use several detection mechanisms that are harder to fool than on βpureβ Android:
- π System File Check: Apps scan directories /system, /su, /magisk and look for modified binary options (e.g. su, busybox).
- π± MIUI-Specific checks: Firmware MIUI contains built-in mechanisms of integrity checks that work even when hidden root through Magisk.
- π‘οΈ Hardware-backed attestation: Modern devices (e.g. Xiaomi 13 Pro or Redmi Note 12 Pro)+) use hardware integrity check of the loader.
- π Server Validation: Banking applications send device data to their servers, where parameters like ro.build.tags or ro.debuggable are analyzed.
On devices with Qualcomm Snapdragon processors (most of Xiaomiβs flagships), Detection is harder to get around because of the TZ (TrustZone) protected area, whereas on MediaTek (many Redmi models), a simple boot.img patch sometimes helps.
Preparing the device before root masking
Before you start hiding root rights, you need to perform basic actions:
Install the latest version of Magisk (26.4+)
Create a backup copy of the boot section
Disable all Magisk modules (especially Riru)
Check SafetyNet status with Magisk (should be FAIL)
Make sure the bootloader is unlocked (if not, unlock)
-->
Pay special attention to Magisk modules β many of them (for example, XPrivacyLua or App Systemizer) leave traces in the system that are easily detectable, it is recommended to temporarily disable all modules through the Modules menu in the Magisk application and restart the device.
To check the current status of Detection, use:
adb shell su -c "getprop ro.boot.verifiedbootstate"
adb shell su -c "getprop ro.debuggable"If you see orange or 1 in the answer, your device is already marked as modified and you will need additional measures.
β οΈ Attention: On devices with MIUI 15 and Android 14, the standard method of hiding through MagiskHide (outdated in 2022) does not work.Use DenyList (formerly MagiskHide) in combination with Universal SafetyNet Fix and Play Integrity Fix.
Method 1: Using DenyList in Magisk (Basic Level)
This is the easiest way that is suitable for 60-70% It doesn't require deep system modifications, but it may not work for bank applications with enhanced security.
- Open the Magisk app and go to Settings (βοΈ).
- Activate the Zygisk option (reboot required).
- After the reboot, go back to Magisk and select DenyList (older versions of MagiskHide).
- Click on the + icon and select the apps that you want to hide root (e.g. SberBank Online, Google Pay).
- Add to the list Google Play Services and Google Play Store.
- Reset the device.
To check the result, use the YASNAC (Yet Another SafetyNet Attestation Checker) application. If the SafetyNet status remains FAIL, proceed to the next method.
π‘
After adding the app to DenyList, clear its cache and data in your Android settings. This will eliminate the stored Detection metrics.
Method 2: Universal SafetyNet Fix + Play Integrity Fix (advanced)
To bypass modern checks (including the Play Integrity API, which has been in use since 2023), two modules will need to be installed:
- Download the latest versions of the modules: Universal SafetyNet Fix (v2.4.0+) Play Integrity Fix (v14.2+)
Magisk
Modules β Install from storage
Zygisk
Enforce DenyList
Magisk
DenyList
- π± Google Play Services (com.google.android.gms)
- π³ Google Play Store (com.android.vending)
- π Device Health Services (com.google.android.apps.turbo)
- Restart your device and check the status through YASNAC or Play Integrity API Checker.
- Restart the app.
This method does not affect SafetyNet, but it can help bypass customer checks, such as how often you can run MTS Bank or Telegram X without completely camouflaging root.
Method 5: Complete root hiding through the custom core (expert level)
Some devices (such as the POCO F5 or Redmi K60) can use patched cores that modify the system's responses to requests for bootloader status.
- π§ KernelSU β Magisk alternative with improved camouflage.
- π‘οΈ Perseus Kernel (for Snapdragon) 888/8 Gen 1).
- π± Arter97 Kernel (for MediaTek Dimensity).
Installation process:
- Download the kernel for your model with XDA Developers or 4PDA.
- Flow through TWRP Fastboot: fastboot flash boot patched_kernel.img
- Install the appropriate Magisk module (if required).
- Set up DenyList and check the status through YASNAC.
Advantages: some cores (e.g. Perseus) support hardware-backed hiding, making Detection nearly impossible.
π‘
Castom cores are the most reliable way to hide root, but they require deep knowledge and are only suitable for advanced users, and beginners are encouraged to start with methods 1-3.
Frequent mistakes and their solutions
Even if you follow the instructions correctly, you can have problems.
| Problem. | Probable cause | Decision |
|---|---|---|
| SafetyNet FAIL after installing modules | Universal SafetyNet Fix or Magisk | Update all components to the latest versions |
| Detecting root app despite DenyList | The application uses its own Detection methods (e.g. /proc/self/status) | Add the app to DenyList + use Island for isolation |
| The device does not pass Play Integrity (MEETS_DEVICE_INTEGRITY: false) | No correct fingerprint device in Play Integrity Fix | Add your fingerprint to the module configuration (GitHub instructions) |
| Bank app works, but does not send push notifications | Google Play Services is blocked from DenyList | Allow Google Play Services in DenyList, but leave a lock on the targeted banking app |
If none of the methods worked, check:
- πΉ Version MIUI β Detection is more aggressive on beta versions of firmware.
- πΉ bootloader status β if it is locked after unlocking, re-unblocking is required.
- πΉ Presence of antiviruses (such as Dr.Web or Kaspersky) β they often conflict with disguise.