主页 > 学习笔记 > 高通平台修改Internal SD大小/udisk.bin制作过程

高通平台修改Internal SD大小/udisk.bin制作过程

emmc的分区由modem和android的镜像大小决定, 有些分区每次编译的大小可能都不一样.

为了两边的同步,用rawprogram0.xml来记录分区信息, 每次编译时都会根据镜像大小进行修订.

inner sdcard是在modem侧就设置好的, 下面介绍如何修改它的大小.

modem side:

partition.xml中设定了inner sdcard的大小, 和烧写时这个分区所要填充的内容.

从下面的代码可以看出, 这是第14个分区, 分区类型是c, 大小是3696000*512 B. 烧录的文件是udisk.bin

modem_proc/core/storage/tools/jsdcc/partition_load_pt/partition.xml

<extended order="14" type="c" label="UDISK" size="3696000" readonly="false">

<file name="udisk.bin" offset="0"/>

修改这个分区的大小时将需要的size, 除以512填至size处就好了.

Makefile里python ptool.py -x partition.xml, 编译的时候ptool.py脚本会分析partition.xml,

并生成烧写需要的几个重要文件: partition.bin, rawprogram.xml, patch.xml, MBR0.bin and EBR0.bin

至此, modem侧就改好了, 重新编译后生成新的rawprogram.xml.

把新的rawprogram.xml 拷贝到android/vendor/qcom/proprietary/tools/ext4_sparse/重新编译android.

这样inner sdcard的大小就改好了.

issue:

修改后的inner size的分区信息与原始的填充文件udisk.bin是不匹配的(可能产生开机后需要格式化的问题),

需要重新生成.生成的办法如下:

/* 产生size大小的空文件 */

dd if=/dev/zero of=./tmp.bin bs=512 count=(size/512)

/* 制作文件系统 */

mkdosfs [-n volume-name]  ./tmp.bin

/* 精简文件大小 */

tmp.bin文件可能很大, 因为只有文件头部的一块内容是有效的, 所以可以只留下头部的内容, 节省空间, 方便移动.

推荐使用这个大小10240000=9.8MB, 因为默认的也是这么大.

dd if=./tmp.bin of=udisk.bin bs=512 count=20000

参考http://sudolee.googlecode.com/svn-history/r230/trunk/note/resize_inner_emmc.note

发表评论

邮箱地址不会被公开。 必填项已用*标注