Magisk General Support / Discussion

Search This thread

J.Michael

Recognized Contributor
Jan 20, 2018
2,051
2,428
Samsung Galaxy Tab A series
Question: I am new here, please redirect me to appropriate forum if this isn't where I should post my Q.

I have pixel phones rooted with Magisk, thus no OTA updates for me. So I download them from the Google site when the monthly update arrives, and flash using adb sideload. But it's a PITA wrt Magisk, I usually have to fuss around to get Magisk back running, although it's still worth it.

My Q is: if I update the monthly update zip with the appropriately patched magisk_patched file, will that OTA update install successfully and also preserve Magisk?

Thank you for any advise.
Tim
What you describe has a good chance of working. When it doesn't work, you will have a good chance of recovering by flashing the unmodified "new" ROM, and continuing as you used to.
 
  • Like
Reactions: pndwal

zgfg

Senior Member
Oct 10, 2016
9,572
7,417
Redmi K20 / Xiaomi Mi 9T
Xiaomi Mi 11
Please, try to install JamesDSP with Magisk v26 (or Canary 26102):

Or from the GitHub Readme, View code, download install.zip:
https://github.com/Zackptg5/JamesDSPManager

(Btw, I don't know why he cannot create a Release on GitHub like there are for all other modules from other authors, so that his latest version or an older one can be easily found and downloaded)

If I try to install JDSP when I have Viper4Android and AML, then it complains that there is an incompatible module and that I must use AML (although I do use it)

If I try to install JDSP without having V4A and AML, then it seemingly installs ok, but after reboot, when I open JamesDSP app, it immediately crashes

I tried both with Volume+ ('Huawei', ie, 64bit) and Volume- (not 'Huawei', ie, 32bit)

(Again some oddities - it is known that it's not really about Huawei or not but if 64bit audio drivers are needed or not. So he could have renamed Huawei option to 64bit or so [he released latest JDSP recently and/or his module could find itself are the 64bit drivers needed when installing]. Also that ancient Volume+/- mngmt during the module installation [from the times of installing modules through custom recoveries with no touch screen], where it usually does not detect the button at first and/or on time)

However, with Magisk Delta, JDSP module works perfectly (and together with V4A and AML)
 

J.Michael

Recognized Contributor
Jan 20, 2018
2,051
2,428
Samsung Galaxy Tab A series
He's talking about OTA, you can't modify OTA, it will fail AVB.
He said "no OTA updates for me. So I download them from the Google site", which I took to mean he downloaded a full ROM.

I don't understand your reference to "AVB". If he can flash a patched boot image after the system is updated, and if he does indeed have a full ROM corresponding to an updated system, why couldn't the first flash of the updated system be with the boot image patched? (Unless this is one of those systems where Magisk cannot do a complete job of patching unless it is currently running on the target system.)
 

tim1aust

Member
May 27, 2023
14
11
He said "no OTA updates for me. So I download them from the Google site", which I took to mean he downloaded a full ROM.

I don't understand your reference to "AVB". If he can flash a patched boot image after the system is updated, and if he does indeed have a full ROM corresponding to an updated system, why couldn't the first flash of the updated system be with the boot image patched? (Unless this is one of those systems where Magisk cannot do a complete job of patching unless it is currently running on the target system.)
J Michael,
My bad, I did in fact mean I download the OTA and flash that because Google knows my phone is rooted or bootloader unlocked or something else, but never pushes updates to my phone. But I am certainly not an expert in all this, I am assuming badabing2003 is referring to a signature check or somesuch failing if I replace the boot image in the OTA zip with the magisk_patched one.

I do appreciate your input, thanks! I'm learning...
 

pndwal

Senior Member
J Michael,
My bad, I did in fact mean I download the OTA and flash that because Google knows my phone is rooted or bootloader unlocked or something else, but never pushes updates to my phone. But I am certainly not an expert in all this, I am assuming badabing2003 is referring to a signature check or somesuch failing if I replace the boot image in the OTA zip with the magisk_patched one.

I do appreciate your input, thanks! I'm learning...
Generally, new partition digest checks are what prevents recent delta (incremental/differential) OTA Pixel updates from working with 'Flash Magisk to inactive slot' method (to preserve Magisk) on P6 and P7 series even after restoring unpatched images since the new checking is done by the update engine after reboot, although @Lughnasadh has confirmed that it (inexplicably) still works in some cases...

I suspect @badabing2003 may know this already, but I don't know if newer full ROM downloaded OTAs incorporate the same post reboot checks... Either way, you could try the method as outlined here:
https://github.com/topjohnwu/Magisk/blob/master/docs/ota.md#devices-with-ab-partitions
1) with proper stock delta OTA from 'over to the air' (small chance if you have P6+), or
2) with full downloaded OTA ROM to find out...

