topjohnwu / Magisk

The Magic Mask for Android
GNU General Public License v3.0
47.94k stars 12.17k forks source link

Magisk 20.4 fails to boot after update to Android 10 (same with 20.3, 19.4, 19.1) #2695

Closed SoftwareSchlosser closed 4 years ago

SoftwareSchlosser commented 4 years ago

I have a similar issue as seen in #2049 with my Xiaomi Mi A2 (non-lite) which had stock Pie with Magisk 19.x (can't remember) running. I wanted to apply the latest OTA update to Android 10 (security update from March 1st). After uninstalling Magisk and applying the OTA, the phone boots the stock bootloader as expected. Now I fastbooted into TWRP and extracted and copied both boot images. I'm on slot b - so back in Android I patched the corresponding boot image via Magisk Manager and tried to fastboot it. The colored line starts to move which means the boot process itself works but it runs like that forever. I also tried to fastboot the extracted unpatched image which also works so there must be something wrong with the patched image.

stock boot image patched boot image

Do you have any ideas on that?

Originally posted by @SoftwareSchlosser in https://github.com/topjohnwu/Magisk/issues/2049#issuecomment-614779955

It seems like TWRP can't handle the encryption anymore on Android 10. Maybe that is related?

osm0sis commented 4 years ago

You should figure out exactly what was the last version that worked.

SoftwareSchlosser commented 4 years ago

It was 20.3 but that was on Pie and even the same version doesn't work since the update to Android 10.

666zam commented 4 years ago

I can't get magisk installed on los 17.1 , Razer phone. Ends in a boot loop.

osm0sis commented 4 years ago

Can you try on the latest Canary? The whole init logic was rewritten, so it might fix this.

SoftwareSchlosser commented 4 years ago

So Magisk Manager (765d5d97 (289) (9)) offers me Magisk 20.4.05 (8ca5a048) after switching to Canary channel. If that's the right version then it unfortunately also doesn't work.

osm0sis commented 4 years ago

None of that makes sense. Manager is 283, and Magisk is 20405 right now.

SoftwareSchlosser commented 4 years ago

Ok manager is 283 - that was a typo. For magisk I added two dots between the digits so if you remove them you get 20405. Isn't 20.4.05 the version number representation?

edit: Sorry for closing and re-opening. Must have hit the button accidentally when putting away my phone.

osm0sis commented 4 years ago

Nope. It isn't represented by anything, it's just the version code. Anyway, guess it didn't work?

SoftwareSchlosser commented 4 years ago

So "20.4.05" is not the version string for version code 20405? What a coincidence then. Anyways it unfortunately doesn't work.

osm0sis commented 4 years ago

Correct. There is no version number for Canary builds anymore, only hashes and version codes.

mhier commented 4 years ago

I have similar issues. I have a Sony Xperia XA2 with LineageOS. After upgrading to LineageOS 17.1 (actually fresh install), I run into boot loops after installing Magisk. What helps is wiping Dalivk Cache, but only for one single time. So I have to do this now before every reboot. (Luckily TWRP works for me even with encryption...)

I have checked this with the latest Canary: 2468f5a6 (20406) for Magisk and 765d5d97 (283) for the Manager.

I cannot provide a logcat, since this seems to happen before adb gets initialised. I only see it "- waiting for device -"...

@SoftwareSchlosser can you try if wiping dalvik cache helps?

SoftwareSchlosser commented 4 years ago

@SoftwareSchlosser can you try if wiping dalvik cache helps?

Just tried that (also with 2468f5a) but it didn't help :( A log would be nice but I can't get one via adb either.

victornworgu commented 4 years ago

i hate that this is an official forum for issues relating to magisk but all I get is closing my threads without offering solutions. i still have bootloops on infinix x604 (android 10) after flashing patched boot with both the latest stable and canary versions. i hope someone could at least point me in the right direction

666zam commented 4 years ago

Same here. Welcome to the club!

Den tors 30 apr. 2020 22:12victornworgu notifications@github.com skrev:

