Magisk icon indicating copy to clipboard operation
Magisk copied to clipboard

Custom fstab: cannot open file -> Permission denied in Magisk 28001 -> external SD Card not mounted -> new overlay.d process?

Open newbit1 opened this issue 4 months ago • 17 comments

Device: Samsung S10 SM-G973F (beyond1) Android version: 12 Magisk version name: Canary Magisk version code: 28001 (070719db)

I am using Magisk 28001 within my custom kernel and a custom fstab file. With v27 everything worked great, my external SD Card got mounted. But now with 28001 it doesn't. So far the rest of Magisks works. It is just this custom fstab issue.

If I check the logs, I can see a message like: vold : [libfs_mgr]ReadFstabFromFile(): cannot open file: '/vendor/etc/fstab.exynos9820': Permission denied

Permissions are:

beyond1:/ # ls -lZ /vendor/etc/fstab.exynos9820
-rw-r--r-- 1 root root u:object_r:vendor_configs_file:s0  2533 2024-10-13 10:01 /vendor/etc/fstab.exynos9820

As a backup function, I also installed the same Magisk Version into my recovery partition. And there is no custom fstab. And If I boot from there, my external SD Card gets mounted.

The whole custom fstab thing worked well with v27.0. Is there anything new to the overlay.d mounting process I am not aware of? Could need a little help or pointer If I have to adjust my custom fstab and the way how I add it into my kernels ramdisk.

This is how I implement it via the initramfs_list:

dir /.backup 0705 0 0
file /init usr/magisk/magiskinit 0755 0 0
file /.backup/.magisk usr/magisk/backup_magisk 0705 0 0
dir /overlay.d 0750 0 0
dir /overlay.d/sbin 0750 0 0
file /overlay.d/sbin/init-ld.xz usr/magisk/init-ld.xz 0644 0 0
file /overlay.d/sbin/magisk.xz usr/magisk/magisk.xz 0644 0 0
file /overlay.d/sbin/stub.xz usr/magisk/stub.xz 0644 0 0
dir /overlay.d/vendor 0755 0 2000
dir /overlay.d/vendor/etc 0755 0 2000
file /overlay.d/vendor/etc/fstab.exynos9820 usr/magisk/fstab.exynos9820 0644 0 0
dir /overlay.d/vendor/etc/init 0755 0 2000
file /overlay.d/vendor/etc/init/init.exynos9820.usb.rc usr/magisk/init.exynos9820.usb.rc 0644 0 0

This is how my fstab.exynos9820 looks like:

# Android fstab file.
#<src>                  <mnt_point>         <type>    <mnt_flags and options>                               <fs_mgr_flags>
# The filesystem that contains the filesystem checker binary (typically /system) cannot
# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK

#/dev/block/by-name/system	 /system             ext4      ro                                                    wait
#/dev/block/by-name/vendor	 /vendor             ext4      ro                                                    wait
/dev/block/by-name/cache	/cache	ext4	noatime,nosuid,nodev,noauto_da_alloc,discard,journal_checksum,data=ordered,errors=panic	wait,check
# /dev/block/by-name/userdata	/data	ext4	noatime,nosuid,nodev,noauto_da_alloc,discard,journal_checksum,data=ordered,errors=panic	wait,check,fileencryption=ice,quota,reservedsize=128M
/dev/block/by-name/userdata	/data	ext4	noatime,nosuid,nodev,noauto_da_alloc,discard,journal_checksum,data=ordered,errors=panic	wait,check,quota,reservedsize=128M
/dev/block/by-name/efs	/mnt/vendor/efs	ext4	noatime,nosuid,nodev,noauto_da_alloc,discard,journal_checksum,data=ordered,errors=panic	wait,check
#/dev/block/by-name/persistent /mnt/vendor/persist            ext4      noatime,nosuid,nodev,barrier=1,data=ordered,nodelalloc,nomblk_io_submit,errors=panic wait,notrim
/dev/block/by-name/misc	/misc	emmc	defaults	defaults,first_stage_mount
#/dev/block/by-name/recovery  /recovery           emmc      defaults                                               defaults

# VOLD:fstab.exynos9820
/devices/platform/13d00000.dwmmc2/mmc_host*    auto    auto    default    voldmanaged=sdcard:auto
/devices/platform/10c00000.usb*                auto    vfat    default    voldmanaged=usb:auto

# Samsung ODE
# /dev/block/platform/13d60000.ufs/by-name/keydata	/keydata	ext4	noatime,nosuid,nodev,noauto_da_alloc,discard,journal_checksum,data=ordered,errors=panic	wait,check,fileencryption=ice,nofail
/dev/block/platform/13d60000.ufs/by-name/keydata	/keydata	ext4	noatime,nosuid,nodev,noauto_da_alloc,discard,journal_checksum,data=ordered,errors=panic	wait,check,nofail
# /dev/block/platform/13d60000.ufs/by-name/keyrefuge	/keyrefuge	ext4	noatime,nosuid,nodev,noauto_da_alloc,discard,journal_checksum,data=ordered,errors=panic	wait,check,fileencryption=ice,nofail
/dev/block/platform/13d60000.ufs/by-name/keyrefuge	/keyrefuge	ext4	noatime,nosuid,nodev,noauto_da_alloc,discard,journal_checksum,data=ordered,errors=panic	wait,check,nofail

# Mount Virtual SD / USB Device on loop7
/devices/*/block/loop7                auto    auto    default    voldmanaged=usbotg:auto

my .magisk file from kernel:

KEEPVERITY=true
KEEPFORCEENCRYPT=true
RECOVERYMODE=false
PREINITDEVICE=userdata

my .magisk file from recovery:

KEEPVERITY=true
KEEPFORCEENCRYPT=true
RECOVERYMODE=true
PREINITDEVICE=userdata
SHA1=f1738fdcc236e7e13304f1119c9c062d9a02e1c8

Thanks logcat_kernelboot.log magisk_kernelboot.log logcat_recoveryboot.log magisk_recoveryboot.log fstab_init_magisk-configs.zip

newbit1 avatar Oct 13 '24 10:10 newbit1