Move EFS/persist mount to a separate fstab

Next CLs in this stack will make changes to persist/efs mount process
This CL will first move relevant code to a separate file for easier
review.

To support booting under 16K page size, we need to copy files on
persist partition(F2FS, which does not support 16K page size)
to data partition(which will would be EXT4 for dev option enabled
devices).

Bug: 319335586
Change-Id: I2750eb8b53431037cecc972448799409345f5ca3
This commit is contained in:
Kelvin Zhang 2024-04-18 10:09:32 -07:00
parent 831f38051d
commit bb210c9c43
5 changed files with 54 additions and 44 deletions

6
conf/fstab.efs Normal file
View file

@ -0,0 +1,6 @@
# Android fstab file.
# <src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
# Create the specific fstab file for efs partitions for flexibility
/dev/block/platform/13200000.ufs/by-name/efs /mnt/vendor/efs f2fs noatime,sync wait,check,formattable
/dev/block/platform/13200000.ufs/by-name/efs_backup /mnt/vendor/efs_backup f2fs noatime,sync wait,check,formattable
/dev/block/platform/13200000.ufs/by-name/modem_userdata /mnt/vendor/modem_userdata f2fs noatime,sync wait,check,formattable

View file

@ -14,9 +14,6 @@ vendor /vendor
vendor_dlkm /vendor_dlkm ext4 noatime,ro wait,slotselect,avb=vbmeta,avb_keys=no_such_key,logical,first_stage_mount vendor_dlkm /vendor_dlkm ext4 noatime,ro wait,slotselect,avb=vbmeta,avb_keys=no_such_key,logical,first_stage_mount
/dev/block/platform/13200000.ufs/by-name/boot /boot emmc defaults slotselect,avb=boot,first_stage_mount /dev/block/platform/13200000.ufs/by-name/boot /boot emmc defaults slotselect,avb=boot,first_stage_mount
/dev/block/platform/13200000.ufs/by-name/init_boot /init_boot emmc defaults slotselect,avb=init_boot,first_stage_mount /dev/block/platform/13200000.ufs/by-name/init_boot /init_boot emmc defaults slotselect,avb=init_boot,first_stage_mount
/dev/block/platform/13200000.ufs/by-name/efs /mnt/vendor/efs f2fs noatime,sync wait,check,formattable
/dev/block/platform/13200000.ufs/by-name/efs_backup /mnt/vendor/efs_backup f2fs noatime,sync wait,check,formattable
/dev/block/platform/13200000.ufs/by-name/modem_userdata /mnt/vendor/modem_userdata f2fs noatime,sync wait,check,formattable
/dev/block/platform/13200000.ufs/by-name/misc /misc emmc defaults wait /dev/block/platform/13200000.ufs/by-name/misc /misc emmc defaults wait
/dev/block/platform/13200000.ufs/by-name/metadata /metadata f2fs noatime,nosuid,nodev,sync wait,check,formattable,first_stage_mount /dev/block/platform/13200000.ufs/by-name/metadata /metadata f2fs noatime,nosuid,nodev,sync wait,check,formattable,first_stage_mount
#/dev/block/platform/13200000.ufs/by-name/pvmfw /pvmfw emmc defaults wait,slotselect,avb=pvmfw,first_stage_mount #/dev/block/platform/13200000.ufs/by-name/pvmfw /pvmfw emmc defaults wait,slotselect,avb=pvmfw,first_stage_mount

43
conf/init.efs.rc Normal file
View file

@ -0,0 +1,43 @@
on property:ro.vendor.persist.status=mounted
# for battery defender
mkdir /mnt/vendor/persist/battery 0700 system system
# Factory calibration files
chmod 0771 /mnt/vendor/persist/camera
chmod 0771 /mnt/vendor/persist/camera/OTP_calibration
chmod 0771 /mnt/vendor/persist/camera/pdaf_calibration_data
mkdir /mnt/vendor/persist/camera/rear 0771 system camera
chmod 0771 /mnt/vendor/persist/camera/rear
restorecon_recursive /mnt/vendor/persist
restorecon_recursive /mnt/vendor/persist/aoc
restorecon_recursive /mnt/vendor/persist/audio
restorecon_recursive /mnt/vendor/persist/sensors
restorecon_recursive /mnt/vendor/persist/battery
restorecon_recursive /mnt/vendor/persist/camera
restorecon_recursive /mnt/vendor/persist/modem
# Set up display-related directories and permissions
# Add restorecon_recursive command to make sure the restorecon label is persist_display_file.
restorecon_recursive /mnt/vendor/persist/display
mkdir /mnt/vendor/persist/data/sfs 0700 system system
mkdir /mnt/vendor/persist/data/tz 0700 system system
mkdir /mnt/vendor/persist/touch 0770 system system
# Proxy for Secure Storage
mkdir /data/vendor/rebootescrow 0770 hsm hsm
mkdir /data/vendor/ss 0770 root system
mkdir /mnt/vendor/persist/ss 0770 root system
restorecon_recursive /mnt/vendor/persist/ss
symlink /mnt/vendor/persist/ss /data/vendor/ss/persist
chown root system /data/vendor/ss/persist
chmod 0770 /data/vendor/ss/persist
symlink /dev/block/platform/13200000\.ufs/by-name/trusty_persist /data/vendor/ss/persist/0
chown system system /data/vendor/ss/persist/0
chown system system /data/vendor/ss/persist/nsp
restart storageproxyd
on post-fs-data
mount_all /vendor/etc/fstab.efs
mount_all /vendor/etc/fstab.persist
setprop ro.vendor.persist.status mounted