If 2) works, I'd be interested to know if you actually need to restore images first too... You probably wouldn't as pre-reboot checks should not really be needed w/ full OTA, and I suspect the post-reboot checks would only have been added if pre-reboot checks exist...

Nb. I have no practical experience with Pixels or A/B, and others may already have determined that this full OTA ROM approach is impossible. 🙃 PW
 

shoey63

Recognized Contributor
. . . I have no practical experience with Pixels or A/B, and others may already have determined that this full OTA ROM approach is impossible. 🙃 PW
I'm finding of late on the p6 that trying to take an OTA update after restoring images aborts before it even starts. It will only take after restoring images and rebooting.
This makes installing Magisk to inactivate slot after OTA an impossibility on latest firmware.
 
  • Like
Reactions: J.Michael

pndwal

Senior Member
I'm finding of late on the p6 that trying to take an OTA update after restoring images aborts before it even starts. It will only take after restoring images and rebooting.
This makes installing Magisk to inactivate slot after OTA an impossibility on latest firmware.
Guessing standard delta over the air update?... Sad...

But what I'd like to know is whether it is possible to apply full OTA ROM download before reboot either with or without images restored on Pixels with late updates. 😛 PW
 
  • Like
Reactions: J.Michael

shoey63

Recognized Contributor
Guessing standard delta over the air update?... Sad...

But what I'd like to know is whether it is possible to apply full OTA ROM download before reboot either with or without images restored on Pixels with late updates. 😛 PW
You mean on the pc?
Well, yeah, how else are you going to apply it?
You can flash the full factory images ROM zip in fastboot, or sideload the full OTA image zip in stock recovery.
The Magisk patched boot partition will be overwritten without issue.
You then, of course patch the new boot image and fastboot it.
(Or just let @badabing2003 's Pixel Flasher do all the work for you)
 
Last edited:

badabing2003

Recognized Contributor
Sep 17, 2012
3,010
4,638
I suspect @badabing2003 may know this already, but I don't know if newer full ROM downloaded OTAs incorporate the same post reboot checks... Either way, you could try the method as outlined here:
https://github.com/topjohnwu/Magisk/blob/master/docs/ota.md#devices-with-ab-partitions
1) with proper stock delta OTA from 'over to the air' (small chance if you have P6+), or
2) with full downloaded OTA ROM to find out...

If 2) works, I'd be interested to know if you actually need to restore images first too... You probably wouldn't as pre-reboot checks should not really be needed w/ full OTA, and I suspect the post-reboot checks would only have been added if pre-reboot checks exist...

My small interests in OTA is primarily for two benefits OTA could offer.
1- Performing it on the phone without needing a PC
2- No phone modification is required (no root)
3- Active partition is kept intact.

1- In the context of your question, I don't know if it is possible and if it is, how it's done, how does one apply a full OTA all on the phone? assuming that you would need to download it and apply it.
Doing so on the PC, would offer no benefit compared to Factory flashing, unless #2

2- If the OTA image is modified in any way, than it will fail, and I'm thinking in the context of injecting a patched boot to gain root access on a phone that has the bootloader locked.

3- I don't know how to interrupt Full OTA sideloading to stop making it boot to system after completion, to gain an opportunity to flash a patched boot image before booting to system (of course bootloader needs to be unlocked for this) but the benefit here is that the previously active slot is not touched and system partition is not overwritten by system-other image as is the case for factory image flashing.
 

tim1aust