i hate that this is an official forum for issues relating to magisk but all I get is closing my threads without offering solutions. i still have bootloops on infinix x604 (android 10) after flashing patched boot with both the latest stable and canary versions. i hope someone could at least point me in the right direction

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/topjohnwu/Magisk/issues/2695#issuecomment-622083586, or unsubscribe https://github.com/notifications/unsubscribe-auth/APEZVD5BKDICLFS2Q7WBX53RPHLRTANCNFSM4MKUTSWQ .

emanueljg commented 4 years ago

This is so goddamn annoying. Bootloop on android 10, LineageOS 17.1 having tried both latest Canary and the normal 20.4 release.

lightvortex commented 4 years ago

+1 bootloops with havoc on mix2, need to go recovery and reboot 2 times for it to boot

UltraBlackLinux commented 4 years ago

for me infinite reload on los 17.1 on cheryl too. Entering the recovery and hitting reboot system now from THERE lets me boot to my sys

ChachyDev commented 4 years ago

The solution doesn't seem to work for me, using Android Q SM-A600FN

SoftwareSchlosser commented 4 years ago

Tried 99ef206 (20412) but it also didn't work. Why has this been closed? Was it supposed to be fixed?

parkerlreed commented 4 years ago

Bootloop on latest Q (QQ2A.200501.001.B2) on Pixel 3 XL. logcat http://ix.io/2mMs

Tried both stable 20.4 and canary

mhier commented 4 years ago

Now I realise that I actually don't have to wipe the dalvik cache, just entering twrp is sufficient.

@topjohnwu This issue is not fixed, please reopen or point us to another issue where the bug is tracked. Cheers!

osm0sis commented 4 years ago

Possibly #2806 is a currently open similar issue. I won't reopen this one without @topjohnwu's input however.

lightvortex commented 4 years ago

i found the fix apparently magisk fails to mount fstab during boot so we can bypass that by adding mount in init.qcom.rc add this in vendor/etc/hw/init.qcom.rc ` on fs wait /dev/block/platform/soc/${ro.boot.bootdevice} symlink /dev/block/platform/soc/${ro.boot.bootdevice} /dev/block/bootdevice

mount_all /vendor/etc/fstab.qcom`

https://github.com/lightvortex/device_xiaomi_msm8998-common/commit/e57bd5bedd2b7eeca4c323003e1b21318c42108e

parkerlreed commented 4 years ago

Yeah won't work for those of us that can't run TWRP.

parkerlreed commented 4 years ago

@osm0sis I mean this issue is older than the one you linked to. Why would that take precedence?

EDIT: Also that one was closed out for a completely unrelated reason.

osm0sis commented 4 years ago

I told you, John closed it so I won't reopen it without his further acknowledgement. Not sure how else to spell that out.

SoftwareSchlosser commented 4 years ago

@topjohnwu this is still a problem. What can we do to help solving it?

heldzz commented 4 years ago

i found the fix apparently magisk fails to mount fstab during boot so we can bypass that by adding mount in init.qcom.rc add this in vendor/etc/hw/init.qcom.rc ` on fs wait /dev/block/platform/soc/${ro.boot.bootdevice} symlink /dev/block/platform/soc/${ro.boot.bootdevice} /dev/block/bootdevice

mount_all /vendor/etc/fstab.qcom`

lightvortex/device_xiaomi_msm8998-common@e57bd5b

solved it for me. I'm on a Sony XA2 with lineageOS 17.1. The entry mentioned there was already part of vendor/etc/hw/init.qcom.rc, but with

mount_all /vendor/etc/fstab.qcom --early

Just deleted --early und rebooted like a charm. Will this be replaced after an OTA update? I'll check that on the build tomorrow...

SoftwareSchlosser commented 4 years ago

I'm not on LOS but on Xiaomi stock firmware. How could I benefit from this kind of fix?

osm0sis commented 4 years ago

I've personally asked @topjohnwu to review this again, especially since the nature of the regression might now be revealed by the workaround you guys have found. I'll open this again in the meantime.

heldzz commented 4 years ago

The linux under the hood can (should) be the same. Just search for the file and edit it, if it's available...

