当前位置:主页 > 刷机教程 >

如何修改userdata的分区大小

分类栏目:刷机教程

12678

如何修改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-)可以让芯片供应商提供补丁来修复。