From bb210c9c43c1de116d3f4485022675b80179f61d Mon Sep 17 00:00:00 2001 From: Kelvin Zhang Date: Thu, 18 Apr 2024 10:09:32 -0700 Subject: [PATCH] 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 --- conf/fstab.efs | 6 ++++++ conf/fstab.zuma.in | 3 --- conf/init.efs.rc | 43 +++++++++++++++++++++++++++++++++++++++++++ conf/init.zuma.rc | 40 +--------------------------------------- device.mk | 6 ++++-- 5 files changed, 54 insertions(+), 44 deletions(-) create mode 100644 conf/fstab.efs create mode 100644 conf/init.efs.rc diff --git a/conf/fstab.efs b/conf/fstab.efs new file mode 100644 index 00000000..23182479 --- /dev/null +++ b/conf/fstab.efs @@ -0,0 +1,6 @@ +# Android fstab file. +# +# 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 \ No newline at end of file diff --git a/conf/fstab.zuma.in b/conf/fstab.zuma.in index 9fb13e72..fc3452a9 100644 --- a/conf/fstab.zuma.in +++ b/conf/fstab.zuma.in @@ -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 /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/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/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 diff --git a/conf/init.efs.rc b/conf/init.efs.rc new file mode 100644 index 00000000..d15dbc13 --- /dev/null +++ b/conf/init.efs.rc @@ -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 diff --git a/conf/init.zuma.rc b/conf/init.zuma.rc index 4ee0ece7..c9dd76fe 100644 --- a/conf/init.zuma.rc +++ b/conf/init.zuma.rc @@ -1,9 +1,9 @@ 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 init.exynos.sensorhub.rc on early-init - mount_all /vendor/etc/fstab.persist --early write /proc/sys/kernel/sched_pelt_multiplier 1 write /sys/kernel/mm/lru_gen/enabled n @@ -440,13 +440,6 @@ on post-fs-data chown system system /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 mkdir /data/vendor/audio 0770 audio audio @@ -619,23 +612,6 @@ on fs mount_all /vendor/etc/fstab.modem --early 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 chmod 0660 /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 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 \ -r /dev/sg1 -p /data/vendor/ss -t ufs diff --git a/device.mk b/device.mk index 8c10ffa0..47a7672b 100644 --- a/device.mk +++ b/device.mk @@ -356,7 +356,8 @@ PRODUCT_COPY_FILES += \ device/google/zuma/conf/ueventd.zuma.rc:$(TARGET_COPY_OUT_VENDOR)/etc/ueventd.rc 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))) PRODUCT_COPY_FILES += \ @@ -378,7 +379,8 @@ PRODUCT_PACKAGES += \ 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.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 PRODUCT_PACKAGES += \