修改userdata的分区大小

        由于之前的eMCP(8Gflash,1G内存)的读写速度(测试工具Androbench)不给力,直接换了一种eMCP(16Gflash,2G内存),系统跑的好好的,但查看内置存储卡的容量只有5G(存储卡挂载在userdata分区),明明是16G的flash啊。

在一个同事的指导下,查看分区情况

adb shell cat /proc/partitions

 179        0   15388672 mmcblk0
 179        1      65536 mmcblk0p1
 179        2        512 mmcblk0p2
 179        3        512 mmcblk0p3
 179        4       1024 mmcblk0p4
 179        5       1024 mmcblk0p5
 179        6        512 mmcblk0p6
 179        7        512 mmcblk0p7
 179        8        768 mmcblk0p8
 179        9        768 mmcblk0p9
 179       10       1024 mmcblk0p10
 179       11       1536 mmcblk0p11
 179       12       1536 mmcblk0p12
 179       13       1024 mmcblk0p13
 179       14          1 mmcblk0p14
 179       15          8 mmcblk0p15
 179       16      10240 mmcblk0p16
 179       17         32 mmcblk0p17
 179       18       1536 mmcblk0p18
 179       19         16 mmcblk0p19
 179       20      32768 mmcblk0p20
 179       21    1258292 mmcblk0p21
 179       22      32768 mmcblk0p22
 179       23     262144 mmcblk0p23
 179       24      32768 mmcblk0p24
 179       25       1024 mmcblk0p25
 179       26        512 mmcblk0p26
 179       27      65536 mmcblk0p27
 179       28        512 mmcblk0p28
 179       29      32768 mmcblk0p29
 179       30       1024 mmcblk0p30
 179       31      10240 mmcblk0p31
 259        0     204800 mmcblk0p32
 259        1     307200 mmcblk0p33
 259        2   12931055 mmcblk0p34
 179       32       4096 mmcblk0rpmb
找来一台没换EMMC的机器来对比
 179        0    7634944 mmcblk0
 179        1      65536 mmcblk0p1
 179        2        512 mmcblk0p2
 179        3        512 mmcblk0p3
 179        4       1024 mmcblk0p4
 179        5       1024 mmcblk0p5
 179        6        512 mmcblk0p6
 179        7        512 mmcblk0p7
 179        8        768 mmcblk0p8
 179        9        768 mmcblk0p9
 179       10       1024 mmcblk0p10
 179       11       1536 mmcblk0p11
 179       12       1536 mmcblk0p12
 179       13       1024 mmcblk0p13
 179       14          1 mmcblk0p14
 179       15          8 mmcblk0p15
 179       16      10240 mmcblk0p16
 179       17         32 mmcblk0p17
 179       18       1536 mmcblk0p18
 179       19         16 mmcblk0p19
 179       20      32768 mmcblk0p20
 179       21    1258292 mmcblk0p21
 179       22      32768 mmcblk0p22
 179       23     262144 mmcblk0p23
 179       24      32768 mmcblk0p24
 179       25       1024 mmcblk0p25
 179       26        512 mmcblk0p26
 179       27      65536 mmcblk0p27
 179       28        512 mmcblk0p28
 179       29      32768 mmcblk0p29
 179       30       1024 mmcblk0p30
 179       31      10240 mmcblk0p31
 259        0     204800 mmcblk0p32
 259        1     307200 mmcblk0p33
 259        2    5177327 mmcblk0p34
 179       32        512 mmcblk0rpmb

mmcblk0即emmc的容量(单位kb),看来容量大小是正确读取到了,但mmcblk0p34(userdata)分区的大小不对。

找到device目录下的BoardConfig.mk文件,将BOARD_USERDATAIMAGE_PARTITION_SIZE的大小修改一下为(12931055*1024=13241400320)B,

BOARD_USERDATAIMAGE_PARTITION_SIZE := 13241400320

重新编译一下(删除out目录下的userdata.img),烧写userdata分区(sudo fastboot flash userdata userdata.img)

系统起来后,内置存储卡的容量正确识别到了。之前不知怎么修改这个容量,将这个数值改大了,导致挂载不了userdata分区(adb shell df查看),系统起不来的情况。

从Android6.0开始不用修改该大小了,系统可以自动识别。该BUG(Android4-,Androd5-)可以让芯片供应商提供补丁来修复。

运行 清除fastboot进磁盘操作.bat 接着电脑自动安装驱动(不会自动安装的驱动路径在MiFlash安装目录下) 这时就进入磁盘模式了,接着就可以用DiskGenius,分区助手专业版和MiFlash进行操作了(还可以用DiskGenius做数据备份) 用MiFlash刷机(目的是为了还原删除的aboot也可以用我提供的备份还原)刷完后关MiFlash,可别拔掉手机哦 呵呵 补充:没用miflash刷机的一定要要还原aboot分区要不后面改好了启动不来(一定要刷机要不你自己备份的也是清除的分区里面没数据是没用的) 3. 打开DiskGenius要操作的磁盘是QualcommMMCStorage(里面有27个分区的就是) 认为有必要的备份好整个分区表和分区(极力推荐备份)。 也可以用我提供的备份(有些分区是各手机私有的不能用我的备份分别是ssd dbi bk1 bk2 modemst1 modemst2 fsc bk3 fsg bk4 bk5 这11个分区同时也是不可动的)。 以下是两种分区方法 选其中一种即可 1。 用分区助手无损移动分区 2。 用DiskGenius删分区再重建 第一种: 方法删除 system1 boot1 modem1 userdata四个分区就可以了。(认为有必要的懂得可以删其他分区) 用分区助手移动分区把未分配空间集合在右边也就是userdata分区那一边保存修改(提交)然后用DiskGenius新建分区userdata把剩下的空间都给它 文件系统类型linux data partion 勾上对齐到下列扇区数的整数倍数值是8 详细里面的分区userdata 再点上无盘符。 分区建好保存更改(分区名一定要是userdata)。 换到分区助手格式化userdata分区 格式ext3其他默认(可以开机后进fastboot用命令格式化此分区命令是fastboot format userdata)。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值