[Discussion] Magisk - The Age of Zygisk.

Search This thread

pndwal

Senior Member
Why kdragon doesn't update it, or there are no good solution for that?
As you know, he's aware and thanked @Displax for his fix / PR... And he does clearly want to improve the solution and scope the method
to Play Integrity code by identifying methods it calls near the beginning and end of integrity checks, and adding hooks to set and restore the fingerprint ...
https://github.com/kdrag0n/safetynet-fix/pull/207#issuecomment-1195452147

He has already suggested an idea for adding an end hook, but said:
Of course, this is all theoretical as it depends on the exact order of steps in the integrity checking process. Worst case scenario, we could just sleep for 1 second or so and revert the fingerprint change in a background thread. Not sure when I'll have time to look into it myself, but feel free to try implementing this idea: ...
https://github.com/kdrag0n/safetynet-fix/pull/207#issuecomment-1200437447
- So it seems he's in no rush himself, and he's happy for other Devs to test / contribute (although none appear to have tried adding hooks etc yet)...

I guess he'll do more on this PR as time allows... If other Dev's haven't had time to test even proposed
  • Set the fingerprint in the key attestation hook
  • Spawn a thread to revert it after 3 seconds:
thread(daemon = true) {
Thread.sleep(3000)
/* revert */
}
idea, then he may think 'why should I rush?'... He probably has a ton of more important maintenance on his plethora of apps, utilities, Proton ROM / kernel builds, etc to do...

Meanwhile, @Displax solution seems a pretty good one to tide us over, for most devices... PW
 

Tech = Spy-Biz

Account currently disabled
May 25, 2022
32
24
Now 2 bank apps are working out of 3 after the recent update to the bank apps.
I used A11 GSI, PhhTreble App Signature Spoofing, TWRP, Magisk 24.3 & a couple of important modules like Hide-User-Debug, USNF Moded, Hide-Props-Config, microG Gapps module safety net : All passed, Installed the bank apps through Aurora.
For the 3rd bank app Dev Options need to be OFF & Only PlayStore Install allowed not PackageInstaller.
Needless inconvenience from banks, they can just add more steps of verifications instead like Voice Recognition IVR AI (Voice Recognition IVR AI Bots are already functional in these banks helplline numbers) so they can just use that for bank app login verifications on top of other verifications. Its none of the banks business to stop their clients from using rooted devices. Theyre just adding another hindrance to smooth banking operations thereby possibly hampering their own business by wasting both their and their clients time. Thats Stupidity!
Bank Devs did you hear? Pls discuss this with your bosses. Its like going backwards instead of forward.
 

HippoMan

Senior Member
May 5, 2009
3,536
2,675
Hippoland
... Needless inconvenience from banks ... its none of the banks business to stop their clients from using rooted devices. Theyre just adding another hindrance to smooth banking operations thereby possibly hampering their own business by wasting both their and their clients time. Thats Stupidity!
Bank Devs did you hear? Pls discuss this with your bosses. Its like going backwards instead of forward.
I totally agree!

And as I've mentioned here before, every desktop computer is a rooted device, and of course we don't see the banks trying to hinder us from accessing their services from our computers.

And banks gladly issue us debit cards which we keep in our wallets that are just as easy to steal as mobile devices.

Rooted Android devices are just low-hanging fruit. And the amount of fraud that's prevented by trying to fight against Android root is minuscule, given the extremely small percentage of mobile device users who want to use rooted Android devices. I wouldn't be surprised if the amount of money that banks spend for anti-Android-modding software development exceeds the maximum amount of money that could be lost via the hacking of modded Android devices.
 

zgfg

Senior Member
Oct 10, 2016
10,743
9,344
Redmi K20 / Xiaomi Mi 9T
Xiaomi Mi 11
Currently, I have no info about Device Certified or not in Google Play Settings (screenshot)

