Android系统修改userdata分区大小

问题描述

Android设备烧录版本后开机,查看存储空间大小不符合Flash实际大小,当恢复出厂设置后,存储空间显示正常。

问题分析

<1> 每次烧录手机的时候,是将userdata.img烧录到分区中,所以分区的文件系统中的容量信息都是包含在userdata.img中了,这个容量是通过文件/device/platform/BoardConfig.mk中的参数来定义的:BOARD_USERDATAIMAGE_PARTITION_SIZE := 1860632576 (Byte)

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

<2> 在开机容量显示不对的状态下,我们对设备执行下恢复出厂设置就会变为正确的容量的,因为这个操作会重新根据分区大小对data分区进行格式化操作,不再以data.img中的容量为准。

解决方案

1.查看挂载的分区:/data分区挂载在/dev/block/sda11

C:\Users\Admin>adb shell
lito:/ $ mount
tmpfs on /dev type tmpfs (rw,seclabel,nosuid,relatime,mode=755)
devpts on /dev/pts type devpts (rw,seclabel,relatime,mode=600,ptmxmode=000)
proc on /proc type proc (rw,relatime,gid=3009,hidepid=2)
sysfs on /sys type sysfs (rw,seclabel,relatime)
selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)
tmpfs on /mnt type tmpfs (rw,seclabel,nosuid,nodev,noexec,relatime,mode=755,gid=1000)
tmpfs on /apex type tmpfs (rw,seclabel,nosuid,nodev,noexec,relatime,mode=755)
tracefs on /sys/kernel/debug/tracing type tracefs (rw,seclabel,relatime)
(ro,context=u:object_r:bt_firmware_file:s0,relatime,uid=1002,gid=3002,fmask=0337,dmask=0227,codepage=437,iocharset=iso8859-1,shortname=lower,errors=remount-ro)
tmpfs on /storage type tmpfs (rw,seclabel,nosuid,nodev,noexec,relatime,mode=755,gid=1000)
/dev/block/sda11 on /data type f2fs (rw,lazytime,seclabel,nosuid,nodev,noatime,background_gc=on,discard,no_heap,user_xattr,inline_xattr,acl,inline_data,inline_dentry,flush_merge,extent_cache,mode=adaptive,active_logs=6,reserve_root=12686,re

2.查看分区大小 (单位:KB):sda11对应的是data分区
cat proc/partitions

3.修改device/qcom/lito/BoardConfig.mk:使用sda11对应的大小
BOARD_USERDATAIMAGE_PARTITION_SIZE := 100018577408

4.验证分区大小:
ls -al dev/block/platform/soc/1d84000.ufshc/by-name/

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

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值