osm0sis commented 4 years ago

If someone could please try old Magisk canaries and tell us with which build the issue first happened that would also be helpful, since I don't think we ever figured that out here.

https://github.com/topjohnwu/magisk_files/commits/canary

Edit: Wait, nevermind, I guess we sort of got to the bottom of that, since once these devices updated to Android 10 they just never seemed to work on any Magisk version. Must be some edge case Magisk's init logic still doesn't cover.

SoftwareSchlosser commented 4 years ago

The linux under the hood can (should) be the same. Just search for the file and edit it, if it's available...

If that means I would have to edit a file on the system partition of my phone then that's absolutely no option because unfortunately Xiaomis firmware updater refuses to do the update if the system partition has been altered in any way. I once did that and had to wipe and re-flash everything (incl. data) which was a real pain.

lightvortex commented 4 years ago

i found the fix apparently magisk fails to mount fstab during boot so we can bypass that by adding mount in init.qcom.rc add this in vendor/etc/hw/init.qcom.rc ` on fs wait /dev/block/platform/soc/${ro.boot.bootdevice} symlink /dev/block/platform/soc/${ro.boot.bootdevice} /dev/block/bootdevice

mount_all /vendor/etc/fstab.qcom`

lightvortex/device_xiaomi_msm8998-common@e57bd5b

solved it for me. I'm on a Sony XA2 with lineageOS 17.1. The entry mentioned there was already part of vendor/etc/hw/init.qcom.rc, but with

mount_all /vendor/etc/fstab.qcom --early

Just deleted --early und rebooted like a charm. Will this be replaced after an OTA update? I'll check that on the build tomorrow...

This is the proper fix if you need it https://review.lineageos.org/c/LineageOS/android_device_xiaomi_msm8998-common/+/276735

parkerlreed commented 4 years ago

For some people this isn't an option. For example the Pixels can't use TWRP and thus cannot edit the filesystem outside of the OS.

osm0sis commented 4 years ago

So now we'll need to accommodate that Lineage patch too, most likely.🤦‍♂️

Pretty sure Pixels aren't broken, by the way.

parkerlreed commented 4 years ago

I am using a Pixel... Granted I havent tried in a little bit. The first comment from me here is it bootlooping with a log on the Pixel 3 XL

I'll try the latest in a second.

parkerlreed commented 4 years ago

Ok whatever it was on my device, it is working now. Thanks for the help.

SeanChengN commented 4 years ago

i found the fix apparently magisk fails to mount fstab during boot so we can bypass that by adding mount in init.qcom.rc add this in vendor/etc/hw/init.qcom.rc ` on fs wait /dev/block/platform/soc/${ro.boot.bootdevice} symlink /dev/block/platform/soc/${ro.boot.bootdevice} /dev/block/bootdevice

mount_all /vendor/etc/fstab.qcom`

lightvortex/device_xiaomi_msm8998-common@e57bd5b

solved it for me. I'm on a Sony XA2 with lineageOS 17.1. The entry mentioned there was already part of vendor/etc/hw/init.qcom.rc, but with mount_all /vendor/etc/fstab.qcom --early Just deleted --early und rebooted like a charm. Will this be replaced after an OTA update? I'll check that on the build tomorrow...

This is the proper fix if you need it https://review.lineageos.org/c/LineageOS/android_device_xiaomi_msm8998-common/+/276735

It doesn't seem to be merged, but why?

DanielMarcio commented 4 years ago

hello, i tried to root a Xiaomi Redmi 6 using magisk by paching the boot.img file, but the device didn't start after patching the file, what can I do to fix it?

boot.zip magisk_patched.zip

osm0sis commented 4 years ago

It doesn't seem to be merged, but why?

Probably because it's a commit to work around a Magisk bug, which is backwards; Magisk just needs to be fixed. :slightly_smiling_face:

Tooniis commented 4 years ago

I had this issue after upgrading my Mi Note 2 (scorpio) to LineageOS 17.1 too.

