From d7483e3ae4e5aa13fd894c743dd068c7611ae27f Mon Sep 17 00:00:00 2001 From: Sebastiano Barezzi Date: Wed, 29 Jun 2022 09:29:32 +0200 Subject: [PATCH] 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 --- rootdir/Android.mk | 10 ++++++++++ rootdir/etc/fstab.qcom | 8 ++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/rootdir/Android.mk b/rootdir/Android.mk index 9c4f4c2..a764f88 100644 --- a/rootdir/Android.mk +++ b/rootdir/Android.mk @@ -7,9 +7,19 @@ LOCAL_MODULE := fstab.qcom LOCAL_MODULE_TAGS := optional LOCAL_MODULE_CLASS := ETC LOCAL_SRC_FILES := etc/fstab.qcom +LOCAL_REQUIRED_MODULES := fstab.qcom_ramdisk LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC) 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) LOCAL_MODULE := init.device.rc LOCAL_MODULE_TAGS := optional diff --git a/rootdir/etc/fstab.qcom b/rootdir/etc/fstab.qcom index 3f3f5eb..2cfe6f7 100644 --- a/rootdir/etc/fstab.qcom +++ b/rootdir/etc/fstab.qcom @@ -2,15 +2,13 @@ # 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 -# 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. # Currently we dont have e2fsck compiled. So fs check would failed. # Non-A/B fstab.qcom variant # +/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 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 @@ -24,7 +22,5 @@ /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 -/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/recovery /recovery emmc defaults recoveryonly