前言
客户需求,增加一个可读写的分区,用于存放数据,且需保证ota升级数据不会改变、丢失。
平台:RK3588 & Android13 & kernel-5.10
内容:增加用于存储数据的可读性分区
patch
--- a/rk3588_an13/device/rockchip/common/build/rockchip/Partitions.mk
+++ b/rk3588_an13/device/rockchip/common/build/rockchip/Partitions.mk
@@ -62,7 +62,8 @@ else
ifeq ($(BUILD_WITH_GO_OPT), true)
BOARD_SUPER_PARTITION_SIZE ?= 2516582400
else
- BOARD_SUPER_PARTITION_SIZE ?= 3263168512
+ #BOARD_SUPER_PARTITION_SIZE ?= 3263168512
+ BOARD_SUPER_PARTITION_SIZE ?= 3982962688
endif
BOARD_ROCKCHIP_DYNAMIC_PARTITIONS_SIZE ?= $(shell expr $(BOARD_SUPER_PARTITION_SIZE) - 4194304)
else
--- a/rk3588_an13/device/rockchip/common/build/rockchip/RebuildParameter.mk
+++ b/rk3588_an13/device/rockchip/common/build/rockchip/RebuildParameter.mk
@@ -38,6 +38,12 @@ ifneq ($(strip $(BOARD_WITH_SPECIAL_PARTITIONS)), )
partition_list := $(partition_list),$(BOARD_WITH_SPECIAL_PARTITIONS)
endif
+# Add ist file partition
+ifneq ($(strip $(BOARD_WITH_IST_PARTITIONS)), )
+partition_list := $(partition_list),$(BOARD_WITH_IST_PARTITIONS)
+endif
+# Add ist file partition
+
ifeq ($(strip $(BOARD_SUPER_PARTITION_GROUPS)),rockchip_dynamic_partitions)
partition_list := $(partition_list),super:$(BOARD_SUPER_PARTITION_SIZE)
else # BOARD_USE_DYNAMIC_PARTITIONS
--- a/rk3588_an13/device/rockchip/common/scripts/fstab_tools/fstab.in
+++ b/rk3588_an13/device/rockchip/common/scripts/fstab_tools/fstab.in
@@ -14,6 +14,11 @@ ${_block_prefix}odm /odm ext4 ro,barrier=1 ${_flags},first_stage_mount
/dev/block/by-name/metadata /metadata ext4 nodev,noatime,nosuid,discard,sync wait,formattable,first_stage_mount,check
/dev/block/by-name/misc /misc emmc defaults defaults
+# Add ist file partition
+/dev/block/by-name/istoragefs /istoragefs ext4 noatime,nodiratime,nosuid,nodev,noauto_da_alloc,discard wait,check
+/dev/block/by-name/istorage /istorage emmc defaults defaults
+# Add ist file partition
+
/devices/platform/*usb* auto vfat defaults voldmanaged=usb:auto
--- a/rk3588_an13/device/rockchip/common/sepolicy/private/file_contexts
+++ b/rk3588_an13/device/rockchip/common/sepolicy/private/file_contexts
@@ -3,3 +3,21 @@
# All Rockchip configs
/data/misc/cfg_rockchip(/.*)? u:object_r:rockchip_config_data_file:s0
+
+# Add ist file partition
+/istorage(/.*)? u:object_r:cache_file:s0
+/istoragefs(/.*)? u:object_r:cache_file:s0
+
--- a/rk3588_an13/device/rockchip/rk3588/rk3588_t/BoardConfig.mk
+++ b/rk3588_an13/device/rockchip/rk3588/rk3588_t/BoardConfig.mk
@@ -33,7 +33,12 @@ ifeq ($(strip $(BOARD_USES_AB_IMAGE)), true)
endif
PRODUCT_UBOOT_CONFIG := rk3588
-PRODUCT_KERNEL_DTS := rk3588-evb1-lp4-v10
+
+# Add ist file partition
+BOARD_WITH_IST_PARTITIONS := istorage:128M,istoragefs:256M
+# Add ist file partition
+
+PRODUCT_KERNEL_DTS := rk3588-evb7-lp4-v10
BOARD_GSENSOR_MXC6655XA_SUPPORT := true
BOARD_CAMERA_SUPPORT_EXT := true
BOARD_HS_ETHERNET := true
--- a/rk3588_an13/system/core/rootdir/Android.mk
+++ b/rk3588_an13/system/core/rootdir/Android.mk
@@ -134,6 +134,10 @@ LOCAL_POST_INSTALL_CMD += ; ln -sf /vendor/odm/overlay $(TARGET_ROOT_OUT)/odm/ov
LOCAL_POST_INSTALL_CMD += ; ln -sf /vendor/odm/priv-app $(TARGET_ROOT_OUT)/odm/priv-app
LOCAL_POST_INSTALL_CMD += ; ln -sf /vendor/odm/usr $(TARGET_ROOT_OUT)/odm/usr
+# Add ist file partition
+LOCAL_POST_INSTALL_CMD += ; mkdir -p $(TARGET_ROOT_OUT)/istorage
+LOCAL_POST_INSTALL_CMD += ; mkdir -p $(TARGET_ROOT_OUT)/istoragefs
+# Add ist file partition
# For /vendor_dlkm partition.
LOCAL_POST_INSTALL_CMD += ; mkdir -p $(TARGET_ROOT_OUT)/vendor_dlkm
--- a/rk3588_an13/mkimage.sh
+++ b/rk3588_an13/mkimage.sh
@@ -223,6 +223,13 @@ then
fi
fi
+# Add ist file partition
+# 65536 = (256M *1024 / 4)
+mke2fs -M /istoragefs -t ext4 -b 4096 vendor/istoragefs.img 65536
+e2fsdroid -e -f vendor/istoragefs -a /istoragefs vendor/istoragefs.img
+cp -a vendor/istoragefs.img $IMAGE_PATH/istoragefs.img
+# Add ist file partition
+
if [ $TARGET == $BOOT_OTA ]
then
if [ "$PRODUCT_USE_DYNAMIC_PARTITIONS" = "true" ]; then
完成后直接将数据存放与系统根目录下 istoragefs文件夹即可。