i found the fix apparently magisk fails to mount fstab during boot so we can bypass that by adding mount in init.qcom.rc add this in vendor/etc/hw/init.qcom.rc ` on fs wait /dev/block/platform/soc/${ro.boot.bootdevice} symlink /dev/block/platform/soc/${ro.boot.bootdevice} /dev/block/bootdevice

mount_all /vendor/etc/fstab.qcom`

lightvortex/device_xiaomi_msm8998-common@e57bd5b

Is this specific to MSM8998 devices? I couldn't find that file on mine which has a MSM8996 Pro

lightvortex commented 4 years ago

I had this issue after upgrading my Mi Note 2 (scorpio) to LineageOS 17.1 too.

i found the fix apparently magisk fails to mount fstab during boot so we can bypass that by adding mount in init.qcom.rc add this in vendor/etc/hw/init.qcom.rc ` on fs wait /dev/block/platform/soc/${ro.boot.bootdevice} symlink /dev/block/platform/soc/${ro.boot.bootdevice} /dev/block/bootdevice

mount_all /vendor/etc/fstab.qcom`

lightvortex/device_xiaomi_msm8998-common@e57bd5b

Is this specific to MSM8998 devices? I couldn't find that file on mine which has a MSM8996 Pro

Yup it works on msm8996 too tested on my Nubia z11

Check system/vendor/etc/init/hw

Tooniis commented 4 years ago

Is this specific to MSM8998 devices? I couldn't find that file on mine which has a MSM8996 Pro

Yup it works on msm8996 too tested on my Nubia z11

Check system/vendor/etc/init/hw

Turns out I just didn't have vendor mounted.

Apparently those lines are already there, and it booted now? I have no idea what changed to make this happen.

cbaptista commented 4 years ago

Hi all, I have the same problem, the boot goes for ever, with oneplus 2. None of the above workarounds worked.

Thanks CB

Fox2Code commented 4 years ago

@cbaptista Can you make your phone boot loop and provide last_kmsg via TWRP (last_kmsg is the kernel logs of the previous boot so you need to get them via your recovery)

cbaptista commented 4 years ago

@Fox2Code I can, but only after next thursday . I will post them here then.

CB

cbaptista commented 4 years ago

@Fox2Code there is no /proc/last_kmsg.

fgl27 commented 4 years ago

The device work well on android 9 and older, but after android 10 it never worked.

Using latest version from release Magisk v20.4 the magisk manager doesn't recognizes magisk su device boot OK.

Using latest version 20418 the device doesn't finises the boot process.

It also looses adb root, so logcat is limited, I took some logs from 20418 logcat.txt

Can't run dmesg because no SU, but via TWRP I can cat /sys/fs/pstore/console-ramoops AKA dmesg console-ramoops.txt

There is some odd Unmounting spamming on dmesg of data and cache, that doesn't happen on normal boot.

Anyone has some experience with this issue?

singh-manbir commented 4 years ago

I have a similar issue as seen in #2049 with my Xiaomi Mi A2 (non-lite) which had stock Pie with Magisk 19.x (can't remember) running. I wanted to apply the latest OTA update to Android 10 (security update from March 1st). After uninstalling Magisk and applying the OTA, the phone boots the stock bootloader as expected. Now I fastbooted into TWRP and extracted and copied both boot images. I'm on slot b - so back in Android I patched the corresponding boot image via Magisk Manager and tried to fastboot it. The colored line starts to move which means the boot process itself works but it runs like that forever. I also tried to fastboot the extracted unpatched image which also works so there must be something wrong with the patched image.

stock boot image patched boot image

Do you have any ideas on that?

Originally posted by @SoftwareSchlosser in #2049 (comment)

It seems like TWRP can't handle the encryption anymore on Android 10. Maybe that is related?

I had the same issue it is solved now, i tried all the version 13, 15, 17, 19 ,20.4 and canary but the issue was solved when I used the version 20.0 of magisk.

If your phone is not booting after magisk flash or it is in bootloop, the only solution that I have found is that magisk 20.0 version works fine. Hope you find this helpful.

Screenshot_20200719-234141_Manager