MAGISK MODULE ❯ Universal SafetyNet Fix 2.3.1

Search This thread

zgfg

Senior Member
Oct 10, 2016
7,801
5,209
No, I meant what is gms? Is that a zip or an apk I can download?
I answered you what is GMS in my post #2029 today:
(not sure if link will open for you and would it let you to update)

I never manually installed/updated GMS - Google does that in background

You could try to install newer GMS from APK Mirror (no experience from my side)
but do not download/install Beta version
 
Last edited:
  • Like
Reactions: LedgendaryEpics

LedgendaryEpics

Senior Member
Jun 14, 2018
195
51
He mentioned that I'm on an old version of yasnac but the one I see on GitHub is from April, is there an updated repo I can search for the updated apk?
 

zgfg

Senior Member
Oct 10, 2016
7,801
5,209
I have the latest version of Google play store installed
(Google Play) SERVICES is not (Google Play) STORE

Different words (!) and hence different things

Store is an app (you need to buy/download apps and games from the Google store) but Services is the background service, with various Google APIs

Store cannot work without Services, but Services do not need Store.
Similarly, Maps need Services (but not vice versa), etc

Again, Services are kind of a core for GApps, used by various other Google apps (but not limited to apps from Google, since open APIs can be called by any other app)
 
Last edited:

pndwal

Senior Member
He mentioned that I'm on an old version of yasnac but the one I see on GitHub is from April, is there an updated repo I can search for the updated apk?
No, not old Yet Another SafetyNet Attestation Checker, but that showed old Google Play Services (pre Play Integrity Application Programming Interface) who's processes are based on Google Mobile Services in your Screenshot, so you need to update this ...

I said update Google Play Store simply because this may have been preventing use of latest Google Mobile Services, A(lso) K(nown) A(s) Google Play Services... I don't know if this necessarily results... But I'm Past Wondering... 😜

OMG!!! "gms S/N pass" 'pw" "pi api" all these abbreviated terms! I know what most of these mean now, but people looking back at this is gonna get confused how often y'all use this...
BTW, FWIW these are common / good acronyms here, and we use 'em for economy like you use OMG... 🙂 PW
 
Last edited:

13Sullo80

Member
Aug 6, 2022
9
2
So, here is my modification of USNF with Play Integrity API bypass.

It changes fingerprint to old 7.1.2 6.0 (LOL) and apply it only for GMS SafetyNet process (by Zygisk injection), so your original prints/security path level does not change. This avoids many side effects/problems with global props changing.

Updated:
Drop fingerprint to lowest possible (6.0) to ensure that no one use same Android version

Usage:
1. Delete/disable/reset MagiskHidePropsConfig (if installed).
2. Just install it over old Universal SafetyNet Fix and reboot device.

Many thanks to @1nikolas for integrity checker.

Source code: https://github.com/Displax/safetynet-fix/tree/integrity
Thx for the zip. Basic check and CTS still fails. Not sure what to configure to hide root.

Magisk is hidden. Have configured deny list to check all Google play services. Not sure what I did is right.
 

ipdev

Recognized Contributor
Feb 14, 2016
1,917
1
3,512
Google Nexus 10
Nexus 7 (2013)
OMG!!! "gms S/N pass" 'pw" "pi api" all these abbreviated terms! I know what most of these mean now, but people looking back at this is gonna get confused how often y'all use this...
Hi all. :)
Quick PSA.
[Public Service Announcement.]

API is short for "Application Programming Interface".

GMS is short for "Google Mobile Services".

SN (S/N) in this thread has become shorthand for "SafetyNet".

I am not sure if/when PI became shorthand for "Play Integrity".

pw (PW ) is @pndwal's signature. 🙃

Cheers all. :cowboy:
 

ipdev

Recognized Contributor
Feb 14, 2016
1,917
1
3,512
Google Nexus 10
Nexus 7 (2013)
No, I meant what is gms? Is that a zip or an apk I can download?
Let Google (PlayStore) update them to the current versions.
GMS, YASNAC, ...

Google will update them to the newest version that is set to your account(s).
Might be newer or older than another account.
Normally based off of the version Google set to the primary account you used to set up the device.


