• We are moving to xdaforums.com!

    Posts made between now and when the migration is complete will not be carried over.
    You will be automatically redirected once the migration is complete.

Magisk General Support / Discussion

Search This thread

pndwal

Senior Member
The old module TEE Hide just throw an exception in getCertificateChain method, so apps can't know if bootloader is locked or not. I will try to update AttestationSpoofer to bypass (again) the locked bootloader. They are using another cert class, because it doesn't call this method like previous versions.
Interesting that results vary...

Still, despite KA app adding "Support for saving and loading proofs; Save to file from the menu, send to other devices and load the proof file, thus simulating the normal server authentication process", as I said TEE Hide / AttestationSpoofer is still bypassing B/L status properly in that app on unlocked Xiaomi RN8T:

IMG_20230605_173346.jpg

🤷 PW
 
  • Like
Reactions: chiteroman

DaOldMan

Senior Member
Oct 6, 2010
3,710
5,961
If I use Magisk 26.1 in my rom every app in denylist crashes.
The rom is ViperOS, Android 7.1.1, latest security patch. The log is a follows:

06-05 19:24:01.656 811 1572 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.ideomobile.maccabi/.ui.splash.SplashActivity} from uid 10156 on display 0
06-05 19:24:01.716 811 1839 I ActivityManager: Start proc 12403:com.ideomobile.maccabi/u0a123 for activity com.ideomobile.maccabi/.ui.splash.SplashActivity
06-05 19:24:01.723 427 688 D AudioFlinger: mixer(0xb5983480) throttle end: throttle time(20)
06-05 19:24:01.730 12403 12403 I Magisk : zygisk32: [com.ideomobile.maccabi] is on the denylist
06-05 19:24:01.731 12403 12403 E Zygote : Unsupported st_mode 4480
06-05 19:24:01.731 12403 12403 F art : art/runtime/jni_internal.cc:558] JNI FatalError called: frameworks/base/core/jni/com_android_internal_os_Zygote.cpp:485: Unable to restat file descriptor table.
06-05 19:24:01.755 12403 12403 F art : art/runtime/runtime.cc:422] Runtime aborting...
06-05 19:24:01.755 12403 12403 F art : art/runtime/runtime.cc:422] Aborting thread:
06-05 19:24:01.755 12403 12403 F art : art/runtime/runtime.cc:422] "main" prio=5 tid=1 Native
06-05 19:24:01.755 12403 12403 F art : art/runtime/runtime.cc:422] | group="" sCount=0 dsCount=0 obj=0x7375c4d0 self=0xb4285400
06-05 19:24:01.755 12403 12403 F art : art/runtime/runtime.cc:422] | sysTid=426 nice=0 cgrp=default sched=0/0 handle=0xb6f6a534
06-05 19:24:01.755 12403 12403 F art : art/runtime/runtime.cc:422] | state=? schedstat=( 0 0 0 ) utm=0 stm=0 core=0 HZ=100
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] | stack=0xbe76e000-0xbe770000 stackSize=8MB
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] | held mutexes= "abort lock"
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] kernel: (couldn't read /proc/self/task/426/stack)
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] native: (backtrace::Unwind failed for thread 426: Thread doesn't exist)
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] at com.android.internal.os.Zygote.nativeForkAndSpecialize(Native method)
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] at com.android.internal.os.Zygote.forkAndSpecialize(Zygote.java:97)
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] at com.android.internal.os.ZygoteConnection.runOnce(ZygoteConnection.java:230)
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] at com.android.internal.os.ZygoteInit.runSelectLoop(ZygoteInit.java:855)
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:777)
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] Dumping all threads without appropriate locks held: thread list lock mutator lock
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] All threads:
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] DALVIK THREADS (1):
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] "main" prio=5 tid=1 Runnable
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] | group="" sCount=0 dsCount=0 obj=0x7375c4d0 self=0xb4285400
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] | sysTid=426 nice=0 cgrp=default sched=0/0 handle=0xb6f6a534
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] | state=? schedstat=( 0 0 0 ) utm=0 stm=0 core=0 HZ=100
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] | stack=0xbe76e000-0xbe770000 stackSize=8MB
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] | held mutexes= "abort lock" "mutator lock"(shared held)
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] kernel: (couldn't read /proc/self/task/426/stack)
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] native: (backtrace::Unwind failed for thread 426: Thread doesn't exist)
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] at com.android.internal.os.Zygote.nativeForkAndSpecialize(Native method)
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] at com.android.internal.os.Zygote.forkAndSpecialize(Zygote.java:97)
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] at com.android.internal.os.ZygoteConnection.runOnce(ZygoteConnection.java:230)
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] at com.android.internal.os.ZygoteInit.runSelectLoop(ZygoteInit.java:855)
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:777)
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422]
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422]
06-05 19:24:01.756 12403 12403 F libc : Fatal signal 6 (SIGABRT), code -6 in tid 12403 (main)
06-05 19:24:01.757 384 384 W : debuggerd: handling request: pid=12403 uid=0 gid=0 tid=12403
06-05 19:24:01.830 12417 12417 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
06-05 19:24:01.831 12417 12417 F DEBUG : LineageOS Version: 'unknown'
06-05 19:24:01.831 12417 12417 F DEBUG : Build fingerprint: 'samsung/hltexx/hlte:5.0/LRX21V/N9005XXSGBRI2:user/release-keys'
06-05 19:24:01.831 12417 12417 F DEBUG : Revision: '0'
06-05 19:24:01.831 12417 12417 F DEBUG : ABI: 'arm'
06-05 19:24:01.831 12417 12417 F DEBUG : pid: 12403, tid: 12403, name: main >>> zygote <<<
06-05 19:24:01.831 12417 12417 F DEBUG : signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
06-05 19:24:01.843 12417 12417 F DEBUG : Abort message: 'art/runtime/jni_internal.cc:558] JNI FatalError called: frameworks/base/core/jni/com_android_internal_os_Zygote.cpp:485: Unable to restat file descriptor table.'
06-05 19:24:01.843 12417 12417 F DEBUG : r0 00000000 r1 00003073 r2 00000006 r3 00000008
06-05 19:24:01.843 12417 12417 F DEBUG : r4 b6f6a58c r5 00000006 r6 b6f6a534 r7 0000010c
06-05 19:24:01.843 12417 12417 F DEBUG : r8 bef68e90 r9 000001e5 sl 0000000a fp b4285400
06-05 19:24:01.843 12417 12417 F DEBUG : ip 00000003 sp bef68d50 lr b6041107 pc b6043970 cpsr 60070010
06-05 19:24:01.865 12417 12417 F DEBUG :
06-05 19:24:01.865 12417 12417 F DEBUG : backtrace:
06-05 19:24:01.865 12417 12417 F DEBUG : #00 pc 0004a970 /system/lib/libc.so (tgkill+12)
06-05 19:24:01.865 12417 12417 F DEBUG : #01 pc 00048103 /system/lib/libc.so (pthread_kill+34)
06-05 19:24:01.865 12417 12417 F DEBUG : #02 pc 0001d715 /system/lib/libc.so (raise+10)
06-05 19:24:01.865 12417 12417 F DEBUG : #03 pc 00019261 /system/lib/libc.so (__libc_android_abort+34)
06-05 19:24:01.865 12417 12417 F DEBUG : #04 pc 00017128 /system/lib/libc.so (abort+4)
06-05 19:24:01.865 12417 12417 F DEBUG : #05 pc 0031c2a1 /system/lib/libart.so (_ZN3art7Runtime5AbortEPKc+328)
06-05 19:24:01.865 12417 12417 F DEBUG : #06 pc 000b52eb /system/lib/libart.so (_ZN3art10LogMessageD2Ev+1134)
06-05 19:24:01.865 12417 12417 F DEBUG : #07 pc 0026386b /system/lib/libart.so (_ZN3art3JNI10FatalErrorEP7_JNIEnvPKc+94)
06-05 19:24:01.865 12417 12417 F DEBUG : #08 pc 000dabc7 /system/lib/libandroid_runtime.so
06-05 19:24:01.865 12417 12417 F DEBUG : #09 pc 000dad59 /system/lib/libandroid_runtime.so
06-05 19:24:01.865 12417 12417 F DEBUG : #10 pc 000da7ff /system/lib/libandroid_runtime.so
06-05 19:24:01.865 12417 12417 F DEBUG : #11 pc 00019be3 /system/bin/app_process32
06-05 19:24:01.866 12417 12417 F DEBUG : #12 pc 7344f579 /data/dalvik-cache/arm/system@[email protected] (offset 0x281b000)
06-05 19:24:02.039 12403 12403 W main : type=1701 audit(0.0:231): auid=4294967295 uid=0 gid=0 ses=4294967295 subj=u:r:zygote:s0 reason="memory violation" sig=6
06-05 19:24:02.046 384 384 W : debuggerd: resuming target 12403
06-05 19:24:02.048 811 12430 W ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.sendBroadcast:877 com.android.server.am.AppErrors.crashApplicationInner:387 com.android.server.am.AppErrors.crashApplication:321 com.android.server.am.ActivityManagerService.handleApplicationCrashInner:13811 com.android.server.am.NativeCrashListener$NativeCrashReporter.run:86
06-05 19:24:02.050 811 857 I BootReceiver: Copying /data/tombstones/tombstone_07 to DropBox (SYSTEM_TOMBSTONE)
06-05 19:24:02.052 426 426 I Zygote : Process 12403 exited due to signal (6)
 
