Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c9f8e5df authored by Zim's avatar Zim
Browse files

Allow switching between sdcardfs and FUSE mounts

This change is part of enabling upcoming platform changes that are
described in the bug linked below.

Bug: 135341433
Test: builds, boots successfully and external storage remains
an sdcardfs mount by default and works correctly
Test: cat /proc/1/mountinfo is unchanged

Change-Id: Idf851b3a42910e0ce8fdd75daea1cce91dd1aa98
parent 6e861740
Loading
Loading
Loading
Loading
+19 −3
Original line number Diff line number Diff line
@@ -121,6 +121,9 @@ on init
    mkdir /mnt/media_rw 0750 root media_rw
    mkdir /mnt/user 0755 root root
    mkdir /mnt/user/0 0755 root root
    mkdir /mnt/user/0/self 0755 root root
    mkdir /mnt/user/0/emulated 0755 root root
    mkdir /mnt/user/0/emulated/0 0755 root root
    mkdir /mnt/expand 0771 system system
    mkdir /mnt/appfuse 0711 root root

@@ -367,9 +370,6 @@ on post-fs
    # Once everything is setup, no need to modify /.
    # The bind+remount combination allows this to work in containers.
    mount rootfs rootfs / remount bind ro nodev
    # Mount default storage into root namespace
    mount none /mnt/runtime/default /storage bind rec
    mount none none /storage slave rec

    # Make sure /sys/kernel/debug (if present) is labeled properly
    # Note that tracefs may be mounted under debug, so we need to cross filesystems
@@ -642,6 +642,22 @@ on post-fs-data
    chown root system /dev/fscklogs/log
    chmod 0770 /dev/fscklogs/log

# Switch between sdcardfs and FUSE depending on persist property
# TODO: Move this to ro property before launch because FDE devices
# interact with persistent properties differently during boot
on zygote-start && property:persist.sys.fuse=true
  # Mount default storage into root namespace
  mount none /mnt/user/0 /storage bind rec
  mount none none /storage slave rec
on zygote-start && property:persist.sys.fuse=false
  # Mount default storage into root namespace
  mount none /mnt/runtime/default /storage bind rec
  mount none none /storage slave rec
on zygote-start && property:persist.sys.fuse=""
  # Mount default storage into root namespace
  mount none /mnt/runtime/default /storage bind rec
  mount none none /storage slave rec

# It is recommended to put unnecessary data/ initialization from post-fs-data
# to start-zygote in device's init.rc to unblock zygote start.
on zygote-start && property:ro.crypto.state=unencrypted