Member
May 27, 2023
14
11
#1 is what I would love to have also, but have been unable to find any information anywhere how to do this. If one could download the OTA and have the standard "Update is available" process allow you to specify the downloaded OTA image, then the process @pndwal referred to at https://github.com/topjohnwu/Magisk/blob/master/docs/ota.md#devices-with-ab-partitions would allow the OTA update be applied with stock images restored, then use Magisk "install to inactive partition" be used *before* rebooting. In fact, my Moto Z3 is running PixelExperience ROM and I get streaming OTA updates on that phone, and follow @pndwal's referenced process without a hitch, each month.

I can't suss out why Google insists on "streaming" OTA updates, and forbid local OTA updates. I suspect the reasoning is based somewhat on they don't want to encourage rooting. Which I suppose is not unreasonable from their view, but if someone has a rooted phone/unlocked bootloader they have already voided their warranty, so IMHO it should be left to the owner of the phone to make these decisions.
 

pndwal

Senior Member
You mean on the pc?
Well, yeah, how else are you going to apply it?
You can flash the full factory images ROM zip in fastboot, or sideload the full OTA image zip in stock recovery.
Actually I meant using updater engine...

On MIUI devices users can select available delta updates or download full latest package or choose one downloaded separately and updater engine flashes... Here are the options:
IMG_20230529_225854.jpg


