手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

[Android]更换EMMC后,userdata容量为何不正确

时间:2024-10-15 07:53:11

1、在Android最新的代码中,分区表partition.xml里面定义了宏:GRO掳姗浚瑙W_LAST_PARTITION_TO_FILL_DISK=true. 这个宏的作用就是:动态器皆阄诟分配data分区的大小;就是说EMMC的总容量减去其它分区的容量,剩下的都是data分区的。所以分区的大小不用修改,会自动适应。这一点可以通过adb shell -》cat /proc/partitions 看到类似如下图的内容,其中最大的分区mmcblk0p40就是data分区了。(这里的单位是KB)

[Android]更换EMMC后,userdata容量为何不正确

2、那么既然data分区的实际大小没问题,为限鬃鹣哺什么手机中看到的容量不对呢?这就需要提到文件系统的概念了,因为每次烧录手机的时候,是将data.img烧录到分区中,所以分区的文件系统中的容量信息都是包含在data.img中了。这个容量是通过文件/device/platform/BoardConfig.mk中的参数来定义的:BOARD_USERDATAIMAGE_PARTITION_SIZE := 1860632576 (单位是Byte)

3、所以,解决方法很简单,就是将BOARD_USERDATAIMAGE_PARTITION_SIZE 的值设置为我们在/proc/partitions 中看到的分区实际大小,也就是12460032(KB)x1024(Byte/KB)=12759072768(Byte)

4、注意1:其实在容量显示不对的状态下,我们对手机执行下恢复出厂设置也会变为正确的容量的。因为这个操作会重新根据分区大小对data分区进行格式化操作,不再以data.img中的容量为准了。

5、注意2:如果直接设置成分区实际容量无法启动的话,不妨设置一个比分区容量小10MB的值,因为有时文件系统需要一些空间才能启动。

© 手抄报圈