Last edited:

zgfg

Senior Member
Oct 10, 2016
9,654
7,514
Redmi K20 / Xiaomi Mi 9T
Xiaomi Mi 11
If I use Magisk 6.1 in my rom every app in denylist crashes.
The rom is ViperOS, Android 7.1.1, latest security patch. The log is a follows:

06-05 19:24:01.656 811 1572 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.ideomobile.maccabi/.ui.splash.SplashActivity} from uid 10156 on display 0
06-05 19:24:01.716 811 1839 I ActivityManager: Start proc 12403:com.ideomobile.maccabi/u0a123 for activity com.ideomobile.maccabi/.ui.splash.SplashActivity
06-05 19:24:01.723 427 688 D AudioFlinger: mixer(0xb5983480) throttle end: throttle time(20)
06-05 19:24:01.730 12403 12403 I Magisk : zygisk32: [com.ideomobile.maccabi] is on the denylist
06-05 19:24:01.731 12403 12403 E Zygote : Unsupported st_mode 4480
06-05 19:24:01.731 12403 12403 F art : art/runtime/jni_internal.cc:558] JNI FatalError called: frameworks/base/core/jni/com_android_internal_os_Zygote.cpp:485: Unable to restat file descriptor table.
06-05 19:24:01.755 12403 12403 F art : art/runtime/runtime.cc:422] Runtime aborting...
06-05 19:24:01.755 12403 12403 F art : art/runtime/runtime.cc:422] Aborting thread:
06-05 19:24:01.755 12403 12403 F art : art/runtime/runtime.cc:422] "main" prio=5 tid=1 Native
06-05 19:24:01.755 12403 12403 F art : art/runtime/runtime.cc:422] | group="" sCount=0 dsCount=0 obj=0x7375c4d0 self=0xb4285400
06-05 19:24:01.755 12403 12403 F art : art/runtime/runtime.cc:422] | sysTid=426 nice=0 cgrp=default sched=0/0 handle=0xb6f6a534
06-05 19:24:01.755 12403 12403 F art : art/runtime/runtime.cc:422] | state=? schedstat=( 0 0 0 ) utm=0 stm=0 core=0 HZ=100
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] | stack=0xbe76e000-0xbe770000 stackSize=8MB
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] | held mutexes= "abort lock"
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] kernel: (couldn't read /proc/self/task/426/stack)
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] native: (backtrace::Unwind failed for thread 426: Thread doesn't exist)
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] at com.android.internal.os.Zygote.nativeForkAndSpecialize(Native method)
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] at com.android.internal.os.Zygote.forkAndSpecialize(Zygote.java:97)
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] at com.android.internal.os.ZygoteConnection.runOnce(ZygoteConnection.java:230)
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] at com.android.internal.os.ZygoteInit.runSelectLoop(ZygoteInit.java:855)
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:777)
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] Dumping all threads without appropriate locks held: thread list lock mutator lock
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] All threads:
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] DALVIK THREADS (1):
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] "main" prio=5 tid=1 Runnable
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] | group="" sCount=0 dsCount=0 obj=0x7375c4d0 self=0xb4285400
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] | sysTid=426 nice=0 cgrp=default sched=0/0 handle=0xb6f6a534
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] | state=? schedstat=( 0 0 0 ) utm=0 stm=0 core=0 HZ=100
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] | stack=0xbe76e000-0xbe770000 stackSize=8MB
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] | held mutexes= "abort lock" "mutator lock"(shared held)
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] kernel: (couldn't read /proc/self/task/426/stack)
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] native: (backtrace::Unwind failed for thread 426: Thread doesn't exist)
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] at com.android.internal.os.Zygote.nativeForkAndSpecialize(Native method)
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] at com.android.internal.os.Zygote.forkAndSpecialize(Zygote.java:97)
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] at com.android.internal.os.ZygoteConnection.runOnce(ZygoteConnection.java:230)
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] at com.android.internal.os.ZygoteInit.runSelectLoop(ZygoteInit.java:855)
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422] at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:777)
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422]
06-05 19:24:01.756 12403 12403 F art : art/runtime/runtime.cc:422]
06-05 19:24:01.756 12403 12403 F libc : Fatal signal 6 (SIGABRT), code -6 in tid 12403 (main)
06-05 19:24:01.757 384 384 W : debuggerd: handling request: pid=12403 uid=0 gid=0 tid=12403
06-05 19:24:01.830 12417 12417 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
06-05 19:24:01.831 12417 12417 F DEBUG : LineageOS Version: 'unknown'
06-05 19:24:01.831 12417 12417 F DEBUG : Build fingerprint: 'samsung/hltexx/hlte:5.0/LRX21V/N9005XXSGBRI2:user/release-keys'
06-05 19:24:01.831 12417 12417 F DEBUG : Revision: '0'
06-05 19:24:01.831 12417 12417 F DEBUG : ABI: 'arm'
06-05 19:24:01.831 12417 12417 F DEBUG : pid: 12403, tid: 12403, name: main >>> zygote <<<
06-05 19:24:01.831 12417 12417 F DEBUG : signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
06-05 19:24:01.843 12417 12417 F DEBUG : Abort message: 'art/runtime/jni_internal.cc:558] JNI FatalError called: frameworks/base/core/jni/com_android_internal_os_Zygote.cpp:485: Unable to restat file descriptor table.'
06-05 19:24:01.843 12417 12417 F DEBUG : r0 00000000 r1 00003073 r2 00000006 r3 00000008
06-05 19:24:01.843 12417 12417 F DEBUG : r4 b6f6a58c r5 00000006 r6 b6f6a534 r7 0000010c
06-05 19:24:01.843 12417 12417 F DEBUG : r8 bef68e90 r9 000001e5 sl 0000000a fp b4285400
06-05 19:24:01.843 12417 12417 F DEBUG : ip 00000003 sp bef68d50 lr b6041107 pc b6043970 cpsr 60070010
06-05 19:24:01.865 12417 12417 F DEBUG :
06-05 19:24:01.865 12417 12417 F DEBUG : backtrace:
06-05 19:24:01.865 12417 12417 F DEBUG : #00 pc 0004a970 /system/lib/libc.so (tgkill+12)
06-05 19:24:01.865 12417 12417 F DEBUG : #01 pc 00048103 /system/lib/libc.so (pthread_kill+34)
06-05 19:24:01.865 12417 12417 F DEBUG : #02 pc 0001d715 /system/lib/libc.so (raise+10)
06-05 19:24:01.865 12417 12417 F DEBUG : #03 pc 00019261 /system/lib/libc.so (__libc_android_abort+34)
06-05 19:24:01.865 12417 12417 F DEBUG : #04 pc 00017128 /system/lib/libc.so (abort+4)
06-05 19:24:01.865 12417 12417 F DEBUG : #05 pc 0031c2a1 /system/lib/libart.so (_ZN3art7Runtime5AbortEPKc+328)
06-05 19:24:01.865 12417 12417 F DEBUG : #06 pc 000b52eb /system/lib/libart.so (_ZN3art10LogMessageD2Ev+1134)
06-05 19:24:01.865 12417 12417 F DEBUG : #07 pc 0026386b /system/lib/libart.so (_ZN3art3JNI10FatalErrorEP7_JNIEnvPKc+94)
06-05 19:24:01.865 12417 12417 F DEBUG : #08 pc 000dabc7 /system/lib/libandroid_runtime.so
06-05 19:24:01.865 12417 12417 F DEBUG : #09 pc 000dad59 /system/lib/libandroid_runtime.so
06-05 19:24:01.865 12417 12417 F DEBUG : #10 pc 000da7ff /system/lib/libandroid_runtime.so
06-05 19:24:01.865 12417 12417 F DEBUG : #11 pc 00019be3 /system/bin/app_process32
06-05 19:24:01.866 12417 12417 F DEBUG : #12 pc 7344f579 /data/dalvik-cache/arm/system@[email protected] (offset 0x281b000)
06-05 19:24:02.039 12403 12403 W main : type=1701 audit(0.0:231): auid=4294967295 uid=0 gid=0 ses=4294967295 subj=u:r:zygote:s0 reason="memory violation" sig=6
06-05 19:24:02.046 384 384 W : debuggerd: resuming target 12403
06-05 19:24:02.048 811 12430 W ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.sendBroadcast:877 com.android.server.am.AppErrors.crashApplicationInner:387 com.android.server.am.AppErrors.crashApplication:321 com.android.server.am.ActivityManagerService.handleApplicationCrashInner:13811 com.android.server.am.NativeCrashListener$NativeCrashReporter.run:86
06-05 19:24:02.050 811 857 I BootReceiver: Copying /data/tombstones/tombstone_07 to DropBox (SYSTEM_TOMBSTONE)
06-05 19:24:02.052 426 426 I Zygote : Process 12403 exited due to signal (6)
Generally, in DenyList must be only apps you want to hide Magisk from them (banking apps and so)

