最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

MTK智能平台分区解析

IT圈 admin 42浏览 0评论

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 。

其他分区类似,不再赘述。

发布评论

评论列表 (0)

  1. 暂无评论