From ade32dd8dda6409c7b1ee943db97e8d16a35c0e5 Mon Sep 17 00:00:00 2001 From: me-cafebabe Date: Thu, 19 Jan 2023 14:13:37 +0000 Subject: [PATCH] sdm710-common: Setup Retrofit Dynamic Partitions --- BoardConfigCommon.mk | 14 ++++++++++++-- rootdir/Android.mk | 9 +++++++++ rootdir/etc/fstab.qcom | 5 +++-- sdm710.mk | 6 ++++++ sepolicy/vendor/device.te | 3 +++ sepolicy/vendor/file_contexts | 4 ++++ 6 files changed, 37 insertions(+), 4 deletions(-) diff --git a/BoardConfigCommon.mk b/BoardConfigCommon.mk index 1fc1bbe..c11daf6 100644 --- a/BoardConfigCommon.mk +++ b/BoardConfigCommon.mk @@ -42,6 +42,7 @@ BOARD_KERNEL_CMDLINE := \ androidboot.usbcontroller=a600000.dwc3 \ loop.max_part=7 \ kpti=off +BOARD_KERNEL_CMDLINE += androidboot.boot_devices=soc/7c4000.sdhci BOARD_KERNEL_BASE := 0x00000000 BOARD_KERNEL_PAGESIZE := 4096 BOARD_KERNEL_TAGS_OFFSET := 0x00000100 @@ -85,13 +86,22 @@ BOARD_DTBOIMG_PARTITION_SIZE := 25165824 BOARD_RECOVERYIMAGE_PARTITION_SIZE := 67108864 BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4 BOARD_CACHEIMAGE_PARTITION_SIZE := 268435456 -BOARD_SYSTEMIMAGE_PARTITION_SIZE := 3758096384 -BOARD_VENDORIMAGE_PARTITION_SIZE := 1073741824 BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4 BOARD_FLASH_BLOCK_SIZE := 262144 BOARD_BUILD_SYSTEM_ROOT_IMAGE := true TARGET_USERIMAGES_USE_EXT4 := true +# Dynamic partitions +BOARD_SUPER_PARTITION_BLOCK_DEVICES := vendor system +BOARD_SUPER_PARTITION_METADATA_DEVICE := system +BOARD_SUPER_PARTITION_VENDOR_DEVICE_SIZE := 1073741824 +BOARD_SUPER_PARTITION_SYSTEM_DEVICE_SIZE := 5368709120 +BOARD_SUPER_PARTITION_SIZE := $(shell expr $(BOARD_SUPER_PARTITION_VENDOR_DEVICE_SIZE) + $(BOARD_SUPER_PARTITION_SYSTEM_DEVICE_SIZE) ) + +BOARD_SUPER_PARTITION_GROUPS := lenovo710_dynpart +BOARD_LENOVO710_DYNPART_SIZE := $(shell expr $(BOARD_SUPER_PARTITION_SIZE) - 4194304 ) +BOARD_LENOVO710_DYNPART_PARTITION_LIST := system vendor + # Properties TARGET_ODM_PROP += $(COMMON_PATH)/odm.prop TARGET_PRODUCT_PROP += $(COMMON_PATH)/product.prop diff --git a/rootdir/Android.mk b/rootdir/Android.mk index d6100c5..d90a236 100644 --- a/rootdir/Android.mk +++ b/rootdir/Android.mk @@ -7,3 +7,12 @@ LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC) LOCAL_MODULE_STEM := ueventd.rc LOCAL_SRC_FILES := etc/$(LOCAL_MODULE) 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) diff --git a/rootdir/etc/fstab.qcom b/rootdir/etc/fstab.qcom index 6027851..00201f6 100644 --- a/rootdir/etc/fstab.qcom +++ b/rootdir/etc/fstab.qcom @@ -6,7 +6,8 @@ # Currently we dont have e2fsck compiled. So fs check would failed. # -/dev/block/bootdevice/by-name/system / ext4 ro,barrier=1,discard,i_version wait,avb +system /system ext4 ro,barrier=1,discard,i_version wait,avb,logical,first_stage_mount +vendor /vendor ext4 ro,barrier=1 wait,logical,first_stage_mount /dev/block/bootdevice/by-name/userdata /data ext4 noatime,nosuid,noatime,nodev,barrier=1,noauto_da_alloc,discard,lazytime latemount,wait,check,fileencryption=ice,reservedsize=128M /dev/block/bootdevice/by-name/cache /cache ext4 nosuid,noatime,nodev,barrier=1 wait /devices/platform/soc/8804000.sdhci/mmc_host* /storage/sdcard1 vfat nosuid,nodev wait,voldmanaged=sdcard1:auto,encryptable=footer @@ -19,4 +20,4 @@ # The update_engine code looks for this entry in order to determine the boot device address # and fails if it does not find it. /dev/block/bootdevice/by-name/misc /misc emmc defaults defaults -/devices/platform/soc/a600000.ssusb/a600000.dwc3/xhci-hcd.*.auto* auto auto defaults voldmanaged=usbotg:auto \ No newline at end of file +/devices/platform/soc/a600000.ssusb/a600000.dwc3/xhci-hcd.*.auto* auto auto defaults voldmanaged=usbotg:auto diff --git a/sdm710.mk b/sdm710.mk index e824d49..a67078d 100644 --- a/sdm710.mk +++ b/sdm710.mk @@ -126,6 +126,7 @@ PRODUCT_PACKAGES += \ # Common init scripts PRODUCT_PACKAGES += \ + fstab.qcom_ramdisk \ fstab.qcom \ init.class_main.sh \ init.msm.usb.configfs.rc \ @@ -226,6 +227,11 @@ PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \ android.hardware.biometrics.fingerprint@2.1.vendor +# Dynamic Partitions +PRODUCT_BUILD_SUPER_PARTITION := false +PRODUCT_USE_DYNAMIC_PARTITIONS := true +PRODUCT_RETROFIT_DYNAMIC_PARTITIONS := true + # FM PRODUCT_PACKAGES += \ FM2 \ diff --git a/sepolicy/vendor/device.te b/sepolicy/vendor/device.te index 2360194..6d41d06 100644 --- a/sepolicy/vendor/device.te +++ b/sepolicy/vendor/device.te @@ -1,3 +1,6 @@ +# Dynamic Partition +typeattribute system_block_device super_block_device_type; + type fingerprint_device, dev_type; type gps_device, dev_type; diff --git a/sepolicy/vendor/file_contexts b/sepolicy/vendor/file_contexts index c376549..4cf20ce 100644 --- a/sepolicy/vendor/file_contexts +++ b/sepolicy/vendor/file_contexts @@ -27,3 +27,7 @@ # Power aidl stats /(vendor|system/vendor)/bin/hw/android\.hardware\.power\.stats@1\.0-service\.mock u:object_r:hal_power_stats_default_exec:s0 + +# Block devices +/dev/block/platform/soc/7c4000\.sdhci/by-name/system u:object_r:system_block_device:s0 +/dev/block/platform/soc/7c4000\.sdhci/by-name/vendor u:object_r:system_block_device:s0