rk3399增加新分区和计算规则

如果想要添加一个新的分区,例如添加名为"userdata"的分区,大小为,除了预留6G的system文件系统根目录分区(我这里是rootfs分区),剩下的空间全部给userdata。
需要首先确定这个分区的起始地址。这个地址应该是上一个分区的起始地址加上上一个分区的大小。

例如,如果上一个分区是"rootfs"分区,那么"userdata"分区的起始地址应该是0x0044000 + 0x00c00000 = 0x00c44000

如果需要将这个分区的大小转换为sector。由于1个sector等于512Bytes,所以10MB等于10 * 1024 * 1024 / 512 = 0x00005000 sector。

可以将这个分区添加到CMDLINE参数中,像这样:0x00c44000(userdata:grow)。

所以,添加"odm"分区后的CMDLINE参数应该是这样的:
#KERNEL_IMG: 0x00280000
#FDT_NAME: rk-kernel.dtb
#RECOVER_KEY: 1,1,0,20,0
#in section; per section 512(0x200) bytes
CMDLINE: mtdparts=rk29xxnand:0x00002000@0x00006000(uboot),0x00002000@0x00008000(trust),0x00002000@0x0000a000(resource),0x00038000@0x0000c000(boot:-bootable),0x00c00000@0x0044000(rootfs),-@0x00c44000(userdata:grow)
uuid:rootfs=B921B045-1DF0-41C3-AF44-4C6F280D3FAE

这个CMDLINE参数包含了新的"userdata:grow"分区,它的起始地址是0x00c44000,大小是剩下的除去rootfs分区之后的sector。

分区信息单位解析
在处理设备分区信息时,通常会遇到两种单位:sector和字节。

Sector
Sector是设备上的最小存储单元,通常是512字节。在分区信息中,分区大小和分区偏移量都是以sector为单位的。

字节
字节是计算机中的基本存储单元,通常用B表示。一个sector等于512个字节,也就是说,一个sector可以存储512个B的数据。

为什么使用Sector?
使用sector为单位可以更好地对齐设备上的存储空间,提高存储效率和性能。如果使用字节为单位,可能会造成设备上的空间浪费或者读写错误。
例如,如果一个分区的大小是8192字节,那么它占用了16个sector(8192 / 512 = 16)。如果一个分区的大小是8193字节,那么它占用了17个sector(8193 / 512 = 16.00195),但是实际上只用了第17个sector的一个字节,剩下的511个字节就浪费了。如果一个分区的大小是8191字节,那么它占用了16个sector(8191 / 512 = 15.99805),但是实际上少用了第16个sector的一个字节,可能会导致读写错误。

单位转换
如果想看以字节为单位的分区信息,可以把sector乘以512来转换成字节。同样地,如果想看以MB(兆字节)为单位的分区信息,可以把sector乘以512 / 1024 / 1024来转换成MB。
例如,如果一个分区的大小是0x00002000 sector,那么它的大小是0x00002000 * 512字节,或者0x00002000 * 512 / 1024 / 1024 MB。

<think>好的,我现在需要解决RK3566在Android 11上存储空间显示不正确的问题。首先,我得理解这个问题的可能原因。存储空间显示错误可能有多个因素导致,比如系统配置错误、存储挂载点不正确、权限问题,或者是硬件兼容性问题。 根据引用[1]提到的DOM Storage设置,虽然主要关于WebView,但存储相关的系统设置可能存在共通点。比如,系统是否正确地识别了存储设备的容量,或者在初始化时是否正确挂载了分区。可能需要检查存储相关的配置文件日志。 接下来,引用[2]提到关于系统证书安装的问题,虽然主要是HTTPS抓包,但涉及到系统级别的配置。存储空间显示错误是否与系统对存储设备的识别有关?比如,分区格式不被正确支持,或者系统服务(如StorageManager)未能正确读取存储信息。 引用[3][4]提到RK3566的性能接口,可能存储驱动或硬件适配存在问题。需要确认RK3566的Android 11系统是否针对该硬件正确配置了存储驱动,特别是分区文件系统类型是否正确。例如,是否使用了ext4或f2fs,并且系统能够正确解析这些分区的容量。 接下来,可能的解决步骤包括: 1. **检查存储挂载配置**:查看/system/etc/vold.fstab或类似文件,确认存储设备的挂载点是否正确。如果配置错误,可能导致系统无法正确计算可用空间。 2. **验证文件系统**:使用adb shell进入设备,运行`df`命令查看各分区的挂载情况空间使用。如果显示的分区大小与实际硬件不符,可能是分区表问题或文件系统损坏。 3. **查看系统日志**:通过`logcat`检查是否有存储相关的错误或警告,比如Vold(Volume Daemon)的日志,可能会提示挂载失败或识别错误。 4. **更新固件或驱动**:联系RK3566的供应商,确认是否有最新的固件或内核驱动更新,特别是针对存储控制器或文件系统的修复。 5. **校准存储统计**:Android系统通过StorageManagerService统计存储信息,可能存在缓存问题。尝试清除缓存数据或重启设备,看是否临时解决问题。 6. **检查权限SELinux策略**:错误的SELinux策略可能阻止系统服务访问存储设备。查看avc日志是否有相关拒绝信息,并调整策略规则。 如果以上步骤无法解决,可能需要深入分析存储服务的工作流程,或者参考类似问题的解决方案,如引用[2]中提到的系统级配置调整方法。</think>### RK3566 Android 11 存储空间显示错误解决方案 #### 1. **检查存储挂载配置** - **步骤**:通过`adb shell`进入设备,查看`/system/etc/vold.fstab`或`/vendor/etc/vold.fstab`文件,确认存储设备的分区挂载点是否正确。例如: ```bash adb shell cat /vendor/etc/vold.fstab ``` - **可能问题**:若挂载路径(如`/mnt/sdcard`)或文件系统类型(如ext4、f2fs)配置错误,会导致系统无法正确识别容量[^4]。 #### 2. **验证文件系统状态** - **步骤**:运行以下命令查看分区信息: ```bash adb shell df -h adb shell lsblk ``` - **关注点**:检查分区大小是否与硬件实际容量一致。若不一致,可能是分区表损坏或格式化问题,需重新分区或格式化(注意备份数据)[^2]。 #### 3. **分析系统日志** - **步骤**:使用`logcat`过滤存储相关日志: ```bash adb logcat | grep -E "Vold|StorageManager" ``` - **常见错误**: - `Failed to mount /dev/block/mmcblk0pX`:挂载失败,可能是文件系统损坏。 - `Invalid partition size`:分区表异常,需重新烧写固件。 #### 4. **更新固件或内核驱动** - **操作建议**:联系RK3566供应商获取最新固件,重点确认: - 存储控制器驱动(如SD卡、eMMC控制器)是否适配Android 11。 - 文件系统支持是否完整(如f2fs需内核模块支持)。 #### 5. **清除存储统计缓存** - **步骤**: ```bash adb shell pm clear android adb reboot ``` - **作用**:清除系统存储统计缓存,重启后重新计算存储数据。 #### 6. **检查SELinux策略** - **步骤**:在`adb shell`中执行: ```bash dmesg | grep avc ``` - **解决方案**:若发现`denied`权限错误,需在SELinux规则文件(如`*.te`)中添加允许策略,例如: ``` allow vold block_device:dir { search }; ``` #### 7. **校准存储分区** - **适用场景**:若设备存储为eMMC,可能存在坏块导致容量错误。 - **工具**:使用RK3566官方工具(如`rkflash`)重新擦除并格式化存储。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

华中久

您的打赏将是我继续创作的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值