[Galaxy Ace S5830i General] makeyourself:
From being used to a Linux PC with everything on a couple of partitions, trying to suss out how Android works has baffled me a bit what with having so many things hidden away in so many different places. I couldn't find a partition map for our phone so I made one by looking at /proc/partitions, using the mount command, analysing s5830i ODIN pit files and searching the internet. I realise that this isn't new information in that I'm pretty sure this stuff is known by some people but I still thought that this was worth putting out there.

I've listed the information in the following format:

#blocks <device file name> <partition name> (<flash file name> <Odin part>) <information>

Mount points are given where relevant. Partition name and flash file name are from the Odin pit file. To get the 'Odin part' I looked inside my “Full Firmware Backup To Odin Format”, which is a CWM script by Rafael.Baugis.

I've tried to be as accurate as possible and make it clear where I'm not 100% sure but please help me improve it if you can as I done this as a learning exercise in the first place!

Figures from /proc/partitions (also see the mount command):

#blocks name

31166976 mmcblk0 – sdcard (entire device)

29179904 mmcblk0p1 – sdcard partition 1 *

1945600 mmcblk0p2 - sdcard partition 2 *

513024 bml0/c – All bml partitions (figures add up to 513024)

256 bml1 – bcm_boot (BcmBoot.img – BOOT) – Bootloader

2048 bml2 – loke (sbl.bin - PDA) - Secondary bootloader

2048 bml3 – loke_bk (no flash file) - Presumably SBL backup

256 bml4 – systemdata (totoro.pit) – A copy of the Odin pit file by the looks of it

12800 bml5 – modem (BcmCP.img – PHONE) - baseband/modem

5120 bml6 – see stl6 **

5120 bml7 – boot (boot.img - PDA) - The kernel and ramdisk

5120 bml8 – boot_backup (no flash file) – Presumably boot.img backup

235520 bml9 – see stl9 **

40960 bml10 – see stl10 **

201984 bml11 – see stl11 **

256 bml12 – efs (?) (no flash file) – Not sure why this is called 'efs' as efs is well documented as being on bml15 and the number of blocks isn't even the same

256 bml13 – sysparm (sysparm_dep.img – BOOT) – part of the bootloader?

256 bml14 – umts_cal - (HEDGE_NVRAM8_RF_LE.bin – BOOT) – part of the bootloader?

1024 bml15 – cal (no flash file) - Not sure about the name but this is the EFS partition containing IMEI + network/region lock info

1280 stl6 – param_lfs (param.lfs – PDA) - mount point: /mnt/.lfs – SBL data including settings and images such as Samsung S5830i boot logo.

227840 stl9 – system (system.img - PDA) - mount point: /system – Operating System / ROM

36864 stl10 - cache (csc.rfs - CSC) - mount point: /cache – App/system cache storage but apparently CSC (region specific) data is also flashed here which seems odd but true!

194816 stl11 - userdata (userdata.img) - mount point: /data

- (dm-0 to dm-18) - Each app that is stored via SD card has its own virtual partition. I have 19 applications stored via traditional apps2sd, hence dm-0 to dm-18. Mount Point: /mnt/asec/<app's Java package name>

- (loop0 to loop18) – Loop devices. Each numbered loop is directly related to its dm counterpart, filesystem size is practically identical. I don't really understand loop devices that well so I can't say more than that!

* SD card partitions have other block device files, from which they are mounted via, at:

/dev/block/vold/179:1 - sdcard 1st partition – mount points: /mnt/sdcard and /mnt/secure/asec

/dev/block/vold/179:2 - sdcard 2nd partition – mount point: /data/sdext2

** This is from XDA user Darkshado in the following post:

“From what I've gathered bml is essentially a lower level interface to the same blocks accessed by stl, but the results differ somewhat in resulting file size”

http://xdaforums.com/showpost.php?p=16963172&postcount=1

In actual fact bml and stl counterparts don't differ very much at all in size. From what I've read elsewhere the reason for the availability of stl interfaces on only some partitions may be related to the need for regular read-write access.

*** stl* and bml* interfaces can be accessed through device files such as /dev/stl*, dev/bml*, /dev/block/stl* and dev/block/bml*.

Of course just because they can be doesn't mean it's necessarily a good idea!