View file

@ -1,9 +1,9 @@
import /vendor/etc/init/hw/init.zuma.usb.rc import /vendor/etc/init/hw/init.zuma.usb.rc
import /vendor/etc/init/hw/init.efs.rc
import android.hardware.drm@1.2-service.widevine.rc import android.hardware.drm@1.2-service.widevine.rc
import init.exynos.sensorhub.rc import init.exynos.sensorhub.rc
on early-init on early-init
mount_all /vendor/etc/fstab.persist --early
write /proc/sys/kernel/sched_pelt_multiplier 1 write /proc/sys/kernel/sched_pelt_multiplier 1
write /sys/kernel/mm/lru_gen/enabled n write /sys/kernel/mm/lru_gen/enabled n
@ -440,13 +440,6 @@ on post-fs-data
chown system system /dev/ispolin_ranging chown system system /dev/ispolin_ranging
chmod 0660 /dev/ispolin_ranging chmod 0660 /dev/ispolin_ranging
# Factory calibration files
chmod 0771 /mnt/vendor/persist/camera
chmod 0771 /mnt/vendor/persist/camera/OTP_calibration
chmod 0771 /mnt/vendor/persist/camera/pdaf_calibration_data
mkdir /mnt/vendor/persist/camera/rear 0771 system camera
chmod 0771 /mnt/vendor/persist/camera/rear
# Audio dump and debug # Audio dump and debug
mkdir /data/vendor/audio 0770 audio audio mkdir /data/vendor/audio 0770 audio audio
@ -619,23 +612,6 @@ on fs
mount_all /vendor/etc/fstab.modem --early mount_all /vendor/etc/fstab.modem --early
restorecon_recursive /mnt/vendor/modem_img restorecon_recursive /mnt/vendor/modem_img
# for battery defender
mkdir /mnt/vendor/persist/battery 0700 system system
restorecon_recursive /mnt/vendor/persist
restorecon_recursive /mnt/vendor/persist/aoc
restorecon_recursive /mnt/vendor/persist/audio
restorecon_recursive /mnt/vendor/persist/sensors
restorecon_recursive /mnt/vendor/persist/battery
restorecon_recursive /mnt/vendor/persist/camera
restorecon_recursive /mnt/vendor/persist/modem
# Set up display-related directories and permissions
# Add restorecon_recursive command to make sure the restorecon label is persist_display_file.
restorecon_recursive /mnt/vendor/persist/display
mkdir /mnt/vendor/persist/data/sfs 0700 system system
mkdir /mnt/vendor/persist/data/tz 0700 system system
mkdir /mnt/vendor/persist/touch 0770 system system
# Permissions for ION # Permissions for ION
chmod 0660 /sys/class/ion_cma/ion_video_ext/isolated chmod 0660 /sys/class/ion_cma/ion_video_ext/isolated
chown system system /sys/class/ion_cma/ion_video_ext/isolated chown system system /sys/class/ion_cma/ion_video_ext/isolated
@ -934,20 +910,6 @@ service bugreport /system/bin/dumpstate -d -p -z
oneshot oneshot
keycodes 114 115 116 keycodes 114 115 116
# Proxy for Secure Storage
on post-fs-data
mkdir /data/vendor/rebootescrow 0770 hsm hsm
mkdir /data/vendor/ss 0770 root system
mkdir /mnt/vendor/persist/ss 0770 root system
restorecon_recursive /mnt/vendor/persist/ss
symlink /mnt/vendor/persist/ss /data/vendor/ss/persist
chown root system /data/vendor/ss/persist
chmod 0770 /data/vendor/ss/persist
symlink /dev/block/platform/13200000\.ufs/by-name/trusty_persist /data/vendor/ss/persist/0
chown system system /data/vendor/ss/persist/0
chown system system /data/vendor/ss/persist/nsp
restart storageproxyd
service storageproxyd /vendor/bin/storageproxyd -d /dev/trusty-ipc-dev0 \ service storageproxyd /vendor/bin/storageproxyd -d /dev/trusty-ipc-dev0 \
-r /dev/sg1 -p /data/vendor/ss -t ufs -r /dev/sg1 -p /data/vendor/ss -t ufs

View file

@ -356,7 +356,8 @@ PRODUCT_COPY_FILES += \
device/google/zuma/conf/ueventd.zuma.rc:$(TARGET_COPY_OUT_VENDOR)/etc/ueventd.rc device/google/zuma/conf/ueventd.zuma.rc:$(TARGET_COPY_OUT_VENDOR)/etc/ueventd.rc
PRODUCT_COPY_FILES += \ PRODUCT_COPY_FILES += \
device/google/zuma/conf/init.zuma.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.zuma.rc device/google/zuma/conf/init.zuma.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.zuma.rc \
device/google/zuma/conf/init.efs.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.efs.rc
ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
PRODUCT_COPY_FILES += \ PRODUCT_COPY_FILES += \
@ -378,7 +379,8 @@ PRODUCT_PACKAGES += \
PRODUCT_COPY_FILES += \ PRODUCT_COPY_FILES += \
device/google/$(TARGET_BOARD_PLATFORM)/conf/fstab.persist:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.persist \ device/google/$(TARGET_BOARD_PLATFORM)/conf/fstab.persist:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.persist \
device/google/$(TARGET_BOARD_PLATFORM)/conf/fstab.modem:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.modem device/google/$(TARGET_BOARD_PLATFORM)/conf/fstab.modem:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.modem \
device/google/$(TARGET_BOARD_PLATFORM)/conf/fstab.efs:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.efs
# Shell scripts # Shell scripts
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \