Magisk General Support / Discussion

Search This thread

martyfender

Senior Member
Mar 9, 2017
3,155
1,674
Indianapolis, IN
Update snet.jar extension
The existing API key was revoked for some reason.
Release an updated extension jar with a new API key.

In addition, add some offline signature verification and change how
results are parsed to workaround some dumbass Xposed module "faking"
success results, since many users really don't know better.

@topjohnwu

topjohnwu committed 19 minutes ago
 

pndwal

Senior Member
Jun 23, 2016
2,251
1,482
Sydney
Xiaomi Redmi Note 7
@pndwal How do you know recovery "has clearly been Patched / altered"?
Well, as I said, while TWRP boots normally after direct Install w/ Recovery mode selected, ANY changes to boot.img (flashing stock image etc) result in 'System Has Been Destroyed', Fastboot mode only available, and this is fixed ONLY by flashing unpatched recovery image. This doesn't occur with the same unpatched TWRP installed, so Magisk patching HAS done it's work.

Similarly, flashing patched stock recovery images or patched TWRP w/ fastboot always results in 'system has been destroyed' on booting. Again, this is fixed ONLY by flashing unpatched recovery image, indicating alterations were made.
Re: bootloader vs kernel as determining whether ramdisk can be added: I still think it makes more sense that it is up to the kernel. I don't understand your statement that "recovery ramdisk and boot ramdisk are implemented differently." I can understand that the filesystems might be different enough so that you could look at a TOC and tell which kind you're looking at. It just seems easier to explain the different combinations of behavior as some kernels do not use ramdisk, even if it is offered/available. That's easier to imagine than that the bootloader does something drastically different depending on whether it is booting from the recovery partition. As you said, boot and recovery are both boot images.

Bootloader (vendor-proprietary image) is responsible for bringing up the kernel on a device. It guards device state and initializes the Trusted Execution Environment, binds its root of trust, and verifies the integrity of the boot and recovery partitions before moving execution to the kernel, as indicated here:
https://source.android.com/devices/bootloader

There are various ramdisks implemented too, with unique load addresses in Vendor partition, and this is accessed by Bootloader. Bootloader handling summary here:
https://source.android.com/devices/bootloader/partitions/vendor-boot-partitions#bootloader-support

Differences between recovery-ramdisk and boot-ramdisk implementation explained here:
https://source.android.com/devices/bootloader/partitions/ramdisk-partitions

Interestingly, in A/B devices (BOARD_USES_RECOVERY_AS_BOOT), recovery-ramdisk may reside in boot.img (as recovery partition has been removed), and A10 Launch Version devices can boot into both recovery and Android from recovery-ramdisk; Non A/B device boot.img may contain boot-ramdisk, as one might expect.

According to John Wu, an additional 'hybrid-ramdisk' can also reside in boot-image in type IV devices (that boot from from ramdisk as initial rootdir - a form of SAR according to John, as final rootdir = system, but not according to Google; they only consider types II & III devices that boot from system as initial rootdir to be SAR). See table here:
https://topjohnwu.github.io/Magisk/boot.html#piecing-things-together

Hope this helps! ... or not. 😬 PW
 
Last edited:
  • Like
Reactions: J.Michael

pndwal

Senior Member
Jun 23, 2016
2,251
1,482
Sydney
Xiaomi Redmi Note 7
Update snet.jar extension
The existing API key was revoked for some reason.
Release an updated extension jar with a new API key.

In addition, add some offline signature verification and change howr resultsare parsed to workaround some dumbass Xposed module "faking" success results, since many users really don't know better.
Gotta love that! ... And the extra lengths John will go to to cover our a a a aa, backsides.

... New API key incoming... Let's not all get our dumb a a a aa, posteriors XPosed by fakers is what I say! 😜

Must be the thrill of the chase... 5 commits following John's in the same hour! 👍 PW
 
Last edited:
  • Like
Reactions: HippoMan

hkjo

Senior Member
Mar 24, 2013
79
9
Why does AP patching happen on the phone rather than on the PC?

Seems roundabout to copy 4GB to phone, patch there, then copy back to PC.
 

zgfg

Senior Member
  • Oct 10, 2016
    5,157
    2,453
    Why does AP patching happen on the phone rather than on the PC?

    Seems roundabout to copy 4GB to phone, patch there, then copy back to PC.
    You can request a feature (on Github), but that will mean that developers would have to maintain also a Windows application

    4 GB is maybe an extreme case on Samsung. For the most of us, it's only 16-128 KB, not the whole firmware but only the boot.img or recovery.img

    In my case I download the whole firmware (cca 3 GB) on the phone (using ADM to speed up downloading), extract boot.img by MiXplorer (no problem opening the 3 GB zip), patch and then flash (by TWRP) hence everything on the phone, no need for PC
     
    • Like
    Reactions: J.Michael

    hkjo

    Senior Member
    Mar 24, 2013
    79
    9
    @zgfg
    I'm not sure actually if (or why) patching only boot.img would be a problem, but some anecdotes claimed only whole-AP patching works for this specific model.

    Maybe the info is outdated, but I'd rather minimize experimentation.
     
    • Like
    Reactions: J.Michael

    jcmm11

    Recognized Contributor
    Feb 10, 2012
    3,574
    3,585
    complete uninstall Magisk then install 20.1?
    also why 20.1 that's really old version you mean 22.1?
    I meant 20.4. That's the oldest version current Canary supports. Complete uninstall isn't an option at the moment (no computer currently available). I guess the real question is can I upgrade to 20.4 without a problem. I'm leary of just trying it since I don't want even a soft brick given the computer situation. I'll figure something out
     

    zputnyq

    Senior Member
    Apr 19, 2013
    585
    259
    I meant 20.4. That's the oldest version current Canary supports. Complete uninstall isn't an option at the moment (no computer currently available). I guess the real question is can I upgrade to 20.4 without a problem. I'm leary of just trying it since I don't want even a soft brick given the computer situation. I'll figure something out
    If there's twrp on your device, you can do complete uninstall by flashing 20.4 uninstaller.zip. However, since magisk 21.xx (I forgot the exact version, it's stated on github & in this thread iirc) you need to rename its apk file to zip to be able to be flashed in twrp then rename it back to apk & install it, if the apk isn't installed it can't work properly probably on some android version . For unintalling only need to rename its apk to uninstaller.zip. On my android 6 xperia M4, I haven't had installation & unstallation from twrp issue yet so far, only problem with some modules.
     
    Last edited:
    • Like
    Reactions: J.Michael

    zgfg

    Senior Member
  • Oct 10, 2016
    5,157
    2,453
    @zgfg
    I'm not sure actually if (or why) patching only boot.img would be a problem, but some anecdotes claimed only whole-AP patching works for this specific model.

    Maybe the info is outdated, but I'd rather minimize experimentation.
    That's the point - sorry but I don't know for which specific brand and model are you talking

    For most brands (and devices) it is only needed to patch the boot or recovery, and in that case even if flashing by Fastboot it's not that big deal to transfer the boot/recovery img to phone, patch it and transfer back to PC

    Besides, when people only update Magisk by Direct method, then specially there is no need for PC

    For all of that plus Hide, SuperUser grants, modules and so, the Android application is a must.
    Windows app, IMO, will be more as a commidity (with limited use only by some)

    But if you would like to develop the PC version, naybe TJW will be happy if you join the team 😁

    PS: If I correctly understand some issues reported on Github, there are users who branch the Magisk source and make their own programs (but for Linux), including for patching and so.
    By the open source model, one is free to make his own application for PC and publish (bigger part will become permanently supporting the users 😠)
     
    Last edited:
    • Like
    Reactions: J.Michael

    DiamondJohn

    Recognized Contributor
  • Aug 31, 2013
    5,111
    4,569
    Sydney
    Why does AP patching happen on the phone rather than on the PC?

    Seems roundabout to copy 4GB to phone, patch there, then copy back to PC.
    If I understand your question correctly, I would assume it has to do with not having to install a patching software on both the PC and the phone. PC's could be Windows, Linux or MAC. Where the phone is only Android.
     
    • Like
    Reactions: J.Michael

    hkjo

    Senior Member
    Mar 24, 2013
    79
    9
    If that's the reason, it shouldn't be too difficult to make it cross-platform.

    Anyway, I have a guess why patching boot.img by itself isn't enough. Magisk also modifies vbmeta.img. Though perhaps a TAR that includes only boot and vbmeta would do just as well? Then on the PC, you could merge all other files from the original ap.tar.
     

    pndwal

    Senior Member
    Jun 23, 2016
    2,251
    1,482
    Sydney
    Xiaomi Redmi Note 7
    @pndwal When you quote John Wu, can you cause the time stamp in the quote to be absolute?
    You mean this?
    https://forum.xda-developers.com/t/magisk-general-support-discussion.3432382/post-84840741

    Time reflects comment was current at time of my post.

    It's STILL his most current Tweet thread, and is found at the top of his Twitter with no difficulty!

    Readers can easily find tweets retrospectively by searching using post dates for quotes that were originally up to the minute (/ very recent).

    Re quotes incl. old postings:
    I have included official Notes and Changelogs for recent Magisk updates regularly, as well up to the minute comments from John Wu frequently, for some time now in this Magisk General Support / Discussion thread as I feel this information is most relevant, especially since John stopped posting it here himself.

    It's a given that these will be directly from his most recent Twitter and his GitHub pages as linked from any users Magisk Manager homepage.

    When I've quoted from other sources, or old postings from his Twitter and his GitHub pages, I have been at pains to cite source pages... Sorry if it wasn't clear! 🙂
    https://forum.xda-developers.com/t/magisk-general-support-discussion.3432382/post-84312597

    Source will necessarily include time info. 👍 PW
     
    Last edited:
    • Like
    Reactions: dcarvil

    Ps24u

    Senior Member
    May 21, 2016
    165
    32
    How can I check for updates manually in Magisk app 22.1 ?
    In Manager 7.51 that I updated from, you could pull down the screen to manually check whenever you wished. I can't find the equivalent in 22.1...?

    Also who designed 22.1 app and thought it'd be a good idea to have a big "uninstall magisk" button 3 milimeters from the big "check safety net" button. Does the designer want people to remove Magisk by mistake ?
    Imho "uninstall magisk" should be at the bottom of the settings page, not the first thing you see when you open the app.

    I really wished there was an updated 7.51-style Manager/App with the new hiding stub technique.
     
    Last edited:
    • Like
    Reactions: Pooheyx and zgfg

    martyfender

    Senior Member
    Mar 9, 2017
    3,155
    1,674
    Indianapolis, IN
    How can I check for updates manually in Magisk app 22.1 ?
    In Manager 7.51 that I updated from, you could pull down the screen to manually check whenever you wished. I can't find the equivalent in 22.1...?

    Also who designed 22.1 app and thought it'd be a good idea to have a big "uninstall magisk" button 3 milimeters from the big "check safety net" button. Does the designer want people to remove Magisk by mistake ?
    Imho "uninstall magisk" should be at the bottom of the settings page, not the first thing you see when you open the app.

    I really wished there was an updated 7.51-style Manager/App with the new hiding stub technique.

    As long as you have a good internet connection, the app checks for updates when you launch it, unless you have certain ad blocking apps that could interfere with it.
    I agree with you that the uninstall button should not be so close to the other buttons and I have 8" tablets, it may potentially be worse on a phone screen. Just making the separator wider could be sufficient.
     
    Last edited:

    pndwal

    Senior Member
    Jun 23, 2016
    2,251
    1,482
    Sydney
    Xiaomi Redmi Note 7
    Also who designed 22.1 app and thought it'd be a good idea to have a big "uninstall magisk" button 3 milimeters from the big "check safety net" button. Does the designer want people to remove Magisk by mistake ?
    Imho "uninstall magisk" should be at the bottom of the settings page, not the first thing you see when you open the app.

    I really wished there was an updated 7.51-style Manager/App with the new hiding stub technique.
    That's progress! 😜

    Re. Uninstall, you can back out if accidentally selected. Just touch OUTSIDE following option screen. 👍 PW
     

    pndwal

    Senior Member
    Jun 23, 2016
    2,251
    1,482
    Sydney
    Xiaomi Redmi Note 7
    Latest Debug (Canary)
    Changelog and Release Notes
    https://github.com/topjohnwu/magisk-files/blob/ea57c9b33b3a6ce2e0e65ce4c33dfb1c01552fcb/notes.md :

    Magisk (f49966d8) (22103)​

    • [App] Update snet extension. This fixes SafetyNet API errors.
    • [App] Fix a bug in the stub app that causes APK installation to fail
    • [General] Fix a C++ bug that causes undefined behavior
    • [MagiskHide] Update package and process name validation logic

    Diffs to v22.1​

    • [General] Remove all pre Android 5.0 support
    • [MagiskPolicy] Remove unnecessary sepolicy rules
    • [App] Update snet extension. This fixes SafetyNet API errors.
    • [App] Fix a bug in the stub app that causes APK installation to fail
    • [General] Fix a C++ bug that causes undefined behavior
    • [MagiskHide] Update package and process name validation logic
    👍 ...And things are all Rosy 'n Safe in the Custom Mod. world once again... but ironically, only on the bleeding edge... (Confirmed on my RN8T. 🙂 )

    News for those not wanting to get cut (Public Stable / Beta users) below. 😜

    Thanks John... And other collaborators for additional fixes! PW
     
    Last edited:

    pndwal

    Senior Member
    Jun 23, 2016
    2,251
    1,482
    Sydney
    Xiaomi Redmi Note 7
    Fix and news:
    John Wu, 1h

    Just pushed a new canary build with SafetyNet checking functionality restored. Considering pushing a new early public release after a few more bug fixes.
    ... So imminent SafetyNet checking fix for public Stable / Beta (still has SafetyNet API errors) users is likely... No ETA of course! 😉

    👍 PW
     
    Last edited:

    zgfg

    Senior Member
  • Oct 10, 2016
    5,157
    2,453

    Attachments

    • Screenshot_2021-04-16-11-17-26-291_com.topjohnwu.magisk.jpg
      Screenshot_2021-04-16-11-17-26-291_com.topjohnwu.magisk.jpg
      177.6 KB · Views: 55
    • Like
    Reactions: wfred and dr4go

    Top Liked Posts

    • 3
      Sorry for the late response, I finally got some time to tinker with the phone again, and this time everything went smoothly, luckily for me I guess :p (All detailed on an edit from my original post in the S60's Root guide thread).

      @XenonF-Dev If you had a bootloop, how can you be sure you had "unrooted"?
      Well, I did the 22.1 uninstall process by renaming Magisk22.1.apk to uninstall.zip and flashing it, first time it detected Magisk 22.1 installed and removed it (or at least the log said that). I also flashed it a second time and this time the log said that no version was installed, so I though it did successfully unroot it, although I can't completly confirm that.

      Do you have any Magisk modules installed?
      I think I had, yeah, since I had some folders inside the modules folder when I was researching how to fix the bootloop, I renamed them if I remember correctly and still got the bootloop.
      When you had bootloop, did you ever try to boot to Safe Mode?
      Indeed, since the Cat S60 for some odd reason doesn't support a Safe Mode key combination, I did what is described on Whan Hun Lo's blog entry about a Cat S60's bootloop and created the needed file using TWRP root terminal (exactly echo "1" > /data/property/persist.sys.safemode), but the bootloop was still there so not sure if it did work, also I never tried to do that again after executing Magisk 22.1 uninstall script.

      As I commented on my edited post, all this was caused by installing M22.1 over M20.3 using Mapp22.1, since Mapp22.1 didn't support M20.3 (It had a popup warning I ignored when opening the app, about <20.4 versions beign unsupported by the app).

      I downloaded Magisk20.4.zip, flashed it with TWRP, updated MM7.5.1 to Mapp22.1 and it detected M20.4. Next I updated M20.4 to M22.1 through the Mapp and worked flawlessly this time.

      I hope this helps to clarify what happened, and also could let Github Issue #4219 be properly answered. So far I got Mapp to v23 and installed the SystemBrowser module without problems.

      Sorry again for the late answer, and thanks again for all the support I got here :giggle:.
      3
      I think I had, yeah, since I had some folders inside the modules folder when I was researching how to fix the bootloop, I renamed them if I remember correctly and still got the bootloop.
      Renaming a folder in /data/adb/modules is just changing the name of the corresponding module.
      Renaming /data/adb/modules itself would eliminate all modules.
      Putting a file named "disable" *in* a module folder disables that module.
      Removing (or moving) all of the folders in /data/adb/modules would eliminate all modules.

      In the most general case, the "installation" of a module could have made other changes to the system. "Removing" the module might run some "uninstall" script associated with the module.
      @Didgeridoohan's treatise on Magisk modules recommends giving the module a chance to uninstall itself gracefully.
      2
      John Wu, 4h

      I'm given the flexibility to continue working on existing projects, so I expect things to remain mostly the same as it was for the community 😁
      Cat wrests mouse from dog. Mouse excited to collaborate with cat... and nothing changes?

      Interesting turn of events, but I'm sure there'll be implications (especially for MagiskHide)...

      It's not as though the Cat hasn't missed it's opportunity before however. 😉

      tenor (1).gif


      ... But this:
      Chris Renshaw, @osm0sis_xda, 5h

      Congratulations John! This should be huge for both Android and Magisk!
      PW
      1
      Turned on the system, everything is ok.
      I made an android patches, I don't use magisk modules.
      Everything works well.

      After a few hours, without reboots, without other manipulations, gpay broken.
      I don't know if this is the same situation as your problem, but I also ran into GPay problems that were a bit similar. It would work for a while, but then, without doing anything on my device (i.e., just leaving it sitting in an idle state), GPay would stop working after some amount of time.

      One thing which I know that happens is that Google periodically checks the state of devices to see if they are "secure", by Google's standards. If not, the device is flagged on Google's web site as being insecure.

      As soon as my device showed up on Google's web site as being insecure, then GPay stopped working properly.

      In my case, Google decided to deem my device as insecure because after setting a PIN lock and setting up GPay, I went back to a Swipe lock. My idea was to switch back to a PIN lock whenever I decide to use GPay, and then go back to Swipe when I am done with GPay. However, after a while, Google detected that I no longer had a PIN lock, even though the device was just sitting idle in Swipe mode, and at that point, my device showed up as being insecure on Google's web site, and GPay stopped working, even when I reinstated the PIN lock before restarting GPay.

      There might be other things that Google checks for which would trigger their deeming the device as insecure with regard to GPay, in addition to simply having set Swipe lock. If so, perhaps this could be the cause of your GPay problem.
    • 9
      Latest Debug (Canary)
      Changelog and Release Notes
      https://github.com/topjohnwu/magisk-files/blob/56d4ca44e12927217ae761df0874e3cd7d05cea4/notes.md :

      Magisk (fb8000b5) (22104)​

      • [App] Hide annoying errors in logs when hidden as stub
      • [App] Update stub implementation
      • [App] Some internal code refactoring
      • [App] Update snet extension implementation

      Diffs to v22.1​

      • [App] Update snet extension. This fixes SafetyNet API errors.
      • [App] Fix a bug in the stub app that causes APK installation to fail
      • [App] Hide annoying errors in logs when hidden as stub
      • [General] Remove all pre Android 5.0 support
      • [MagiskPolicy] Remove unnecessary sepolicy rules
      • [General] Fix a C++ bug that causes undefined behavior
      • [MagiskHide] Update package and process name validation logic

      May fix sundry issues with Magisk App! 👍 PW
      8
      Magisk v23 Stable released and by Release Notes SafetyNet API error is fixed in (Magisk apk) Stable as well, hence no need anymore to use (Magisk apk) Canary for SN testing

      Be careful, v23 supports only Lollipop and higher
      8
      Which logs are helpful when devices bootloops on splash screen?

      I read https://www.didgeridoohan.com/magisk/MagiskHelp but is last_kmsg need be taken after booting to Android after flashing stock boot.img?

      I have took and posted logs by booting to TWRP. Is that a correct way?


      Thanks
      The kmsg (Kernel Message) file is constantly written to while booted into an Android environment.
      System or Recovery.

      A new kmsg file is created every time you boot the device into an Android environment.
      The previous kmsg file is moved to last_kmsg

      Both files are replaced each time you (re)boot into an Android environment.

      Example.

      You boot into system and get stuck at the splash screen.
      Your device is currently writing to /proc/kmsg

      You force a reboot into recovery.
      The previous /proc/kmsg was moved to /proc/last_kmsg
      Your device is currently writing to /proc/kmsg

      /proc/kmsg is now the current recovery boot
      Your previous boot into system is now /proc/last_kmsg

      If you now reboot from recovery into recovery again.
      The previous /proc/kmsg is moved to /proc/last_kmsg
      Your device is currently writing to /proc/kmsg file.​

      /proc/kmsg is now the current recovery boot
      Your previous boot into recovery is now /proc/last_kmsg


      Note:
      • Newer devices use /sys/fs/pstore instead of /proc/last_kmsg
      • You normally need heightened privileges (root) to grab kmsg or pstore.
        A custom recovery normally allows you root access.

      Hope it helps more than confuse. 🙃

      Cheers. :cowboy:
      8
      Strange how people think they don't need to read the other posts but expect that their questions should be addressed and answered😌
    • 1048
      This is the place for general support and discussion regarding "Public Releases", which includes both stable and beta releases.
      All information, including troubleshoot guides and notes, are in the Announcement Thread
      156
      Hello, I haven't given much support on XDA lately. It can be resulted from
      • University started and I have limited free time. In fact, I mostly develop during midnight
      • I live in Taiwan, which has large time zone differences between my European/American contributors/testers, which usually forces me to stay up late at night to discuss/test stuffs.
      • The new version is about to come, I don't want to spend effort on supporting old releases
      The planned update is delayed again and again, to some point I think I'll shed some light about what has been happening lately, also along with some announcements.

      New Forum!
      As you might have already discovered, Magisk got its own subforum on XDA! Many thanks to all the support you gave me, and much more information/features/support is about to come!
      **For developers supporting all the devices that are not using standard Android boot format, feel free to create threads in this section (actually, PLEASE do so) for your favorite devices after v7 is out. As I currently know, Asus devices require signing the boot image before flashing, and is model dependant; Sony devices seems to use ELF kernel that is unpatchable, or some has two ramdisks (inner + outer), both requires different workarounds; LG bootloader locked devices has to manually "BUMP" the boot image after flashing Magisk..... and there may be lots of other crazy boot image formats that haven't come up to my attention yet.
      It is impossible for me to support all these non-standard boot images, and I hope the community can collaborate to make Magisk running across all the devices. Overall, community collaboration is what XDA about :D

      The Pixel Phone
      Some of you might already know this news, that the next Pixel Phone right around the corner seems like it does not have ramdisk in boot image, which pretty much wrecked Magisk in all ways. However, it pretty much doomed root itself too. Kernel modifications is inevitable IMO, so I'll try to migrate my scripts to C programs that could possibly be included into the kernel itself. Note that I'm not familiar with linux kernel, I'm not even sure if my idea and concept is correct or not. But once the device is available, I think developers will find a way to bypass all the difficulties, and I'll do my best to learn things ;)

      Current Progress
      In the past month, I've spent quite some time learning SELinux, so that I can avoid using SuperSU's sepolicy patches. Thanks to the helps and tips from @phhusson and @Chainfire, I finally have a much clearer understanding of how SELinux works. The Magisk core parts (the scripts, boot image patches, new features, more supports) are actually done some time ago. What is causing all the delays is the Magisk Manager.
      To be completely honest, although I can code in Java without much issues, Magisk Manager is actually my first Android application, I had to reach out for assistance, and fortunately awesome developers like @DVDandroid and @digitalhigh contributed a lot, which makes the current Manager awesome.
      After the repo system and module management is mostly done, I was about to do some adjustments and release, but what we really done is decided to add another feature: auto-unroot with per-app settings. I decided to wait for it to be finished, and then do my adjustments. Due to reasons that'll be mentioned later, this feature will likely not be available for the next release (should come in future updates)

      Safety Net Disaster
      Those who are using Magisk for Safety Net bypass purposes must have known that Google recently updated the detection method of my Systemless Xposed. I still have no idea what Safety Net is detecting, so currently I cannot fix it on my side (also because I'm busy working on the next update). However, suhide developed by @Chainfire is able to hide Xposed and worked fine.
      However, only my Systemless Xposed v86.2, which is based on SuperSU's su.d, is supported using that method. v86.2 and v86.5 (latest, Magisk based) have nearly identical binaries, and the only difference is the path where the binaries are stored.
      I'm still not sure what's the real issue for it not being supported, I just hope it is not done intentionally.

      Conclusion
      Due to the fact that my Safety Net bypass is not 100% perfect now, I do not want to spend any more time waiting for auto-unroot to be polished. What I'm doing now is finishing up all the things I'd like to change in Magisk Manager (it has been a while since I last contributed to Manager, my fellow developers are doing all the heavy job), which might take a little more time, after that, packed with tons of information to be announced in Magisk Section, I'll release the long awaited update.

      Hope this lengthy post gives you the idea of the whole situation, and again thanks for all your support!!
      121
      Ah, some Chainfire bashing, I hope it is not too late for me to exercise additional villainy.

      First, let me make clear I have nothing against @topjohnwu, nor against Magisk. Magisk is an interesting project and it certainly displays @topjohnwu ingenuity and persistence. I don't doubt we will see more interesting things from his hands.

      -------------------------

      What has happened here is not all that dark and complicated, from either end. I returned from holidays, and someone pointed me at Magisk. My first thought: interesting!

      Among other things, the thread lists some issues with SuperSU, which in combination with the phrase The developer also requests users to not bug Chainfire with compatibility requests for SuperSU with Magisk from the portal article, raised my left eyebrow by nigh half an inch. The popular systemless xposed mod is apparently now based on it, and apparently it now no longer works with SuperSU, and apparently I'm not supposed to fix that, nor any of the other found issues. I found that a bit weird. So yes, I have told @topjohnwu that I was a bit surprised he was posting about issues with SuperSU without notifying me about them (I can't fix or help fix issues I'm not aware of, after all).

      He's also spreading a modified version of the SuperSU package, which is not all that uncommon, nor necessarily a problem. I have not looked into what he modified, I only ran a few quick tests on one of my devices, and found some commonly used commands run as root to be broken. I have informed him of this as well.

      It appears the tool of choice for Magisk is phh's Superuser, because of some of the mentioned issues with SuperSU. That's fine by itself, but fixing issues in that superuser by incorporating SuperSU's binaries into it is a somewhat questionable practise. After all, SuperSU is a commercial closed-source package that helps pay for my dinner, and superuser is a direct competitor. I have informed him that I was surprised he did this without asking for permission. I have expressed similar surprise on him spreading a modified version of LiveBoot (which helps pay for a snack now and then).
      @topjohnwu has also stated that Magisk's scripts are largely influenced by mine (I have not checked). Scripts based on mine are used all over the place on XDA, some people have crafted amazing things based on them, I have never made an issue of this (otherwise I would have just made them binaries). But yes, I have also stated to him that I don't think it's very nice to base something on one program, and then using that to (almost exclusively) push something directly competing with that program.

      tl;dr Towards @topjohnwu, I have:
      - expressed surprise he has issues getting Magisk to work with SuperSU, and has chosen not to inform me about those
      - expressed surprise he is using SuperSU binaries in a competing superuser without permission
      - expressed surprise he is posting a modified LiveBoot without permission
      - informed him of issues with the modified SuperSU he has posted
      - let him know I thought it wasn't very nice to be applying my scripts to benefit seemingly exclusively that same competing superuser

      To be crystal clear:
      - I have not asked for an apology
      - I have not asked for Magisk to be abandoned, neither the root hiding nor systemless module parts, and certainly not systemless xposed
      - I have not made an issue of any of this anywhere, until this post
      - I have not even specifically asked for anything to be taken down (though obviously in my opinion the other superuser package mixed with SuperSU's binaries, as well as the LiveBoot package, should go)
      - I have not reported this thread to XDA moderators for copyright violations or otherwise

      While my conversation with @topjohnwu may not win any awards for being friendly (though it may win some for brevity), I think all things considered my response has been rather mild. To be perfectly honest, until the apology post, I thought this was over with already. I think the apology post was triggered because I haven't replied to his last PM for a while - I was in the zone, it happens.

      To emphasize again, I have nothing against @topjohnwu, Magisk, or systemless xposed, and it is certainly not my goal to see any of them go. If it can be made to work together with SuperSU, great.

      I get it though: you think of something, you want to see if you can make it work, you finally get it to work, you publish it, it takes off - enthusiasm gets the better of you. Maybe in the rush some mistakes are made. That doesn't mean you have to just drop it and run. None of my stuff would make it past 0.1 if I stopped at the first big mistake :)

      Aside from said being in the zone coding, I usually regret actually responding to these sort of things the day after, which has made me hesitant to reply. Surprise me.
      76
      Thread temporarily closed so everyone sees this.

      The flood of "SafetyNet isn't working for me either!" posts are not helpful, at all. Please refrain from posting further, it will be looked into. Please do not forget that not passing SafetyNet is 100% NORMAL AND INTENDED when you have an unlocked booloader or running custom firmware. These are workarounds and they will be worked around in turn.

      The Flash
      Forum Moderator

      EDIT: Thread is reopened... I will be cleaning any SafetyNet posts for a while to keep the thread clean for real issues.
      75
      Hello everyone!

      I am aware that Google has updated Safety Net that makes Magisk itself a no go for Android Pay. In fact, I witnessed the change live while I am developing the new magiskhide, which should hide all Magisk modules and Magisk installed root.

      Google is serious about Safety Net now, clearly hunting down all possibility to run Xposed with Safety Net passed. I spend quite some time examining the new security measures last midnight, and fortunately it seems that it is possible to run Magisk and root along with Safety Net if no Xposed is running. I'm glad I removed the old root toggle at the right time lol, that is no longer feasible with the latest detection.

      So stay tuned for the next update, it will come with bug fixes, along with the new magiskhide to bypass that Safety Net.

      Google, how will a few systemless mods do any harm :p:p
    Our Apps
    Get our official app!
    The best way to access XDA on your phone
    Nav Gestures
    Add swipe gestures to any Android
    One Handed Mode
    Eases uses one hand with your phone