2023年12月11日发(作者:京碧琴)
MTK智能平台分区解析
2013-01-14 14:42:57| 分类: | 标签: |字号|举报
联想A750内置4G存储,它是如何分配的?
有些买家看到手机内置存储卡大小连2G都不到,就开始咆哮了:“不是说4G ROM吗“现在就让我帮你算算这标称的4G是怎么来
的。
找一个文本查看器,打开/proc/dumchar_info
你将会看到里面的内容如下:
Part_Name Size StartAddr Type MapTo
preloader 0x00040000 0x00000000 2 /dev/misc-sd
dsp_bl 0x001e0000 0x00040000 2 /dev/misc-sd
mbr 0x00004000 0x00000000 2 /dev/block/mmcblk0
ebr1 0x0005c000 0x00004000 2 /dev/block/mmcblk0p1
pmt 0x00400000 0x00060000 2 /dev/block/mmcblk0
nvram 0x00300000 0x00460000 2 /dev/block/mmcblk0
seccfg 0x00020000 0x00760000 2 /dev/block/mmcblk0
uboot 0x00060000 0x00780000 2 /dev/block/mmcblk0
bootimg 0x00600000 0x007e0000 2 /dev/block/mmcblk0
recovery 0x00600000 0x00de0000 2 /dev/block/mmcblk0
sec_ro 0x00600000 0x013e0000 2 /dev/block/mmcblk0p5
misc 0x00060000 0x019e0000 2 /dev/block/mmcblk0
logo 0x00300000 0x01a40000 2 /dev/block/mmcblk0
expdb 0x000a0000 0x01d40000 2 /dev/block/mmcblk0
ebr2 0x00004000 0x01de0000 2 /dev/block/mmcblk0
android 0x20100000 0x01de4000 2 /dev/block/mmcblk0p6
cache 0x20100000 0x21ee4000 2 /dev/block/mmcblk0p2
usrdata 0x30100000 0x41fe4000 2 /dev/block/mmcblk0p3
fat 0x762fc000 0x720e4000 2 /dev/block/mmcblk0p4
bmtpool 0x00a00000 0xffdd0050 2 /dev/block/mmcblk0
Part_Name:Partition name you should open;
Size:size of partition
StartAddr:Start Address of partition;
Type:Type of partition(MTD=1,EMMC=2)
MapTo:actual device you operate
很明显,第一列是分区名称,第二列是分区大小,第三列是分区的地址偏移量,第四列说明分区是EMMC而非MTD,第五列是分区在内存中
的镜像。
把第二列全部加起来,注意是十六进制相加,
sum=0x00040000+0x001e0000+0x00004000+0x0005c000+0x00400000+0x00300000+0x00020000+0x0006000
0+0x00600000+0x00600000+0x00600000+0x00060000+0x00300000+0x000a0000+0x00004000+0x20100000+
0x20100000+0x30100000+0x762fc000+0x00a00000
=0xe9000000=3909091328
按照工业经典换算率,3909091328B=3.9GB
现在知道4G ROM是怎么来的吧?
接下来让我们看看官方刷机包里的一个文件MT6575_Android_scatter_。刷机包那么多文件,为什么偏偏看这个文件?因为它
是刷机过程中唯一让我们选择的一个文件,就是点击Scatter-loading按钮所选的文件,由此可见此文件对刷机是至关重要的。
内容如下:
PRELOADER 0x0
{
}
DSP_BL 0x40000
{
}
MBR 0x220000
{
}
EBR1 0x224000
{
}
__NODL_PMT 0x280000
{
}
__NODL_NVRAM 0x680000
{
}
__NODL_SECCFG 0x980000
{
}
UBOOT 0x9a0000
{
}
BOOTIMG 0xa00000
{
}
RECOVERY 0x1000000
{
}
SEC_RO 0x1600000
{
}
__NODL_MISC 0x1c00000
{
}
LOGO 0x1c60000
{
}
__NODL_EXPDB 0x1f60000
{
}
EBR2 0x2000000
{
}
ANDROID 0x2004000
{
}
CACHE 0x22104000
{
}
USRDATA 0x42204000
{
}
FAT 0x72304000
{
}
__NODL_BMTPOOL 0xFFFF0050
{
}
这个文件标示了各个分区的地址偏移量,刷机工具将分区数据刷写到它标示的地址。在上面会看到几个特殊的分区,都是以下划线开头
的,__NODL_*,NODL是什么意思呢?NODOWNLOAD,就是说,这些分区不下载,或者说,不更新。其中就有NVRAM分区,对这个
就好理解了,这个分区保存了手机的SN,IMEI及网卡的MAC地址,手机出厂后,这些硬件参数是不变的,所以刷机不会更新它们。除了
NVRAM外,还有几个也是NODL,这些分区尚不清楚其作用,但有一点是肯定没错的,那就是将NODL的分区备份出来,以防万一。
估计有人会问,怎么备份??
举个例子,备份NVRAM分区,首先看/proc/dumchar_info的内容,可以看到nvram的大小是3M,于是,安卓的瑞士军刀busybox就派
上用场了,虽然安卓的toolbox也有dd命令,但是已经被精简得不太可靠了,所以选择瑞士军刀。
在这里先给读者提个醒,镜像地址是/dev/block/mmcblk0的各个分区其实真正的镜像地址在/dev目录,比如nvram的镜像就
在/dev/nvram,因此,备份nvram的命令就是busybox dd if=/dev/nvram of=/sdcard/nvram bs=3M count=1
以上命令只要保证bs与count都是整数且两者的乘积刚好是3M 。
其他分区类似,不再赘述。
2023年12月11日发(作者:京碧琴)
MTK智能平台分区解析
2013-01-14 14:42:57| 分类: | 标签: |字号|举报
联想A750内置4G存储,它是如何分配的?
有些买家看到手机内置存储卡大小连2G都不到,就开始咆哮了:“不是说4G ROM吗“现在就让我帮你算算这标称的4G是怎么来
的。
找一个文本查看器,打开/proc/dumchar_info
你将会看到里面的内容如下:
Part_Name Size StartAddr Type MapTo
preloader 0x00040000 0x00000000 2 /dev/misc-sd
dsp_bl 0x001e0000 0x00040000 2 /dev/misc-sd
mbr 0x00004000 0x00000000 2 /dev/block/mmcblk0
ebr1 0x0005c000 0x00004000 2 /dev/block/mmcblk0p1
pmt 0x00400000 0x00060000 2 /dev/block/mmcblk0
nvram 0x00300000 0x00460000 2 /dev/block/mmcblk0
seccfg 0x00020000 0x00760000 2 /dev/block/mmcblk0
uboot 0x00060000 0x00780000 2 /dev/block/mmcblk0
bootimg 0x00600000 0x007e0000 2 /dev/block/mmcblk0
recovery 0x00600000 0x00de0000 2 /dev/block/mmcblk0
sec_ro 0x00600000 0x013e0000 2 /dev/block/mmcblk0p5
misc 0x00060000 0x019e0000 2 /dev/block/mmcblk0
logo 0x00300000 0x01a40000 2 /dev/block/mmcblk0
expdb 0x000a0000 0x01d40000 2 /dev/block/mmcblk0
ebr2 0x00004000 0x01de0000 2 /dev/block/mmcblk0
android 0x20100000 0x01de4000 2 /dev/block/mmcblk0p6
cache 0x20100000 0x21ee4000 2 /dev/block/mmcblk0p2
usrdata 0x30100000 0x41fe4000 2 /dev/block/mmcblk0p3
fat 0x762fc000 0x720e4000 2 /dev/block/mmcblk0p4
bmtpool 0x00a00000 0xffdd0050 2 /dev/block/mmcblk0
Part_Name:Partition name you should open;
Size:size of partition
StartAddr:Start Address of partition;
Type:Type of partition(MTD=1,EMMC=2)
MapTo:actual device you operate
很明显,第一列是分区名称,第二列是分区大小,第三列是分区的地址偏移量,第四列说明分区是EMMC而非MTD,第五列是分区在内存中
的镜像。
把第二列全部加起来,注意是十六进制相加,
sum=0x00040000+0x001e0000+0x00004000+0x0005c000+0x00400000+0x00300000+0x00020000+0x0006000
0+0x00600000+0x00600000+0x00600000+0x00060000+0x00300000+0x000a0000+0x00004000+0x20100000+
0x20100000+0x30100000+0x762fc000+0x00a00000
=0xe9000000=3909091328
按照工业经典换算率,3909091328B=3.9GB
现在知道4G ROM是怎么来的吧?
接下来让我们看看官方刷机包里的一个文件MT6575_Android_scatter_。刷机包那么多文件,为什么偏偏看这个文件?因为它
是刷机过程中唯一让我们选择的一个文件,就是点击Scatter-loading按钮所选的文件,由此可见此文件对刷机是至关重要的。
内容如下:
PRELOADER 0x0
{
}
DSP_BL 0x40000
{
}
MBR 0x220000
{
}
EBR1 0x224000
{
}
__NODL_PMT 0x280000
{
}
__NODL_NVRAM 0x680000
{
}
__NODL_SECCFG 0x980000
{
}
UBOOT 0x9a0000
{
}
BOOTIMG 0xa00000
{
}
RECOVERY 0x1000000
{
}
SEC_RO 0x1600000
{
}
__NODL_MISC 0x1c00000
{
}
LOGO 0x1c60000
{
}
__NODL_EXPDB 0x1f60000
{
}
EBR2 0x2000000
{
}
ANDROID 0x2004000
{
}
CACHE 0x22104000
{
}
USRDATA 0x42204000
{
}
FAT 0x72304000
{
}
__NODL_BMTPOOL 0xFFFF0050
{
}
这个文件标示了各个分区的地址偏移量,刷机工具将分区数据刷写到它标示的地址。在上面会看到几个特殊的分区,都是以下划线开头
的,__NODL_*,NODL是什么意思呢?NODOWNLOAD,就是说,这些分区不下载,或者说,不更新。其中就有NVRAM分区,对这个
就好理解了,这个分区保存了手机的SN,IMEI及网卡的MAC地址,手机出厂后,这些硬件参数是不变的,所以刷机不会更新它们。除了
NVRAM外,还有几个也是NODL,这些分区尚不清楚其作用,但有一点是肯定没错的,那就是将NODL的分区备份出来,以防万一。
估计有人会问,怎么备份??
举个例子,备份NVRAM分区,首先看/proc/dumchar_info的内容,可以看到nvram的大小是3M,于是,安卓的瑞士军刀busybox就派
上用场了,虽然安卓的toolbox也有dd命令,但是已经被精简得不太可靠了,所以选择瑞士军刀。
在这里先给读者提个醒,镜像地址是/dev/block/mmcblk0的各个分区其实真正的镜像地址在/dev目录,比如nvram的镜像就
在/dev/nvram,因此,备份nvram的命令就是busybox dd if=/dev/nvram of=/sdcard/nvram bs=3M count=1
以上命令只要保证bs与count都是整数且两者的乘积刚好是3M 。
其他分区类似,不再赘述。