Magisk General Support / Discussion

Search This thread

zgfg

Senior Member
Oct 10, 2016
9,571
7,416
Redmi K20 / Xiaomi Mi 9T
Xiaomi Mi 11 Ultra
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 #
There is substantial difference between Magisk v25 and v26, see my post #56297 (earlier on this page):
https://forum.xda-developers.com/t/magisk-general-support-discussion.3432382/post-88617909

On v26, you can no more write to /system/(x)bin

---

And of course, on Magisk v25 and earlier, you write to, Magisk mounts but the mount is lost on next reboot (SAR is not changed/affected)

That is, you can put your changes for /system/bin to a module, service.sh script and Magisk will always mount on the next reboot

But it doesn't work that way in Magisk v26 anymore, since writing to /system/(x)bin will fail (in that service.sh script), hence Magisk will not mount anything there

---

Oops, sorry - I see you tested with my example from that post, so you did read that post,😁

---

PS:

Or read-write mount was just something specific to Magisk Delta?
 
Last edited:

bnsmb

Senior Member
Aug 22, 2017
297
163
Frankfurt
There is substantial difference between Magisk v25 and v26, see my post #56297 (earlier on this page):
https://forum.xda-developers.com/t/magisk-general-support-discussion.3432382/post-88617909

On v26, you can no more write to /system/(x)bin

---

And of course, on Magisk v25 and earlier, you write to, Magisk mounts but the mount is lost on next reboot (SAR is not changed/affected)

That is, you can put your changes for /system/bin to a module, service.sh script and Magisk will always mount on the next reboot

But it doesn't work that way in Magisk v26 anymore, since writing to /system/(x)bin will fail (in that service.sh script), hence Magisk will not mount anything there

---

Oops, sorry - I see you tested with my example from that post, so you did read that post,😁

---

PS:

Or read-write mount was just something specific to Magisk Delta?

Hi

I tested the same with Magisk v26.2 and can confirm that /system/bin is not writable mounted anymore.

But it doesn't work that way in Magisk v26 anymore, since writing to /system/(x)bin will fail (in that service.sh script), hence Magisk will not mount anything there