Cheers. :cowboy:
 

pndwal

Senior Member
Hi all. :)
Quick PSA.
[Public Service Announcement.]

API is short for "Application Programming Interface".

GMS is short for "Google Mobile Services".

SN (S/N) in this thread has become shorthand for "SafetyNet".

I am not sure if/when PI became shorthand for "Play Integrity".

pw (PW ) is @pndwal's signature. 🙃

Cheers all. :cowboy:
Thought I'd spelt it out too... Praps I hadn't. 😜
https://forum.xda-developers.com/t/magisk-module-universal-safetynet-fix-2-3-1.4217823/post-87257633 P(ast) W(ondering) 🙃
 
Last edited:

casabel

Senior Member
Jul 17, 2013
142
16
latest magisk (zygisk)

I have google play services 22.26.15
playstore 31.7.27-21 (0) PR

the safetynetfix (last 2.3.1) does not certify the playstore
tried force stop , clear data etc
 
Last edited:

LedgendaryEpics

Senior Member
Jun 14, 2018
195
51
No, not old Yet Another SafetyNet Attestation Checker, but that showed old Google Play Services (pre Play Integrity Application Programming Interface) who's processes are based on Google Mobile Services in your Screenshot, so you need to update this ...

I said update Google Play Store simply because this may have been preventing use of latest Google Mobile Services, A(lso) K(nown) A(s) Google Play Services... I don't know if this necessarily results... But I'm Past Wondering... 😜


BTW, FWIW these are common / good acronyms here, and we use 'em for economy like you use OMG... 🙂 PW
Sorry my frustration was kinda like this --> [omg ttyl ymbf itww and btw lmk if yk me to send you my ffl to csi lol] It's confusing using it all at once is what I was getting at not passively.
 
  • Haha
Reactions: pndwal

hulyahulya

Senior Member
Feb 19, 2019
168
10
im using mi10t magisk 20.4 android 10. i tried all safetyfix didnt pass. is there and moddded version for solve ?
 

zgfg

Senior Member
Oct 10, 2016
7,801
5,209
im using mi10t magisk 20.4 android 10. i tried all safetyfix didnt pass. is there and moddded version for solve ?
There is and it was posted in this thread. Practically all posts during the last two weeks are about the same things

However, the mod version was made for Zygisk, hence it requires Magisk v25
 

hulyahulya

Senior Member
Feb 19, 2019
168
10
There is and it was posted in this thread. Practically all posts during the last two weeks are about the same things

However, the mod version was made for Zygisk, hence it requires Magisk v25
For android 10 last version magisk 20.4. if flash high magish than 20.4. android 10 bootloop
 

Top Liked Posts

  • There are no posts matching your filters.
  • 5
    So 'a boring or unenterprising person' or a fan of "Casey Jones"?... You don't need to answer that! 😜
    "And you know that notion just crossed my mind." 🙃

    Had a quick look at mHide SafetyNet project though...
    Just from this:

    Magisk Module
    Module to help pass SafetyNet on devices that do not support hardware attestation...

    This module will
    • Generate a list of 'sensitive' properties on the device and set the values to the 'safe' setting(s) during boot.
    • Check and adjust some 'sensitive' properties during boot.
    • Set Magisk's Denylist to enforcing.
    • Add part of PlayServices to the DenyList.
    Requires Zygisk to be enabled in Magisk.
    ... I'm wondering:
    - Could this be made to be an ideal solution for older devices in the event that Zygisk fix in modded USNF cannot be activated for A7 and lower?
    That is the idea (attempt). 🙃

    Ie.
    • Do adjustments to sensitive props target only com.google.android.gms.unstable?
    • Can we not set Denylist to enforcing (for use with Shamiko etc)?
    • Can we do targeted hiding of root from com.google.android.gms.unstable process instead of adding this to denylist (like USNF)?
    (I'm assuming Magisk path is always in /sbin in legacy ramdisk booting devices; is this correct?)
    • Can we do com.google.android.gms.unstable targeted spoofing of the same old A6 fingerprint prop as @Displax's USNF mod uses to fix CTS Profile Match in uncertified ROMs? (Possibly this could be enabled as an option if there's any benefit leaving original fingerprint as is where ROM is stock... I'm not sure there is however...)

    At the time I started mHide SafetyNet, the only way to access the denylist was when enforcing.
    The only way to "hide" Magisk was to add SafetyNet and (if needed) GMS to the denylist.
    A lot has changed since then and part of the reason I shelved the project.
    mHideSN still works on newer devices that do not support 'Hardware attestation'.
    Plan to update and cleanup one more time before archiving the repo.

    ---

    As for merging parts of mhsn into USNF..

    The 'com.google.android.gms' part is only to "hide" Magisk from SafetyNet when enforcing the Denylist.
    Only added on Android 7.x and older with Magisk 24.x and newer.
    Adapted from the 'MagiskHide' code purge. Lines 230-231 | Lines 249-256
    Became the 'set_default_list' function.​

    Since there are now other methods to "hide" Magisk..
    I currently only included a denylist check for Android 7.x and below.
    Not the part to enforce the denylist.

    Not sure if other methods like 'Shamiko' work on Android 7.x and below?

    When other methods of "hiding" Magisk started coming out.
    Most of them using the denylist (instead of creating their own list).
    I was not sure if any current or future, needed to add gms to the denylist list?
    - Part of the reason for commit.

    ---

    Setting the sensitive [secure] prop(s) to the safe value is only limited to what I and others have found.
    This part works across all Android versions.
    Using a system.prop file for some and the resetprop command in the service script for others.​

    The 'system.prop' file is generated during the install.
    I tried to move them all into the service and/or post-fs script(s) to be more dynamic (check and adjust during boot) but, ran into some issues.
    Some device/manufacture props do not exist until very late after boot complete if at all.
    So back to creating a system.prop file during the module install.​

    If the following prop(s) exist, it is added to the system.prop file regardless of the current value.
    The prop is added with the safe value.
    I would prefer to only add insecure props with the safe value but, this is a work-a-round in case the props are set by another module(s).​
    These props will be set shortly after the post.fs stage.
    ro.adb.secure=1
    ro.boot.selinux=enforcing
    ro.boot.warranty_bit=0
    ro.build.tags=release-keys
    ro.build.type=user
    ro.debuggable=0
    ro.is_ever_orange=0
    ro.odm.build.tags=release-keys
    ro.odm.build.type=user
    ro.product.build.tags=release-keys
    ro.product.build.type=user
    ro.system.build.tags=release-keys
    ro.system.build.type=user
    ro.vendor.boot.warranty_bit=0
    ro.vendor.build.tags=release-keys
    ro.vendor.build.type=user
    ro.vendor.warranty_bit=0
    ro.warranty_bit=0
    Props that are checked and adjusted if need be in service script.
    If 'ro.boot.mode' is recovery, set to unknown
    If 'ro.bootmode' is recovery, set to unknown
    If 'vendor.boot.mode' is recovery, set to unknown

    If 'ro.boot.hwc' is CN, set to GLOBAL
    If 'ro.boot.hwcountry' is China, set to GLOBAL

    If 'ro.build.selinux' exists, delete (remove) it.
    I still question this one but, it was part of 'MagiskHide'.
    'ro.boot.flash.locked' if not 1, set to 1
    'ro.boot.vbmeta.device_state' if not locked, set to locked
    'ro.boot.verifiedbootstate' if not green, set to green
    'ro.boot.veritymode' if not enforcing, set to enforcing
    'ro.secure' if not 1, set to 1
    'sys.oem_unlock_allowed' if not 0, set to 0
    'vendor.boot.vbmeta.device_state' if not locked, set to locked
    'vendor.boot.verifiedbootstate' if not green, set to green

    Currently USNF includes a 'system.prop' file.
    By generating the 'system.prop' file during the install instead, we can check if the prop exists before adding it.
    This will help from adding non-native props to the device.
    Currently any one using USNF has the OnePlus and Samsung props set.
    No matter if it is a Google, LG, Motorola, Poco, ...., Xiaomi device.

    ---

    Without the Zygisk part of the module, You would have to set the fingerprint globally.
    The same as the MHPC module does.
    Set props early (post-fs) you will change it across the board.
    Set props late (service) you will set it after system has started.
    For example of the difference between setting props early and late, see my question and flar2's response in the DevCheck thread - Post #258.​

    ---

    Hope it helps explain more than confuse. 🙃

    Cheers. :cowboy:
    5
    Strong integrity = hardware attestation, basically, so no, no way to fix AFAIK. OnePlus devices at least up to the OnePlus 9 Pro still shipped stock with broken hardware attestation, so there's no way at all of getting it working on those devices.
    4
    That's what I have... (But Xiaomi device w/ A10)...
    The 1st thing i did was to put play services and frameworks to denaylist.
    ... Better remove everything from there except bank apps etc... PW
    4
    Hi all,

    Does anyone know if there is any fix for the "MEETS_STRONG_INTEGRITY" ?
    From what I've read, the "MEETS_DEVICE_INTEGRITY" and "MEETS_BASIC_INTEGRITY" are fixable using Displax's fix on the USNF (thank you so much for this).

    However, i didn't found anything related the strong integrity.
    Is this correct, or have I missed some step?
    I'm facing this on a OnePlus 5 and a Nothing 1

    Thanks
    Yes; purchase an Asus ROG Phone 3!

    This is the only device I know of where the OEM has messed up the Keymaster implementation in such a way that it will pass MEETS_STRONG_INTEGRITY verdict w/ unlocked bootloader... Other device's may also...

    An app requiring new MEETS_STRONG_INTEGRITY is equivalent to requiring old CTS Profile Match using HARDWARE_BACKED evaluationType. As such, banks have not yet required either (although they could) as doing so would exclude users / customers with
    1) Many late devices (many OnePlus and others) with broken keymaster implementations.
    2) Devices launched with Android 7 and earlier, even if running late Android.

    🤠 PW
    3
    guys this is new. this app detected shamiko

    edit:zygisk denylist fixed this. this is the first time i encounter shamiko will be the culprit
    Screenshot_2022-09-02-07-25-47-473_com.GameDuo.MadArcher.jpg
  • 276
    Universal SafetyNet Fix
    Magisk module​

    Magisk module to work around Google's SafetyNet attestation.

    This module works around hardware attestation and recent updates to SafetyNet CTS profile checks. You must already be able to pass basic CTS profile attestation, which requires a valid combination of device and model names, build fingerprints, and security patch levels.

    If you still have trouble passing SafetyNet with this module, use MagiskHide Props Config to spoof a certified device profile. This is a common issue on old devices, custom ROMs, and stock ROMs without GMS certification (e.g. Chinese ROMs).

    Android versions up to 13 Beta 3 are supported, including OEM skins such as Samsung One UI and MIUI.

    How does it work?
    The way this workaround works is relatively low-level. An in-depth explanation, as well as source code and ROM changes, can be found on GitHub.

    Ideally, this workaround should be incorporated in ROMs instead of overriding part of the ROM in a Magisk module. The ROM changes for it are linked above for ROM developers to use.

    Downloads
    Downloads and changelogs can be found on GitHub. The topmost release is the latest.

    Latest release
    v2.3.1

    Highlights
    • Fixed fingerprint on OxygenOS/ColorOS 12 (@osm0sis)
    • Support for Magisk 24+ module updates (@benjibobs)
    • Restored support for Android 7
    Other changes
    • Spoofed OnePlus OEM unlock status for futureproofing (@osm0sis)
    • Minor code improvements
    This version only supports Zygisk (Magisk 24 and newer).

    Source code

    If this helped you, please consider donating to support development: recurring donation for sustainable support or buy me a coffee. Thank you for your support!
    131
    So, here is my modification of USNF with Play Integrity API bypass.

    It changes fingerprint to old 7.1.2 6.0 (LOL) and apply it only for GMS SafetyNet process (by Zygisk injection), so your original prints/security path level does not change. This avoids many side effects/problems with global props changing.

    Updated:
    Drop fingerprint to lowest possible (6.0) to ensure that no one use same Android version

    Usage:
    1. Delete/disable/reset MagiskHidePropsConfig (if installed).
    2. Just install it over old Universal SafetyNet Fix and reboot device.

    Many thanks to @1nikolas for integrity checker.

    Source code: https://github.com/Displax/safetynet-fix/tree/integrity
    30
    Folks, the SafetyNet API was depreciated last Month with 'full turndown' slated for June 2024 and the introduction of the new Play Integrity API. It has also become clear that Google apps are simply the first to adopt the long foretold Play Integrity API; all responsible banks are bound to follow suit in short order, and at least before the June 2023 migration deadline.

    This means (assuming fully deployed Hardware Key Attestation doesn't come first 😬) that the need for a 'Universal Play Integrity Fix' has become quite urgent.

    We currently have workarounds involving using older fingerprint props by means of MHPC module (similar to fix needed for uncertified ROMs), but success/mileage varies per device and users of regular bank apps / gamers etc on stock devices will all soon be forced to experiment with MHPC prints also... This is hardly ideal.

    So I've made an issue report/request on USNF GitHub as follows. This information may be insightful to users here also...

    Please let me know here if I have missed anything important, or add any technically relevant details there...

    PLEASE DON'T spam that issue with unimportant details or queries... (The previous issue is already burgeoning w/ OT.) That's what this thread is for... 😛 :

    Please make 'Universal Play Integrity Fix' ... #204

    Fixes to expand 'Universal SafetyNet Fix' to become a 'Universal Play Integrity Fix' are needed.

    The SafetyNet Attestation API is deprecated and has been replaced by the Play Integrity API.
    https://developer.android.com/training/safetynet/deprecation-timeline

    New Play Integrity API is rolling out from June 2022, and evidently Google Play Store and Google Pay/Wallet are already using its verdict.

    June 2023 is the Migration Deadline for app developers. This will also allow their older app versions to continue working with SafetyNet API for a limited time.

    June 2024 is the End of life for SafetyNet API; its attestation will no longer work for any app version, and apps will receive an error.

    The new Integrity API has more strict requirements for passing attestation, and this seems to be enforced in Android 11+ particularly.

    Currently (evidently due to this), device security issues are detected by

    1. Google Pay/Wallet, which may state "You can't pay contactless with this device...(Your phone doesn't meet software standards)" on updating or attempting to add a card despite in-app Contactless setup stating "You're ready to pay contactless with your phone (Your phone meets security requirements)", and
    2. Google Play Store, which may no longer show apps like Netflix w/ Android 11+ (developers can 'exclude devices from their app's distribution based on their device integrity . Device exclusion is based on the latest device integrity verdict that the Play Store app receives from the Play Integrity API') despite in-app settings showing Play Protect 'Device is certified' result.
    I'm guessing that the 'passing' messages based on the old SafetyNet API are likely to realigned soon.

    A workaround that evidently allows Play Integrity API attestation to pass (and solve Wallet / Play Store issues also) has been discovered. It involves spoofing an earlier certified ROM, generally by using MagiskHide Props Config module to change fingerprint prop to one for Android 10 or earlier.

    Undoubtedly other apps will begin to detect broken TEE etc / fail as they migrate or begin integrating the Play Integrity API.

    A 'Universal Play Integrity Fix' will evidently require more understanding / research into how the fingerprint prop is used, and possibly other new behaviours.

    Here's hoping... 🙃 PW
    28
    ok so there is a solution

    get the magisk module riru

    after you get riru get LSPosed

    after you get LSPosed get xprivacylua (in the LSPosed app)

    select play services in the xprivacylua settings IN the LSPosed app

    AND in the xprivacylua app itself after you've restarted.

    clear play service data

    check safetynet in magisk - enjoy?

    I would reboot between each step just to be safe but I know it's necessary to load the xprivacylua module

    s/o to saitama_96 for discovering it or so I'm led to believe
    26
    Some useless statistics:
    My MOD was downloaded over 2k times.
    1,5k from XDA
    800 from GitHub

    I'm glad i made 2000+ people happier :) Thank you!