And GMS (Google Play Services) - although, when using Zygisk and USNF, USNF will remove GMS from DenyList

If some banking apps still crash (or complain) although in DenyList, then they require additional treatment to hide Magisk, root, unlocked BL - USNF, Shamiko, maybe HMA, etc

Hence first, which apps do crash (and before that, remove 'normal' apps from DenyList if you have them, and reboot)
 

pndwal

Senior Member
The old module TEE Hide just throw an exception in getCertificateChain method, so apps can't know if bootloader is locked or not. I will try to update AttestationSpoofer to bypass (again) the locked bootloader. They are using another cert class, because it doesn't call this method like previous versions.
I just realised that the two 1.0 apps are actually different... I just downloaded AttestationSpoofer expecting it to be an update. Instead I now have both showing in LSPosed manager...

TEE Hide gives "Bootloader Locked" on my device as stated...

AttestationSpoofer gives:
Unknown error

Detailed messages:
java.lang.NullPointerException: Attempt to get length of null array

👀 PW
 

klodfor

New member
Jul 31, 2020
4
0
These posts are from 2020 magisk has evolved greatly since then.
Please layout your question for a modern audience. State your device, magisk version android version and issue clearly.
Thanks it'll be good to provide help to you.
Especially since the first post you quoted refers to a post that at that time hadn't been created
To tell long story short..
My device ZTE Blade A6 (A0620) Android 7.1.1 Mifavor 4.2
Many other ZTE device users stuck on old 16.7 Magisk. Newer ver. causes Bootloop or DFU.
Problem is Magisk incorrectly patch ramdisk of stock boot.img.. It is 100% not vendor side problem.
According to CHANGELOG after 16.7 Magisk was Hotfix v17.1 where topjohnwu wrote
There was some incompatibility issues when upgrading from v16.0 to v17.0. If you are caught in a bootloop, first use the uninstaller to completely remove Magisk, then flash v17.1, I'm extremely sorry for all stuck in bootloops.
Since then flashing/patching on stock boot.img magisk newer than 16.7 don't work.
Uninstalling previous 16.7.. Flasing on stock... Patching via last Magisk-v26.1.apk.. still the same problem(
There are a lot of other feedback besides me is the net.
Pleasefix bootloop/ DFU.
I attached all possible logs and kernels + working ones on v16.7 >> Before and after incorrect ramdisk patch.
 
Last edited:

J.Michael

Recognized Contributor
Jan 20, 2018
2,079
2,477
Samsung Galaxy Tab A series
To tell long story short..
My device ZTE Blade A6 (A0620) Android 7.1.1 Mifavor 4.2
Many other ZTE device users stuck on old 16.7 Magisk. Newer ver. causes Bootloop or DFU.
Problem is Magisk incorrectly patch ramdisk of stock boot.img.. It is 100% not vendor side problem.
According to CHANGELOG after 16.7 Magisk was Hotfix v17.1 where topjohnwu wrote

Since then flashing/patching on stock boot.img magisk newer than 16.7 don't work.
Uninstalling previous 16.7.. Flasing on stock... Patching via last Magisk-v26.1.apk.. still the same problem(
There are a lot of other feedback besides me is the net.
Pleasefix bootloop/ DFU.
I attached all possible logs and kernels + working ones on v16.7 >> Before and after incorrect ramdisk patch.
I don't think you are going to get anything fixed by posting details here. And I don't think you will get much sympathy on github with a problem that cropped up between Magisk 16.7 and 17.1.

What problem are you hoping to fix by updating your Magisk? (I.e., why not stick with the one that works?)
 

DaOldMan

Senior Member
Oct 6, 2010
3,710
5,961
Generally, in DenyList must be only apps you want to hide Magisk from them (banking apps and so)

And GMS (Google Play Services) - although, when using Zygisk and USNF, USNF will remove GMS from DenyList

If some banking apps still crash (or complain) although in DenyList, then they require additional treatment to hide Magisk, root, unlocked BL - USNF, Shamiko, maybe HMA, etc

Hence first, which apps do crash (and before that, remove 'normal' apps from DenyList if you have them, and reboot)
Tnx mate for the reply.
1. I have no modules installed.
2. I have put just one app in denylist to demonstrate. Any app (all of them) in denylist will crash, so I can't use denylist at all :-( .
3. Magisk 25.2 works just fine, I don't even need to hide apps to pass safetynet. No crashes at all for apps in denylist!
Any ideas what's wrong ?
 
Last edited:
  • Like
Reactions: J.Michael

zgfg

Senior Member
Oct 10, 2016
9,654
7,514
Redmi K20 / Xiaomi Mi 9T
Xiaomi Mi 11
Tnx mate for the reply.
1. I have no modules installed.
2. I have put just one app in denylist to demonstrate. Any app (all of them) in denylist will crash, so I can't use denylist at all :-( .
3. Magisk 5.2 works just fine, I don't even need to hide apps to pass safetynet. No crashes at all for apps in denylist!
Any ideas what's wrong ?
No, I have no idea.(other than what I answered earlier).
And still no idea which app you tried in DenyList that it crashed

Btw, if you want to access developers (and give them the logs), you will need to submit an Issue to Magisk GitHub
 
  • Like
Reactions: ipdev and J.Michael

pndwal

Senior Member
Tnx mate for the reply.
1. I have no modules installed.
2. I have put just one app in denylist to demonstrate. Any app (all of them) in denylist will crash, so I can't use denylist at all :-( .
3. Magisk 5.2 works just fine, I don't even need to hide apps to pass safetynet. No crashes at all for apps in denylist!
Any ideas what's wrong ?
I'm confused by you Magisk versions... Old 5.2 and 6.1 don't even have denylist!... Not available till 24.0+...

Have you tried up to date Magisk? 🤔 PW
 

pndwal

Senior Member
I ment 25.2, sorry mate you are correct.
The one that crashes any app is 26.1.
Cheers
Tried Canary?...

Strange issue (may be fixed already though)...

However denylist is not really for hiding, rather it's a development/testing tool...

Suggest using a proper hiding solution like Shamiko; uses denylist as hidelist for convenience (with DenyList actually disabled)... Much better hiding (akin to/improved on MagiskHide) and doesn't break Zygisk modules that inject into apps in deny/hidelist...

Personally I'd give Canary a shot first... You can't even make a GitHub issue without trying latest builds (nb. Canary release and Debug debug are synced builds)... PW
 

pndwal

Senior Member
To tell long story short..
My device ZTE Blade A6 (A0620) Android 7.1.1 Mifavor 4.2
Many other ZTE device users stuck on old 16.7 Magisk. Newer ver. causes Bootloop or DFU.
Problem is Magisk incorrectly patch ramdisk of stock boot.img.. It is 100% not vendor side problem.
According to CHANGELOG after 16.7 Magisk was Hotfix v17.1 where topjohnwu wrote

Since then flashing/patching on stock boot.img magisk newer than 16.7 don't work.
Uninstalling previous 16.7.. Flasing on stock... Patching via last Magisk-v26.1.apk.. still the same problem(
There are a lot of other feedback besides me is the net.
Pleasefix bootloop/ DFU.
I attached all possible logs and kernels + working ones on v16.7 >> Before and after incorrect ramdisk patch.
Seems DFU is Device Firmware Upgrade mode in IOS devices... Guess you mean fastboot or download mode?

Checked, and seems nothing's been reported in GitHub issues for your device... Very little for ZTE at all...

If you want to make an official issue, Devs will likely close it if it's related to an unofficial ROM or kernel, so you'd need to have tried latest Magisk builds (they won't bother testing with older builds/logs) w/ clean Magisk configuration on stock (recommend latest available) ROM (I think your Mifavor ROM is custom?).

If you haven't already, I suggest a simple test:
Uninstall any Magisk App/Manager, wipe everything in /data/adb using file explorer in TWRP (to remove possibly corrupted Magisk configuration), dirty flash your current ROM to restore any changed images incl. /boot partition (you can keep or restore TWRP as recovery) then download latest Canary Magisk, change file extension from .apk to .zip and flash this from TWRP, boot to system and check if Magisk App or Magisk stub app has been installed an either open it and follow prompts to complete installation and re-flash Magisk from booted system (now needed to set up selinux/module rules directory), or restore package extension from .zip to .apk, install App and follow prompts to complete installation...

if it doesn't work, flash stock ROM (Preferably back up data an clean install) and try again...

if still no dice, extract the stock boot.img (must be from current ROM), patch this in App and flash using PC/fastboot and complete steps above...

If nothing works, repeat using Debug Magisk (needed for proper verbose logs when making an issue) and take logs, then make an official GitHub issue taking care to follow the prescribed template or issue may be closed...

🤠 👍 PW
 
  • Like
Reactions: ipdev and J.Michael

klodfor

New member
Jul 31, 2020
4
0
If nothing works, repeat using Debug Magisk
I've tried everything in your list (have full experience, I'm advanced user). Please check my attached dmesg in ZIP = ZTE_magisk_xda.zip carefully!
I've attached stock/working 16.7/last patched boot.img and logs, so you can disassemble them using osm0sis AIK for example to see what is wrong.
As I can understand starting from 17+ Magisk ramdisk patch is differ from 16.7 ver.
My firmware is stock. I've also patched stock untouched boot.img (from same stock official QFIL firmware ZTE for blade a6)
in latest canary build apk/ flashed zip using TWRP >> device run into ZTE Handset Diagnostic Interface (DFU) (COM11) and nothing else.
I've repeated everything using wanted Debug Magisk procedure in app-debug.apk and here you go again:
 
Last edited:

pndwal

Senior Member
I've tried everything in your list (have full experience, I'm advanced user). Please check my attached dmesg in ZIP = ZTE_magisk_xda.zip carefully!
I've attached stock/working 16.7/last patched boot.img and logs, so you can disassemble them using osm0sis AIK for example to see what is wrong.
As I can understand starting from 17+ Magisk ramdisk patch is differ from 16.7 ver.
My firmware is stock. I've also patched stock untouched boot.img (from same stock official QFIL firmware ZTE for blade a6)
in latest canary build apk/ flashed zip using TWRP >> device run into ZTE Handset Diagnostic Interface (DFU) (COM11) and nothing else.
I've repeated everything using wanted Debug Magisk procedure in app-debug.apk and here you go again:
Had a quick look, but I'm only an amateur sleuth... Seems to be many Selinux context issues...

Only changes that seem possible culprits are

v17.0/17.1​

  • [Script] Enable KEEPVERITY when the device is using system_root_image
... Can I assume your device does not have a separate vbmeta partition and that you see and are checking the “Patch vbmeta in boot image” option?

Also
  • [MagiskInit] Move all sepolicy patches pre-init to prevent Pixel 2 (XL) boot service breakdown
but it's beyond me to know if your selinux issues are related to this change...

If you have specific information, perhaps you could say how 'ramdisk patch is different' in 17.0+... 🤔

Generally users here can only offer tips and ensure your 'i's are dotted and 't's crossed, and seems you haven't been sloppy...

I really suspect selinux issues (regression due to Pixel 2 fix?) so I'd urge you simply to open a Magisk GitHub issue and submit your logs from debug build... Be sure to follow template and include "Magisk version code: 26102" in body of first post so bot doesn't close the issue immediately...

Experienced Devs will take a look for you (I'd list all affected ZTE devices you are aware of that are similarly affected too*) and you'll be doing others a service... 😜 👍 PW

*Edit: Many appear to be listed here:
Guys, can you help me? Post #39854. Magisk 17+ not work on next device:
- ZTE Blade V9
- ZTE Blade V9 Vita
- ZTE Blade A7 Vita
- ZTE Blave V8
- ZTE Blade V8 Mini
- ZTE Blade V8c
- ZTE Blade A6
- ZTE Blade A6 (Claro)
- ZTE Blade A6 (Movistar)
- ZTE Blade A6 Lite
- ZTE Blade A0622 (voyage)
- ZTE Blade A6 MAX
- ZTE Blade A522
- ZTE Blade A520
- ZTE Smart Fresh 5
 
Last edited:

DaOldMan

Senior Member
Oct 6, 2010
3,710
5,961
No, I have no idea.(other than what I answered earlier).
And still no idea which app you tried in DenyList that it crashed

Btw, if you want to access developers (and give them the logs), you will need to submit an Issue to Magisk GitHub
As I said it doesn't matter which app I put in the denylist. If I try to put "google play services" it will crash over and over after boot (as it's invoked a lot). If I put in there some banking app, I can't run it anymore - it will allways crash. Any app in the list crashes every time you run it. The minute I remove it from denylist or stop enforcing the denylist, the apps run just fine again. I went back to Magisk 25.2 and the denylist works normaly again, nothing crashes anymore and I can pass safetynet.
Hope it's understood.
 
Last edited:

zgfg

Senior Member
Oct 10, 2016
9,654
7,514
Redmi K20 / Xiaomi Mi 9T
Xiaomi Mi 11
... [prior to Magisk v26] magisk --path ... used to point to /dev/<something> but now, with Canary 26102 it points to /debug_ramdisk

... you see the path to /dev and .. [how] I can write to the subfolder

However, on Magisk 26102 it responds with a different path and ... the subfolder is read-only...
Another consequence of that change with magisk --path and $MAGISKTMP between Magisk v25 (or earlier) and Magisk v26

With Magisk v25, /system/bin (and /system/xbin - if the latter folder was available on the particular phone/ROM) were mounted by Magisk as read-write.
Eg, (and that was useful for modules) for the service.sh scripts

Now, with Magisk v26, if a service.sh script attempts to writes to /system/bin or /system/xbin, it will fail

That was useful when service.sh scripts from some modules wanted to link or mount certain changes to the given folders (eg, to install some executable applets), usually with ln -s ... or mount -o bind. ..(there is another way to do that but at an earlier stage of booting, from post-fs-data sh scripts, but that might be too early for some modules)

Indeed, you can test with the script attached below. Put it to /data/adb/service_d folder, make it executable by chmod 755 and reboot

On Magisk v26, the script will fail to write a temporary test file to /system/(x)bin. Script prints the log service.log (in the same folder) and by the end of the log file it will be printed:
Code:
+ touch /system/xbin/testFile_123456789
touch: /system/xbin/testFile_123456789: Read-only file system
+ ls -l /system/xbin/testFile_123456789
ls: /system/xbin/testFile_123456789: No such file or directory

To the contrary, on the same phone but with Magisk v25, the same script won't fail to write and it will log:
Code:
+ touch /system/xbin/testFile_123456789
+ ls -l /system/xbin/testFile_123456789
+ CheckForTestFile='-rw-rw-rw-    1 root     root             0 Jun  6 21:33 /system/xbin/testFile_123456789'

showing how the creation of temporary test file failed on Magisk v26 vs succeeded on Magisk v25, from the script:
Code:
TestFile="$SDir/testFile_123456789"
touch $TestFile
CheckForTestFile="$(ls -l $TestFile)"

Here, $SDir points to /system/xbin or /system/bin, as defined at the beginning of the script and logged at the beginning of the log file
 

Attachments

  • testScript.sh
    636 bytes · Views: 3
  • testScript-Magisk_v25.log
    3.2 KB · Views: 3
  • testScript-Magisk_v26.log
    3.2 KB · Views: 3
Last edited:

J.Michael

Recognized Contributor
Jan 20, 2018
2,079
2,477
Samsung Galaxy Tab A series
Another consequence of that change with magisk --path and $MAGISKTMP between Magisk v25 (or earlier) and Magisk v26

With Magisk v25, /system/bin (and /system/xbin - if the latter folder was available on the particular phone/ROM) were mounted by Magisk as read-write.
Eg, (and that was useful for modules) for the service.sh scripts

Now, with Magisk v26, if a service.sh script attempts to writes to /system/bin or /system/xbin, it will fail

That was useful when service.sh scripts from some modules wanted to link or mount certain changes to the given folders (eg, to install some executable applets), usually with ln -s ... or mount -o bind. ..(there is another way to do that but at an earlier stage of booting, from post-fs-data sh scripts, but that might be too early for some modules)

Indeed, you can test with the script attached below. Put it to /data/adb/service_d folder, make it executable by chmod 755 and reboot

On Magisk v26, the script will fail to write a temporary test file to /system/(x)bin. Script prints the log service.log (in the same folder) and by the end of the log file it will be printed:
Code:
+ touch /system/xbin/testFile_123456789
touch: /system/xbin/testFile_123456789: Read-only file system
+ ls -l /system/xbin/testFile_123456789
ls: /system/xbin/testFile_123456789: No such file or directory

To the contrary, on the same phone but with Magisk v25, the same script won't fail to write and it will log:
Code:
+ touch /system/xbin/testFile_123456789
+ ls -l /system/xbin/testFile_123456789
+ CheckForTestFile='-rw-rw-rw-    1 root     root             0 Jun  6 21:33 /system/xbin/testFile_123456789'

showing how the creation of temporary test file failed on Magisk v26 vs succeeded on Magisk v25, from the script:
Code:
TestFile="$SDir/testFile_123456789"
touch $TestFile
CheckForTestFile="$(ls -l $TestFile)"

Here, $SDir points to /system/xbin or /system/bin, as defined at the beginning of the script and logged at the beginning of the log file
On your device, is /system mounted rw?

I would have thought that a proper Magisk module would never try to write to /system directly. I thought one of the points of Magisk was that all changes were "systemless", so a proper module should put whatever it wants in /system in the module sub-tree, to be mounted over /system by Magisk at run-time.
 
  • Like
Reactions: ipdev

ipdev

Recognized Contributor
Feb 14, 2016
2,531
1
5,109
Google Nexus 10
Nexus 7 (2013)
Apparently, there was also a change in the $MAGISKTMP variable (available during the Installation of Magisk modules):
In Magisk v26 it points to magisk --path (the new path), in the older Magisk versions it pointed to the subfolder .magisk of the old magisk --path

Nevertheless, I made the modifications that both AML and JamesDSP modules can now work also on Magisk v26 (zip installations attached in the quoted post):
https://forum.xda-developers.com/t/jamesdsp-audio-manager-mmt-ex.3607970/post-88598223
Another consequence of that change with magisk --path and $MAGISKTMP between Magisk v25 (or earlier) and Magisk v26

With Magisk v25, /system/bin (and /system/xbin - if the latter folder was available on the particular phone/ROM) were mounted by Magisk as read-write.
Eg, (and that was useful for modules) for the service.sh scripts

Now, with Magisk v26, if a service.sh script attempts to writes to /system/bin or /system/xbin, it will fail

That was useful when service.sh scripts from some modules wanted to link or mount certain changes to the given folders (eg, to install some executable applets), usually with ln -s ... or mount -o bind. ..(there is another way to do that but at an earlier stage of booting, from post-fs-data sh scripts, but that might be too early for some modules)

Indeed, you can test with the script attached below. Put it to /data/adb/service_d folder, make it executable by chmod 755 and reboot

On Magisk v26, the script will fail to write a temporary test file to /system/(x)bin. Script prints the log service.log (in the same folder) and by the end of the log file it will be printed:
Code:
+ touch /system/xbin/testFile_123456789
touch: /system/xbin/testFile_123456789: Read-only file system
+ ls -l /system/xbin/testFile_123456789
ls: /system/xbin/testFile_123456789: No such file or directory

To the contrary, on the same phone but with Magisk v25, the same script won't fail to write and it will log:
Code:
+ touch /system/xbin/testFile_123456789
+ ls -l /system/xbin/testFile_123456789
+ CheckForTestFile='-rw-rw-rw-    1 root     root             0 Jun  6 21:33 /system/xbin/testFile_123456789'

showing how the creation of temporary test file failed on Magisk v26 vs succeeded on Magisk v25, from the script:
Code:
TestFile="$SDir/testFile_123456789"
touch $TestFile
CheckForTestFile="$(ls -l $TestFile)"

Here, $SDir points to /system/xbin or /system/bin, as defined at the beginning of the script and logged at the beginning of the log file
I have not read the instructions in awhile. 🙃
Magisk will mount a tmpfs directory to store some temporary data. For devices with the /sbin folder, it will be chosen as it will also act as an overlay to inject binaries into PATH. From Android 11 onwards, the /sbin folder might not exist, so Magisk will randomly create a folder under /dev and use it as the base folder.

The preset Magisk varables aparently were changed before the new /debug_ramdisk/ temp directory was set.
Code:
# In order to get the current base folder Magisk is using,
# use the command `magisk --path`.
# Binaries like magisk, magiskinit, and all symlinks to
# applets are directly stored in this path. This means when
# this is /sbin, these binaries will be directly in PATH.
MAGISKTMP=$(magisk --path)

# Magisk internal stuffs
INTERNALDIR=$MAGISKTMP/.magisk

# /data/adb/modules will be bind mounted here.
# The original folder is not used due to nosuid mount flag.
$INTERNALDIR/modules

# The current Magisk installation config
$INTERNALDIR/config

# Partition mirrors
# Each directory in this path will be mounted with the
# partition of its directory name.
# e.g. system, system_ext, vendor, data ...
$INTERNALDIR/mirror

# Root directory patch files
# On system-as-root devices, / is not writable.
# All pre-init patched files are stored here and bind mounted.
$INTERNALDIR/rootdir
Magisk.io - [github] - Paths in “Magisk tmpfs directory” - Link

Not sure if it will help on your endeavor.

Cheers. :cowboy:
 

bnsmb

Senior Member
Aug 22, 2017
310
179
Frankfurt
On your device, is /system mounted rw?

I would have thought that a proper Magisk module would never try to write to /system directly. I thought one of the points of Magisk was that all changes were "systemless", so a proper module should put whatever it wants in /system in the module sub-tree, to be mounted over /system by Magisk at run-time.
I also thought that /system is now always mounted ro ... but I just tested it on my ASUS Zenfone 8 with OmniROM 13 and Magisk v25.2 in the boot partition

Code:
ASUS_I006D:/sdcard/Download # magisk -V
25200
                                                                                               
ASUS_I006D:/sdcard/Download # touch /system/bin/testFile_123456789                                                                                                       
ASUS_I006D:/sdcard/Download # ls -l /system/bin/testFile_123456789                                                                           -rw-r--r-- 1 root root 0 2023-06-07 07:57 /system/bin/testFile_123456789
ASUS_I006D:/sdcard/Download #   

ASUS_I006D:/sdcard/Download # mount | grep "/system/bin " 
tmpfs on /system/bin type tmpfs (rw,seclabel,relatime,size=3700224k,nr_inodes=925056)
ASUS_I006D:/sdcard/Download #

But It's mounted to tmpfs so all changes to /system/bin will be lost after the next reboot


regards

Bernd
 
  • Like
Reactions: J.Michael

Top Liked Posts

  • 1
    Well that's great we have reached an official conclusion of this after unrooting and factory resetting instead of my speculation but now how do I return it to unlocked status? I don't use Sprint (even if it's merged with T-Mobile).
    Like I mentioned before, no scam services that after I pay them they say "we unfortunately aren't able to do this or that but thanks for the money sucker"
    Just catching up here...

    Ok, starting to understand... Originally you said:
    Updating to Magisk 26.3 disabled my unlocked phone's ability to read my SIM card, so now it gives me Invalid SIM card or SIM card not detected
    Naturally we all thought you meant bootloader unlocked since that's a requirement for rooting (although B/L can be locked again with root in special circumstances)... Since flashing a mismatched boot.img commonly results in users having SIM/mobile network, WiFi, BT and similar issues, that looked like your issue to me...

    It never occurred to me that you had an originally carrier locked device that had been unlocked and had somehow reverted to locked, preventing use of a non-carrier SIM!...

    Also, carrier lock status has nothing to do with root except that some carriers may also disable OEM Unlocking ability (that's bootloader, not carrier) on devices they supply (by applying their modifications to the ROM).
    Really my issue is that it seems Magisk locked my phone or something and I'm trying to figure out how to get it unlocked without paying for a scam service that may or may not work.
    ... I still didn't twig that you meant to carrier-unlock here either... 🤪

    So I think root, modules etc has nothing to do with this issue, assuming device was properly carrier unlocked (using manufacturer method/codes)... But I'm not betting this was done properly...

    Did you apply unlock codes?... Or was some hack solution for unlocking applied by you, someone else, or a seller (perhaps they applied a hack to bypass a mandatory waiting time or payment due for unlocking, or it was preloaded with a modded/unofficial ROM etc)?

    It's unlikely a root update or similar would account for carrier lock reverting unless it wasn't unlocked property or by using official methods in the first place... In that case all bets would be off... 😬 PW
    1
    Where did you buy this phone?

    Was it carrier-locked when you bought it?

    Did you buy a new SIM card?

    How did you carrier-unlock the phone?

    Where did you find the stock ROM? (The one you "must have deleted or something"?)

    Have you located and downloaded the stock ROM a second time?

    Have you ever tried burning a complete stock ROM to see if that restores the ability to use the phone?
    I bought the phone already unlocked and factory refurbished off Amazon and I still have the same SIM card.
    I think the Stock ROM I deleted was the copy of the unpatched IMG file so it's before I patched it with Magisk. I'm also positive I don't have the original IMG unless maybe if I look through File History on my PC.
    Haven't tried burning any kind of ROM.
    Good news though, I actually went back to T Mobile and got a new 5G Stylus 2023. A bit smaller but still awesome. I will think about keeping the old Stylus or selling it to a pawn shop.
    1
    I bought the phone already unlocked and factory refurbished off Amazon and I still have the same SIM card.
    I think the Stock ROM I deleted was the copy of the unpatched IMG file so it's before I patched it with Magisk. I'm also positive I don't have the original IMG unless maybe if I look through File History on my PC.
    Haven't tried burning any kind of ROM.
    Good news though, I actually went back to T Mobile and got a new 5G Stylus 2023. A bit smaller but still awesome. I will think about keeping the old Stylus or selling it to a pawn shop.
    ROM is bigger than image file, ROM typically contains a number of image files. ROM may be a ZIP file, a tar file, or some other container-type file.

    Where did you get the ROM file? Was it given to you with the phone? Were you told from where to download it? Did you find it yourself on some web site?

    If the carrier-unlock process consists of replacing the kernel, or patching the boot image, and you managed to find a carrier-locked boot image, then that explains how you re-locked your phone.

    I still don't understand how your SIM card worked fine in a random phone at the phone store, but is apparently not on the right network for *your* phone.
  • 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
    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.
    😥️
    5
    ... except the poster did indeed try that, and the SIM card is fine. See above.
    That's not the point. The point is it was an obvious thing to check, I never thought of it, @iruiz2 did, and I would have liked to be able to paste glitter and unicorns all over his post to express how much I Liked it.

    You, on the other hand, can expect coal in your stocking.
    4
    Sorry laughing at side of road comment, not your post in general
    Yeah... in Australia you should be sure to meet Gumtree electronics vendor in the middle of a busy shopping mall!... In Asian countries this is even more imperative... 😆 PW
    4
    Full nandroid backups are for modders...

    Actually, full nandroid backups are quite helpful for non-modders, as well.

    Consider the following ...

    A typical non-modding Android user on a standard, factory, non-rooted ROM on a standard Android-approved device applies standard, approved OTA updates when they are offered.

    But after one such OTA is successfully applied, the user then realizes that the system has been modified in one or more ways that he or she doesn't like, and the user therefore wants to roll back the OTA update.

    If there was a utility which would have allowed the user to have taken a full nandroid-like backup right before initiating the OTA update, he or she could then easily and relatively quickly use that utility to restore the system back to the exact state it was in right before the OTA.

    Again, I'm not saying that Google SHOULD offer a such nandroid-like backup/restore utility, but it certainly would be nice to have. And if such a standard Android utility was offered by Google, this would save countless person-hours of development efforts for the creation of numerous versions of TWRP and OrangeFox for all the various device/OS-version combinations out there.

    But this is little more than a pipe dream, given that Google is extremely unlikely to ever offer such a thing.
  • 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