[Discussion] Magisk - The Age of Zygisk.

Search This thread

zgfg

Senior Member
Oct 10, 2016
7,605
5,008
For the record:

Just switched from Momo 4.2.0 to 4.3.1 and Momo now additionally reports Found Zygisk - on both my two phones

I did not change Magisk (I was and I'm still on Canary 25101), I had and still have DenyList Unmount (not Shamiko) and Momo was/is enabled in DenyList (DenyList is not Enforced)

Moreover, on one of my phones Momo 3.2.1 now also additionally repots Found executable file "su " (I don't recall I have seen that ever before)

PS: Tried with Shamiko instead of DenyList Unmount, Momo 4.3.1 still detects Found Zygisk and on my Xiaomi 11 Lite 5G NE (A11) also Found executable "su"
 
Last edited:

J.Michael

Recognized Contributor
Jan 20, 2018
1,256
1,195
Samsung Galaxy Tab A series
Thanks. Don't really understand your answer so what causes this "refactoring" of magiskinit? Is it Magisk Bootloop Protector? What puzzles me is that Magisk 25.1 was working flawless for 3-4 days.
"Refactor" is a (relatively new, to me) word for "rearrange the pieces of a system". I think one Magisk release was advertised as being the result of restructuring the program -- no new features, no bjg fixes, just reorganizing the program itself.

You did not cause or choose to "refactor", except by choosing to update the version of Magisk. @huskydg's advice was "do not update Magisk right now, keep using the version that works for you".

If you really want to go down the rabbit hole of why 25.1 worked for says before having problems, you should go to github and try to engage a developer.

If, on the other hand, "worked flawlessly for 3-4 days" means "didn't get around to trying this one banking app for 3-4 days", then just let it go -- wait for another release of Magisk.
 
  • Like
Reactions: svendsvin

pndwal

Senior Member
Thanks. Don't really understand your answer so what causes this "refactoring" of magiskinit?...
Just to add the detail, and for anyone interested in what is "a full paradigm shift on how Magisk hot-patch(s) the device at boot":

Refactoring magiskinit = magiskinit-rewrite... "A significant portion of magiskinit (the critical software that runs before your device boots up) is completely rewritten from scratch..."
https://topjohnwu.github.io/Magisk/releases/25000.html#magiskinit-rewrite

It involves changes in the way Magisk boots (initialises) in 2SI* devices, as well as broader changes in the way sepolicy# rules are patched/loaded (injected).

Notes:
* All devices on Android 10+ with the exception (excluding Pixel 3/3a series) of Legacy SAR devices launched with Android 9 (2018-2019).
# Access control policies for Security-Enhanced Linux.

Changes:
  • [MagiskInit] Update 2SI implementation, significantly increase device compatibility (e.g. Sony Xperia devices)
  • [MagiskInit] Introduce new sepolicy injection mechanism
See diffs (changes) here, especially in details.md (Internal Details doc):
https://github.com/topjohnwu/Magisk/commit/4f1a1879e572891bc005b489f82421303f602f72?diff=split

👀 PW
 
Last edited:

pndwal

Senior Member
Further re. refactoring magiskinit (magiskinit-rewrite); It will break Direct Install to update Magisk in 2SI devices...

I put a lot about this in General Support/Discussion thread...

Basically, Direct install breaks due to previous Magisk injection method for 2SI devices (involving patching fstab) being incompatible with new Magisk...

Those facing issues (patching errors, bootloops etc) updating to 25.x (24303+) on 2SI devices need to do a fresh initial installation (patch/fastboot flash an original boot image) of Magisk again, thereby replacing the incompatible fstab-patched image...

It's a bit more complicated in configurations where disabling verity/verification to boot is still required (a number of custom kernels and possibly ROMs), which will need to be able to boot without Magisk prior to patching going forward...

Nb. Because verity/verification is no longer disabled 'in most scenarios', AVB (Android Verified Boot) will remain intact. This means a Red state verified boot issue (dm-verity corruption) is avoided which may actually have advantages for root-hiding...
https://source.android.com/security/verifiedboot/boot-flow

Of course, since an Orange state verified boot issue (UNLOCKED device) is reported, SafetyNet pass spoofing and, in many cases, other 'root' hiding will still be needed for apps requiring attestation to TEE...

👀 PW
 
  • Like
Reactions: svendsvin

J.Michael

Recognized Contributor
Jan 20, 2018
1,256
1,195
Samsung Galaxy Tab A series
...

It's a bit more complicated in configurations where disabling verity/verification to boot is still required (a number of custom kernels and possibly ROMs), which will need to be able to boot without Magisk prior to patching going forward...
...
Could you say this again?
What configuration does not need to be able to boot without Magisk?
Do you mean that it is necessary to boot the unpatched system at least once before trying to install Magisk? Not much of a burden -- I thought most people use the system being patched to run Magisk Manager to patch.
 

pndwal

Senior Member
Could you say this again?
What configuration does not need to be able to boot without Magisk?
No, configurations that couldn't before (relied on Magisk to strip AVB flags etc) will need to be able to boot without Magisk prior to patching going forward... Which is what I said. 😛
Do you mean that it is necessary to boot the unpatched system at least once before trying to install Magisk? Not much of a burden -- I thought most people use the system being patched to run Magisk Manager to patch.
Yes, to confirm kernel will boot because it won't with Magisk either after magiskinit refactoring... But this is NOT for most people; only for those using "a number of custom kernels and possibly ROMs" needing verity/verification disabled!... That means custom kernels like Kirisakura...

And most people "facing issues (patching errors, bootloops etc) updating to 25.x (24303+) on 2SI devices" only "need to do a fresh initial installation (patch/fastboot flash an original boot image) of Magisk again, thereby replacing the incompatible fstab-patched image"... That image only breaks the Direct Install option...

I actually responded to your earlier post with more details on this at the end of this post (scroll down):
https://forum.xda-developers.com/t/magisk-general-support-discussion.3432382/post-87068241
but I think you've missed it... 🙃 PW
 

silentuser143

New member
Jun 27, 2022
2
0
As usual so much information. Ah, you're using this phone and using those options. And you're trying to install that version of Magisk...

Sorry for being sarcastic, but if I'm already considering not to root my phone anymore, I really can't understand people rooting and modifying their phones without having any idea what they're doing.
Thank you for the encouragement sir
 

svendsvin

Senior Member
Oct 21, 2013
238
51
Lost in space
Xiaomi Redmi Note 7
Further re. refactoring magiskinit (magiskinit-rewrite); It will break Direct Install to update Magisk in 2SI devices...

I put a lot about this in General Support/Discussion thread...

Basically, Direct install breaks due to previous Magisk injection method for 2SI devices (involving patching fstab) being incompatible with new Magisk...

Those facing issues (patching errors, bootloops etc) updating to 25.x (24303+) on 2SI devices need to do a fresh initial installation (patch/fastboot flash an original boot image) of Magisk again, thereby replacing the incompatible fstab-patched image...

It's a bit more complicated in configurations where disabling verity/verification to boot is still required (a number of custom kernels and possibly ROMs), which will need to be able to boot without Magisk prior to patching going forward...

Nb. Because verity/verification is no longer disabled 'in most scenarios', AVB (Android Verified Boot) will remain intact. This means a Red state verified boot issue (dm-verity corruption) is avoided which may actually have advantages for root-hiding...
https://source.android.com/security/verifiedboot/boot-flow

Of course, since an Orange state verified boot issue (UNLOCKED device) is reported, SafetyNet pass spoofing and, in many cases, other 'root' hiding will still be needed for apps requiring attestation to TEE...

👀 PW
Thanks a lot for clarification and elaborating. Please correct me if I’m wrong, but I understand it as my Xiaomi Note 7 is a 2SI device and all I have to do is to patch boot.img instead of updating the recommended way and I have Magisk 25.1. Is that correct understood?
 

pndwal

Senior Member
Thanks a lot for clarification and elaborating. Please correct me if I’m wrong, but I understand it as my Xiaomi Note 7 is a 2SI device and all I have to do is to patch boot.img instead of updating the recommended way and I have Magisk 25.1. Is that correct understood?
No, Legacy SAR as noted, and as such won't become 2SI even running Android 10+. 😛

You shouldn't have issues updating... Let us know if you do... PW
 
  • Like
Reactions: svendsvin

pndwal

Senior Member
Can someone help me check this app if it detects root (error 301 or 304) using Magisk Delta MagiskHide or zygisk+shamiko+HMA

BNI Mobile
Screenshot_2022-06-28-23-28-55-335_src.com.bni.jpg

zygisk+shamiko+25101... PW
 

pndwal

Senior Member
  • Like
Reactions: J.Michael

shoey63

Recognized Contributor
  • Like
Reactions: J.Michael

Godlydevils

Senior Member
Jan 19, 2015
193
19
You can check with all list bankings i left in previous comment.

Video 1, zygisk+shamiko, imobile detect rooted
Video 2, magiskhide, imobile not detect rooted
LoL this is quite funny.

Literally all financial apps are working, however momo+basic integrity+CTS is failing, but idc, cuz apps are working, really funny, probably devs ditched magisk hide, to adapt with zygisk and well, vulnerability exploited
 

svendsvin

Senior Member
Oct 21, 2013
238
51
Lost in space
Xiaomi Redmi Note 7
No, Legacy SAR as noted, and as such won't become 2SI even running Android 10+. 😛

You shouldn't have issues updating... Let us know if you do... PW
With the help of newly updated Shamiko 0.5.1 I can now update to Magisk 25.1 without Momo telling me the environment is broken. I only get the usual about unlocked bootloader and debugging mode is enabled. And Shamiko 0.5.1 is not crashing my banking app. So far so good. The only problem left is that my banking app detects root no matter what I try. I’m dependent on my banking app so my only choice has been to downgrade Magisk to 24.3 again and wait for some miracle to happen.
 

J.Michael

Recognized Contributor
Jan 20, 2018
1,256
1,195
Samsung Galaxy Tab A series
With the help of newly updated Shamiko 0.5.1 I can now update to Magisk 25.1 without Momo telling me the environment is broken. I only get the usual about unlocked bootloader and debugging mode is enabled. And Shamiko 0.5.1 is not crashing my banking app. So far so good. The only problem left is that my banking app detects root no matter what I try. I’m dependent on my banking app so my only choice has been to downgrade Magisk to 24.3 again and wait for some miracle to happen.
Or, as @reforget noted, find another bank.
 
  • Like
Reactions: reforget

Top Liked Posts

  • 3
    Hello friends .
    I have a Redmi 9 (Global) Codename : Lancelot
    Installed magisk via custom recovery (twrp and shrp) and root is sucess , but zygisk doesnt work , when I enable it in settings and reboot , in magisk zygisk : no . I used official MIUI 11.0.4. 11.0.7 11.0.9 12.0.1 12.0.4 Android 10 and zygisk still no success , although it worked on Lineage 18.1 Android 11 and Pixel Experience 12.1 Plus but I want to use MIUI and I want it to be MIUI android 10 to be exact because of some complexity of android 11 in Xiaomi devices I avoid android 11 . now back to MIUI 12.5.6 Android 11 to see if works at all or not , then I'm gonna try EEA or Europe MIUI Roms But before that I'm here to see if others have the same problem with their Xiaomi ? If yes , any fixes yet ?

    Edit : Fixed by flashing latest Global MIUI Rom ,for almost a week I was looking for a way around Redmi 9 android 10 zygisk but was not successful . Switch to android 11 and it will work like a charm but I lost TWRP decryption in Android 11 my internal storage is encrypted while in TWRP . Didnt try EEA roms .
    It's of-topic (TWRP and encryption) but:

    - Generally, when switching ROMs, it's required to Format Data.
    Don't know what exactly you did but you can try that

    - Sometimes it may also help to experiment by switching between pin, pattern and no Android unlock screen setting

    - Make sure you use the latest TWRP

    - TWRP.me does not support A12 encryption yet. However, there are SKKK TWRP versions (for various Xiaomi models) that do support (beta development stage):
    2
    Hello friends .
    I have a Redmi 9 (Global) Codename : Lancelot
    Installed magisk via custom recovery (twrp and shrp) and root is sucess , but zygisk doesnt work , when I enable it in settings and reboot , in magisk zygisk : no . I used official MIUI 11.0.4. 11.0.7 11.0.9 12.0.1 12.0.4 Android 10 and zygisk still no success , although it worked on Lineage 18.1 Android 11 and Pixel Experience 12.1 Plus but I want to use MIUI and I want it to be MIUI android 10 to be exact because of some complexity of android 11 in Xiaomi devices I avoid android 11 . now back to MIUI 12.5.6 Android 11 to see if works at all or not , then I'm gonna try EEA or Europe MIUI Roms But before that I'm here to see if others have the same problem with their Xiaomi ? If yes , any fixes yet ?

    Edit : Fixed by flashing latest Global MIUI Rom ,for almost a week I was looking for a way around Redmi 9 android 10 zygisk but was not successful . Switch to android 11 and it will work like a charm but I lost TWRP decryption in Android 11 my internal storage is encrypted while in TWRP . Didnt try EEA roms .
    I think you just need to Learn to Stop Worrying and Love the Bomb. 😜 ...

    The whole point is:
    You didn't keep the Machine
    a secret; You've told the world!...
    ... all is NOT lost!!!


    In case you still want Android 10 w/ root (downgrade again):

    Your issue is very similar to this (but root was lost also for some):
    https://github.com/topjohnwu/Magisk/issues/6095

    Fix just completed (by Canyie, who incidentally became an adult a few days ago! 😃 ); Affected Redmi Note 4 on A7, Realme 6 on A12, etc...

    Root fixed here:
    https://github.com/topjohnwu/Magisk/issues/6095#issuecomment-1207255175
    Zygisk fixed here apparently:
    https://github.com/topjohnwu/Magisk/issues/6095#issuecomment-1207369066

    You could try the early test build linked there...

    Fix merged in Magisk (still downstream of any releases) here:
    52ba6d1 Don't let remote errors crash Zygisk
    with a further fix merged for Zygisk loading in:
    1735a71 Use ANDROID_DLEXT_FORCE_LOAD to load second stage if possible

    You could try the final Actions run trial Magisk build here:
    Use `ANDROID_DLEXT_FORCE_LOAD` to load second stage if possible
    (build in artifacts .zip at end, need to log in to download.)

    ...Or just wait for next official Magisk release, most likely Canary...

    🤠 PW

    "I'm afraid I don't understand something. Is the Premier threatening to explode this if our planes carry out their attack?"
    "No sir. It is not a thing a sane man would do. The doomsday machine is designed to to trigger itself automatically."
    "But this is absolute madness, ambassador. Why should you build such a thing?"
    "There are those of us who fought against it, but in the end we could not keep up with the expense involved in the arms race, the space race, and the peace race. And at the same time our people grumbled for more nylons and washing machines. Our doomsday scheme cost us just a small fraction of what we'd been spending on defense in a single year. But the deciding factor was when we learned that your country was working along similar lines, and we were afraid of a doomsday gap."
    "This is preposterous. I've never approved of anything like that."
    "Our source was the New York Times."
    "Dr. Strangelove, do we have anything like that in the works?"
  • 6
    Latest Official TJW Canary (release) & Debug (debug) Magisk builds:

    Magisk (f42c089b) (25102)​

    • [MagiskInit] Fix a potential issue when stub cpio is used
    • [MagiskInit] Fix reboot to recovery when stub cpio is used
    • [General] Better data encryption detection
    • [General] Move the whole logging infrastructure into Rust

    Diffs to v25.1​

    • [MagiskInit] Fix a potential issue when stub cpio is used
    • [MagiskInit] Fix reboot to recovery when stub cpio is used
    • [General] Better data encryption detection
    • [General] Move the whole logging infrastructure into Rust
    https://github.com/topjohnwu/magisk-files/blob/8fce25209918072f18b5bb056c43f596f771324d/notes.md

    👍 PW
    5
    Is it possible to find out what an app detects? I have Shamiko 0.5.1 installed and somehow a banking app still detects root. This is the app: https://play.google.com/store/apps/details?id=ro.raiffeisen.eToken&hl=ro&gl=US
    I just tried it on my phone (stock rom, Magisk 24.3, Shamiko 0.5.0, USNF).
    Without doing anything, it detects root.
    Adding it to denylist, still detects root.
    Freezing the Magisk app, goes through!
    5
    I just tried it on my phone (stock rom, Magisk 24.3, Shamiko 0.5.0, USNF).
    Without doing anything, it detects root.
    Adding it to denylist, still detects root.
    Freezing the Magisk app, goes through!
    It's now been reported a number of times that freezing the Magisk app helps thwart root detection in many cases.

    So ... I now believe that what we need to do is not talk about that publicly too much, so that the banking-and-other-kinds-of-app developers who might check these forums don't catch on to the fact the Magisk app itself doesn't actually provide any run-time Magisk functionality.

    This way, those developers will keep thinking that checking for the existence of a non-frozen Magisk app itself is sufficient.

    Given the intelligence level of some of the banking people who lamely think that it's important to block root access under Android in order to "protect" their provided banking functionality, this ruse might actually be quite effective in many cases.

    After all, anyone who accesses a bank via their desktop computer is doing so on a rooted machine, and those idiotic banking software designers don't even care about "protecting" us against that. And those same banks issue us debit cards that we carry in our stealable wallets, and they don't prohibit us from using those debit cards, either. They go crazy only over trying to protect people against rooted Android devices, which are no more insecure than desktop computers and wallet-borne debit cards.
    5
    How should I hide apps?
    ... its just an addon script that (attempts, as best possible) to hide whatevers in the Deny List
    Just to avoid confusion/ be clear, Shamiko does not hide apps (in denylist or otherwise)...

    It's akin to old MagiskHide, and hides traces of root from apps in the list...
    ### Introduction
    Shamiko is a Zygisk module to hide Magisk root, Zygisk itself and Zygisk modules like riru hide.

    Shamiko read the denylist from Magisk for simplicity but it requires denylist enforcement to be disabled first.
    @appleman_wp
    If you wish to hide apps detected by banks etc, try the Hide My Applist LSPosed module...
    I don't think Shamiko has a "Settings". I think you use the Magisk Manager app's deny list. If you do not "Enforce Deny List" in Magisk, then Shamiko will use Magisk's Deny List to tell it what to hide [traces of root] from.
    (Edits mine.)

    Generally Shamiko is used without settings / extra configuration.
    ### Usage
    1. Install Shamiko and enable Zygisk and reboot
    1. Configure denylist to add processes for hiding
    1. *DO NOT* turn on denylist enforcement

    However it can actually be reconfigured (by those game / mavericks 😛) for whitelist mode usage. Note caveats:
    #### Whitelist
    - You can create an empty file `/data/adb/shamiko/whitelist` to turn on whitelist mode and it can be triggered without reboot
    - Whitelist has significant performance and memory consumption issue, please use it only for testing
    - Only apps that was previously granted root from Magisk can access root
    - If you need to grant a new app root access, disable whitelist first

    ... ts theoretically possible to... bootloop your device... At which point myself and the other senior members will pass around the chalice of your tears and drink heartily from it...
    Sadist! 😜 PW
    4
    Isn't there a way to hide root from Company Intune Portal app? I tried downgrading but it doesn't work... :(
    See this thread
    People are struggling to make it work (including me). Some have manually re-installed the previous version.
  • 120
    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.
    63
    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.
    57
    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.
    53
    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.
    43
    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.​