[Android General] syserr:
Thanks for trying to explain, it's appreciated!

I believe "MTK Droid Root & Tools" does give you a good scatter file, but I've actually never used it.

Background: During the time I used it, I had major problems with ADB drivers on Windows. I ended up soft-bricking my device by playing with the "Test" tab in SP Flash Tools. So when I came back to working on things again, with a new device to donate the ROM, I wanted to be absolutely sure I knew what I was doing. First thing was "Read back" the ENTIRE ROM of the new device. This is an insurance policy. I had made backups with the GScript mtk*backup.sh scripts that run ON the unit, so I never went back to MTK DRT.
​

Something I think everyone that wants to do HEX math should to is start playing with the python interpreter... it is AWESOME. :good:

$ more MT6575_Android_scatter_emmc.txt
....
ANDROID 0x123e4000
{
}
CACHE 0x324e4000
{
}
USRDATA 0x525e4000
{
}
FAT 0x726e4000
{
}
__NODL_BMTPOOL 0xffffffffffff0050
{
}

$ python
Python 2.7.3 (default, Sep 26 2013, 16:35:25)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> hex(0x324e4000-0x123e4000)
'0x20100000'

Alex1948, if you are wondering why the length of my full/entire/whole dumps seems arbitrary... my answer is in some cases I was guessing at large enough numbers. My device (A2107A-*) has at least 5 different partitioning schemes from the factory. I want extra length, I didn't want to tell someone to read too short.

Why I am reading to the start address of CACHE is because that is the end of ANDROID. This is just looking at the physical real addresses in the scatter file. How those addresses are calculated from firmware.info/dumchar_info is a different story. I think you are aware of adding the 0x600000. This is only added to the lines in the file that are not preloader or dsp_bl:

$ more dumchar.txt
preloader 0x0000000000040000 0x0000000000000000 2 /dev/[B]misc[/B]-sd
dsp_bl 0x00000000005c0000 0x0000000000040000 2 /dev/misc-sd
mbr 0x0000000000004000 0x0000000000000000 2 /dev/[B]block[/B]/mmcblk0
ebr1 0x000000000005c000 0x0000000000004000 2 /dev/block/mmcblk0p1
pmt 0x0000000000400000 0x0000000000060000 2 /dev/block/mmcblk0
nvram 0x0000000000300000 0x0000000000460000 2 /dev/block/mmcblk0
seccfg 0x0000000000020000 0x0000000000760000 2 /dev/block/mmcblk0
uboot 0x0000000000060000 0x0000000000780000 2 /dev/block/mmcblk0
bootimg 0x0000000000600000 0x00000000007e0000 2 /dev/block/mmcblk0
recovery 0x0000000000600000 0x0000000000de0000 2 /dev/block/mmcblk0
sec_ro 0x0000000000600000 0x00000000013e0000 2 /dev/block/mmcblk0p5
misc 0x0000000000060000 0x00000000019e0000 2 /dev/block/mmcblk0
logo 0x0000000000300000 0x0000000001a40000 2 /dev/block/mmcblk0
expdb 0x00000000000a0000 0x0000000001d40000 2 /dev/block/mmcblk0
ebr2 0x0000000000004000 0x0000000001de0000 2 /dev/block/mmcblk0
fac 0x0000000010000000 0x0000000001de4000 2 /dev/block/mmcblk0p6
android 0x0000000020100000 0x0000000011de4000 2 /dev/block/mmcblk0p7
cache 0x0000000020100000 0x0000000031ee4000 2 /dev/block/mmcblk0p2
usrdata 0x0000000020100000 0x0000000051fe4000 2 /dev/block/mmcblk0p3
fat 0x00000000762fc000 0x00000000720e4000 2 /dev/block/mmcblk0p4
bmtpool 0x0000000000a00000 0xffffffffff9f0050 2 /dev/block/mmcblk0

So my code here:

if block != 'misc':
start = start + 0x600000

Is only adding the offset to the partitions that don't have that "misc" in their block device name.

I'm explaining a lot. I'm hoping somewhere in this you have the answer you are looking for.

We should have discussed this here:

[GUIDE][UTIL][MT65xx] Create Scatter File and Dump Full ROM

http://xdaforums.com/showthread.php?p=47809842