[RK3288][Android7.1][分区]新增可读写分区bkdata

背景

客户需求:创建可读写分区bkdate,用于数据备份,ota升级、恢复出厂设备bkdata分区数据保留

1.分区表参数文件修改 device/rockchip/rk3288/parameter.txt

新增128M bkdata分区:

 0x00040000@0x006BC000(bkdata),-@0x006FC000(userdata)

FIRMWARE_VER:7.1
MACHINE_MODEL:rk3288
MACHINE_ID:007
MANUFACTURER:RK3288
MAGIC: 0x5041524B
ATAG: 0x60000800
MACHINE: 3288
CHECK_MASK: 0x80
PWR_HLD: 0,0,A,0,1
CMDLINE: console=ttyFIQ0 androidboot.baseband=N/A androidboot.selinux=permissive androidboot.hardware=rk30board androidboot.console=ttyFIQ0 init=/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00002000@0x00002000(uboot),0x00002000@0x00004000(trust),0x00002000@0x00006000(misc),0x00008000@0x00008000(resource),0x0000C000@0x00010000(kernel),0x00010000@0x0001C000(boot),0x00010000@0x0002C000(recovery),0x00038000@0x0003C000(backup),0x00040000@0x00074000(cache),0x00500000@0x000B4000(system),0x00008000@0x005B4000(metadata),0x00080000@0x005BC000(vendor0),0x00080000@0x0063C000(vendor1),0x00040000@0x006BC000(bkdata),-@0x006FC000(userdata)

在内核log信息中可以看到

[    1.025640]     bkdata: 0x0d7800000 -- 0x0df800000 (128 MB)

[    1.025259] mmcblk1rpmb: mmc1:0001 8GTF4R partition 3 512 KiB
[    1.025534]      uboot: 0x000400000 -- 0x000800000 (4 MB)
[    1.025544]      trust: 0x000800000 -- 0x000c00000 (4 MB)
[    1.025551]       misc: 0x000c00000 -- 0x001000000 (4 MB)
[    1.025574]   resource: 0x001000000 -- 0x002000000 (16 MB)
[    1.025581]     kernel: 0x002000000 -- 0x003800000 (24 MB)
[    1.025588]       boot: 0x003800000 -- 0x005800000 (32 MB)
[    1.025594]   recovery: 0x005800000 -- 0x007800000 (32 MB)
[    1.025601]     backup: 0x007800000 -- 0x00e800000 (112 MB)
[    1.025607]      cache: 0x00e800000 -- 0x016800000 (128 MB)
[    1.025614]     system: 0x016800000 -- 0x0b6800000 (2560 MB)
[    1.025620]   metadata: 0x0b6800000 -- 0x0b7800000 (16 MB)
[    1.025627]    vendor0: 0x0b7800000 -- 0x0c7800000 (256 MB)
[    1.025633]    vendor1: 0x0c7800000 -- 0x0d7800000 (256 MB)
[    1.025640]     bkdata: 0x0d7800000 -- 0x0df800000 (128 MB)
[    1.025646]   userdata: 0x0df800000 -- 0x1d1c00000 (3876 MB)
[    1.025674]  mmcblk1: p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15

分区定义说明:
1、为了兼容性,目前RK所有AP都是用rk29xxnand做标识。
2、单个分区说明:
例如:0x00002000@0x00008000(boot),@符号之前的数值是分区大小,@符号之后的数值是分区的起始位置,括号里面的字符是分区的名字。所有数值的单位是sector,1个sector为512Bytes.上例中,boot分区起始位置为0x8000 sectors位置,大小为0x2000 sectors(4MB).
3、为了性能,每个分区起始地址需要32KB(64 sectors)对齐,大小也需要32KB的整数倍。
4、如果使用sparse格式的镜像,升级时会擦除数据,为了兼容性更好,对应的分区最好按4MB对齐,大小也按4MB整数倍配置。

2.fstab文件中添加相关配置

2.1 在device/rockchip/rk3288/fstab.rk30board.bootmode.emm

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Android系统中,添加fan32分区需要进行以下步骤: 1. 打开设备的recovery模式,进入recovery模式后选择进入命令行模式(通常是在“高级选项”中),输入以下命令: ``` fdisk /dev/block/mmcblk0 ``` 2. 输入 p 命令显示分区情况,找到一个可用的空闲区域,记下空闲区域的起始扇区号。 3. 输入 n 命令创建一个新的分区,按照提示输入起始扇区号和分区大小(可以输入 +32M 表示新增32M的分区),分区类型选择 Linux,分区名称可以输入 fan32。 4. 输入 p 命令确认分区情况,输入 w 命令保存分区表。 5. 输入以下命令格式化分区: ``` mkfs.ext4 /dev/block/mmcblk0pX ``` 其中 X 表示新创建的分区号,如果是 fan32 分区,应该是 mmcblk0p6。 6. 输入以下命令挂载分区: ``` mkdir /mnt/fan32 mount -t ext4 /dev/block/mmcblk0pX /mnt/fan32 ``` 其中 X 表示新创建的分区号。 7. 输入以下命令修改 /etc/vold.fstab,添加以下内容: ``` dev_mount fan32 /mnt/fan32 auto /devices/soc.0/ff0f0000.hsi2c/i2c-2/2-002f/2-002f:0b01/lm95245.0 1024000 ``` 这个命令的意思是在 /mnt/fan32 下挂载 fan32 分区,文件系统类型为 auto,挂载设备为 /devices/soc.0/ff0f0000.hsi2c/i2c-2/2-002f/2-002f:0b01/lm95245.0,挂载点大小为 1024000。 8. 输入以下命令重启系统: ``` reboot ``` 在系统重启后,fan32分区就会自动挂载到 /mnt/fan32 目录下,您可以在此目录下进行文件存储和读取操作。 请注意,在进行分区和挂载操作时,请务必仔细核对命令和参数,以避免意外导致系统损坏或数据丢失。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值