Universal SafetyNet Fix
This module tries to pass SafetyNet on devices that triggered it.
It works by doing some magic with the system props, which are changed to match with the required by Google to pass it's security test (SafetyNet). However, that is not all...
The real magic here is the Universal Hide part, which is a custom implementation of Magisk Hide. It basically does the same magic as Magisk Hide, but in a shell-y simple way.
It reads the file Magisk Hide uses to store apps that should be hidden and then monitors logcat until a hidden app is opened. Once this happens, it enters it's mount namespace to unmount all Magisk related mount points.
That way you can hide root or bypass SafetyNet for almost to all apps. App's that use custom checks to detect root are one of the few exceptions as we cannot anticipate what they check.
Why did I basically duplicated Magisk Hide? Well, Magisk Hide doesn't work properly for all devices, so this is a fast solution until topjohnwu fix all the issues.
Information
Requeriments
Links
Download Beta
Download Stable (very outdated)
Download uninstaller
Source code
Installation
Donations
If you feel I helped you, you can buy me a coffee here.
Changelog
v1.10.1
v1.10
v1.9.1
v1.9
v1.8.2
v1.8.1
v1.8
v1.7
v1.6
v1.5
v1.4
v1.3
v1.2
v1.1
v1
Thank you
This module tries to pass SafetyNet on devices that triggered it.
It works by doing some magic with the system props, which are changed to match with the required by Google to pass it's security test (SafetyNet). However, that is not all...
The real magic here is the Universal Hide part, which is a custom implementation of Magisk Hide. It basically does the same magic as Magisk Hide, but in a shell-y simple way.
It reads the file Magisk Hide uses to store apps that should be hidden and then monitors logcat until a hidden app is opened. Once this happens, it enters it's mount namespace to unmount all Magisk related mount points.
That way you can hide root or bypass SafetyNet for almost to all apps. App's that use custom checks to detect root are one of the few exceptions as we cannot anticipate what they check.
Why did I basically duplicated Magisk Hide? Well, Magisk Hide doesn't work properly for all devices, so this is a fast solution until topjohnwu fix all the issues.
Information
- Check this thread if you need more information: https://xdaforums.com/apps/magisk/guide-magisk-troubleshooting-t3641417
- Please DO NOT share the module itself or the download link, share the thread only.
Requeriments
- Magisk v13.x/14.0
- MagiskSU
Links
Download Beta
Download Stable (very outdated)
Download uninstaller
Source code
Installation
- Flash the .ZIP from TWRP
- Reboot
Donations
If you feel I helped you, you can buy me a coffee here.
Changelog
v1.10.1
- Fixed Magisk Hide detection for Magisk v12
v1.10
- Module is now universal, not for Xiaomi devices only
- Module refactored
- Magisk v13 beta support
- Added some props
- Added SafetyNet fix for Magisk v12
- Check if Magisk Hide was properly started and try to fix
- Zip signed
v1.9.1
- Fixed logging code: ignore output of wait for unmount loop
v1.9
- Added new supported devices: Redmi Pro, Mi 4S, Redmi 4X
- Changed Redmi Note 3 MTK prop
- Changed wait for Magisk SafetyNet check to a function and run in a subshell
v1.8.2
- Fixed Redmi Note 3 MTK device name typo
v1.8.1
- Fixed forgotten set_prop function calls
v1.8
- Added new supported devices: Mi Note Pro, Redmi 1, Redmi 1S
- Fixed Mi 5 prop
- Removed run enable script
- Code improved
v1.7
- Added new supported devices: Mi 6
- Added "ro.bootimage.build.fingerprint" prop
- Removed reinitiate Magisk Hide
- Added run Magisk Hide when boot & service steps are completed
- Improved log code: waiting to SafetyNet test and Magisk Hide folder unmount, silence some shell output
v1.6
- Added new supported devices: Mi Pad, Mi Note, Mi 3/Mi 4, Mi 2/2S, Mi Pad 2, Mi Pad 3
- Added code to reinitiate Magisk Hide
v1.5
- Added new supported devices: Redmi 4, Redmi 4 Prime, Redmi 4A
v1.4
- Added new supported devices: Redmi 3/Prime, Mi 4i
- Added code to generate useful logs and enable Magisk Hide if not enabled
- Changed to use resetprop directly from script @laggardkernel
- Removed build description because is useless
v1.3
- Added new supported devices: Redmi 2/4G, Redmi 2 Prime
- Added some extra code to support device with different model name
v1.2
- Added new supported devices: Mi 4c, Mi 5c, Redmi Note 3 Special Edition, Mi Note 2, Redmi Note 4X
v1.1
- Added new suported devices: Mi Max, Mi Max Prime, Redmi 3S/Prime/3X
v1
- Initial release
- Suported devices: Redmi Note 2, Redmi Note 3 MTK, Redmi Note 3 Qualcomm, Redmi Note 4 MTK, Mi 5, Mi 5s, Mi 5s Plus, Mi MIX
Thank you
- @YashdSaraf for their amazing built Busybox binaries.
- @Didgeridoohan for the help they brings.
- @chhapil for their uninstaller.
- @laggardkernel for their little contribution to the module.
- @hipio for helping with this thread and moderating the Telegram group.
- And all who donated me, thanks you!
Last edited: