RK3588 & Android13 增加可读写分区

前言

客户需求,增加一个可读写的分区,用于存放数据,且需保证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文件夹即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值