I observed that yesterday night when I upgraded my Xiaomi 11 Lite 5G NE from the previous week Xiaomi.eu weekly (MIUI 13/A12) to the current.
I thought it would become Certified over the day, but it's still in limbo

Frankly, last week when I installed Xiaomi.eu Weekly (first time) I forgot to check

Everything else is ok, SafetyNet (with Basic CTS), Play Integrity (Basic Integrity), Play Protect is ok, Netflix eg running with L1, etc

I'm kind of worried to wipe Google Play Data - not knowing would it become Certified or Not

I'm pretty sure I did have similar cases in the past with previous devices, ROMs, Magisk setup, but they used to settle down by itself in
 

Attachments

  • Screenshot_2022-09-05-18-21-38-981_com.android.vending.jpg
    Screenshot_2022-09-05-18-21-38-981_com.android.vending.jpg
    308.6 KB · Views: 130

zgfg

Senior Member
Oct 10, 2016
10,743
9,344
Redmi K20 / Xiaomi Mi 9T
Xiaomi Mi 11
Currently, I have no info about Device Certified or not in Google Play Settings (screenshot)

I observed that yesterday night when I upgraded my Xiaomi 11 Lite 5G NE from the previous week Xiaomi.eu weekly (MIUI 13/A12) to the current.
I thought it would become Certified over the day, but it's still in limbo

Frankly, last week when I installed Xiaomi.eu Weekly (first time) I forgot to check

Everything else is ok, SafetyNet (with Basic CTS), Play Integrity (Basic Integrity), Play Protect is ok, Netflix eg running with L1, etc

I'm kind of worried to wipe Google Play Data - not knowing would it become Certified or Not

I'm pretty sure I did have similar cases in the past with previous devices, ROMs, Magisk setup, but they used to settle down by itself in
After wiping only the Cache for Playstore and waiting few more hours, now Certified
 

Attachments

  • IMG_20220905_224447.jpg
    IMG_20220905_224447.jpg
    279 KB · Views: 132

zgfg

Senior Member
Oct 10, 2016
10,743
9,344
Redmi K20 / Xiaomi Mi 9T
Xiaomi Mi 11
Zygisk-LSPosed update to v1.8.4 (6609) - updated on two phones, ok

Regarding to LSPosed modules:
-CustoMIUIzer13 (for MIUI 13/A 12) updated to 22.09.07
- I also use GravityBox (S) for A12
 

Attachments

  • IMG_20220915_063905.jpg
    IMG_20220915_063905.jpg
    259.7 KB · Views: 121
  • Screenshot_2022-09-15-07-56-05-138_com.android.shell-edit.jpg
    Screenshot_2022-09-15-07-56-05-138_com.android.shell-edit.jpg
    214.4 KB · Views: 112
Last edited:
  • Like
Reactions: rodken

sir_overthrow

Senior Member
Apr 1, 2014
90
8
Móstoles
Moto Z2 Force
Here you have the official SafetyNet API specifcation:

You can see that no response or timeout means that somewhere in the request/response channel (call to GMS, call to Google servers, responses back) is broken.
It does not mean that CTS or Basic integrity fail (hence you cannot fix with USNF or MHPC), but there is no response (and therefore no verdict about - they might be perfectly passing if attestation channel was not broken)

If one SN checker fails to answer, it can be that that something is wrong with that checker (or they went over quota with the number of requests to Google today or so).
But if it happens to you with different SN checkers (YASNAC now works perfectly for me), the pipe is broken in your ROM or on your line

Eg, ask in the group where you took the ROM from, how they test and pass SN
It happens to me after a while of restarting the mobile. I use mokee android 11 on a moto z2 force. This same problem also happens to me on lineages 18.1 and 19.1.

Reboot, use YASNAC and it passed! but after a while the timeout appears. The funny thing is that from that moment I can not see the files of the internal memory. Although if I search it appears lol... I have used hide props magic all possible configurations, shamiko and safetynet 2.3.1 including a mod from this thread (By display) and without results. What am I doing wrong?
 