AFAIK Magisk itself did never change files in /system/bin -- it always uses bind mounts (that's why it didn't work with very early Android versions that didn't support bind mounts)

And bind mounts will work with any filesystem that supports them -- even if the filesystem is mounted read-only.

Code:
ASUS_I006D:/ # magisk -V
26100

ASUS_I006D:/ # touch /system/bin/xx.$$
touch: '/system/bin/xx.5000': Read-only file system
1|ASUS_I006D:/ #

1|ASUS_I006D:/ # mount | grep "/system "

1|ASUS_I006D:/ # mount | grep "/system/bin "   
worker on /system/bin type tmpfs (ro,seclabel,relatime,size=3700224k,nr_inodes=925056,mode=755)
ASUS_I006D:/ #

ASUS_I006D:/ # cp /system/etc/passwd /data/adb/passwd
ASUS_I006D:/ #
ASUS_I006D:/ # ls -l /system/etc/passwd /data/adb/passwd
                 
-rw-r--r-- 1 root root 0 2023-06-07 10:35 /data/adb/passwd
-rw-r--r-- 1 root root 0 2009-01-01 01:00 /system/etc/passwd
ASUS_I006D:/ #

ASUS_I006D:/ # vi /data/adb/passwd
ASUS_I006D:/ #

ASUS_I006D:/ # ls -l /system/etc/passwd /data/adb/passwd                                                                                                                
-rw-r--r-- 1 root root 42 2023-06-07 10:35 /data/adb/passwd
-rw-r--r-- 1 root root  0 2009-01-01 01:00 /system/etc/passwd
ASUS_I006D:/ #

ASUS_I006D:/ # cat /system/etc/passwd
ASUS_I006D:/ #

ASUS_I006D:/ # cat /data/adb/passwd
# This is a dummy passwd for Magisk tests
ASUS_I006D:/ #

ASUS_I006D:/ # mount -o bind /data/adb/passwd /system/etc/passwd
ASUS_I006D:/ #

ASUS_I006D:/ # ls -l /system/etc/passwd /data/adb/passwd                  
-rw-r--r-- 1 root root 42 2023-06-07 10:35 /data/adb/passwd
-rw-r--r-- 1 root root 42 2023-06-07 10:35 /system/etc/passwd
ASUS_I006D:/ #

ASUS_I006D:/ # cat /system/etc/passwd
# This is a dummy passwd for Magisk tests
ASUS_I006D:/ #


Using bind mounts is the reason why you can always "restore" the original files by removing the Magisk module
IMHO a very cool and clever idea and one of the best features of Magisk.

regards

Bernd
 
Last edited:

zgfg

Senior Member
Oct 10, 2016
9,571
7,416
Redmi K20 / Xiaomi Mi 9T
Xiaomi Mi 11 Ultra
Hi

I tested the same with Magisk v26.2 and can confirm that /system/bin is not writable mounted anymore.



AFAIK Magisk itself did never change files in /system/bin -- it always uses bind mounts (that's why it didn't work with very early Android versions that didn't support bind mounts)

And bind mounts will work with any filesystem that supports them -- even if the filesystem is mounted read-only.

Code:
ASUS_I006D:/ # magisk -V
26100

ASUS_I006D:/ # touch /system/bin/xx.$$
touch: '/system/bin/xx.5000': Read-only file system
1|ASUS_I006D:/ #

1|ASUS_I006D:/ # mount | grep "/system "

1|ASUS_I006D:/ # mount | grep "/system/bin "
worker on /system/bin type tmpfs (ro,seclabel,relatime,size=3700224k,nr_inodes=925056,mode=755)
ASUS_I006D:/ #

ASUS_I006D:/ # cp /system/etc/passwd /data/adb/passwd
ASUS_I006D:/ #
ASUS_I006D:/ # ls -l /system/etc/passwd /data/adb/passwd
              
-rw-r--r-- 1 root root 0 2023-06-07 10:35 /data/adb/passwd
-rw-r--r-- 1 root root 0 2009-01-01 01:00 /system/etc/passwd
ASUS_I006D:/ #

ASUS_I006D:/ # vi /data/adb/passwd
ASUS_I006D:/ #

ASUS_I006D:/ # ls -l /system/etc/passwd /data/adb/passwd                                                                                                             
-rw-r--r-- 1 root root 42 2023-06-07 10:35 /data/adb/passwd
-rw-r--r-- 1 root root  0 2009-01-01 01:00 /system/etc/passwd
ASUS_I006D:/ #

ASUS_I006D:/ # cat /system/etc/passwd
ASUS_I006D:/ #

ASUS_I006D:/ # cat /data/adb/passwd
# This is a dummy passwd for Magisk tests
ASUS_I006D:/ #

ASUS_I006D:/ # mount -o bind /data/adb/passwd /system/etc/passwd
ASUS_I006D:/ #

ASUS_I006D:/ # ls -l /system/etc/passwd /data/adb/passwd               
-rw-r--r-- 1 root root 42 2023-06-07 10:35 /data/adb/passwd
-rw-r--r-- 1 root root 42 2023-06-07 10:35 /system/etc/passwd
ASUS_I006D:/ #

ASUS_I006D:/ # cat /system/etc/passwd
# This is a dummy passwd for Magisk tests
ASUS_I006D:/ #


Using bind mounts is the reason why you can always "restore" the original files by removing the Magisk module
IMHO a very cool and clever idea and one of the best features of Magisk.

regards

Bernd
I'm still not sure if /system/(x)bin was writable on the official Magisk v25 and earlier, or it was specific to Delta (since HuskyDG worked on a module for dynamical mounting during the run-time)

Nevertheless, about the second part - it's not only good that when you boot without Magisk all mounts/changes will be gone but that is also necessary for new devices - originally released with A11, where SAR (all System paths) are read-only on the file system level (hence even with root, you could not change them). Therefore, temporary mounting can only work

You can inspect your /vendor/etc/fstab to see if /system or / are defined as "ro"

Btw, in that case, size of the SAR is full up to the last block (only few KBs might be unused) - hence even if it would be writable (on the file system level) nothing additional could be stored

Eg, (system/)/etc/hosts file with blocking domains for ad sites would not fit (no space left on /system) - and that's why Systemless hosts is also needed
 
Last edited:

bnsmb

Senior Member
Aug 22, 2017
297
163
Frankfurt
I'm still not sure if /system/(x)bin was writable on the official Magisk v25 and earlier, or it was specific to Delta (since HuskyDG worked on a module for dynamical mounting during the run-time)

Nevertheless, about the second part - it's not only good that when you boot without Magisk all mounts/changes will be gone but that is also necessary for new devices - originally released with A11, where SAR (all System paths) are read-only on the file system level (hence even with root, you could not change them). Therefore, temporary mounting can only work

You can inspect your /vendor/etc/fstab to see if /system or / are defined as "ro"

Btw, in that case, size of the SAR is full up to the last block (only few KBs might be unused) - hence even if it would be writable (on the file system level) nothing additional could be stored

Eg, (system/)/etc/hosts file with blocking domains for ad sites would not fit (no space left on /system) - and that's why Systemless hosts is also needed


Hi

I'm still not sure if /system/(x)bin was writable on the official Magisk v25 and earlier, or it was specific to Delta

I tested with the official Magisk v25 release

Tests with Magisk v24.2 do have the same result:

Code:
ASUS_I006D:/ # magisk -V                                                                                                                                                
24200
ASUS_I006D:/ #
ASUS_I006D:/ # mount | grep "/system/bin "                                                                                                                              
tmpfs on /system/bin type tmpfs (rw,seclabel,relatime,size=3700224k,nr_inodes=925056)
ASUS_I006D:/ #
ASUS_I006D:/ # touch /system/bin/xxx.$$$                                                                                                                                
ASUS_I006D:/ #
ASUS_I006D:/ # ls -l /system/bin/xxx.$$$                                                                                                                                
-rw-r--r-- 1 root root 0 2023-06-07 13:17 /system/bin/xxx.4613$
ASUS_I006D:/ #


regards

Bernd
 
Last edited:
  • Like
Reactions: zgfg

ipdev

Recognized Contributor
Feb 14, 2016
2,522
1
5,077
Google Nexus 10
Nexus 7 (2013)
I'm still not sure if /system/(x)bin was writable on the official Magisk v25 and earlier, or it was specific to Delta (since HuskyDG worked on a module for dynamical mounting during the run-time)

Nevertheless, about the second part - it's not only good that when you boot without Magisk all mounts/changes will be gone but that is also necessary for new devices - originally released with A11, where SAR (all System paths) are read-only on the file system level (hence even with root, you could not change them). Therefore, temporary mounting can only work

You can inspect your /vendor/etc/fstab to see if /system or / are defined as "ro"

Btw, in that case, size of the SAR is full up to the last block (only few KBs might be unused) - hence even if it would be writable (on the file system level) nothing additional could be stored

Eg, (system/)/etc/hosts file with blocking domains for ad sites would not fit (no space left on /system) - and that's why Systemless hosts is also needed
Pixel 3aXL
Lineage 19.1 (20230603)
OpenGApps 12L (nano?)
Magisk - Current version.

I ran your test script.
I thought it might work on Lineage.
Sorry to say it did not. 😞

---

Custom ROMs that do not include GApps, leave extra room in system for GApps.
Size of the rom and the installed gapps package, determines how much free space you have left in system.

AdAway in root-mode, will write to system/etc/hosts but, the file will be truncated if you run out of free space.
The updated hosts file will remain even if you boot a non-Magisk patched boot image.

Magisk patched boot image.
Code:
[ip@lost 3aXL]$ adb shell
bonito:/ $ magisk -c
5e2ef1b7f-ip:MAGISK:R (26102)
bonito:/ $ su -c ls -la /data/adb/modules/
total 30
drwxr-xr-x 10 root root 3488 2023-06-04 11:48 .
drwx------ 11 root root 3488 2023-06-04 11:48 ..
drwxr-xr-x  3 root root 3488 2023-06-04 11:46 busybox-ndk
drwxr-xr-x  2 root root 3488 2023-06-03 17:45 iReddit
drwxr-xr-x  2 root root 3488 2023-05-27 10:39 iyt
drwxr-xr-x  2 root root 3488 2023-05-27 12:54 iytm_arm64
drwxr-xr-x  3 root root 3488 2023-06-04 11:48 nano-ndk
drwxr-xr-x  3 root root 3488 2023-04-22 18:03 safetynet-fix
drwxr-xr-x  5 root root 3488 2023-04-24 18:40 zygisk_lsposed
drwxr-xr-x  3 root root 3488 2023-06-04 11:48 zygisk_shamiko
bonito:/ $ 
bonito:/ $ ls -la /system/etc/hosts
-rw-r--r-- 1 root root 287489 2023-06-04 13:58 /system/etc/hosts
bonito:/ $ cat /system/etc/hosts | grep "#"
# This hosts file has been generated by AdAway on: 2023-06-04 13:58:55
# Please do not modify it directly, it will be overwritten when AdAway is applied again.
# This file is generated from the following sources:
# - AdAway official hosts:https://adaway.org/hosts.txt
# - Pete Lowe blocklist hosts:https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=0&mimetype=plaintext
bonito:/ $ exit
Stock boot image.
Code:
[ip@lost 3aXL]$ adb reboot bootloader; fastboot boot 20230603/boot-lineage-19.1-20230603-nightly-bonito-signed.img
< waiting for any device >
Sending 'boot.img' (65536 KB)                      OKAY [  2.755s]
Booting                                            OKAY [  6.935s]
Finished. Total time: 9.739s
[ip@lost 3aXL]$ adb shell
bonito:/ $ magisk -c
/system/bin/sh: magisk: inaccessible or not found
127|bonito:/ $ su -c ls -la /data/adb/modules/
/system/bin/sh: su: inaccessible or not found
127|bonito:/ $ ls -la /system/etc/hosts
-rw-r--r-- 1 root root 287489 2023-06-04 13:58 /system/etc/hosts
bonito:/ $ cat /system/etc/hosts | grep "#"
# This hosts file has been generated by AdAway on: 2023-06-04 13:58:55
# Please do not modify it directly, it will be overwritten when AdAway is applied again.
# This file is generated from the following sources:
# - AdAway official hosts:https://adaway.org/hosts.txt
# - Pete Lowe blocklist hosts:https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=0&mimetype=plaintext
bonito:/ $ exit
[ip@lost 3aXL]$ adb reboot

Cheers. :cowboy:

PS.
I remember commits/messages about changing to 'ro' only but, I could not find the one(s) I was thinking of.
Maybe @pndwal could chime in 😉
 

Attachments

  • testScript.log
    5.8 KB · Views: 3

Unspec

Member
Nov 13, 2014
20
11
Hi all, I am on a Pixel 6 Pro, just updated to the May update. For some reason, on both stable 26.1 and canary 26102, I am getting a crash as soon as I get to my login screen, I'll see the screen appear as normal but then crash 1-2 seconds later. It'll then go into a boot loop with the usual "Could not load Android system" etc etc, but once I re-flash the stock boot.img it works again. I'm unsure what modules I have installed, and at this point I'm unsure how to even uninstall them to see if it's a module misbehaving. Any help would be appreciated, thanks!
 

zgfg

Senior Member
Oct 10, 2016
9,571
7,416
Redmi K20 / Xiaomi Mi 9T
Xiaomi Mi 11 Ultra
Pixel 3aXL
Lineage 19.1 (20230603)
OpenGApps 12L (nano?)
Magisk - Current version.

I ran your test script.
I thought it might work on Lineage.
Sorry to say it did not. 😞

---

Custom ROMs that do not include GApps, leave extra room in system for GApps.
Size of the rom and the installed gapps package, determines how much free space you have left in system.

AdAway in root-mode, will write to system/etc/hosts but, the file will be truncated if you run out of free space.
The updated hosts file will remain even if you boot a non-Magisk patched boot image.

Magisk patched boot image.
Code:
[ip@lost 3aXL]$ adb shell
bonito:/ $ magisk -c
5e2ef1b7f-ip:MAGISK:R (26102)
bonito:/ $ su -c ls -la /data/adb/modules/
total 30
drwxr-xr-x 10 root root 3488 2023-06-04 11:48 .
drwx------ 11 root root 3488 2023-06-04 11:48 ..
drwxr-xr-x  3 root root 3488 2023-06-04 11:46 busybox-ndk
drwxr-xr-x  2 root root 3488 2023-06-03 17:45 iReddit
drwxr-xr-x  2 root root 3488 2023-05-27 10:39 iyt
drwxr-xr-x  2 root root 3488 2023-05-27 12:54 iytm_arm64
drwxr-xr-x  3 root root 3488 2023-06-04 11:48 nano-ndk
drwxr-xr-x  3 root root 3488 2023-04-22 18:03 safetynet-fix
drwxr-xr-x  5 root root 3488 2023-04-24 18:40 zygisk_lsposed
drwxr-xr-x  3 root root 3488 2023-06-04 11:48 zygisk_shamiko
bonito:/ $
bonito:/ $ ls -la /system/etc/hosts
-rw-r--r-- 1 root root 287489 2023-06-04 13:58 /system/etc/hosts
bonito:/ $ cat /system/etc/hosts | grep "#"
# This hosts file has been generated by AdAway on: 2023-06-04 13:58:55
# Please do not modify it directly, it will be overwritten when AdAway is applied again.
# This file is generated from the following sources:
# - AdAway official hosts:https://adaway.org/hosts.txt
# - Pete Lowe blocklist hosts:https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=0&mimetype=plaintext
bonito:/ $ exit
Stock boot image.
Code:
[ip@lost 3aXL]$ adb reboot bootloader; fastboot boot 20230603/boot-lineage-19.1-20230603-nightly-bonito-signed.img
< waiting for any device >
Sending 'boot.img' (65536 KB)                      OKAY [  2.755s]
Booting                                            OKAY [  6.935s]
Finished. Total time: 9.739s
[ip@lost 3aXL]$ adb shell
bonito:/ $ magisk -c
/system/bin/sh: magisk: inaccessible or not found
127|bonito:/ $ su -c ls -la /data/adb/modules/
/system/bin/sh: su: inaccessible or not found
127|bonito:/ $ ls -la /system/etc/hosts
-rw-r--r-- 1 root root 287489 2023-06-04 13:58 /system/etc/hosts
bonito:/ $ cat /system/etc/hosts | grep "#"
# This hosts file has been generated by AdAway on: 2023-06-04 13:58:55
# Please do not modify it directly, it will be overwritten when AdAway is applied again.
# This file is generated from the following sources:
# - AdAway official hosts:https://adaway.org/hosts.txt
# - Pete Lowe blocklist hosts:https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=0&mimetype=plaintext
bonito:/ $ exit
[ip@lost 3aXL]$ adb reboot

Cheers. :cowboy:

PS.
I remember commits/messages about changing to 'ro' only but, I could not find the one(s) I was thinking of.
Maybe @pndwal could chime in 😉
If you were able to write eg hosts file, your system partitions are not formatted and defined ro = read-only in the /vendor/etc/fstab.* (of course, it has nothing to do with Magisk)

Eg, on my Xiaomi (from 2021), released initially with A10, all system partitions are formatted ext4 read-only barrier=1:
Code:
system  /system  ext4  ro,barrier=1,discard wait,slotselect,logical,first_stage_mount
system_ext  /system_ext  ext4  ro,barrier=1,discard wait,slotselect,logical,first_stage_mount
product  /product ext4  ro,barrier=1,discard wait,slotselect,logical,first_stage_mount
vendor  /vendor  ext4  ro,barrier=1,discard wait,slotselect,logical,first_stage_mount
odm  /odm  ext4  ro,barrier=1,discard wait,slotselect,logical,first_stage_mount

See eg:
 
Last edited:
  • Like
Reactions: ipdev

pndwal

Senior Member
Pixel 3aXL
Lineage 19.1 (20230603)
OpenGApps 12L (nano?)
Magisk - Current version.

I ran your test script.
I thought it might work on Lineage.
Sorry to say it did not. 😞

---

Custom ROMs that do not include GApps, leave extra room in system for GApps.
Size of the rom and the installed gapps package, determines how much free space you have left in system.

AdAway in root-mode, will write to system/etc/hosts but, the file will be truncated if you run out of free space.
The updated hosts file will remain even if you boot a non-Magisk patched boot image.
Not sure, but I believe custom ROMs themselves have preset space in /system for GApps etc... Most (all?) seem not to use shared blocks / dynamic partitioning generally used in stock from A10...

I can confirm that Adaway in root mode works fine without systemless hosts with A11 LOS on Xiaomi Mi Pad 4... Can't do this with stock MIUI on Redmi Note 8T.

Nb. SAR devices are generally only LV A9, but Pixel had SAR from A7... Google don't really regard LV A10+ (2SI) as SAR although it is a form of SAR inasmuch as rootdir is system in 2nd stage... ( In true SAR, rootdir is always system)

Seems early mount is done for required first stage operations and is not affected by SAR... Shared blocks and dynamic partitioning schemes available from A10 (coinciding with 2SI) generally mean system is locked as ro by OEMs in 2nd stage as I understand it however... I've posted methods developed to reformat device and use these ROMs w/ rw system here, but it's not for the faint hearted...

...
PS.
I remember commits/messages about changing to 'ro' only but, I could not find the one(s) I was thinking of.
Maybe @pndwal could chime in 😉
Also, system is ro by default on my A11 LOS Xiaomi Mi Pad 4, but can easily be mounted as rw and confirm I can write files to both /bin and /xbin...

A while ago we got issues fixed with:
Mount with original option
Fix #5481, close #5486
topjohnwu committed on Mar 2, 2022

Recently we had:
Make magisk node ro as well
yujincheng08 authored and topjohnwu committed on Amay 10, 2023
Thinking of this?... I don't know what it
does... You will likely know... 🙂 PW
 
  • Like
Reactions: ipdev

pndwal

Senior Member
Hi all, I am on a Pixel 6 Pro, just updated to the May update. For some reason, on both stable 26.1 and canary 26102, I am getting a crash as soon as I get to my login screen, I'll see the screen appear as normal but then crash 1-2 seconds later. It'll then go into a boot loop with the usual "Could not load Android system" etc etc, but once I re-flash the stock boot.img it works again. I'm unsure what modules I have installed, and at this point I'm unsure how to even uninstall them to see if it's a module misbehaving. Any help would be appreciated, thanks!
Likely a module incompatibility... Booting to safe mode should fix (disables modules and Zygisk, but Magisk daemon key combo detection is not always reliable... See official Magisk FAQs for this and other options... 🤠 PW
 
Last edited:
  • Like
Reactions: ipdev and J.Michael

Unspec

Member
Nov 13, 2014
20
11
Likely a module incompatibility... Booting to safe mode should fix (disabled modules and Zygisk, but Magisk daemon key combo detection is not always reliable... See official Magisk FAQs for this and other options... 🤠 PW

Safe mode fixed it! However...it was none of the modules? I enabled all the modules one by one and rebooted each time, and every one of them is running. GOOD OL' TECHNOLOGY!

Oh well. I'm not questioning it, I'll take it.
 
  • Like
Reactions: ipdev and pndwal

Top Liked Posts

  • 2
    Very interesting... "isAB=true, isSAR=true"...

    Either they had SAR and A/B before first Pixel, or they managed to retrofit A/B updates... Can you say if device was A/B when on A7 or 8?... 👍 PW
    Was not A/B before A8.
    1
    Okay. Here is the aforementioned Magisk log. My apologies for the delay. Thanks.
    1
    Magisk one when optionally saved... Much more verbose when saved... 😜 PW
    Patching with Canary 26301.
    Screenshot and logs attached

    I don't have your "Detected device info" block (and I never saw)
    1
    Patching with Canary 26301.
    Screenshot and logs attached

    I don't have your "Detected device info" block (and I never saw)
    Again, that's a magisk_install_log...

    Please just save and find a magisk_log...

    👍 PW
    1
    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
  • 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