whyred: Switch to two-stage init mounting

* Stop handling vendor mounting from kernel, first stage init is gonna
  do that, together with system (which is now /system)
* Use correct mount flags coming from kernel dts
* Move system and vendor mount points to /dev/block/by-name/, we don't
  have bootdevice symlink to that point in init
* Copy fstab to ramdisk for first stage init

Change-Id: If8d75837f47c70f7ea02183bffaff233b4d6bb26
This commit is contained in:
Sebastiano Barezzi 2022-06-29 09:29:32 +02:00 committed by Davide Garberi
parent ca4a7e42bb
commit d7483e3ae4
2 changed files with 12 additions and 6 deletions

View file

@ -7,9 +7,19 @@ LOCAL_MODULE := fstab.qcom
LOCAL_MODULE_TAGS := optional LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := ETC LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/fstab.qcom LOCAL_SRC_FILES := etc/fstab.qcom
LOCAL_REQUIRED_MODULES := fstab.qcom_ramdisk
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC) LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)
include $(BUILD_PREBUILT) include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := fstab.qcom_ramdisk
LOCAL_MODULE_STEM := fstab.qcom
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/fstab.qcom
LOCAL_MODULE_PATH := $(TARGET_RAMDISK_OUT)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS) include $(CLEAR_VARS)
LOCAL_MODULE := init.device.rc LOCAL_MODULE := init.device.rc
LOCAL_MODULE_TAGS := optional LOCAL_MODULE_TAGS := optional

View file

@ -2,15 +2,13 @@
# The filesystem that contains the filesystem checker binary (typically /system) cannot # 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 # specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK
# NOTE: /system and /vendor partitions are now early-mounted and the fstab entry is specified in device tree (duplicated below for recovery image purposes only):
# /proc/device-tree/firmware/android/fstab/system
# /proc/device-tree/firmware/android/fstab/vendor
#TODO: Add 'check' as fs_mgr_flags with data partition. #TODO: Add 'check' as fs_mgr_flags with data partition.
# Currently we dont have e2fsck compiled. So fs check would failed. # Currently we dont have e2fsck compiled. So fs check would failed.
# Non-A/B fstab.qcom variant # Non-A/B fstab.qcom variant
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags> #<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
/dev/block/by-name/system /system ext4 ro,barrier=1 wait,first_stage_mount
/dev/block/by-name/vendor /vendor ext4 ro,barrier=1 wait,first_stage_mount
/dev/block/bootdevice/by-name/userdata /data f2fs nosuid,nodev,noatime,background_gc=off,fsync_mode=nobarrier wait,check,fileencryption=ice,quota /dev/block/bootdevice/by-name/userdata /data f2fs nosuid,nodev,noatime,background_gc=off,fsync_mode=nobarrier wait,check,fileencryption=ice,quota
/dev/block/bootdevice/by-name/userdata /data ext4 nosuid,nodev,barrier=1,noauto_da_alloc,noatime,lazytime,errors=panic wait,check,fileencryption=ice,quota /dev/block/bootdevice/by-name/userdata /data ext4 nosuid,nodev,barrier=1,noauto_da_alloc,noatime,lazytime,errors=panic wait,check,fileencryption=ice,quota
/dev/block/bootdevice/by-name/misc /misc emmc defaults defaults /dev/block/bootdevice/by-name/misc /misc emmc defaults defaults
@ -24,7 +22,5 @@
/devices/platform/soc/c084000.sdhci/mmc_host* auto auto nosuid,nodev wait,voldmanaged=sdcard1:auto,encryptable=userdata /devices/platform/soc/c084000.sdhci/mmc_host* auto auto nosuid,nodev wait,voldmanaged=sdcard1:auto,encryptable=userdata
/devices/platform/soc/*.ssusb/*.dwc3/xhci-hcd.*.auto* /storage/usbotg vfat nosuid,nodev wait,voldmanaged=usbotg:auto /devices/platform/soc/*.ssusb/*.dwc3/xhci-hcd.*.auto* /storage/usbotg vfat nosuid,nodev wait,voldmanaged=usbotg:auto
/dev/block/bootdevice/by-name/system /system ext4 ro,barrier=1 wait,recoveryonly
/dev/block/bootdevice/by-name/vendor /vendor ext4 ro,barrier=1 wait,recoveryonly
/dev/block/bootdevice/by-name/boot /boot emmc defaults recoveryonly /dev/block/bootdevice/by-name/boot /boot emmc defaults recoveryonly
/dev/block/bootdevice/by-name/recovery /recovery emmc defaults recoveryonly /dev/block/bootdevice/by-name/recovery /recovery emmc defaults recoveryonly