zgfg

Senior Member
Oct 10, 2016
10,743
9,344
Redmi K20 / Xiaomi Mi 9T
Xiaomi Mi 11
It happens to me after a while of restarting the mobile. I use mokee android 11 on a moto z2 force. This same problem also happens to me on lineages 18.1 and 19.1.

Reboot, use YASNAC and it passed! but after a while the timeout appears. The funny thing is that from that moment I can not see the files of the internal memory. Although if I search it appears lol... I have used hide props magic all possible configurations, shamiko and safetynet 2.3.1 including a mod from this thread (By display) and without results. What am I doing wrong?
Have you tried without MHPC - just with USNF 2.3.1-mod

Otherwise, must be something specific to your device/ROM
 
  • Like
Reactions: 73sydney

sir_overthrow

Senior Member
Apr 1, 2014
90
8
Móstoles
Moto Z2 Force
It is curious because there is an unofficial version of lineageos 19.1 that works just installed yasnac. No timeout. AT the moment you use Magisk (in my case to create whatsapp mount part from internal to SD for example). It behaves as mentioned. If I don't change the fingerprint I can't use banks.

But I don't reach that level of depth. Thank you very much for answering ♥
 

pndwal

Senior Member
It is curious because there is an unofficial version of lineageos 19.1 that works just installed yasnac. No timeout. AT the moment you use Magisk (in my case to create whatsapp mount part from internal to SD for example). It behaves as mentioned. If I don't change the fingerprint I can't use banks.

But I don't reach that level of depth. Thank you very much for answering ♥
Unofficial LOS, like many custom ROMs, manipulates props (eg builds with certified fingerprint and matches security patch date) and integrates @kdragon SafetyNet fix (as per his Proton builds) so these pass SafetyNet w/o Magisk... Scores of ROMs are now building @Displax's fix for new Play Integrity deviceIntegrity verdict (Ie. adding certified but mismatched device fingerprint to bypass enforcement of a hardware based attestation verdict) into their frameworks_bases also... See the string of references at the end of this issue:
https://github.com/kdrag0n/safetynet-fix/pull/207

Official LOS will never do this due to their strict policy not to tamper security signals...

That's why @Displax modded USNF module (not official) may be needed for many bank apps to work w/ official LOS as suggested above (and no need for MHPC)...

👀 PW
 
Last edited:
  • Like
Reactions: 73sydney and rodken

sir_overthrow

Senior Member
Apr 1, 2014
90
8
Móstoles
Moto Z2 Force
I don't know English very well (null). I understand that they are still working on the Universal Play Integrity Fix. I tried the XDA Mod from safetynet but after a while, timeout. I read the forums that you have written to me but I don't really know what I should look for. Should I wait patiently? Thank you for your patience.
 

Top Liked Posts

  • 4
    I would bet a small fortune on that is what triggers it. Many other banking and multimedia / DRM protected app is triggered simply by having "linage" in the list of props (build.prop for example). Try this: mount /system read-write and remove a single char from all prop values that contains lineage in it (ex. lineage -> lineag) then reboot and likely it won't be triggered anymore. It will break the OTA process since the updater will not detect the build properly.. many banking apps are triggered like this (when using crDroid, LineageOS, etc..) and some of these apps are triggered by simpl using Xiaomi.EU for sure (but eliminating every xiaomieu and xiaomi.eu will cause an unbootable state - at least according to my experiments.. YMMV)..
    You're GREAT!!

    Thanks a lot!

    It's NOT necessary to change all lineage strings!

    It just ONLY looks in build.prop for the existence of "ro.lineage.build.version". If the name of this prop is changed to "ro.whateveryouwant.build.version", then Payback works again.

    Thanks a lot again.

    samhhmobil
    4
    I would bet a small fortune on that is what triggers it. Many other banking and multimedia / DRM protected app is triggered simply by having "linage" in the list of props (build.prop for example). Try this: mount /system read-write and remove a single char from all prop values that contains lineage in it (ex. lineage -> lineag) then reboot and likely it won't be triggered anymore. It will break the OTA process since the updater will not detect the build properly.. many banking apps are triggered like this (when using crDroid, LineageOS, etc..) and some of these apps are triggered by simpl using Xiaomi.EU for sure (but eliminating every xiaomieu and xiaomi.eu will cause an unbootable state - at least according to my experiments.. YMMV)..
    You can try the following - to avoid possibly breaking OTA

    If you eg use Systemless hosts, then go to its folder (by root explorer like MixPlorer):
    /data/adb/modules/hosts

    And create there a file:
    system.prop

    containing:
    ro.lineage.build.version=

    Reboot, and the given prop shall be systemlessly removed (unless the ROM enforces the prop only after booting is completed)

    When you want to do OTA, rename that system.prop to eg system.bak and reboot - you will again have the original ROMs prop(s)

    You can similarly (miss)use any other module's folder and if it already has the system.prop, just add your lines in and reboot
    2
    Does LSPosed+ Zygisk work if all LSPosed modules are disabled? PW
    No, they don't :(
    1
    Thank you. With LSposed disabled Zygisk runs, but it's LSposed why I need Zygisk :-(
    1
    Thank you. With LSposed disabled Zygisk runs, but it's LSposed why I need Zygisk :-(
    Does LSPosed+ Zygisk work if all LSPosed modules are disabled? PW
  • 4
    I would bet a small fortune on that is what triggers it. Many other banking and multimedia / DRM protected app is triggered simply by having "linage" in the list of props (build.prop for example). Try this: mount /system read-write and remove a single char from all prop values that contains lineage in it (ex. lineage -> lineag) then reboot and likely it won't be triggered anymore. It will break the OTA process since the updater will not detect the build properly.. many banking apps are triggered like this (when using crDroid, LineageOS, etc..) and some of these apps are triggered by simpl using Xiaomi.EU for sure (but eliminating every xiaomieu and xiaomi.eu will cause an unbootable state - at least according to my experiments.. YMMV)..
    You can try the following - to avoid possibly breaking OTA

    If you eg use Systemless hosts, then go to its folder (by root explorer like MixPlorer):
    /data/adb/modules/hosts

    And create there a file:
    system.prop

    containing:
    ro.lineage.build.version=

    Reboot, and the given prop shall be systemlessly removed (unless the ROM enforces the prop only after booting is completed)

    When you want to do OTA, rename that system.prop to eg system.bak and reboot - you will again have the original ROMs prop(s)

    You can similarly (miss)use any other module's folder and if it already has the system.prop, just add your lines in and reboot
    4
    I would bet a small fortune on that is what triggers it. Many other banking and multimedia / DRM protected app is triggered simply by having "linage" in the list of props (build.prop for example). Try this: mount /system read-write and remove a single char from all prop values that contains lineage in it (ex. lineage -> lineag) then reboot and likely it won't be triggered anymore. It will break the OTA process since the updater will not detect the build properly.. many banking apps are triggered like this (when using crDroid, LineageOS, etc..) and some of these apps are triggered by simpl using Xiaomi.EU for sure (but eliminating every xiaomieu and xiaomi.eu will cause an unbootable state - at least according to my experiments.. YMMV)..
    You're GREAT!!

    Thanks a lot!

    It's NOT necessary to change all lineage strings!

    It just ONLY looks in build.prop for the existence of "ro.lineage.build.version". If the name of this prop is changed to "ro.whateveryouwant.build.version", then Payback works again.

    Thanks a lot again.

    samhhmobil
    3
    (3) Same device: unlocked bootloader, CustomRom (LineageOS 17/18/19 or 20), NOT rooted, nothing else installed, and: Payback does NOT work.
    I would bet a small fortune on that is what triggers it. Many other banking and multimedia / DRM protected app is triggered simply by having "linage" in the list of props (build.prop for example). Try this: mount /system read-write and remove a single char from all prop values that contains lineage in it (ex. lineage -> lineag) then reboot and likely it won't be triggered anymore. It will break the OTA process since the updater will not detect the build properly.. many banking apps are triggered like this (when using crDroid, LineageOS, etc..) and some of these apps are triggered by simpl using Xiaomi.EU for sure (but eliminating every xiaomieu and xiaomi.eu will cause an unbootable state - at least according to my experiments.. YMMV)..
    2
    It seems like the Zygote Injection is detectable now. For me the "Payback" app wont work anymore.

    S20U, Android 13 latest security patch, Magisk Delta (Kitsune 26400), Magisk Hide, Zygisk, lsposed, HMA.
    Welcome on board!

    At first: If you use lsposed, zygisk may be detectable again.

    Without(!) lsposed the following are my results:

    Payback is not detecting zygisk!

    (1) Payback IS(!) working with unlocked bootloader, StockRom(!), no root, but due to the unlocked bootloader no Device-Integrity.

    (2) Payback IS(!) working with unlocked bootloader, StockRom(!), Magisk 27(hidden), active zygisk, Shamiko 1.0.1 (Google GMS, Payback — and other apps — on denylist, denylist not enforced), PlayIntegrityFix 15.9.7 by Chiteroman.

    In THESE two configurations Payback works!

    But...
    (3) Same device: unlocked bootloader, CustomRom (LineageOS 17/18/19 or 20), NOT rooted, nothing else installed, and: Payback does NOT work.

    (4) Changed to the second (rooted) scenario, but only changed from StockRom to CustomRom, and: Payback does NOT work.

    So... Payback does not check the status of the bootloader.

    Payback even does NOT check Device-Integrity (It works with StockRom and unlocked bootloader without root and without Device-Integrity).

    With the usual way (hidden-magisk, active zygisk, denylist, shamiko, playintegrityfix, but NO lsposed) Payback CANNOT detect root or zygisk (tested with use of a StockRom).

    But: Payback detects the existence of a CustomRom, even without root, and refuses to work.

    So, if you (or somebody else) have a solution to hide the use of a CustomRom, feel free to post the solution here. (Even Momo detects the CustomRom... and... BTW, Momo detects zygisk again, when I use lsposed.)

    samhhmobil

    EDIT (2024-04-19):
    Due to the hint of @crok.bic below I changed just only in /system/build.prop the name of "ro.lineage.build.version" to "ro.whateveryouwant.build.version" (set whateveryouwant to any word you want, for example "hide" or "donaldduck" or "strange" or... ...)

    With this small spoof Payback works not just only in the scenarios (1) and (2), but now even in (3) and (4).

    Thanks again to @crok.bic
    2
    Does LSPosed+ Zygisk work if all LSPosed modules are disabled? PW
    No, they don't :(
  • 145
    This is a discussion and help thread for the newer versions of Magisk.

    The main goal of this thread is to help users migrate to Magisk v24+
    • SafetyNet
      Basic integrity Pass
      CTS profile match Pass
    • Play Protect certification
      Device is certified

    Feel free to discuss or give links to other Magisk related issues.
    Fixes for gPay, banking apps and/or other apps and games that detect a 'compromised' Android system.
    Please try to restrain from discussing alternative (unofficial) Magisk builds that include changes that were removed or can not be included in the official Magisk builds. 🙃

    Please read John's State of Magisk (medium.com)

    Starting with the Magisk 23 (23010) canary builds.
    • MagiskHide is removed.
      MagiskHide masked the sensitive properties of the device to hide it from SafetyNet.
      Renaming (repackaging) the Magisk app is/was not part of MagiskHide.
      You still have the option to Hide the Magisk app under setting.​
    • Magisk Module online Repo is removed.
      The Magisk Module online Repo is still available and can be accessed outside of the Magisk app.​
    • Everything SafetyNet is removed.
      This includes the SafetyNet check that was incorporated into the Magisk app.​
    • Zygisk is introduced.
      Zygote + Magisk = Zygisk​
    • The Deny list replaces the Hide list.
      The Hide list (more or less) hid Magisk from the process on the list.
      The Deny list is similar but instead of hiding Magisk from the process, Magisk is unloaded so there is nothing to hide.​

    Starting with the Magisk 23 (23017) canary builds.
    • Magisk supports update channels per module.
      Each module can include it's own update link.​
    • Hide Magisk offline.
      You do not need internet connection to rename (repackage) the Magisk app.​

    What does this mean?
    Not much.
    It is just the next step in Magisk's development.
    Zygisk is a big step forward. ;)

    Even before these changes in Magisk, the xda family and the Android community have always been active and willing to share. :D

    Jump to Post


    This is post will be updated once Magisk v24 is released.
    74
    Magisk
    The Magic Mask for Android.

    Magisk Links:
    GitHub
    Release Notes

    Download Links:
    Stable and Beta releases.
    Canary
    • GitHub
      The notes.md file is the change log.
      The app-debug.apk is Magisk canary.
      Click on app-debug.apk and choose View Raw or click on the Download option.​

    Credits:
    topjohnwu
    All who contribute and support this project.
    62
    Modules

    MagiskHide Props Config
    This module allows you to add, change and adjust prop values systemlessly using Magisk.​

    MagiskHide Props Config Links:

    Download Links:

    Credits:
    Didgeridoohan
    All who contribute and support this project.


    Universal SafetyNet Fix
    It has been a year now since kdrag0n figured out how to 'trick' SafetyNet.
    This 'trick' has been implemented properly into quite a few custom roms.
    For custom roms that do not include it and/or stock roms, he turned it into a module.​

    Universal SafetyNet Fix Links:

    Download Links:

    Credits:
    kdrag0n
    All who contribute and support this project.
    58
    Apps

    Fox's Magisk Module Manager
    This app allows you to manage and install Magisk modules.
    Including from an online repo.​

    Fox's Magisk Module Manager Links:

    Download Links:

    Credits:
    Fox2Code
    All who contribute and support this project.

    Play Intergrity API Checker
    This app shows info about your device integrity as reported by Google Play Services.
    If any of this fails could mean your device is rooted or tampered in a way (for example you have an unlocked bootloader).​

    Development:

    Download Links:

    Credits:
    1nikolas
    All who contribute and support this project.

    YASNAC - Yet Another SafetyNet Attestation Checker
    YASNAC (short for Yet Another SafetyNet Attestation Checker) is an Android app that demonstrates SafetyNet Attestation API.​

    YASNAC Links:

    Download Links:

    Credits:
    RikkaW
    All who contribute and support this project.
    49
    Force Basic Attestation

    Newer devices are designed to support hardware attestation.
    Currently there is no way to hide the sensitive device properties when checked using hardware attestation.​

    To get around this, kdrag0n figured out how trick SafetyNet that the device does not support hardware attestation.
    SafetyNet will then fall back to check using basic attestation.

    Note:
    This method will work for devices that support hardware attestation and devices that do not.
    • Enable Zygisk.
    • Install the USNF module.
    • Reboot

    To keep posts short, the instructions are hid by spoiler tags.
    If you have not installed Magisk.
    Follow the installation link in the Magisk post.​

    Download the Universal SafetyNet Fix module.
    Download link is in the Modules post.​

    1. Enable Zygisk
      • Open the Magisk app.
      • Go to Settings.
      • Scroll down to the Magisk section.
      • Toggle Zygisk on.
      • Go back to the Magisk Home screen.
    2. Go to Modules.
      • Select Install from storage.
      • Navigate to the Universal SafetyNet Fix module zip file and select it.
    3. Reboot.

    The USNF module will adjust the sensitive props that are needed to pass SafetyNet.
    Depending on the device and system (ROM) configuration, you might need to adjust a few more.
    See the Adjust Prop values post.​