Does Pixel not have options to flash full OTA ROMs from booted system?
The Magisk patched boot partition will be overwritten without issue.
Yup ... But you're talking about flashing current partition... I was guessing that full OTA from updater engine might write to inactive partition without issues (because blocks from images on active partition are not needed unless OTA is delta) if options available on pixel...
You then, of course patch the new boot image and fastboot it.
(Or just let @badabing2003 's Pixel Flasher do all the work for you)
(Or would patch Magisk to inactive partition if possible...) 👍 PW
 
Last edited:
  • Wow
Reactions: ipdev

badabing2003

Recognized Contributor
Sep 17, 2012
3,010
4,638
Doe Pixel not have options to flash full OTA ROMs from booted system?
I have never seen it, it does not mean it doesn't exist, just that I have never seen it, besides my exposure would be super limited when updated friends' family's phones, my phones have not been going through that for ages.
... So was guess full OTA from updater engine would do the same if options available on pixel...
I would hope and expect not, otherwise it would defeat the purpose of OTA, what if something goes wrong, how would it be able to revert?

(Or would patch Magisk to inactivate partition if possible...)
PF supports that, but am not sure how's we're making use of that if we can't skip the reboot.
 
  • Like
Reactions: pndwal

pndwal

Senior Member
My small interests in OTA is primarily for two benefits OTA could offer.
1- Performing it on the phone without needing a PC
2- No phone modification is required (no root)
3- Active partition is kept intact.
Yup, 1 is ideal...
1- In the context of your question, I don't know if it is possible and if it is, how it's done, how does one apply a full OTA all on the phone? assuming that you would need to download it and apply it.
I don't know what's available on Pixel, but w/ MIUI we can download latest full OTA package within Updater or select others as shown in post above... Though it might be the same...

Nb. In MIUI the extra options are hidden; users must tap MIUI logo in Updater 5 times to get access... 😜
Doing so on the PC, would offer no benefit compared to Factory flashing, unless #2
True...
2- If the OTA image is modified in any way, than it will fail, and I'm thinking in the context of injecting a patched boot to gain root access on a phone that has the bootloader locked.
That's certainly true of delta (streamed incremental) OTAs since they need bit-perfect previous ROM images installed to generate the new images from the tiny quantity of differential data blocks... I wasn't sure if it's true when applying full OTAs or if the same checks are made, but you may be right that AVB will break installation in any case...
3- I don't know how to interrupt Full OTA sideloading to stop making it boot to system after completion, to gain an opportunity to flash a patched boot image before booting to system (of course bootloader needs to be unlocked for this) but the benefit here is that the previously active slot is not touched and system partition is not overwritten by system-other image as is the case for factory image flashing.
Meaning delta (partial, differential only) factory images as opposed to full OTA images here?... Of course both types are still factory images ...

But looks like this should simply work like delta OTAs in Xiaomi A/B devices by following the official doc linked above, and with the advantage of not unrooting the current active partition as you mention. 😛

I can't test this as I have only two A-only Xiaomi devices... 🙁 PW
 
  • Like
Reactions: ipdev and Wolfcity

Lughnasadh

Senior Member
Mar 23, 2015
5,479
6,533
Google Nexus 5
Huawei Nexus 6P
3- I don't know how to interrupt Full OTA sideloading to stop making it boot to system after completion, to gain an opportunity to flash a patched boot image before booting to system (of course bootloader needs to be unlocked for this) but the benefit here is that the previously active slot is not touched and system partition is not overwritten by system-other image as is the case for factory image flashing.
It's been a while since I sideloaded an OTA, but if I remember correctly once the sideloading is complete you'll still be in recovery mode and you have to choose "Reboot to system now" (or something like that) before it reboots. But like I said, it's been a while...
 

pndwal

Senior Member
I have never seen it, it does not mean it doesn't exist, just that I have never seen it, besides my exposure would be super limited when updated friends' family's phones, my phones have not been going through that for ages.
😁
I would hope and expect not, otherwise it would defeat the purpose of OTA, what if something goes wrong, how would it be able to revert?
Sorry, meant the inactive slot will be written to without issue of course! 🙃... My bad, corrected post... PW
 
  • Like
Reactions: badabing2003

badabing2003

Recognized Contributor
Sep 17, 2012
3,010
4,638
It's been a while since I sideloaded an OTA, but if I remember correctly once the sideloading is complete you'll still be in recovery mode and you have to choose "Reboot to system now" (or something like that) before it reboots. But like I said, it's been a while...
Right, I had forgotten as well,
I just tested this,
When you sideload OTA, you have the option to reboot to bootloader or system. (y)
And when you successfully reboot to system, the slot is switched.
I will test next to flash a patched image before rebooting and see if it will complain.
 

Top Liked Posts

  • 2
    Hello Magisk people, it's been several years.

    Pixel 7 Pro.

    I just clean flashed [ROM][13.0_r82][OFFICIAL] Evolution X 7.9.8 [09/19/2023]. Despite what their OP says, I was not able to flash Magisk as either apk or zip in recovery. So I booted, restored from my damaged phone, and installed app to patch image as instructed here: https://topjohnwu.github.io/Magisk/install.html

    I wasn't sure if I had to or should disable verity / verification. I tried to boot without doing so. Bad boot (back to bootloader). Reflashed patched image and also vbmeta. Bad boot again.

    It appears there are missing steps or notes because I have followed instructions exactly.

    Any help greatly appreciated! TY
    Are you patching init_boot.img as instructed, NOT boot.img?... PW
    2
    Oh I patched init_boot, I just flashed it to boot 🤕💀

    Would you be so kind as to explain the verity thing? Why would I want to disable it? Why wouldn't I want to?
    Best to check/ask/follow here:
    https://forum.xda-developers.com/t/...er-root-pixel-7-pro-cheetah-safetynet.4502805
    for your device... Read opening posts carefully... Very helpful bunch... 🙂 PW
    2
    hey
    how can i update from magisk 26.1 to the latest
    i tried to patch boot.img+ direct flash using magisk, did not update
    i tried to patch stock then flash, i got a bootloop
    it seems that i am a newbie on updating magisk ToT
    Do you mean you see old version or N/A?...

    If N/A and you had hidden Magisk in stub app (taken Hide the Magisk app), locate previous hidden app as you named it (default name is 'settings') in system settings, Apps, and uninstall it, then try opening new full app... If not that, please give details about device, ROM etc... 👍 PW
    1
    Are you patching init_boot.img as instructed, NOT boot.img?... PW
    Oh I patched init_boot, I just flashed it to boot 🤕💀

    Would you be so kind as to explain the verity thing? Why would I want to disable it? Why wouldn't I want to?
  • 9
    Latest Magisk Stable:
    Release Notes

    2023.9.4 Magisk v26.3​

    v26.3​

    • [General] Fix device information detection script
    • [General] Update BusyBox to 1.36.1
    • [General] Update toolchain that produces broken arm32 executables
    • [App] Fix root service unable to bind on OnePlus devices
    https://topjohnwu.github.io/Magisk/releases/26300.html

    👍 PW
    8
    I consider it to be unfair to define "modder" or "developer" as "anyone who dumps partitions/nandroid".
    <SNIP>

    <SNIP>
    Since it's not available without unlocking, 'anyone who dumps partitions / performs nandroid' has to agree to modify the device by unlocking which changes original product features including disabling security functions and other features... Then they generally install a custom (modified) recovery...😆
    <SNIP>
    I miss the days when I could just use adb to dump the data partition into an image file and flash it back. 😿️

    Better yet, when I could wipe system, install a different OS version and leave userdata alone.
    [The original Clean/Dirty flash install.] 🙃️

    As for the Cat and Mouse game...

    My money is on the Mice. 😜️
    "Look, sorry - are we talking about the little white furry things with the cheese fixation and women standing on tables screaming in early sixties sit coms?"

    Slartibartfast coughed politely.

    "These creatures you call mice, you see, they are not quite as they appear. They are merely the protrusion into our dimension of vast hyperintelligent pandimensional beings. The whole business with the cheese and the squeaking is just a front."
    ― Douglas Adams, The Hitchhiker's Guide to the Galaxy

    Cheers all. :cowboy:

    PS.
    I miss FlashFire.
    😥️
    8
    This illustrates why I always want to be able to use a device upon which TWRP (or perhaps OrangeFox) is functional. As long as I've taken a proper full nandroid backup of a previous working system, I can easily nandroid-restore that working system after an upgrade, if I wish.

    I am not happy with Google for continuing to "enhance" (ha ha!) Android as time goes on,
    Yeah... And Microsoft should have stayed with DOS, and maybe Windows as a DOS add-on!...
    thereby making it more and more difficult to get TWRP and OrangeFox working with newer Android versions.
    That's certainly NOT their intention...

    There's a lot to be said for new innovations and OEM requirements both in the mart of competitive commerce and for the value -added benefits to general Android users...

    Just as a few examples,
    • SAR/2SI enhancements allow for A/B partitioning and 'seamless' (streamed) delta OTA updates,
    • Shared blocks architecture allows for dynamic sup-super partitions which may be RO but are resizable with no unused space, upgradable to larger /system etc in future and space optimised/saving etc,
    • Project Treble (Android 8+)
    https://www.xda-developers.com/goog...ze-android-so-oems-can-update-devices-faster/
    modularised Android so that OEMs can serve Android updates more quickly by reducing OEM dependence on SoC vendors for every single OS update and introduced a new 'vendor interface' and Vendor Test Suite (VTS)... It also facilitated
    • The GSI Project (Android 9+)
    https://developer.android.com/topic/generic-system-image
    which allows app developers to install and run the latest Android Generic System Images to perform app testing on a variety of existing Android devices, and use GSIs from different Android OS release stages... Extra benefits include:
    - Broader test coverage on a greater set of real devices
    - More time to fix app compatibility issues
    - More opportunities to fix compatibility issues in Android that are reported by app developers
    • Project Mainline (Android 10+)
    https://www.xda-developers.com/android-q-project-mainline-security/
    (modules:)
    https://www.xda-developers.com/android-project-mainline-modules-explanation/
    expands on Treble's modularisation to further address fragmentation, adding Android Pony EXpress update packages to allow updating system modules (APEX includes all needed libraries, ART, HALs and precompiled code on addition to apps) through Google Play in Android 10 and 25 new modules with A11, as well as reducing how dependent Google is on OEMs for delivering security updates to key OS components. It also facilitated
    • The GKI Project (Android 11+)
    https://source.android.com/docs/core/architecture/kernel/generic-kernel-image
    with its Generic Kernel Image is an essential change aimed addressing the issue/costs of fragmentation which "has several negative effects on the Android community". GKI/Mainline reductions in fragmentation thus:
    - Make security updates less labor intensive
    - Allow merging Long-Term Supported updates
    - Removes factors that Inhibit Android platform release upgrades
    - Allows easier contribution of kernel changes back to upstream Linux

    So Treble and Mainline, with their GSI and GKI changes/requirements, are initiatives to facilitate easier updates for vendors, give incentive to support devices much longer, etc.

    Google is in the business of promoting it's mobile OS and producing development milestones that reduce costs, improve efficiency, lifecycle, specs etc for OEMs and end users in order to stay competitive, relevant, innovative and appealing... And they make major architectural changes for these reasons...

    They aren't in the game of "making it more and more difficult to get TWRP and OrangeFox working"; they appreciate these efforts but (quite reasonably) have the (different) priorities mentioned above...

    Just as with Magisk injection, there is much pressure on Dee's Troy and team (and other custom recovery teams) to get TWRP functioning properly, let alone to mount and decrypt user data with an ever changing Android architecture, but there are clearly more complex considerations than for simple Magisk injection... Even so, Google allows and even supports such custom mod efforts...

    Moreover it's not Google's fault that community projects like TeamWin find it difficult to devote the time, conscript the Devs or otherwise overcome obstacles needed to properly support new Android iterations... They actually supply clear documentation as part of AOSP for these changes to benefit all Android devs, whether OEMs, app makers or custom modders...

    I don't really know why TWRP has not progressed past Oct 2022 3.7.0 A12 base builds at this time despite the fact that 'Android 13 development had started' already, but the difficulty they have keeping up is not new... I note that everything there is still © 2014 to 2022, also that:
    TWRP development is done by roughly 4 people at this point. We also have a large support community with many people who are willing to answer questions and help people with their devices either through our Zulip channel or on forums like xda-developers.
    https://twrp.me/about/
    and that, just as when Dees Troy lamented that 'real life' was preventing TWRP keeping pace, the four base team members are still appealing for volunteers:
    We need your help! The bulk of TWRP work is done by a handful of people on a volunteer basis. We have pushed most of our device files to our github and we have a gerrit instance. If you have the ability, please help us maintain our official devices and/or add your device to our official device list. Thanks in advance!
    -----​

    Despite the difficulty the TWRP four have keeping up with the Google juggernaut, apparently many devices running A13+ have at least unofficial TWRP support with working decryption. Some won't allow permanent flashing but temp booting TWRP works nonetheless, and some have other issues...

    Re devices launched with Android 13:

    Just on Thursday, Dev @Nebrassy posted a TWRP build for OnePlus 11 which is apparently working despite some niggles:
    https://forum.xda-developers.com/t/recovery-12-unofficial-teamwin-recovery-project.4625181/

    This device has dedicated /recovery_a and /recovery_b partitions and Qualcomm SoC, and the Dev doesn't even own the device...

    For Pixel 7 series, the delay getting TWRP w/ decryption working seems to be Tensor SoC / device tree syncing and possibly StrongBox / KeyMint / Titan chip implementation(?) rather than general Android Architectural changes and initiatives.

    However, just yesterday @Wishmasterflo posted a test build of OrangeFox recovery (this is "synced with the latest Teamwin changes", and originally from a Dev who later joined LineageOS) for the Pixel 7a:
    https://forum.xda-developers.com/t/...g-thats-being-worked-on.4532237/post-88986509
    Nb. The Dev cannot test ATM as his device is still locked...

    Pixel 7a users: If someone tests and this works, I'm sure custom recovery support for Pixel 7 series devices will gain momentum...

    Takers?
    -----​

    ... FWIW, some modders will experiment/toy with the latest devices / Android versions as soon as they arrive... Others will stay with old tech because of affordability but migrate ASAP... Still others will refrain as long as possible, whether out of nostalgia or for other reasons...

    Similarly, some car drivers will migrate to EVs quickly... Others will when the price point is more agreeable... Still others will refrain as long as possible, and some will hanker for the ICE age with the smell of petrol and the roar of engines long after it's gone!

    Personally, despite not being able to afford a Tesla yet, I think auto makers in general have not moved to new tech nearly fast enough!...I expect them to continue to "enhance" transportation options as time goes on however... And I cannot be unhappy when phone market leaders adapt, innovate and move with the times either...

    Just might be able to get me a 2nd hand P7Pro now that the P8's in the wind, and wire a fast-charge outlet into the dash of the ol Ford Perfect... 😜 PW
    7
    @zgfg can you change the contents of /data/adb/modules/adb-ndk/system/bin/adb to:
    Code:
    #!/system/bin/sh
    # adb: wrapper to run adb from terminal
    # osm0sis @ xda-developers
    
    dir="$(cd "$(dirname "$0")"; pwd)";
    
    export HOME=/sdcard;
    export TMPDIR=/data/local/tmp;
    start adbd && $dir/adb.bin "$@";

    And see if all still works as expected?
    @zgfg is busy so I tried it.
    Rog3 > Pixel 6
    Screenshot_20230827-104333_1.jpg
    Changes work perfectly 🤓
  • 1100
    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