[DEV][REF] El Grande Partition Table Reference - Hardware Hacking General

El Grande Partition Table Reference
This is a development thread whose main purpose is to catalog and document
the various partition tables used by our manufacturers in our loved Androids.
Thread Difficulty: Medium (some risk of bricking)
When people get a bad flash and soft-brick their devices, one of the first
things that need to be done, is finding out on what partition that flash went
bad. This information can be extremely valuable since it could very well make
the difference between loosing or keeping all your data.
In addition, it will help clarify much of the partitioning confusion that has
arisen because of the many different partitioning schemes used in different
devices and by different hardware manufacturers.
Thus you can help by providing your complete partition tables in this thread
in one post. In order for this information to be useful, you will have to
provide and specify the following:
Code:
General Device Name: Samsung Galaxy S2
Manufacturer Product Name: GT-I9100
Processor: Exynos 4210
AOS version: Android GB 2.3.4
Radio FW version: XXKI1
System FW version: XXKE4
Service Provider/ Branding: T-mobile
Country: Germany
<< output of parted >>
<< output of fdisk >>
<< output of gdisk >>
<< Any additional info you'd like to share. See text.>>
Additional information that could be useful, include:
Code:
a) The alternative commands shown in post#2 below.
b) Other hardware info that can often be found in the PDA database.
c) A link to a text paste site with the output from:
1. dmesg (directly after reboot)
2.
How To Post Here
To make your post compact and stylish, post using the "Go Advanced"
and put your command output in "CODE" tags and choose: "Sizes" ==> 2.
If you know how to, also replace all tabs (\t) with spaces. If your output
is excessively large, please use paste site (pastebin, pastie etc.) instead
of multiple posts.
Also, please search the thread for previous devices before posting
your own results, unless they differ significantly.
==================================================
This is a development thread. Do not ask for help with this or that,
this is not a support thread! Make sure that any question you might
have, is directly related to the benefit of this thread and on-topic.
If not your post will be removed.
==================================================
The goal here is to obtain as detailed information about your device
partitions as possible. The most important information are (with example):
Code:
- Partition Number 2
- Partition Name mmcblk0p2
- Partition Type EXT4
- Partition MBR ID 83
- Partition GPT ID 8300 /
- Partition Label SBL1
- Partition Description Secondary Bootloader 1
- Start block (hex/dec) 0x1000
- End block (hex/dec) 0x1fff
- Partiton Size (hex/dec) 0x1000
- Partition Content Qualcomm SBL1 bootloader image (sbl1.img)
As a good example of a fairly complete partition table is that of the
Verizon Samsung Galaxy S3 (SCH-I535), as shown in post#3, although it is
still missing some relevant data, it was completed using the commands
shown in post#2.
Thanks in advance for wanting to help to make this thread an awesome
and great partition table reference.
Click to expand...
Click to collapse
So far we have the following devices in our list:
Code:
[SIZE=2]Samsung Galaxy S3 (SCH-I535) [URL="http://forum.xda-developers.com/showpost.php?p=33358998&postcount=3"]Post#3[/URL]
Samsung Galaxy Note (SHV-E160L) [URL="http://forum.xda-developers.com/showpost.php?p=33568941&postcount=7"]Post#7[/URL]
HTC One X LTE [US AT&T, Verizon, etc] [URL="http://forum.xda-developers.com/showpost.php?p=34063606&postcount=8"]Post#8[/URL]
Samsung LED TV ES-5700 (UE40ES5700SXXH) [URL="http://forum.xda-developers.com/showpost.php?p=34065570&postcount=9"]Post#9[/URL]
Samsung Galaxy Camera (EK-GC100) [URL="http://forum.xda-developers.com/showpost.php?p=34841863&postcount=10"]Post#10[/URL]
Samsung GT-I8150 [URL="http://forum.xda-developers.com/showpost.php?p=35130021&postcount=11"]Post#11[/URL]
Samsung SHV-E160L [URL="http://forum.xda-developers.com/showpost.php?p=36019312&postcount=13"]Post#13[/URL]
LG Optimus G (LS970) [Sprint] [URL="http://forum.xda-developers.com/showpost.php?p=38362505&postcount=16"]Post#16[/URL]
LG Motion (MS770/LW770) [URL="http://forum.xda-developers.com/showpost.php?p=40890468&postcount=20"]Post#20[/URL]
Samsung Galaxy S Plus [URL="http://forum.xda-developers.com/showpost.php?p=41499110&postcount=21"]Post#21[/URL]
Samsung GT-I8160 [URL="http://forum.xda-developers.com/showpost.php?p=42096782&postcount=22"]Post#22[/URL]
Samsung GT-N7000 (16GB) [URL="http://forum.xda-developers.com/showpost.php?p=42744917&postcount=24"]Post#24[/URL]
LG G2 (D-800) [AT&T, Verizon] [URL="http://forum.xda-developers.com/showpost.php?p=45574215&postcount=25"]Post#25[/URL]
[/SIZE]
Here is another thread I strongly recommend reading, before posting here.
It has an excellent explanation of the linux file permissions and how to make
backups of the most important partitions.
[GUIDE] Making Dump Files Out of Android Device Partitions
<< To Be Continued.. >>

How to obtain your partition table?
Although the way to obtain your complete partition table layout varies from
device to device, there are some standard tools and methods to do this. The
most important thing to know, especially if you're used to the old-school
Windows/Linux Master Boot Record (MBR) type file systems, is that most modern
Android smartphones now make heavy use of the GUID Partition Table (GPT)
structure (formatting). Thus you will need some slightly different tools, to
obtain the proper information from your device. Different tools give different
information, as we shall see.
NOTE: You have to be rooted to use these tools!Example-1: (Partition Tables for the Samsung Galaxy S2 GT-I9100)
Here we get our partition table using three different tools:
fdisk
parted
gdisk (aka gptfdisk)
And the results will differ quite dramatically.
1. Using fdisk:
Code:
[SIZE=2]/ # fdisk -l /dev/block/mmcblk0[/SIZE]
[SIZE=2] Disk /dev/block/mmcblk0: 15.7 GB, 15756951552 bytes[/SIZE]
[SIZE=2] 1 heads, 16 sectors/track, 1923456 cylinders[/SIZE]
[SIZE=2] Units = cylinders of 16 * 512 = 8192 bytes[/SIZE]
[SIZE=2] Device Boot Start End Blocks Id System[/SIZE]
[SIZE=2] /dev/block/mmcblk0p1 1 1923456 15387647+ ee EFI GPT[/SIZE]
[SIZE=2] Partition 1 does not end on cylinder boundary[/SIZE]
2. Using parted:
Code:
[SIZE=2]/ # parted /dev/block/mmcblk0[/SIZE]
[SIZE=2] GNU Parted 1.8.8.1.179-aef3[/SIZE]
[SIZE=2] Using /dev/block/mmcblk0[/SIZE]
[SIZE=2] Welcome to GNU Parted! Type 'help' to view a list of commands.[/SIZE]
[SIZE=2] (parted) p[/SIZE]
[SIZE=2] p[/SIZE]
[SIZE=2] Model: MMC VYL00M (sd/mmc)[/SIZE]
[SIZE=2] Disk /dev/block/mmcblk0: 15.8GB[/SIZE]
[SIZE=2] Sector size (logical/physical): 512B/512B[/SIZE]
[SIZE=2] Partition Table: gpt[/SIZE]
[SIZE=2] Number Start End Size File system Name Flags[/SIZE]
[SIZE=2] 1 4194kB 25.2MB 21.0MB ext4 EFS[/SIZE]
[SIZE=2] 2 25.2MB 26.5MB 1311kB SBL1[/SIZE]
[SIZE=2] 3 27.3MB 28.6MB 1311kB SBL2[/SIZE]
[SIZE=2] 4 29.4MB 37.7MB 8389kB PARAM[/SIZE]
[SIZE=2] 5 37.7MB 46.1MB 8389kB KERNEL[/SIZE]
[SIZE=2] 6 46.1MB 54.5MB 8389kB RECOVERY[/SIZE]
[SIZE=2] 7 54.5MB 159MB 105MB ext4 CACHE[/SIZE]
[SIZE=2] 8 159MB 176MB 16.8MB MODEM[/SIZE]
[SIZE=2] 9 176MB 713MB 537MB ext4 FACTORYFS[/SIZE]
[SIZE=2] 10 713MB 2861MB 2147MB ext4 DATAFS[/SIZE]
[SIZE=2] 11 2861MB 15.2GB 12.4GB fat32 UMS[/SIZE]
[SIZE=2] 12 15.2GB 15.8GB 537MB ext4 HIDDEN[/SIZE]
3. Using gdisk:
Code:
[SIZE=2]/ # gdisk -l /dev/block/mmcblk0[/SIZE]
[SIZE=2] GPT fdisk (gdisk) version 0.8.4[/SIZE]
[SIZE=2] Partition table scan:[/SIZE]
[SIZE=2] MBR: protective[/SIZE]
[SIZE=2] BSD: not present[/SIZE]
[SIZE=2] APM: not present[/SIZE]
[SIZE=2] GPT: present[/SIZE]
[SIZE=2] Found valid GPT with protective MBR; using GPT.[/SIZE]
[SIZE=2] Disk /dev/block/mmcblk0: 30775296 sectors, 14.7 GiB[/SIZE]
[SIZE=2] Logical sector size: 512 bytes[/SIZE]
[SIZE=2] Disk identifier (GUID): 52444E41-494F-2044-4D4D-43204449534B[/SIZE]
[SIZE=2] Partition table holds up to 128 entries[/SIZE]
[SIZE=2] First usable sector is 34, last usable sector is 30775262[/SIZE]
[SIZE=2] Partitions will be aligned on 2048-sector boundaries[/SIZE]
[SIZE=2] Total free space is 17341 sectors (8.5 MiB)[/SIZE]
[SIZE=2] Number Start (sector) End (sector) Size Code Name[/SIZE]
[SIZE=2] 1 8192 49151 20.0 MiB 0700 EFS[/SIZE]
[SIZE=2] 2 49152 51711 1.2 MiB 0700 SBL1[/SIZE]
[SIZE=2] 3 53248 55807 1.2 MiB 0700 SBL2[/SIZE]
[SIZE=2] 4 57344 73727 8.0 MiB 0700 PARAM[/SIZE]
[SIZE=2] 5 73728 90111 8.0 MiB 0700 KERNEL[/SIZE]
[SIZE=2] 6 90112 106495 8.0 MiB 0700 RECOVERY[/SIZE]
[SIZE=2] 7 106496 311295 100.0 MiB 0700 CACHE[/SIZE]
[SIZE=2] 8 311296 344063 16.0 MiB 0700 MODEM[/SIZE]
[SIZE=2] 9 344064 1392639 512.0 MiB 0700 FACTORYFS[/SIZE]
[SIZE=2] 10 1392640 5586943 2.0 GiB 0700 DATAFS[/SIZE]
[SIZE=2] 11 5586944 29720575 11.5 GiB 0700 UMS[/SIZE]
[SIZE=2] 12 29720576 30769151 512.0 MiB 0700 HIDDEN[/SIZE]
Example-2: (Using built-in system tools.)
Code:
[SIZE=2]/ # mount
rootfs / rootfs ro,relatime 0 0
tmpfs /dev tmpfs rw,relatime,mode=111 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
none /acct cgroup rw,relatime,cpuacct 0 0
tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/usb tmpfs rw,relatime,mode=755,gid=1000 0 0
tmpfs /app-cache tmpfs rw,relatime,size=7168k 0 0
none /dev/cpuctl cgroup rw,relatime,cpu 0 0
/dev/block/mmcblk0p9 /system ext4 ro,relatime,barrier=1,data=ordered 0 0
/dev/block/mmcblk0p7 /cache ext4 rw,nosuid,nodev,noatime,barrier=1,data=ordered 0 0
/dev/block/mmcblk0p1 /efs ext4 rw,nosuid,nodev,noatime,barrier=1,data=ordered 0 0
nil /sys/kernel/debug debugfs rw,relatime 0 0
/dev/block/mmcblk0p10 /data ext4 rw,nosuid,nodev,noatime,barrier=1,data=ordered,noauto_da_alloc,discard 0 0
/dev/block/mmcblk0p4 /mnt/.lfs j4fs rw,relatime 0 0
/dev/block/vold/179:11 /mnt/sdcard vfat rw,dirsync,nosuid,nodev,noexec,noatime,nodiratime,uid=1000,gid=1015,fmask=0002,dmask=0002,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro,discard 0 0
/ # busybox cat /proc/partitions
major minor #blocks name
179 0 15387648 mmcblk0
179 1 20480 mmcblk0p1
179 2 1280 mmcblk0p2
179 3 1280 mmcblk0p3
179 4 8192 mmcblk0p4
179 5 8192 mmcblk0p5
179 6 8192 mmcblk0p6
179 7 102400 mmcblk0p7
179 8 16384 mmcblk0p8
179 9 524288 mmcblk0p9
179 10 2097152 mmcblk0p10
179 11 12066816 mmcblk0p11
179 12 524288 mmcblk0p12
[/SIZE]
Download These Partition Tools
I have collected the above three tools into one ZIP package
that you can download HERE. << WIP TBA >>
Download the ZIP containing parted HERE.
(Do not use/push/install anything else than "parted", as they may
already be present on your system, or in Busybox.)
The gptfdisk binary is rather large (~1.5 MB) as it is statically compiled.
It would be nice if someone could create an NDK based dynamic binary.
Download the binary HERE. (SourceForge, Info)
darkspr1te have collected even more (statically compiled) tools in his
post #13, that can be downloaded HERE.
! WARNING !
Be careful with parted, make sure you tell it to "Ignore" any errors it might
find. Also you have to type "quit" to get it to exit from interactive mode.
Similarly, you'll probably also get various scary warnings when using gdisk.
Same thing here. Make sure to ignore, never attempt to repair, unless you know
exactly what you're doing!
You may get other warnings as well, but should always be ignored. This is due
to the fact that many devices are using some kind of hybrid proprietary
MBR/GPT partitioning with accompanying tables. This is especially true for
Qualcomm based devices from Samsung and HTC.
Click to expand...
Click to collapse
Collecting Alternative Information
There are several system commands and files that you can use, that contain
partitioning information. The most common ones are:
Code:
mount
cat /proc/mtd
cat /proc/mounts
cat /proc/partitions
cat /proc/emmc
busybox fdisk -l /dev/block/mmcblk0
parted -l /dev/block/mmcblk0
gdisk -l /dev/block/mmcblk0
[You will probably need to modify these to suit your particular storage device.]
Another useful place for info is in the Kernel and debug messages output.
However, these commands need to be performed as soon as possible after a
reboot, since the message log is a ring-buffer of only 4K. (Meaning it will soon
overwrite itself.)
Code:
dmesg |grep "mmc"
dmesg |grep "partition"
cat /proc/kmesg >/path-to-your-writeable-area/kmesg.log
Collecting Partition Tables while Flashing
(Root not required)
You can also collect very detailed partition table layout while flashing new firmware (using Windows).
Thanks to attentive users: @IGGYVIP and @Antagonist42 we show in Post#51 and beyond, how you
can use SysInternals DebugView tool, to collect interesting debug information while flashing.

Partition Table: Samsung Galaxy S3 (SCH-I535)
So to be a good example, let me start to post the complete partition table
for the US Verizon, Samsung Galaxy S3 (SCH-I535). It was probably obtained
from a screenshot of one of Samsung's internal documents, not available for
public scrutiny. I then had to add additional information from other peoples
devices to complete the details. Still, it is likely there will be some
variations due to hardware and updated firmware etc. But it does serve as a
great and informative example of a top-of-the-line Android partition table.
So to follow my own instructions:
Code:
[SIZE=2]General Device Name: Samsung Galaxy S3
[SIZE=2]Manufacturer[/SIZE] Product Name: SCH-I535
Processor: Qualcomm Snapdragon 4S+ (MSM8960)
AOS version: Android GB 4.0.4
Radio FW version: <na>
System FW version: <na>
Service Provider/ Branding: Verizon
Country: USA
[/SIZE]
One guy listed the output of parted as:
Code:
[SIZE=2]Disk /dev/block/mmcblk0: 31268536320B
Sector size (logical/physical): 512B/512B
Partition Table: gpt
-------------------------------------------------------------------------------
Number Start End Size FS-Type Name Flags
-------------------------------------------------------------------------------
1 4194304B 67108863B 62914560B modem
2 67108864B 67239935B 131072B sbl1
3 67239936B 67502079B 262144B sbl2
4 67502080B 68026367B 524288B sbl3
5 68026368B 70123519B 2097152B aboot
6 70123520B 70647807B 524288B rpm
7 70647808B 81133567B 10485760B boot
8 81133568B 81657855B 524288B tz
9 81657856B 82182143B 524288B pad
10 82182144B 92667903B 10485760B param
11 92667904B 106954751B 14286848B ext4 efs
12 106954752B 110100479B 3145728B modemst1
13 110100480B 113246207B 3145728B modemst2
14 113246208B 1686110207B 1572864000B ext4 system
15 1686110208B 30337400831B 28651290624B ext4 userdata
16 30337400832B 30345789439B 8388608B ext4 persist
17 30345789440B 31226593279B 880803840B ext4 cache
18 31226593280B 31237079039B 10485760B recovery
19 31237079040B 31247564799B 10485760B fota
20 31247564800B 31253856255B 6291456B backup
21 31253856256B 31257001983B 3145728B fsg
22 31257001984B 31257010175B 8192B ssd
23 31257010176B 31262253055B 5242880B grow
[/SIZE]
But according to the anonymous Samsung document image, we have:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
[Converted to text using the free online OCR tool.]
From this I constructed the following partition table:
Code:
[SIZE=2]Part# Name Type Flag Start(hex) Start(dec) Length(dec) Length(hex) Size Description
-------------------------------------------------------------------------------------------------------------------------------------------
0 GPT 00000000 0 34 0000022 0 GUID Partition Table
1 MODEM FAT32X pr 00002000 8,192 122,880 001E000 60 CP Binary
2 SBL1 *pr 00020000 131,072 256 0000100 .1 Secondary Bootloader 1
3 SBL2 pr 00020100 131,328 512 0000200 .3 Secondary Bootloader 2
4 SBL3 pr 00020300 131,840 1024 0000400 .5 Secondary Bootloader 3
5 ABOOT r 00020700 132,864 4096 0001000 2 AP Bootloader
6 RPM r 00021700 136,960 1024 0000400 .5 Resource and Power Manager
7 BOOT r 00021800 137,984 20,480 0005000 10 Kernel + Ramisk
8 TZ r 00026800 158,464 1024 0000400 .5 Trust Zone
9 PIT 00026F00 159,488 1024 0000400 .5 Partition Information Table
10 PARAM 00027300 160,512 20,480 0005000 10 Parameter Block
11 EFS EXT4 0002C300 180,992 27,904 0006D00 13.6 EFS Partition
12 MODEMST1 00033000 208,896 6,144 0001800 3 Modem Storage 1 (NV data)
13 MODEMST2 00034800 215,040 6,144 0001800 3 Modem Storage 2 (NV data)
14 SYSTEM EXT4 00036000 221,184 3,072,000 02EE000 1500 Android Platform
15 USERDATA EXT4 00324000 3,293,184 55,959,552 355E000 27324 Application & User Data
16 PERSIST EXT4 03882000 59,252,736 16,384 0004000 8 Persist
17 CACHE EXT4 03886000 59,269,120 1,720,320 01A4000 840 Cache
18 RECOVERY r 03A2A000 60,989,440 20,480 0005000 10 Recovery
19 FOTA 03A2F000 61,009,920 20,480 0005000 10 FOTA backup partition
20 BACKUP 03A34000 61,030,400 12,288 0003000 6 NV data backup partition
21 FSG 03A37000 61,042,688 6,144 0001800 3 Modem Storage "Golden Copy"
22 SSD 03A38800 61,048,832 16 0000010 0 Secure Software Download
23 GROW 03A38810 61,048,848 5 0000005 0 Grow
-------------------------------------------------------------------------------------------------------------------------------------------
Part : Is the eMMC partition number and mounted under "mmcblk0<#>"
Type : Partition Type (By Name or by ID (hex) if unknown. See list below.)
Flag : Special partition flags, such as: boot (*), read only (r), primary partition (p).
Length: Number of blocks (sectors) in partition
Size : Approximate partition size in MB
[B]NOTE[/B]: The block size is 512 bytes.
[/SIZE]

What does it all mean?
Here I give a general description to the various partitions. Most of them have
been determined, but some still remain somewhat mysterious. But there are
Terabytes written about various partition schemes and file systems etc, but
some good sources for our purpose are found on Wikipedia and Microsoft.
But the most important thing to understand, is that most of the technical
ingredients (as show in the previous post) is hardware dependent. Thus the
Android partition schemes depend on the processor / modem combination and
their firmware, and thus also the kernel, to some extent.
Some key info can be found here:
http://en.wikipedia.org/wiki/GUID_Partition_Table
http://en.wikipedia.org/wiki/Master_boot_record
http://en.wikipedia.org/wiki/Extended_Boot_Record
http://en.wikipedia.org/wiki/Host_Protected_Area
Trouble shooting Disks and Filesystems (Microsoft)
Using GPT Drives (Microsoft)​
General Android Partition Description (Qualcomm MSM8960)
The function and content of many of the partitions are not very well
described, nor easily found in one place. Here are some further details,
that apply primarily to Qualcomm Snapdragon S4/+ based Android devices.
However, Windows Phones using these these SoC's should have a very similar
partition structures, but with different names.
For details about: RPM (PBL), SBL1, SBL2, SBL3, TZ and ABOOT (APPSBL), please
see this and this thread, where they are extensively discussed and described.
GPT: See section on PIT and GPT "partitions" below.
BACKUP: This partition should contain a copy of MODEMST2. Whether it does or
not, is described in the PARAM partition.
BOOT: This is the partition that enables the phone to boot, as the name
suggests. It includes the kernel and the ramdisk. Without this partition, the
device will simply not be able to boot. Wiping this partition from recovery
should only be done if absolutely required and once done, the device must NOT
be rebooted before installing a new one, which can be done by installing a ROM
that includes a /boot partition.
CACHE: Contain the firmware update package which is downloaded from server,
and the recovery log file. Other uses include storage for frequently accessed
data and application components. Wiping the cache doesn’t effect your personal
data but simply gets rid of the existing data there, which gets automatically
rebuilt as you continue using the device.
DATA / USERDATA: This partition contains the user's data – this is where your
contacts, messages, settings and apps that you have installed go. Wiping this
partition essentially performs a factory reset on your device, restoring it to
the way it was when you first booted it, or the way it was after the last
official or custom ROM installation. When you perform a wipe data/factory
reset from recovery, it is this partition that you are wiping.
EFS: The Android EFS partition stores all your phones important, but
accessible, hardware data, such as WiFi/BlueTooth MAC's, IMEI (or ESN for a
CDMA based device) and some others.
FOTA: Is the Firmware Over The Air partition. After the update package has
been downloaded from the server it is saved into the CACHE partition. After
that the userspace application that does the download writes a special cookie
into the FOTA partition. This cookie tells the bootloaders to take the
necessary steps to boot into recovery mode
FSG: Probably stands for File System (FS) "Golden". According to Samsung
documentation, this partition is a "Golden Copy". This is partially confirmed
by RE of the PARAM partition, which indicate that this partition should contain
a copy of MODEMST1. As such it is a backup of the current EFS2 filesystem.
The creation of a FSG is not supported on flash devices and the internal (QMI)
DIAG request "EFS2_DIAG_MAKE_GOLDEN_COPY", can only be used to
create a backup one time over the life of the device. [80-V1294-11]
GROW: << unknown >>
MISC: This partition contains miscellaneous system settings in form of on/off
switches. These settings may include CID (Carrier or Region ID), USB
configuration and certain hardware settings etc. This is an important
partition and if it is corrupt or missing, several of the device’s features
will will not function normally. Not all devices have this partition.
PARAM: This is the Parameter partition which contains a number of parameters,
variables and settings of the hardware. Apparently it has an 88 byte header
structure that tell us if the MODEMST1 and MODEMST2 have been backed up to the
FSG and BACKUP partitions, respectively. Furthermore it contain all the debug
settings (DLOW/DMID/DHIG etc), the "triangle" status of whether or not you have
flashed custom ROMs and the flash count (0x3FFE00). Current boot mode in use,
and much more. The info about this partition could easily occupy a book by
itself.
PERSIST: << unknown >> The use of this partition is unknown and apparently
only exists on Qualcomm based devices.
PIT: See below.
RECOVERY: Holds the recovery boot image. When updating the system we boot
into recovery mode by using the boot image stored in this partition. It lets
you boot the device into a recovery console for performing advanced recovery
and maintenance operations on it.
SSD: "Secure Software Download" is a memory based file system (RAMFS) for
secure storage, used to download and store "who knows what" on the eMMC. It is
a referenced part in the Remote Storage RPC Client of the MSM kernel.
SYSTEM: This partition basically contains the entire operating system, other
than the kernel and the ramdisk. This includes the Android user interface as
well as all the system applications that come pre-installed on the device.
Wiping this partition will remove Android from the device without rendering it
unbootable, and you will still be able to put the phone into recovery or
bootloader mode to install a new ROM.​Older Types of Qualcomm Partitions
Code:
DBL Device Boot Loader (loads OSBL)
OSBL Operating System Boot Loader (loads AMSS)
AMSS Advanced Mobile Subscriber Software (Qualcomm CP FW)
EMMCBOOT Embedded MMC (eMMC) boot (loads EMMCBOOT)
ADSP AP (Application Processor) DSP (Qualcomm DSP FW)
Qualcomm Partition Type Cross Reference
When inspecting the partitioning of the eMMC's used by Qualcomm Snapdragon based
hardware, we see that they tend to use different partition types, for their
different partitions depending on their function. For example, for the MSM8960
SoC/PoP, we often find the following partition ID's, when inspected by
mounting the device with on linux PC. This seem to remain fairly consistent across
all their Snapdragon class/based devices.
Code:
[SIZE=2]ID Type Label oldLabels Filename(s) Description
-----------------------------------------------------------------------
05 EXT -- -- -- Extended partition
0C FAT32X MODEM FAT non-hlos.bin
45 SBL3 sbl3.mbn
46 TZ OEMSBL tz.mbn, osbl.mbn
47 RPM rpm.mbn
48 BOOT boot.img
4A MODEM_ST1 --
4B MODEM_ST2 --
4C ABOOT emmc_appsboot.mbn
4D Boot SBL1 CFG_DATA sbl1.mbn, dbl.mbn
51 SBL2 sbl2.mbn
58 FSG --
5D ??HTC
60 RECOVERY recovery.img
64 ?BOOT1 --
65 "misc" misc.img
83 EXT4 [1] // // Native Linux
-----------------------------------------------------------------------
[1] This is a standard linux partition of any EXT2/3/4 type, thus there
are many different labels used here.
[/SIZE]
Some additional partition IDs found from their CodeAurora sources in
[kernel/msm][arch/arm/mach-msm/rmt_storage_client.c]:
Code:
4A /boot/modem_fs1 RAMFS_MODEMSTORAGE_ID
4B /boot/modem_fs2 "
58 /boot/modem_fsg "
59 q6_fs1 RAMFS_MDM_STORAGE_ID
5A q6_fs2 "
5B q6_fsg "
5D ssd RAMFS_SSD_STORAGE_ID
Thus we can conclude that most of the standard (but outdated) MBR definitions
of partition type ID's are no longer valid, but used as an identifier for
various sub-system software.
From another document [80-VP120-1 Rev.K] the Secure Boot 3.0 based devices use MBR partition types as shown below:
However, this document is from 2010 and may not be up-to-date with what you have.
Check your kernel sources!
Additional eMMC types:
Code:
0x0b - FAT32
0x0c - FAT32L
0x0e - FAT16

The PIT & GPT "partitions"
<< WIP >>
Your (signed) 32 GB PIT file can be extracted with:
Code:
dd if=/dev/block/mmcblk0 of=/sdcard/out.pit bs=8 count=481 skip=2176
And the GPT with:
Code:
dd if=/dev/block/mmcblk0 of=/sdcard/gpt.bin bs=8 count=2176
That is, 0x200 bytes for the protective MBR, 0x200 bytes for the GPT header,
and 128 x 128 bytes GPT partition headers = 0x4400 bytes for the full GPT block.
The PIT file contains partition names (BOOT), the names of the files that go
in them (boot.img), the size of each partition, the partition ID (7), and any flags (RO).
The GPT contains the physical layout for the partitions in memory and reads all the info from the PIT to fill in the blanks.
<< To Be Continued... >>

eMMC/SSD A Brief Introduction
I find it useful to understand, that from the low-level point of view, an eMMC and SSD are essentially
the same. An SSD is basically a huge eMMC, but where the NAND chips are used in parallel, similar to
a Raid-0 configuration, but with an added DRAM cache buffer and a SATA interface operating at 5V.
So, apart from the more advanced microcontroller, the wear-leveling etc. works in the same way.
The most important and relevant documents are those of the JEDEC standard.
However, our device conforms to (JESD84) v4.41 and not v4.51, AFAIK.
"JEDEC: Embedded MultiMediaCard(eMMC) Product Standard..." (JESD84-A441)
"JEDEC: Embedded MultiMediaCard(eMMC) Electrical Standard" (JESD84-B451)
"eMMC v4.41 and v4.5" (JDEC presentation by Victor Tsai)
DataLight on Bad Block Management (BBM)
"Bad block management (BBM) is a critical component of NAND flash drivers to
improve the reliability and endurance of the flash. NAND is shipped from the
factory with 'mostly good' cells, meaning there are some cells that are
non-functional even when the flash is new. Blocks can also go bad over time,
causing loss of data stored in the flash memory or even a bricked device."
NAND Flash Longvity
"Flash life is limited to the number of erase cycles for which your part is
rated. By distributing write/erase cycles evenly throughout the flash, a
properly executed wear-leveling algorithm can more than double the life of
your product. FlashFX Pro uses both static and dynamic wear-leveling to
achieve 133% longer life than MSFlash, the flash manager found in Windows CE
and WindowsMobile. The charts below show a test comparison between a FlashFX
Pro disk and one using MSFlash. Flash disks read and write data in a grid of
erase blocks. Once a block reaches its maximum rated erase count, the flash is
at risk of lost or corrupted data, becoming a "broken" device. For this test,
we recorded the erase counts by block and applied a heat map ranging from
white (lowest use) to green (medium use), to black (highest use). As the
heatmap shows, the MSFlash disk contains many blocks that are well over their
rated lifespan, while other blocks are barely used. The FlashFX Pro disk shows
what happens when proper wear-leveling algorithms are employed. All blocks are
evenly worn and within a tight range of erase counts, making your handheld
last more than twice as long, and protecting the reputation for durability
you've worked hard for."
Read-Write Operation [from Linaro site]
"Flash parts are commonly divided into partitions, which allows multiple
operations to occur simultaneously (erasing one partition while reading from
another). Partitions are further divided into blocks (commonly 64KB or 128KB
in size). The only Write operation permitted on a flash memory device is to
change a bit from a one to a zero. If the reverse operation is needed, then
the block must be erased (to reset all bits to the one state). NOR flash
memory can typically be programmed a byte at a time, whereas NAND flash memory
must be programmed in multi-byte bursts (typically, 512 bytes)"
Basic Wear Leveling
MLC devices typically support fewer than 10,000 program/erase (PE) cycles. So
if you erased and reprogrammed a block every minute, you would exceed the 10K
cycling limit in just 7 days!
Code:
60 × 24 × 7 = 10,080 (cycles/block)
So rather than cycling (re-programming) the same block, wear-leveling moves
data around to other blocks so that blocks are more evenly cycled.
Example: An 8GB eMMC MLC-based device
This device has 4096 independent blocks. So if we took the previous example
and distributed the cycles over all 4,096 blocks, each block would have been
programmed fewer than three times. (10,000/4096 = 2.44 [cycles/block/per
week]) (versus the 10,800 cycles when you cycle the same block)
So if we cycle some block once every minute, we have:
Code:
1 [cycles/min] × 60 [min/hr] × 24 [hr/day] × 365 [day/year] = 525,600 [cycles/year]
But with the new block cycling restraint (mechanism), we have that each data block:
Code:
Max data block-cycles =
4096 [blocks] × 10,000 [cycles/block] = 40,960,000 [cycles]
So that the total time to use up all cycles is:
Code:
40,960,000 [cycles] / 525,600 [cycles/year] = 77.9 [years]
So if we have perfect wear leveling on a 4,096 block device, we could could
erase and program a block every minute, every day, for 77 years.
[Examples taken from Cooke WinHEC presentation.]
Mooore
However, this is far from what can be expected. For example, the guaranteed
cycle count may apply only to block zero (as is the case with TSOP NAND
devices). And accrding to WikiPedia, "MLC NAND flash used to be rated at about
5–10K cycles (Samsung K9G8G08U0M) but is now typically 1–3K cycles"
According to THIS very informative page, "34nm MLC NAND is good for 5,000
write cycles, while 25nm MLC NAND lasts for only 3,000 write cycles."
Then there is the possibility of "read disturb", The method used to read NAND
flash memory can cause nearby cells to change over time if the surrounding
cells of the block are not rewritten. This is generally on the order of ~100K
reads without a rewrite of those cells. The error does not appear when reading
the original cell, but shows up when finally reading one of the surrounding
cells.
Then there is Write Amplification (WA): [for SSD but also applicable to us]
"An undesirable phenomenon associated with flash memory and solid-state drives
(SSDs) where the actual amount of physical information written is a multiple
of the logical amount intended to be written. Because flash memory must be
erased before it can be rewritten, the process to perform these operations
results in moving (or rewriting) user data and metadata more than once. This
multiplying effect increases the number of writes required over the life of
the SSD which shortens the time it can reliably operate. The increased writes
also consume bandwidth to the flash memory which mainly reduces random write
performance to the SSD."
Write amplification is typically measured by the ratio of writes coming from
the host system and the writes going to the flash memory. A lower write
amplification is more desirable, as it corresponds to a reduced number of P/E
cycles on the flash memory and thereby to an increased NAND life,
Then there is Over-provisioning (OP), which is the difference between the
physical capacity of the flash memory and the logical capacity presented through
the operating system as available for the user. During the garbage collection,
wear-leveling, and bad block mapping operations on the SSD, the additional space
from over-provisioning helps lower the write amplification when the controller
writes to the flash memory.
Vocabulary:
MLC = Multi Level Cell: NAND stores four states per memory cell and enables two bits programmed/read per memory cell
SLC = Single Level Cell: NAND stores two states per memory cell and enables one bit programmed/read per memory cellenables cell
What does all this mean?
Well, it means a lot! Here are just a few things:
We have to use host-based disk encryption to ensure we don't leave private data on eMMC/SSD.
(Re-formatting and erasure just doesn't work, as ensured by internal wear-leveling, unless
secure erase is enabled permanently. But this is not yet supported in older JEDEC!)
We should always choose the largest available memory device to maximize life.
We should have the source code and eMMC specifications to verify device specifications
and the proper handling and quick resolution of future bugs.
Cheers!

Samsung Galaxy Note (SHV-E160L)
Thanks to the excellent work of darkspr1te in this thread and post,
we have both full partition-table info and bootloader-level recovery.
Code:
[SIZE=2]General Device Name: Samsung Galaxy Note LTE
[SIZE=2]Manufacturer Product Name: SHV-E160L
[/SIZE]Processor: Qualcomm Snapdragon 4S+ (MSM8960) ?
AOS version: ICS 4.0.4 ?
Radio FW version: <na>
System FW version: <na>
Radio Service: CDMA/LTE ?
Network / Carrier: LGU+
Country: Korea
Similar Device: Samsung Galaxy Note SCH-I717 (Verizon)
[/SIZE]
Then the following partition table was constructed from fdisk output and various other info:
Code:
[SIZE=2]Device Boot Start End Blocks FS_id FS-type Name ImageName
-----------------------------------------------------------------------------------------------------------------------
/dev/sdc1 1 204800 102400 c W95 FAT32 (LBA) SMD_HDR smd_header.mbn
/dev/sdc2 * 204801 205800 500 4d QNX4.x SBL1 sbl1.mbn
/dev/sdc3 205801 208800 1500 51 OnTrackDM6Aux1 SBL2 sbl2.mbn
/dev/sdc4 208801 208801 0 5 Extended EXT ebr.mbn
/dev/sdc5 212992 213991 500 47 Unknown RPM rpm.mbn
/dev/sdc6 221184 225279 2048 45 Unknown SBL3 sbl3.mbn
/dev/sdc7 229376 234375 2500 4c Unknown ABOOT aboot.mbn
/dev/sdc8 237568 258047 10240 48 Unknown BOOT boot.img
/dev/sdc9 262144 263143 500 46 Unknown TZ tz.mbn
/dev/sdc10 270336 271335 500 5d Unknown SSD
/dev/sdc11 278528 279527 500 91 Unknown PIT Shv-e160l.pit
/dev/sdc12 286720 307199 10240 93 Amoeba PARAM param.lfs
/dev/sdc13 311296 511999 100352 c W95 FAT32(LBA) MODEM amms.bin
/dev/sdc14 516096 522239 3072 4a Unknown MSM_ST1 efs.img
/dev/sdc15 524288 530431 3072 4b Unknown MSM_ST2
/dev/sdc16 532480 538623 3072 58 Unknown MSM_FSG
/dev/sdc17 540672 741375 100352 8f Unknown MDM mdm.bin
/dev/sdc18 745472 751615 3072 59 Unknown M9K_EFS1 efsclear1.bin
/dev/sdc19 753664 759807 3072 5a Unknown M9K_EFS2 efsclear2.bin
/dev/sdc20 761856 767999 3072 5b Unknown M9K_FSG
/dev/sdc21 770048 790527 10240 ab Darwin boot DEVENC enc.img.ext4
/dev/sdc22 794624 815103 10240 60 Unknown RECOVERY recovery.img
/dev/sdc23 819200 839679 10240 94 Amoeba BBT FOTA
/dev/sdc24 843776 3911679 1533952 a5 FreeBSD SYSTEM system.img.ext4
/dev/sdc25 3915776 8114175 2099200 a6 OpenBSD USERDATA userdata.img.ext4
/dev/sdc26 8118272 8736767 309248 a8 Darwin UFS CACHE cache.img.ext4
/dev/sdc27 8740864 9005055 132096 a9 NetBSD TOMBSTONES tomb.img.ext4
/dev/sdc28 9011200 10035199 512000 95 Unknown HIDDEN hidden.img.ext4
/dev/sdc29 10035200 30777343 10371072 90 Unknown UMS ums.rfs
[/SIZE]
Note: This table has not yet been fully verified.

HTC One X LTE (US AT&T, Verizon, et.al.)
Most of the following is based on the information given by "Its Reh" in this post.
Code:
General Device Name: HTC One X LTE (US) [aka "HOXL"]
Manufacturer Product Name: HTC One X LTE
Processor: Qualcomm Snapdragon 4S+ (MSM8960)
AOS version: ICS 4.0.4 ?
Radio FW version: <na>
System FW version: <na>
Radio Service: CDMA/LTE ?
Network / Carrier: AT&T, Verizon, + others
Country: US
Similar Device: unknown, possibly HTC One S (US)
But much information have been collected from many other sources, as well. Why all this difficulty?
Because of the many OEM custom modifications of the filesystems used in the
HTC devices, many of the standard partition commands fails to provide complete
and correct information. Thus a combination of the various command output in
addition to other external info, can help us construct a more complete picture
of the (US) HOXL partition table.
It is very important to know that the US HTC One X LTE (HOXL) is very
different from the Chinese HTC One X and the One XL, in the common idiotic
spirit of HTC using the same name for completely different hardware. (There
are probably even more devices in other countries.)
Since the US HOXL is using an older version of the bootloader build-tool we
get the most reliable partition information from the fdisk command. We can
draw this conclusion, based on three observations. (1) Because fdisk complain
that the first 4 (primary) partitions "doesn't end on a cylinder boundary", is
a typical indication of using sparse disk images for partitions p1-4, and the
fact that (2) this partition scheme is still suffering from the HTC
partitioning-loop bug. Which mean you can ignore all partitions >36. Finally
(3), they seem to use it to format a native GPT based (?) eMMC device, using
an MBR-like structure and related tools. This causes gdisk to fail recognizing
the MBR style FS-types and erroneously marks them as a "Linux filesystem"
(8300).
We can also use some of the fastboot commands to show the nature of the eMMC
primary partitions. The command format from (windows) CMD prompt is:
fastboot oem <command>
Code:
[SIZE=2]Command Description
-----------------------------------
list_partition_emmc --> List the primary eMMC partitions (index, type, start, num)
check_emmc_mid --> Check eMMC Manufacterer ID
get_wp_info_emmc --> Show eMMC write protection group size (in blocks?)
get_sector_info_emmc --> Show available eMMC Sectors (free or start?)[/SIZE]
For example, for our device we have:
Code:
[SIZE=2]
C:\adb>fastboot oem get_wp_info_emmc
INFO eMMC write protection group size = 65536[/SIZE] [SIZE=2]
C:\adb>fastboot oem list_partition_emmc[/SIZE] [SIZE=2]
---------------------------------------------------------
(bootloader) index, type, start, num
---------------------------------------------------------
(bootloader) 0, 4D, 1, 100
(bootloader) 1, 51, 101, 200
(bootloader) 2, 5D, 301, 3FCDE
(bootloader) 3, 5, 3FFDF, 1CDF020
---------------------------------------------------------[/SIZE]
The partition table:
Code:
[SIZE=2]# [B]busybox fdisk -l dev/block/mmcblk0[/B]
[output slightly edited, nothing removed]
-------------------------------------------------------------------------------
Warning: deleting partitions after 60
Disk dev/block/mmcblk0: 15.6 GB, 15634268160 bytes
1 heads, 16 sectors/track, 1908480 cylinders
Units = cylinders of 16 * 512 = 8192 bytes
p# Boot Start End Blocks Id System QCname Image
--------------------------------------------------------------------------------------
1 * E! 1 17 128 4d Unknown SBL1 sbl1-x.img
2 E! 17 49 256 51 Unknown SBL2 sbl2.img
3 E! 49 16382 130671 5d Unknown
4 E! 16382 1908480 15136784 5 Extended EXT --
5 16383 16384 16 5a Unknown
6 16385 16417 256 73 Unknown
7 16417 18364 15577+ 5b Unknown
8 18364 18396 256 5c Unknown
9 18396 18524 1024 45 Unknown SBL3 sbl3.img
10 18524 18556 256 47 Unknown
11 18556 18812 2048 46 Unknown TZ tz.img
12 18812 18940 1024 4c Unknown HBOOT hboot_8960_X_Y_Z.img
13 18940 18944 32 0 Empty
14 18944 19712 6144 34 Unknown SPLASH splash1.nb0
15 19712 19840 1024 36 Unknown
16 19840 19968 1024 0 Empty "dsps"
17 19968 25728 46080 77 Unknown radio.img
18 25729 27008 10240 7a Unknown adsp.img
19 27009 27649 5120 0 Empty wcnss.img
20 27649 28672 8190+ 74 Unknown "radio_config"
21 28673 30720 16384 48 Unknown "boot"
22 30721 32768 16383+ 71 Unknown recovery_signed.img
23 32769 32896 1022+ 76 Unknown "misc"
24 32896 33408 4096 4a Unknown MODEMST1 "modem_st1"
25 33409 33920 4096 4b Unknown MODEMST2 "modem_st2"
26 33921 36481 20480 19 Unknown "devlog"
27 36481 36481 4 0 Empty
28 36481 36513 256 23 Unknown "pdata"
29 36513 36515 16 0 Empty
30 36515 36675 1280+ 0 Empty "local"
31 36675 36683 64 0 Empty "extra"
32 36684 49152 99752 0 Empty
33 49153 262144 1703935 83 Linux SYSTEM "system"
34 262145 294912 262143+ 83 Linux CACHE "cache"
35 294913 606208 2490367+ 83 Linux "userdata"
36 606209 1908480 10418176 c FAT32(LBA) "fat"
...
-------------------------------------------------------------------------------
Where:
"p#" = dev/block/mmcblk0p#
"E!" = Partition X does not end on cylinder boundary.
"X" = HBOOT version
"Y" = HBOOT date
"Z" = HBOOT "signed" + build
-------------------------------------------------------------------------------
[/SIZE]
This is still to be verified and considered WIP...

Samsung LED TV ES-5700 (5/6 Series) (EU)
Partition tables are not only reserved to PCs and Smartphones,
here's a great example of a modern TV set, that runs on an ARM
processor and a Samsung modified Linux based OS, called VDLinux.
Most of these devices also run applications that can be downloaded,
and hacked...
Code:
Model: [COLOR=Navy][B]UE40ES5700[/B][/COLOR]SXXH
Panel Code: BN41-01812A
Panel Type: 40A6AF0E
SW: T-MST10PDEUC-[B]1027.1[/B]
Hub FW: T-INFOLINK2012-1008
Processor: MStar X10P, 900 MHz (ARM core)
Linux base: 2.6.35.11
VDLinux Kernel: 0064
VDLinux Patch: 0716
Code branch: DEU_BRANCH
The partition table layout is auto generated in the partition.txt file
(accompanied in the Firmware update image.)
Here is an edited (for readability) version:
Code:
[SIZE=2]
pID device_name size image_name type upgrade partition_map mount_path block_size
------------------------------------------------------------------------------------------------------------------
0 /dev/mmcblk0p0 524288 onboot.bin MLC NONE BOOTLOADER0 -- 1048576
1 /dev/mmcblk0p1 524288 u-boot.bin MLC NONE BOOTLOADER1 -- 1048576
2 /dev/mmcblk0p2 6291456 uImage MLC USER KERNEL0 -- 1048576
3 /dev/mmcblk0p3 4718592 rootfs.img MLC USER RFS0 -- 1048576
4 /dev/mmcblk0p4 0 ex_partition MLC NONE -- -- 1048576
5 /dev/mmcblk0p5 6291456 uImage MLC USER KERNEL1 -- 1048576
6 /dev/mmcblk0p6 4718592 rootfs.img MLC USER RFS1 -- 1048576
7 /dev/mmcblk0p7 8192 sign0.bin MLC NONE SECUREMAC0 -- 1048576
8 /dev/mmcblk0p8 8192 sign1.bin MLC NONE SECUREMAC1 -- 1048576
9 /dev/mmcblk0p9 8192 VD-HEADER MLC NONE -- -- 1048576
10 /dev/mmcblk0p10 3145728 -- MLC NONE -- mtd_drmregion_a 1048576
11 /dev/mmcblk0p11 3145728 -- MLC NONE -- mtd_drmregion_b 1048576
12 /dev/mmcblk0p12 73400320 -- MLC NONE -- mtd_rwarea 1048576
13 /dev/mmcblk0p13 125829120 exe.img MLC USER EXE0 mtd_exe 1048576
14 /dev/mmcblk0p14 125829120 exe.img MLC USER EXE1 mtd_exe 1048576
15 /dev/mmcblk0p15 83886080 appext.img MLC USER APP_DATA0 mtd_appext 1048576
16 /dev/mmcblk0p16 83886080 appext.img MLC USER APP_DATA1 mtd_appext 1048576
17 /dev/mmcblk0p17 262144000 rocommon.img MLC OTHER CONTENT0 mtd_rocommon 1048576
18 /dev/mmcblk0p18 104857600 emanual.img MLC OTHER CONTENT1 mtd_emanual 1048576
19 /dev/mmcblk0p19 52428800 -- MLC NONE -- mtd_contents 1048576
20 /dev/mmcblk0p20 10485760 -- MLC NONE -- mtd_swu 1048576
21 /dev/mmcblk0p21 1049075712 rwcommon.img MLC NONE -- mtd_rwcommon 1048576
------------------------------------------------------------------------------------------------------------------
[/SIZE]
To print partitions using debug service interface:
Code:
[SIZE=2][TOP Debug Menu]
--> (2) "Platform Print Setting" --> [Platform Debug List]
--> (1) "Basic Platform" --> [BP Debug Module]
--> (92) "System Debug" --> [System Debug Menu]
--> (4) "Check Total File System"
[/SIZE]
Then you'll get this:
Code:
[SIZE=2]-------------------------------------------------------------------
File system Type Total Used Avail Use% Mounted on
-------------------------------------------------------------------
rootfs rootfs 4208K 4208K 0K 100.00% /
/dev/root squashfs 4208K 4208K 0K 100.00% /
proc proc 0K 0K 0K 0.00% /proc
sysfs sysfs 0K 0K 0K 0.00% /sys
tmpfs tmpfs 248M 8K 248M 0.00% /dev/shm
tmpfs tmpfs 40960K 12K 40948K 0.03% /dtv
tmpfs tmpfs 36864K 8K 36856K 0.02% /tmp
tmpfs tmpfs 12288K 0K 12288K 0.00% /dsm
tmpfs tmpfs 30720K 0K 30720K 0.00% /core
/dev/mmcblk0p13 squashfs 96256K 96256K 0K 100.00% /mtd_exe
none cgroup 0K 0K 0K 0.00% /sys/fs/cgroup
/dev/mmcblk0p12 rfs 70824K 4548K 66276K 6.42% /mtd_rwarea
/dev/mmcblk0p10 rfs 2872K 170K 2702K 5.92% /mtd_drmregion_a
/dev/mmcblk0p11 rfs 2872K 170K 2702K 5.92% /mtd_drmregion_b
/dev/mmcblk0p15 squashfs 45568K 45568K 0K 100.00% /mtd_appext
/dev/mmcblk0p17 squashfs 110M 110M 0K 100.00% /mtd_rocommon
/dev/mmcblk0p19 rfs 49992K 32K 49960K 0.06% /mtd_contents
/dev/mmcblk0p21 rfs 927M 313M 614M 33.80% /mtd_rwcommon
/dev/mmcblk0p18 rfs 98M 84096K 17024K 83.16% /mtd_emanual
/dev/mmcblk0p20 rfs 9896K 4K 9892K 0.04% /mtd_swu
none usbfs 0K 0K 0K 0.00% /proc/bus/usb
-------------------------------------------------------------------
Unit : B=1024^0, K=1024^1, M=1024^2, G=1024^3, T=1024^4
[/SIZE]
[See SamyGo for all the juicy details of how to hack your Samsung TV!]

Samsung Galaxy Camera (EK-GC100)
Preliminary partition table from this post.
Code:
[SIZE=2]
p# ID Att FOTA Size Count Name Filename
-------------------------------------------------------------------------------
#0 80 2 1 0 1734 BOOTLOADER sboot.bin
#1 81 5 1 1734 312 TZSW tz.img
#2 70 5 1 34 16 PIT camera.pit
#3 71 5 1 50 2048 MD5HDR md5.img
#4 1 5 1 8192 8192 BOTA0 -
#5 2 5 1 16384 8192 BOTA1 -
#6 3 5 5 24576 40960 EFS efs.img
#7 4 5 1 65536 16384 PARAM param.bin
#8 5 5 1 81920 16384 BOOT boot.img
#9 6 5 1 98304 16384 RECOVERY recovery.img
#10 7 5 1 114688 65536 RADIO modem.bin
#11 8 5 5 180224 2097152 CACHE cache.img
#12 9 5 5 2277376 3145728 SYSTEM system.img
#13 10 5 5 5423104 737280 HIDDEN hidden.img
#14 11 5 1 6160384 16384 OTA -
#15 12 5 5 6176768 409600 TDATA -
#16 13 5 5 6586368 0 USERDATA userdata.img
-------------------------------------------------------------------------------
ID: partition identifier
Att: "2" = STL Read-Only, "5" = Read/Write
FOTA: Update (1 = ??, 5 = ??)
Size: Block size ?
Count: Block Count ?
Name: Samsung partition name
-------------------------------------------------------------------------------
[/SIZE]
The p# is not necessarily that found on your device. This is preliminary info, not verified or checked.

this is partition table of Galaxy Wonder GT-i8150 (ancora)
Code:
Number Start (sector) End (sector) Size Code Name
1 1 212991 104.0 MiB 0700 Microsoft basic data
2 212992 213991 500.0 KiB 8300 Linux filesystem
3 213992 221183 3.5 MiB 8300 Linux filesystem
5 229376 239615 5.0 MiB 8300 Linux filesystem
6 245760 285759 19.5 MiB 8300 Linux filesystem
7 286720 292863 3.0 MiB 8300 Linux filesystem
8 294912 306175 5.5 MiB 8300 Linux filesystem
9 311296 324271 6.3 MiB 8300 Linux filesystem
10 327680 333823 3.0 MiB 8300 Linux filesystem
11 335872 342015 3.0 MiB 8300 Linux filesystem
12 344064 360447 8.0 MiB 8300 Linux filesystem
13 360448 375807 7.5 MiB 8300 Linux filesystem
14 376832 387071 5.0 MiB 8300 Linux filesystem
15 393216 1488895 535.0 MiB 8300 Linux filesystem
16 1490944 1613823 60.0 MiB 8300 Linux filesystem
17 1613824 3887103 1.1 GiB 8300 Linux filesystem
18 3891200 3993599 50.0 MiB 8300 Linux filesystem
19 3997696 3998695 500.0 KiB 8300 Linux filesystem
20 4005888 4013079 3.5 MiB 8300 Linux filesystem
21 4014080 4024319 5.0 MiB 8300 Linux filesystem
22 4030464 4070463 19.5 MiB 8300 Linux filesystem
23 4071424 4081663 5.0 MiB 8300 Linux filesystem
24 4087808 4101807 6.8 MiB 8300 Linux filesystem
25 4104192 4114431 5.0 MiB 8300 Linux filesystem
26 4120576 4130815 5.0 MiB 8300 Linux filesystem
27 4136960 4147199 5.0 MiB 8300 Linux filesystem
28 4153344 7733247 1.7 GiB 8300 Linux filesystem
may i ask? why is it named Linux filesystem not EFS or etc?

hadidjapri said:
may i ask? why is it named Linux filesystem not EFS or etc?
Click to expand...
Click to collapse
That is the partition type, as determined by the ID 83 or 8300. The actual filesystem in use on those partitions is not shown, as well as the names or descriptions such as system, data, boot, recovery, etc...
Reread the op, 2nd and 3rd posts for more ways to find additional info, like:
Code:
cat /system/proc/mounts
-SLS-

For the Posted SHV-E160L based MSM8660 device, there is a hexdump of the original parition0.bin
Code:
[email protected]:~/Desktop/Samsung/brixfix/partition_load_pt$ hexdump shv-e160l-partition0.bin
0000000 0000 0000 0000 0000 0000 0000 0000 0000
*
00001c0 0000 0092 0000 0001 0000 2000 0003 0080
00001d0 0000 004d 0000 2001 0003 03e8 0000 0000
00001e0 0000 0051 0000 23e9 0003 0bb8 0000 0000
00001f0 0000 0005 0000 2fa1 0003 705f 01d2 aa55
0000200 0000 0000 0000 0000 0000 0000 0000 0000
*
00003c0 0000 0047 0000 105f 0000 03e8 0000 0000
00003d0 0000 0005 0000 0001 0000 0001 0000 0000
00003e0 0000 0000 0000 0000 0000 0000 0000 0000
00003f0 0000 0000 0000 0000 0000 0000 0000 aa55
0000400 0000 0000 0000 0000 0000 0000 0000 0000
*
00005c0 0000 0045 0000 305e 0000 1000 0000 0000
00005d0 0000 0005 0000 0002 0000 0001 0000 0000
00005e0 0000 0000 0000 0000 0000 0000 0000 0000
00005f0 0000 0000 0000 0000 0000 0000 0000 aa55
0000600 0000 0000 0000 0000 0000 0000 0000 0000
*
00007c0 0000 004c 0000 505d 0000 1388 0000 0000
00007d0 0000 0005 0000 0003 0000 0001 0000 0000
00007e0 0000 0000 0000 0000 0000 0000 0000 0000
00007f0 0000 0000 0000 0000 0000 0000 0000 aa55
0000800 0000 0000 0000 0000 0000 0000 0000 0000
*
00009c0 0000 0048 0000 705c 0000 5000 0000 0000
00009d0 0000 0005 0000 0004 0000 0001 0000 0000
00009e0 0000 0000 0000 0000 0000 0000 0000 0000
00009f0 0000 0000 0000 0000 0000 0000 0000 aa55
0000a00 0000 0000 0000 0000 0000 0000 0000 0000
*
0000bc0 0000 0046 0000 d05b 0000 03e8 0000 0000
0000bd0 0000 0005 0000 0005 0000 0001 0000 0000
0000be0 0000 0000 0000 0000 0000 0000 0000 0000
0000bf0 0000 0000 0000 0000 0000 0000 0000 aa55
0000c00 0000 0000 0000 0000 0000 0000 0000 0000
*
0000dc0 0000 005d 0000 f05a 0000 03e8 0000 0000
0000dd0 0000 0005 0000 0006 0000 0001 0000 0000
0000de0 0000 0000 0000 0000 0000 0000 0000 0000
0000df0 0000 0000 0000 0000 0000 0000 0000 aa55
0000e00 0000 0000 0000 0000 0000 0000 0000 0000
*
0000fc0 0000 0091 0000 1059 0001 03e8 0000 0000
0000fd0 0000 0005 0000 0007 0000 0001 0000 0000
0000fe0 0000 0000 0000 0000 0000 0000 0000 0000
0000ff0 0000 0000 0000 0000 0000 0000 0000 aa55
0001000 0000 0000 0000 0000 0000 0000 0000 0000
*
00011c0 0000 0093 0000 3058 0001 5000 0000 0000
00011d0 0000 0005 0000 0008 0000 0001 0000 0000
00011e0 0000 0000 0000 0000 0000 0000 0000 0000
00011f0 0000 0000 0000 0000 0000 0000 0000 aa55
0001200 0000 0000 0000 0000 0000 0000 0000 0000
*
00013c0 0000 000c 0000 9057 0001 1000 0003 0000
00013d0 0000 0005 0000 0009 0000 0001 0000 0000
00013e0 0000 0000 0000 0000 0000 0000 0000 0000
00013f0 0000 0000 0000 0000 0000 0000 0000 aa55
0001400 0000 0000 0000 0000 0000 0000 0000 0000
*
00015c0 0000 004a 0000 b056 0004 1800 0000 0000
00015d0 0000 0005 0000 000a 0000 0001 0000 0000
00015e0 0000 0000 0000 0000 0000 0000 0000 0000
00015f0 0000 0000 0000 0000 0000 0000 0000 aa55
0001600 0000 0000 0000 0000 0000 0000 0000 0000
*
00017c0 0000 004b 0000 d055 0004 1800 0000 0000
00017d0 0000 0005 0000 000b 0000 0001 0000 0000
00017e0 0000 0000 0000 0000 0000 0000 0000 0000
00017f0 0000 0000 0000 0000 0000 0000 0000 aa55
0001800 0000 0000 0000 0000 0000 0000 0000 0000
*
00019c0 0000 0058 0000 f054 0004 1800 0000 0000
00019d0 0000 0005 0000 000c 0000 0001 0000 0000
00019e0 0000 0000 0000 0000 0000 0000 0000 0000
00019f0 0000 0000 0000 0000 0000 0000 0000 aa55
0001a00 0000 0000 0000 0000 0000 0000 0000 0000
*
0001bc0 0000 008f 0000 1053 0005 1000 0003 0000
0001bd0 0000 0005 0000 000d 0000 0001 0000 0000
0001be0 0000 0000 0000 0000 0000 0000 0000 0000
0001bf0 0000 0000 0000 0000 0000 0000 0000 aa55
0001c00 0000 0000 0000 0000 0000 0000 0000 0000
*
0001dc0 0000 0059 0000 3052 0008 1800 0000 0000
0001dd0 0000 0005 0000 000e 0000 0001 0000 0000
0001de0 0000 0000 0000 0000 0000 0000 0000 0000
0001df0 0000 0000 0000 0000 0000 0000 0000 aa55
0001e00 0000 0000 0000 0000 0000 0000 0000 0000
*
0001fc0 0000 005a 0000 5051 0008 1800 0000 0000
0001fd0 0000 0005 0000 000f 0000 0001 0000 0000
0001fe0 0000 0000 0000 0000 0000 0000 0000 0000
0001ff0 0000 0000 0000 0000 0000 0000 0000 aa55
0002000 0000 0000 0000 0000 0000 0000 0000 0000
*
00021c0 0000 005b 0000 7050 0008 1800 0000 0000
00021d0 0000 0005 0000 0010 0000 0001 0000 0000
00021e0 0000 0000 0000 0000 0000 0000 0000 0000
00021f0 0000 0000 0000 0000 0000 0000 0000 aa55
0002200 0000 0000 0000 0000 0000 0000 0000 0000
*
00023c0 0000 00ab 0000 904f 0008 5000 0000 0000
00023d0 0000 0005 0000 0011 0000 0001 0000 0000
00023e0 0000 0000 0000 0000 0000 0000 0000 0000
00023f0 0000 0000 0000 0000 0000 0000 0000 aa55
0002400 0000 0000 0000 0000 0000 0000 0000 0000
*
00025c0 0000 0060 0000 f04e 0008 5000 0000 0000
00025d0 0000 0005 0000 0012 0000 0001 0000 0000
00025e0 0000 0000 0000 0000 0000 0000 0000 0000
00025f0 0000 0000 0000 0000 0000 0000 0000 aa55
0002600 0000 0000 0000 0000 0000 0000 0000 0000
*
00027c0 0000 0094 0000 504d 0009 5000 0000 0000
00027d0 0000 0005 0000 0013 0000 0001 0000 0000
00027e0 0000 0000 0000 0000 0000 0000 0000 0000
00027f0 0000 0000 0000 0000 0000 0000 0000 aa55
0002800 0000 0000 0000 0000 0000 0000 0000 0000
*
00029c0 0000 00a5 0000 b04c 0009 d000 002e 0000
00029d0 0000 0005 0000 0014 0000 0001 0000 0000
00029e0 0000 0000 0000 0000 0000 0000 0000 0000
00029f0 0000 0000 0000 0000 0000 0000 0000 aa55
0002a00 0000 0000 0000 0000 0000 0000 0000 0000
*
0002bc0 0000 00a6 0000 904b 0038 1000 0040 0000
0002bd0 0000 0005 0000 0015 0000 0001 0000 0000
0002be0 0000 0000 0000 0000 0000 0000 0000 0000
0002bf0 0000 0000 0000 0000 0000 0000 0000 aa55
0002c00 0000 0000 0000 0000 0000 0000 0000 0000
*
0002dc0 0000 00a8 0000 b04a 0078 7000 0009 0000
0002dd0 0000 0005 0000 0016 0000 0001 0000 0000
0002de0 0000 0000 0000 0000 0000 0000 0000 0000
0002df0 0000 0000 0000 0000 0000 0000 0000 aa55
0002e00 0000 0000 0000 0000 0000 0000 0000 0000
*
0002fc0 0000 00a9 0000 3049 0082 0800 0004 0000
0002fd0 0000 0005 0000 0017 0000 0001 0000 0000
0002fe0 0000 0000 0000 0000 0000 0000 0000 0000
0002ff0 0000 0000 0000 0000 0000 0000 0000 aa55
0003000 0000 0000 0000 0000 0000 0000 0000 0000
*
00031c0 0000 0095 0000 5048 0086 a000 000f 0000
00031d0 0000 0005 0000 0018 0000 0001 0000 0000
00031e0 0000 0000 0000 0000 0000 0000 0000 0000
00031f0 0000 0000 0000 0000 0000 0000 0000 aa55
0003200 0000 0000 0000 0000 0000 0000 0000 0000
*
00033c0 0000 0090 0000 f047 0095 [COLOR="red"][B]8000 013c[/B][/COLOR] 0000
00033d0 0000 0000 0000 0000 0000 0000 0000 0000
*
00033f0 0000 0000 0000 0000 0000 0000 0000 aa55
0003400
And this is the output from the Parsebinarypartitionfile.pl when run on the same file.
Code:
[email protected]:~/Desktop/Samsung/brixfix/partition_load_pt$ perl perl/ParseBinaryPartitionFile.pl shv-e160l-partition0.bin
----------------------------------------------------------
Parsing shv-e160l-partition0.bin ------------------
1 0x00 0x92 0x00000001 (000001) 0x00032000 (204800) (100.00MB)
2 0x80 0x4D 0x00032001 (204801) 0x000003E8 (001000) (0.49MB)
3 0x00 0x51 0x000323E9 (205801) 0x00000BB8 (003000) (1.46MB)
0x00 0x05 0x00032FA1 (208801) 0x01D2705F (30568543) (14926.05MB) - EXT PARTITION (Type=0x05) - not counted as a partition
$ExtendedPartitionBeginsAt=208801
4 0x00 0x47 0x0000105F (004191) 0x000003E8 (001000) (0.49MB) 4MB boundary #26 (sector 212992)
0x00 0x05 0x00000001 (000001) 0x00000001 (000001)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
5 0x00 0x45 0x0000305E (012382) 0x00001000 (004096) (2.00MB) 4MB boundary #27 (sector 221184)
0x00 0x05 0x00000002 (000002) 0x00000001 (000001)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
6 0x00 0x4C 0x0000505D (020573) 0x00001388 (005000) (2.44MB) 4MB boundary #28 (sector 229376)
0x00 0x05 0x00000003 (000003) 0x00000001 (000001)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
7 0x00 0x48 0x0000705C (028764) 0x00005000 (020480) (10.00MB) 4MB boundary #29 (sector 237568)
0x00 0x05 0x00000004 (000004) 0x00000001 (000001)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
8 0x00 0x46 0x0000D05B (053339) 0x000003E8 (001000) (0.49MB) 4MB boundary #32 (sector 262144)
0x00 0x05 0x00000005 (000005) 0x00000001 (000001)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
9 0x00 0x5D 0x0000F05A (061530) 0x000003E8 (001000) (0.49MB) 4MB boundary #33 (sector 270336)
0x00 0x05 0x00000006 (000006) 0x00000001 (000001)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
10 0x00 0x91 0x00011059 (069721) 0x000003E8 (001000) (0.49MB) 4MB boundary #34 (sector 278528)
0x00 0x05 0x00000007 (000007) 0x00000001 (000001)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
11 0x00 0x93 0x00013058 (077912) 0x00005000 (020480) (10.00MB) 4MB boundary #35 (sector 286720)
0x00 0x05 0x00000008 (000008) 0x00000001 (000001)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
12 0x00 0x0C 0x00019057 (102487) 0x00031000 (200704) (98.00MB) 4MB boundary #38 (sector 311296)
0x00 0x05 0x00000009 (000009) 0x00000001 (000001)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
13 0x00 0x4A 0x0004B056 (307286) 0x00001800 (006144) (3.00MB) 4MB boundary #63 (sector 516096)
0x00 0x05 0x0000000A (000010) 0x00000001 (000001)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
14 0x00 0x4B 0x0004D055 (315477) 0x00001800 (006144) (3.00MB) 4MB boundary #64 (sector 524288)
0x00 0x05 0x0000000B (000011) 0x00000001 (000001)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
15 0x00 0x58 0x0004F054 (323668) 0x00001800 (006144) (3.00MB) 4MB boundary #65 (sector 532480)
0x00 0x05 0x0000000C (000012) 0x00000001 (000001)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
16 0x00 0x8F 0x00051053 (331859) 0x00031000 (200704) (98.00MB) 4MB boundary #66 (sector 540672)
0x00 0x05 0x0000000D (000013) 0x00000001 (000001)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
17 0x00 0x59 0x00083052 (536658) 0x00001800 (006144) (3.00MB) 4MB boundary #91 (sector 745472)
0x00 0x05 0x0000000E (000014) 0x00000001 (000001)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
18 0x00 0x5A 0x00085051 (544849) 0x00001800 (006144) (3.00MB) 4MB boundary #92 (sector 753664)
0x00 0x05 0x0000000F (000015) 0x00000001 (000001)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
19 0x00 0x5B 0x00087050 (553040) 0x00001800 (006144) (3.00MB) 4MB boundary #93 (sector 761856)
0x00 0x05 0x00000010 (000016) 0x00000001 (000001)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
20 0x00 0xAB 0x0008904F (561231) 0x00005000 (020480) (10.00MB) 4MB boundary #94 (sector 770048)
0x00 0x05 0x00000011 (000017) 0x00000001 (000001)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
21 0x00 0x60 0x0008F04E (585806) 0x00005000 (020480) (10.00MB) 4MB boundary #97 (sector 794624)
0x00 0x05 0x00000012 (000018) 0x00000001 (000001)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
22 0x00 0x94 0x0009504D (610381) 0x00005000 (020480) (10.00MB) 4MB boundary #100 (sector 819200)
0x00 0x05 0x00000013 (000019) 0x00000001 (000001)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
23 0x00 0xA5 0x0009B04C (634956) 0x002ED000 (3067904) (1498.00MB) 4MB boundary #103 (sector 843776)
0x00 0x05 0x00000014 (000020) 0x00000001 (000001)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
24 0x00 0xA6 0x0038904B (3706955) 0x00401000 (4198400) (2050.00MB) 4MB boundary #478 (sector 3915776)
0x00 0x05 0x00000015 (000021) 0x00000001 (000001)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
25 0x00 0xA8 0x0078B04A (7909450) 0x00097000 (618496) (302.00MB) 4MB boundary #991 (sector 8118272)
0x00 0x05 0x00000016 (000022) 0x00000001 (000001)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
26 0x00 0xA9 0x00823049 (8532041) 0x00040800 (264192) (129.00MB) 4MB boundary #1067 (sector 8740864)
0x00 0x05 0x00000017 (000023) 0x00000001 (000001)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
27 0x00 0x95 0x00865048 (8802376) 0x000FA000 (1024000) (500.00MB) 4MB boundary #1100 (sector 9011200)
0x00 0x05 0x00000018 (000024) 0x00000001 (000001)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
28 0x00 0x90 0x0095F047 (9826375) [COLOR="Red"][B]0x013C8000[/B][/COLOR] (20742144) (10128.00MB) 4MB boundary #1225 (sector 10035200)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
0x00 0x00 0x00000000 (000000) 0x00000000 (000000)
This partition table has 28 usable partitions (29 parititions if you count the EXT which Linux does)
I've highlighted in red two sections showing how the file is stored on disk and interpreted in terms on endiness.
Now this if you refer back to http://forum.xda-developers.com/showpost.php?p=33359011&postcount=4 and cross reference to
partition_parser.h in kernel sources (this one is from a copy of moboot http://code.google.com/r/geauxlsu20....h?r=dfd2d6b446d5c86640accd8843d9cdea40159507 )
We can confirm that partition type id is used to to build the partition table in terms of which file goes where
Code:
#define MBR_EBR_TYPE 0x05
#define MBR_MODEM_TYPE 0x06
#define MBR_MODEM_TYPE2 0x0C
#define MBR_SBL1_TYPE 0x4D
#define MBR_SBL2_TYPE 0x51
#define MBR_SBL3_TYPE 0x45
#define MBR_RPM_TYPE 0x47
#define MBR_TZ_TYPE 0x46
#define MBR_MODEM_ST1_TYPE 0x4A
#define MBR_MODEM_ST2_TYPE 0x4B
#define MBR_EFS2_TYPE 0x4E
#define MBR_ABOOT_TYPE 0x4C
#define MBR_BOOT_TYPE 0x48
#define MBR_SYSTEM_TYPE 0x82
#define MBR_USERDATA_TYPE 0x83
#define MBR_RECOVERY_TYPE 0x60
#define MBR_MISC_TYPE 0x63
#define MBR_PROTECTED_TYPE 0xEE
and a excerpt from partition.xml for compiling a .mbn boot image
Code:
<?xml version="1.0"?>
<image>
<physical_partition number="0">
<primary order="1" type="c" bootable="false" label="MODEM" size="10" readonly="true">
</primary>
<primary order="2" type="4d" bootable="true" label="SBL1" size="256" readonly="true">
<file name="sbl1.mbn" offset="0"/>
</primary>
<primary order="3" type="51" bootable="false" label="SBL2" size="512" readonly="true">
<file name="sbl2.mbn" offset="0"/>
</primary>
<primary order="4" type="5" bootable="false" label="EXT" size="1000000">
<extended order="1" type="47" label="RPM" size="256" readonly="true">
<file name="rpm.mbn" offset="0"/>
</extended>
<extended order="2" type="45" label="SBL3" size="2048" readonly="true">
<file name="sbl3.mbn" offset="0"/>
</extended>
<extended order="3" type="46" label="TZ" size="256" readonly="true">
<file name="tz.mbn" offset="0"/>
</extended>
</primary>
</physical_partition>
[B]<parser_instructions>
WRITE_PROTECT_BOUNDARY_IN_KB = 0
GROW_LAST_PARTITION_TO_FILL_DISK=false
ALIGN_ALL_LOGICAL_PARTITIONS_TO_WP_BOUNDARY=false
</parser_instructions>[/B]
</image>
The above file has additional commands contained within highlighted in bold, these are parsed by ptool.py which creates the need rawprogram.xml ( xml without instructions for creating mbr/ebr files ) it also creates the files for blanking emmc(optional) and it's new partition tables in the form of mbr0.bin/ebr0.bin
here is the output when run on the above file
Code:
[email protected]:~/Desktop/Samsung/brixfix/partition_load_pt/python$ python ./ptool.py -x ../xml/singleimage_partition_8660.xml -t ./
CWD: /home/darkspr1te/Desktop/Samsung/brixfix/partition_load_pt/python
OutputFolder= ./
XMLFile= ../xml/singleimage_partition_8660.xml
OutputFolder= ./
OutputToCreate None
PhysicalPartitionNumber 0
verbose False
Looking for ../xml/singleimage_partition_8660.xml
----------------------------------------
Searching /home/darkspr1te/Desktop/Samsung/brixfix/partition_load_pt/python
**Found ../xml/singleimage_partition_8660.xml (1208 bytes)
Found a physical_partition, NumPhyPartitions=1
len(PhyPartition)=0
Testing if GUID= c
GUID does not match regular expression
LABEL: MODEM
========================================
storing at 0
Adding PartitionCollection to "PhyPartition" of size 0
Testing if GUID= 4d
GUID does not match regular expression
LABEL: SBL1
========================================
storing at 0
Adding PartitionCollection to "PhyPartition" of size 0
Testing if GUID= 51
GUID does not match regular expression
LABEL: SBL2
========================================
storing at 0
Adding PartitionCollection to "PhyPartition" of size 0
LABEL: EXT
Testing if GUID= 5
GUID does not match regular expression
LABEL: RPM
Testing if GUID= 47
GUID does not match regular expression
========================================
storing at 0
Adding PartitionCollection to "PhyPartition" of size 0
LABEL: SBL3
Testing if GUID= 45
GUID does not match regular expression
========================================
storing at 0
Adding PartitionCollection to "PhyPartition" of size 0
LABEL: TZ
Testing if GUID= 46
GUID does not match regular expression
========================================
storing at 0
Adding PartitionCollection to "PhyPartition" of size 0
HashInstructions['WRITE_PROTECT_BOUNDARY_IN_KB'] =0
HashInstructions['ALIGN_BOUNDARY_IN_KB'] =0
HashInstructions['GROW_LAST_PARTITION_TO_FILL_DISK']=False
HashInstructions['DISK_SIGNATURE']=0x0
len(PhyPartition)= 1
LABEL: 'MODEM' with 2 sectors
LABEL: 'SBL1' with 150 sectors
LABEL: 'SBL2' with 220 sectors
LABEL: 'RPM' with 232 sectors
LABEL: 'SBL3' with 1200 sectors
LABEL: 'TZ' with 208 sectors
MinSectorsNeeded=2016
==============================================================================
MBR type discovered in XML file, Output will be MBR
==============================================================================
==============================================================================
OutputToCreate ===> 'mbr'
==============================================================================
On PHY Partition 0 that has 6 partitions
------------
For PHY Partition 0
We will need an MBR and 3 EBRs
Inside CreateMasterBootRecord(3) -------------------------------------
1 of 6 "MODEM" (readonly=true) and size=1KB (0.00MB or 2 sectors)
2 of 6 "SBL1" (readonly=true) and size=75KB (0.07MB or 150 sectors)
3 of 6 "SBL2" (readonly=true) and size=110KB (0.11MB or 220 sectors)
About to make EBR, FirstLBA=373, LastLBA=373
Inside CreateExtendedBootRecords(3) -----------------------------------------
EBROffset= 0
Extended Partition begins at FirstLBA=373, size is 1643
FirstLBA now equals 376 since NumEBRPartitions=3
4 of 6 "RPM" (readonly=true) and size=116KB (0.11MB or 232 sectors)
FirstLBA=376 (with size 232 sectors) and LastLBA=376
PhyPartition[k][j]['align']= false
SectorsTillNextBoundary= 0
FirstLBA (376) is *not* covered by the end of the WP region (0),
it needs to be moved to be aligned to 376
FirstLBA=376, LastLBA=608, PartitionSectorSize=232
LastLBA is currently 608 sectors
Card size of at least 0.3MB needed (608 sectors)
5 of 6 "SBL3" (readonly=true) and size=600KB (0.59MB or 1200 sectors)
FirstLBA=608 (with size 1200 sectors) and LastLBA=608
PhyPartition[k][j]['align']= false
SectorsTillNextBoundary= 0
FirstLBA (608) is *not* covered by the end of the WP region (0),
it needs to be moved to be aligned to 608
FirstLBA=608, LastLBA=1808, PartitionSectorSize=1200
LastLBA is currently 1808 sectors
Card size of at least 0.9MB needed (1808 sectors)
6 of 6 "TZ" (readonly=true) and size=104KB (0.10MB or 208 sectors)
FirstLBA=1808 (with size 208 sectors) and LastLBA=1808
THIS IS THE LAST PARTITION
It cannot be marked as read-only, it is now set to writeable
PhyPartition[k][j]['align']= false
SectorsTillNextBoundary= 0
This partition is *NOT* readonly (or does not have align='true')
FirstLBA=1808, LastLBA=2016, PartitionSectorSize=208
LastLBA is currently 2016 sectors
Card size of at least 1.0MB needed (2016 sectors)
------------------------------------------------------------------------------
LastLBA is currently 2016 sectors
Card size of at least 1.0MB needed (2016 sectors)
------------------------------------------------------------------------------
ptool.py is running from CWD: /home/darkspr1te/Desktop/Samsung/brixfix/partition_load_pt/python
Created "./partition0.bin"
Created "./MBR0.bin"
Created "./EBR0.bin"
Created "./rawprogram0.xml"
Created "./patch0.xml"
Created "./emmc_lock_regions.xml"
Use msp tool to write this information to SD/eMMC card
i.e.
sudo python msp.py rawprogram0.xml /dev/sdb <---- where /dev/sdb is assumed to be your SD/eMMC card
sudo python msp.py patch0.xml /dev/sdb <---- where /dev/sdb is assumed to be your SD/eMMC card
Created "zeros_1sector.bin" <-- full of binary zeros - used by "wipe" rawprogram files
Created "zeros_33sectors.bin" <-- full of binary zeros - used by "wipe" rawprogram files
Created "./wipe_rawprogram_PHY0.xml" <-- Used to *wipe/erase* partition information
Created "./wipe_rawprogram_PHY1.xml" <-- Used to *wipe/erase* partition information
Created "./wipe_rawprogram_PHY2.xml" <-- Used to *wipe/erase* partition information
Created "./wipe_rawprogram_PHY4.xml" <-- Used to *wipe/erase* partition information
Created "./wipe_rawprogram_PHY5.xml" <-- Used to *wipe/erase* partition information
Created "./wipe_rawprogram_PHY6.xml" <-- Used to *wipe/erase* partition information
Created "./wipe_rawprogram_PHY7.xml" <-- Used to *wipe/erase* partition information
[email protected]:~/Desktop/Samsung/brixfix/partition_load_pt/python$
now in partition.xml before it's parsed by ptool.py it is as the following with partition size as SIZE
Code:
<primary order="1" type="c" bootable="false" label="MODEM" size="10" readonly="true">
</primary>
<primary order="2" type="4d" bootable="true" label="SBL1" size="256" readonly="true">
<file name="sbl1.mbn" offset="0"/>
but after parsing it's in sectors and offsets
Code:
program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="" label="MODEM" num_partition_sectors="2" physical_partition_number="0" size_in_KB="1.0" sparse="false" start_byte_hex="0x200" start_sector="1"/>
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="sbl1.mbn" label="SBL1" num_partition_sectors="150" physical_partition_number="0" size_in_KB="75.0" sparse="false" start_byte_hex="0x600" start_sector="3"/>
A group of Partition Tools compiled static from original (open) sources -
http://www.sendspace.com/file/4g1atr aimed at mbr/ebr only
sfdisk
lsblk
partx
blkid
Click to expand...
Click to collapse
http://www.sendspace.com/file/5b3jdc inclusive of mbr tools plus GPT tools
blkid
fdisk
gdisk
lsblk
partx
sfdisk
sgdisk
Click to expand...
Click to collapse

Wow! Thanks!!
But what compilation flags did you use? (ARCH, CPU, etc etc)
They could be very useful for other devices as well...
HAPPY NEW YEAR!

E:V:A said:
Wow! Thanks!!
But what compilation flags did you use? (ARCH, CPU, etc etc)
They could be very useful for other devices as well...
HAPPY NEW YEAR!
Click to expand...
Click to collapse
You want details here, pm for restructure into [dev] guide ?
I can repurpose this post anyway, more info , lots more info to post
Happy new year from +2:00 hrs GMT !!!! to All

Device: Sprint Optimus G
Model: LG LS970
CPU: Qualcomm Snapdragon S4 Pro (APQ8064)
Total Number of Partitions Found: 37
Partition: MODEM at 0x000000800000
Partition: SBL1 at 0x000004800000
Partition: SBL2 at 0x000004880000
Partition: SBL3 at 0x000004900000
Partition: ABOOT at 0x000004B00000
Partition: RPM at 0x000004B80000
Partition: BOOT at 0x000005000000
Partition: TZ at 0x000006800000
Partition: PAD at 0x000006880000
Partition: MODEMST1 at 0x000006880400
Partition: MODEMST2 at 0x000006B80400
Partition: M9KEFS1 at 0x000007000000
Partition: M9KEFS2 at 0x0000070C3000
Partition: M9KEFS3 at 0x000007186000
Partition: DRM at 0x000007800000
Partition: SNS at 0x000008000000
Partition: SSD at 0x000008800000
Partition: MISC at 0x000008802000
Partition: FACTORY at 0x000009802000
Partition: BNR at 0x00000A802000
Partition: ENCRYPT at 0x00000B002000
Partition: EKSST at 0x00000B082000
Partition: SYSTEM at 0x00000B800000
Partition: CACHE at 0x00006A800000
Partition: USERDATA at 0x00009C800000
Partition: PERSIST at 0x0000FB000000
Partition: TOMBSTONES at 0x0000FB800000
Partition: RECOVERY at 0x00000B800000
Partition: FSG at 0x00000D000000
Partition: DDR at 0x00000D300000
Partition: FOTA at 0x00000D800000
Partition: MPT at 0x00000F800000
Partition: TZBAK at 0x000011800000
Partition: RPMBAK at 0x000011880000
Partition: CARRIER at 0x000011900000
Partition: RESERVED at 0x000012D00000
Partition: GROW at 0x000013D00000
Click to expand...
Click to collapse

Code:
General Device Name: Samsung Galaxy Note 1
Manufacturer Product Name: GT-N7000
Processor: Samsung Exynos 4210 ( 1.400 MHz )
AOS version: Android ICS 4.0.4
Radio FW version: XXLRK
System FW version: XXLRT
Service Provider/ Branding: Mobilcom-Debitel / -
Country: Germany
(emmc brick chip)
[B]<< output of parted >>[/B]
# parted /dev/block/mmcblk0
GNU Parted 1.8.8.1.179-aef3
Using /dev/block/mmcblk0
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print all
print all
Model: MMC VYL00M (sd/mmc)
Disk /dev/block/mmcblk0: 15.8GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 4194kB 25.2MB 21.0MB ext4 EFS
2 25.2MB 26.5MB 1311kB SBL1
3 27.3MB 28.6MB 1311kB SBL2
4 29.4MB 37.7MB 8389kB PARAM
5 37.7MB 46.1MB 8389kB KERNEL
6 46.1MB 54.5MB 8389kB RECOVERY
7 54.5MB 264MB 210MB ext4 CACHE
8 264MB 281MB 16.8MB MODEM
9 281MB 1174MB 893MB ext4 FACTORYFS
10 1174MB 3322MB 2147MB ext4 DATAFS
11 3322MB 15.2GB 11.9GB fat32 UMS
12 15.2GB 15.8GB 537MB ext4 HIDDEN
(parted) quit
quit
# busybox cat /proc/partitions <
major minor #blocks name
7 0 4190 loop0
7 1 43691 loop1
7 2 3150 loop2
7 3 6269 loop3
7 4 15624 loop4
7 5 30177 loop5
7 6 41612 loop6
7 7 9387 loop7
179 0 15388672 mmcblk0
179 1 20480 mmcblk0p1
179 2 1280 mmcblk0p2
179 3 1280 mmcblk0p3
179 4 8192 mmcblk0p4
179 5 8192 mmcblk0p5
179 6 8192 mmcblk0p6
179 7 204800 mmcblk0p7
259 0 16384 mmcblk0p8
259 1 872448 mmcblk0p9
259 2 2097152 mmcblk0p10
259 3 11616256 mmcblk0p11
259 4 524288 mmcblk0p12
179 8 30657536 mmcblk1
179 9 30653440 mmcblk1p1
254 0 4189 dm-0
254 1 43690 dm-1
254 2 3150 dm-2
254 3 6268 dm-3
254 4 15624 dm-4
254 5 30177 dm-5
254 6 41611 dm-6
254 7 9387 dm-7
7 8 4190 loop8
254 8 4189 dm-8
7 9 8348 loop9
254 9 8347 dm-9
7 10 3150 loop10
254 10 3150 dm-10
7 11 6269 loop11
254 11 6268 dm-11
7 12 3150 loop12
254 12 3150 dm-12
7 13 17703 loop13
254 13 17703 dm-13
7 14 30177 loop14
254 14 30177 dm-14
7 15 2111 loop15
254 15 2110 dm-15
7 16 11466 loop16
254 16 11466 dm-16
7 17 4190 loop17
254 17 4189 dm-17
7 18 2111 loop18
254 18 2110 dm-18
7 19 22901 loop19
254 19 22900 dm-19
7 20 2111 loop20
254 20 2110 dm-20
7 21 19782 loop21
254 21 19782 dm-21
7 22 21861 loop22
254 22 21861 dm-22
7 23 3150 loop23
254 23 3150 dm-23
7 24 5229 loop24
254 24 5229 dm-24
7 25 16664 loop25
254 25 16663 dm-25
7 26 3150 loop26
254 26 3150 dm-26
7 27 7308 loop27
254 27 7308 dm-27
7 28 63473 loop28
254 28 63472 dm-28
7 29 14585 loop29
254 29 14584 dm-29
7 30 3150 loop30
254 30 3150 dm-30
7 31 7308 loop31
254 31 7308 dm-31
7 32 6269 loop32
254 32 6268 dm-32
7 33 4190 loop33
254 33 4189 dm-33
7 34 59283 loop34
254 34 59283 dm-34
7 35 36414 loop35
254 35 36414 dm-35
7 36 4190 loop36
254 36 4189 dm-36
7 37 2111 loop37
254 37 2110 dm-37
7 38 4190 loop38
254 38 4189 dm-38
7 39 6269 loop39
254 39 6268 dm-39
7 40 18743 loop40
254 40 18742 dm-40
7 41 2111 loop41
254 41 2110 dm-41
7 42 19782 loop42
254 42 19782 dm-42
7 43 5229 loop43
254 43 5229 dm-43
7 44 17703 loop44
254 44 17703 dm-44
7 45 14585 loop45
254 45 14584 dm-45
7 46 16664 loop46
254 46 16663 dm-46
7 47 2111 loop47
254 47 2110 dm-47
7 48 3150 loop48
254 48 3150 dm-48
7 49 9387 loop49
254 49 9387 dm-49
# mount
rootfs on / type rootfs (ro,relatime)
tmpfs on /dev type tmpfs (rw,nosuid,relatime,mode=755)
devpts on /dev/pts type devpts (rw,relatime,mode=600)
proc on /proc type proc (rw,relatime)
sysfs on /sys type sysfs (rw,relatime)
none on /acct type cgroup (rw,relatime,cpuacct)
tmpfs on /mnt/asec type tmpfs (rw,relatime,mode=755,gid=1000)
tmpfs on /mnt/obb type tmpfs (rw,relatime,mode=755,gid=1000)
none on /dev/cpuctl type cgroup (rw,relatime,cpu)
/dev/block/mmcblk0p9 on /system type ext4 (ro,noatime,barrier=1,data=ordered)
/dev/block/mmcblk0p7 on /cache type ext4 (rw,nosuid,nodev,noatime,barrier=1,data=ordered)
/dev/block/mmcblk0p1 on /efs type ext4 (rw,nosuid,nodev,noatime,barrier=1,data=ordered)
/dev/block/mmcblk0p10 on /data type ext4 (rw,nosuid,nodev,noatime,barrier=1,data=ordered,noauto_da_alloc)
/dev/block/mmcblk0p4 on /mnt/.lfs type j4fs (rw,relatime)
/sys/kernel/debug on /sys/kernel/debug type debugfs (rw,relatime)
/dev/block/vold/259:3 on /mnt/sdcard type vfat (rw,dirsync,nosuid,nodev,noexec,noatime,nodiratime,uid=1000,gid=1015,fmask=0002,dmask=0002,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro,discard)
tmpfs on /mnt/sdcard/external_sd type tmpfs (rw,dirsync,nosuid,nodev,noexec,noatime,nodiratime,size=0k,mode=755,gid=1000)
tmpfs on /mnt/sdcard/usbStorage type tmpfs (rw,dirsync,nosuid,nodev,noexec,noatime,nodiratime,size=0k,mode=755,gid=1000)
/dev/block/vold/179:9 on /mnt/sdcard/external_sd type vfat (rw,dirsync,nosuid,nodev,noexec,noatime,nodiratime,uid=1000,gid=1023,fmask=0002,dmask=0002,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro)
/dev/block/vold/179:9 on /mnt/secure/asec type vfat (rw,dirsync,nosuid,nodev,noexec,noatime,nodiratime,uid=1000,gid=1023,fmask=0002,dmask=0002,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro)
tmpfs on /mnt/sdcard/external_sd/.android_secure type tmpfs (ro,relatime,size=0k,mode=000)
without /dev/block/dm-xx
[B]<< output of fdisk >>[/B]
# fdisk -l /dev/block/mmcblk0
Disk /dev/block/mmcblk0: 15.7 GB, 15758000128 bytes
1 heads, 16 sectors/track, 1923584 cylinders
Units = cylinders of 16 * 512 = 8192 bytes
Device Boot Start End Blocks Id System
/dev/block/mmcblk0p1 1 1923584 15388671+ ee EFI GPT
Partition 1 does not end on cylinder boundary
#
[B]<< output of gdisk >>[/B]
sh: gdisk: not found
<< Any additional info you'd like to share. See text.>>

Friedbert said:
Code:
General Device Name: Samsung Galaxy Note 1
Manufacturer Product Name: GT-N7000
...
[B]<< output of gdisk >>[/B]
sh: gdisk: not found
[/QUOTE]
If you wanna use [I]gdisk[/I], you need to push it over and install it first! Thanks.
Click to expand...
Click to collapse

I can confirm that the smd_HDR.mbn/bin partition contains md5 checksums for the partitions. Still analysing the first untainted copy, it lists all partitions followed by a md5 sum, but that just strings output. Hex next, will update when I have further info.
Here is the strings in the file.
Code:
Q8x60M2K_EMMC_Va
./ptn/partit
5BB1C1F589363704E8D3F6912377685F
./bin/sbl1.m
C8FB1F17A8C9289BDD2CC35FAD1D8847
./bin/sbl2.m
9FBC53EDBF4CD41AFC9E1D1DB0EE0249
./bin/rpm.mb
8AEDC483EC145A6ADF54FEF6CA433052
./bin/sbl3.mt]
B148EC810189A31175E2743065C8F43F
./bin/aboot.
C9A02863C90339AE308655177429F86F
./bin/boot.i
B2D9A1A62A51DF0A75AF3570DC3F7B65
./bin/[email protected]
62DD4F0024B6732E86C058C3127612AB
./ptn/quincy
457E023513146DF9A237700058D31AE8
./cnst/param
9EA248A486EDE412D0B5247474CE2FEF
./bin/amss.b
54D32EC124B24E055919D4564CB24912
./bin/mdm.bi
8512BCE3D102A19C568DD2895A12C279
recovery.img
662DA0A40017670CD82ABF9D23BD823D
system.img
]EA28643C20DD75852E06E99C5EF1E096
cache.img
42A51E87086CC329561EB262AA38E8B4
tombstone.im
8A8B2BF56C4A455686B3678BE9D41AA4
hidden.img
03F06021375A57297E472F787EE46932
F58997D29D80F232F4818FF0D5F25B78KMKZS000VM(E160K)
F99D
05B9
And ive attached the actual file for anyone who wants to dissect it .
The rest of the file is empty. just '0's
Sent from my A210 using Tapatalk 2

Device: LG Motion
Model: LG MS770/LW770
CPU: Qualcomm Snapdragon S4 Plus (MSM8960L)
Partition: MODEM at 0x000000800000
Partition: SBL1 at 0x000004800000
Partition: SBL2 at 0x000004880000
Partition: SBL3 at 0x000004900000
Partition: ABOOT at 0x000004A00000
Partition: RPM at 0x000004A80000
Partition: TZ at 0x000006000000
Partition: PAD at 0x000006080000
Partition: MODEMST1 at 0x000006080400
Partition: MODEMST2 at 0x000006380400
Partition: SNS at 0x000006800000
Partition: MISC at 0x000007000000
Partition: SYSTEM at 0x000008000000
Partition: USERDATA at 0x000048000000
Partition: PERSIST at 0x0001B3C00000
Partition: CACHE at 0x0001B4400000
Partition: TOMBSTONES at 0x0001C5000000
Partition: RECOVERY at 0x0001C9800000
Partition: FSG at 0x0001CA400000
Partition: SSD at 0x0001CA700000
Partition: DRM at 0x0001CA800000
Partition: FOTA at 0x0001CB000000
Partition: MPT at 0x0001CD000000
Partition: TZBAK at 0x0001CF000000
Partition: RPMBAK at 0x0001CF080000
Partition: ENCRYPT at 0x0001CF100000
Partition: RESERVED at 0x0001CF800000
Partition: GROW at 0x0001D0800000
Click to expand...
Click to collapse

Related

[DISCUSSION][SOLVED] Let's use all 4gb of memory!

Edit: See Wiki for information on why this can not be accomplished: "summary: 2gb have stuff. other 2gb make phone faster. phone have more faster ram. Phone go faster." (Thanks wrsg)
First, I feel this needs to be in the development section because it's most likely going to require some commands/.zip/custom ROM/whatever to actually be able to use that other 2gb of memory we don't see.
Correct me if I'm wrong but from my understanding, that other 2gb of memory has a backup of STOCK G2 Software (OS/Recovery/etc) and reserved space for updates. Basically meaning memory that's only touched by an OTA or ... gingerbread when that drops.
How would we go about "unlocking" that other half of internal memory? It could be used for apps or possibly even mountable storage (if possible...)
I'm sure this is already a work in progress and I have nothing to offer in the endeavor. Just opening the door for someone to walk through.
If a mod believes this to be in the wrong section, please feel free to move it.
Sent from my T-Mobile G2 using XDA App
philosophics said:
First, I feel this needs to be in the development section because it's most likely going to require some commands/.zip/custom ROM/whatever to actually be able to use that other 2gb of memory we don't see.
Correct me if I'm wrong but from my understanding, that other 2gb of memory has a backup of STOCK G2 Software (OS/Recovery/etc) and reserved space for updates. Basically meaning memory that's only touched by an OTA or ... gingerbread when that drops.
How would we go about "unlocking" that other half of internal memory? It could be used for apps or possibly even mountable storage (if possible...)
I'm sure this is already a work in progress and I have nothing to offer in the endeavor. Just opening the door for someone to walk through.
If a mod believes this to be in the wrong section, please feel free to move it.
Sent from my T-Mobile G2 using XDA App
Click to expand...
Click to collapse
what do you propose?
I believe this thread will be where brains come together. As stated above, I have nothing to offer in the endeavor. Just opening a door for someone to walk through.
When something comes up that works, I will post it in the OP and change the thread title...
Sent from my T-Mobile G2 using XDA App
I think we are getting ahead of ourselves...we need a base/stock rom with su/busybox installed badly! I know the soft bricks are already happening and no one has anything to revert to (that isn't insanely tedious). Besides, nandroid/titanium backup can't fix it every time. I hope someone is working on that first. I'm sure people are looking into accessing the total rom space but if its just partitioned that way... there may be no easy solution. Or at least one that isn't dangerous...
Isn't this supposedly HTC and T-mobile's job!?!
Aren't they supposed to acknowledge this problem already?!
Up until now I have seen NO official words from either HTC or T-mobile. what's up with that? are these guys playing the silence game?
HA!
I just posted same question in "dev question" sticky which has almost no dev questions in it. I believe their may be a barrier to entry to our other 1.9 gigs and that is the actual architecture that our g2 radios live, on the eemc.
Pls feel free to correct me if I am wrong here.
i feel as if the other 2 gigs are partitions that are used for data and cache; jus a thought
s0xpan said:
i feel as if the other 2 gigs are partitions that are used for data and cache; jus a thought
Click to expand...
Click to collapse
all told system, data, and cache 1 gig would be a huge amount. still leaving an unaccounted gig
thats not even taking into account the 512 of rom
haensgn said:
all told system, data, and cache 1 gig would be a huge amount. still leaving an unaccounted gig
thats not even taking into account the 512 of rom
Click to expand...
Click to collapse
true this is true
philosophics said:
Correct me if I'm wrong but from my understanding, that other 2gb of memory has a backup of STOCK G2 Software (OS/Recovery/etc) and reserved space for updates. Basically meaning memory that's only touched by an OTA or ... gingerbread when that drops.
Click to expand...
Click to collapse
I don't think that's been proved, has it, it's just speculation ? i.e. what that extra space is for ?
If anyone has links to proof then of course I'd be very interested, and apologise if I'm wrong.
The "missing" memory might even be unintentional and/or a bug, from what I've seen.
well sir speculation is a part of this whole "think tank" process
nothing needs proof. although if you have any documentation...
From what i saw going through the emmc in 4kbits of code at a time, done by the rooting team. it seems to be part of the architecture but i am waiting for wiser ppl whom have physically cracked this puppy open.
For anyone interested in specifics, you can do some reading here
I believe what you are referring to is the space beyond mmcblk0p28 (on the G2) which begins at block 264551 and ends at block 1048577
reukiodo said:
For anyone interested in specifics, you can do some reading here
Click to expand...
Click to collapse
and also at http://tjworld.net/wiki/Android/HTC/Vision/InstallingCustomOperatingSystem
Though, interestingly I get something a little different when I fdisk -l mmcblk0:
Code:
# busybox fdisk -l /dev/block/mmcblk0
busybox fdisk -l /dev/block/mmcblk0
Warning: deleting partitions after 60
Disk mmcblk0: 2256 MB, 2256535552 bytes
1 heads, 16 sectors/track, 275456 cylinders
Units = cylinders of 16 * 512 = 8192 bytes
Device Boot Start End Blocks Id System
mmcblk0p1 * 1 63 500 4d Unknown
Partition 1 does not end on cylinder boundary
mmcblk0p2 63 71 64 45 Unknown
Partition 2 does not end on cylinder boundary
mmcblk0p3 71 634 4500 46 Unknown
Partition 3 does not end on cylinder boundary
mmcblk0p4 634 1048577 8383544 5 Extended
Partition 4 does not end on cylinder boundary
mmcblk0p5 634 4384 30000 49 Unknown
mmcblk0p6 4384 5946 12500 50 Unknown
mmcblk0p7 5946 6202 2048 51 Unknown
mmcblk0p8 6202 6586 3072 52 Unknown
mmcblk0p9 6586 6842 2048 53 Unknown
mmcblk0p10 6842 6970 1024 54 Unknown
mmcblk0p11 6971 7098 1024 56 Unknown
mmcblk0p12 7099 8192 8751+ 55 Unknown
mmcblk0p13 8193 8577 3072 4a Unknown
mmcblk0p14 8577 8961 3072 4b Unknown
mmcblk0p15 8961 9089 1024 74 Unknown
mmcblk0p16 9089 10208 8957+ 75 Unknown
mmcblk0p17 10209 10240 256 76 Unknown
mmcblk0p18 10241 10369 1024 47 Unknown
mmcblk0p19 10369 10497 1024 34 Unknown
mmcblk0p20 10497 10657 1280 36 Unknown
mmcblk0p21 10657 11744 8701 71 Unknown
mmcblk0p22 11744 12256 4096 48 Unknown
mmcblk0p23 12257 12288 256 73 Unknown
mmcblk0p24 12289 12321 256 31 Unknown
mmcblk0p25 12321 65536 425726+ 83 Linux
mmcblk0p26 65537 235777 1361920+ 83 Linux
mmcblk0p27 235777 261991 209715+ 83 Linux
mmcblk0p28 261991 264551 20480 19 Unknown
mmcblk0p29 634 4384 30000 49 Unknown
mmcblk0p30 4384 5946 12500 50 Unknown
mmcblk0p31 5946 6202 2048 51 Unknown
mmcblk0p32 6202 6586 3072 52 Unknown
mmcblk0p33 6586 6842 2048 53 Unknown
mmcblk0p34 6842 6970 1024 54 Unknown
mmcblk0p35 6971 7098 1024 56 Unknown
mmcblk0p36 7099 8192 8751+ 55 Unknown
mmcblk0p37 8193 8577 3072 4a Unknown
mmcblk0p38 8577 8961 3072 4b Unknown
mmcblk0p39 8961 9089 1024 74 Unknown
mmcblk0p40 9089 10208 8957+ 75 Unknown
mmcblk0p41 10209 10240 256 76 Unknown
mmcblk0p42 10241 10369 1024 47 Unknown
mmcblk0p43 10369 10497 1024 34 Unknown
mmcblk0p44 10497 10657 1280 36 Unknown
mmcblk0p45 10657 11744 8701 71 Unknown
mmcblk0p46 11744 12256 4096 48 Unknown
mmcblk0p47 12257 12288 256 73 Unknown
mmcblk0p48 12289 12321 256 31 Unknown
mmcblk0p49 12321 65536 425726+ 83 Linux
mmcblk0p50 65537 235777 1361920+ 83 Linux
mmcblk0p51 235777 261991 209715+ 83 Linux
mmcblk0p52 261991 264551 20480 19 Unknown
mmcblk0p53 634 4384 30000 49 Unknown
mmcblk0p54 4384 5946 12500 50 Unknown
mmcblk0p55 5946 6202 2048 51 Unknown
mmcblk0p56 6202 6586 3072 52 Unknown
mmcblk0p57 6586 6842 2048 53 Unknown
mmcblk0p58 6842 6970 1024 54 Unknown
mmcblk0p59 6971 7098 1024 56 Unknown
mmcblk0p60 7099 8192 8751+ 55 Unknown
Partition table entries are not in disk order
It looks like my partition table repeats itself, but refers to the same sectors. Does anyone else see this oddity?
cheat sheet:
Code:
adb shell
su
busybox fdisk -l /dev/block/mmcblk0
$ export PATH=/data/local/bin:$PATH
$ su
#busybox fdisk -l /dev/block/mmcblk0
Warning: deleting partitions after 60
Disk /dev/block/mmcblk0: 2332 MB, 2332033024 bytes
1 heads, 16 sectors/track, 284672 cylinders
Units = cylinders of 16 * 512 = 8192 bytes
Device Boot Start End Blocks Id System
/dev/block/mmcblk0p1 * 1 63 500 4d Unknown
Partition 1 does not end on cylinder boundary
/dev/block/mmcblk0p2 63 71 64 45 Unknown
Partition 2 does not end on cylinder boundary
/dev/block/mmcblk0p3 71 634 4500 46 Unknown
Partition 3 does not end on cylinder boundary
/dev/block/mmcblk0p4 634 284672 2272311 5 Extended
Partition 4 does not end on cylinder boundary
/dev/block/mmcblk0p5 634 4384 30000 49 Unknown
/dev/block/mmcblk0p6 4384 5946 12500 50 Unknown
/dev/block/mmcblk0p7 5946 6202 2048 51 Unknown
/dev/block/mmcblk0p8 6202 6586 3072 52 Unknown
/dev/block/mmcblk0p9 6586 6842 2048 53 Unknown
/dev/block/mmcblk0p10 6842 6970 1024 54 Unknown
/dev/block/mmcblk0p11 6971 7098 1024 56 Unknown
/dev/block/mmcblk0p12 7099 8192 8751+ 55 Unknown
/dev/block/mmcblk0p13 8193 8577 3072 4a Unknown
/dev/block/mmcblk0p14 8577 8961 3072 4b Unknown
/dev/block/mmcblk0p15 8961 9089 1024 74 Unknown
/dev/block/mmcblk0p16 9089 10208 8957+ 75 Unknown
/dev/block/mmcblk0p17 10209 10240 256 76 Unknown
/dev/block/mmcblk0p18 10241 10369 1024 47 Unknown
/dev/block/mmcblk0p19 10369 10497 1024 34 Unknown
/dev/block/mmcblk0p20 10497 10657 1280 36 Unknown
/dev/block/mmcblk0p21 10657 11744 8701 71 Unknown
/dev/block/mmcblk0p22 11744 12256 4096 48 Unknown
/dev/block/mmcblk0p23 12257 12288 256 73 Unknown
/dev/block/mmcblk0p24 12289 12544 2047 26 Unknown
/dev/block/mmcblk0p25 12545 83968 571391+ 83 Linux
/dev/block/mmcblk0p26 83969 223616 1117183+ 83 Linux
/dev/block/mmcblk0p27 223617 262016 307199+ 83 Linux
/dev/block/mmcblk0p28 262017 264672 21247+ 19 Unknown
/dev/block/mmcblk0p29 264673 264704 256 23 Unknown
/dev/block/mmcblk0p30 634 4384 30000 49 Unknown
/dev/block/mmcblk0p31 4384 5946 12500 50 Unknown
/dev/block/mmcblk0p32 5946 6202 2048 51 Unknown
/dev/block/mmcblk0p33 6202 6586 3072 52 Unknown
/dev/block/mmcblk0p34 6586 6842 2048 53 Unknown
/dev/block/mmcblk0p35 6842 6970 1024 54 Unknown
/dev/block/mmcblk0p36 6971 7098 1024 56 Unknown
/dev/block/mmcblk0p37 7099 8192 8751+ 55 Unknown
/dev/block/mmcblk0p38 8193 8577 3072 4a Unknown
/dev/block/mmcblk0p39 8577 8961 3072 4b Unknown
/dev/block/mmcblk0p40 8961 9089 1024 74 Unknown
/dev/block/mmcblk0p41 9089 10208 8957+ 75 Unknown
/dev/block/mmcblk0p42 10209 10240 256 76 Unknown
/dev/block/mmcblk0p43 10241 10369 1024 47 Unknown
/dev/block/mmcblk0p44 10369 10497 1024 34 Unknown
/dev/block/mmcblk0p45 10497 10657 1280 36 Unknown
/dev/block/mmcblk0p46 10657 11744 8701 71 Unknown
/dev/block/mmcblk0p47 11744 12256 4096 48 Unknown
/dev/block/mmcblk0p48 12257 12288 256 73 Unknown
/dev/block/mmcblk0p49 12289 12544 2047 26 Unknown
/dev/block/mmcblk0p50 12545 83968 571391+ 83 Linux
/dev/block/mmcblk0p51 83969 223616 1117183+ 83 Linux
/dev/block/mmcblk0p52 223617 262016 307199+ 83 Linux
/dev/block/mmcblk0p53 262017 264672 21247+ 19 Unknown
/dev/block/mmcblk0p54 264673 264704 256 23 Unknown
/dev/block/mmcblk0p55 634 4384 30000 49 Unknown
/dev/block/mmcblk0p56 4384 5946 12500 50 Unknown
/dev/block/mmcblk0p57 5946 6202 2048 51 Unknown
/dev/block/mmcblk0p58 6202 6586 3072 52 Unknown
/dev/block/mmcblk0p59 6586 6842 2048 53 Unknown
/dev/block/mmcblk0p60 6842 6970 1024 54 Unknown
Partition table entries are not in disk order
Sent from my HTC Vision using XDA App
... very, very weird.
It reminds me of some of Samsung's boneheaded decisions on the filesystem in their Galaxy S series. Just some real head-scratchers -- like using a journaled FAT filesystem that blocks on write for some stupid reason.
If you really want to be sleuthy, read the #g2root logs from last night, particularly scotty2's diagnosis.
What's the difference between our memory and the vibrants. What makes it mountable on a computer. I know he have an sd card for pix and stuff.who on earth is gunna use 4 gigs on just apps. It would make sense to be able to use it for pix and downloads
I figure it is there for the huge cache. Is that cache disabled when the phone is rooted?
Anomaly said:
I figure it is there for the huge cache. Is that cache disabled when the phone is rooted?
Click to expand...
Click to collapse
... to what huge cache are you referring?

[Q] Which file defines the partition values on u8800?

It is usually partition.mbn or partition.bin, but none of these files are present. I know that there is a guide from Geno, but I need to know what files are important for the partitions.
Thanks
We have a mmc card with mbr record. Its just like hdd.
To get the partition layout, do in adb: "su" "fdisk /dev/block/mmcblk0" "p"
Sent from my U8800
Thank you very much.
But is there a way to "replace" the partition values of the u8800 with the u8800-51 values? Because I need to do this in order to use some u8800 files on u8800-51.. Any ideas of how to do it?? Maybe replacing some files?
Thanks again.
I belive the partition layout is same on both phones. What exactly do you want to use?
I added partition info, some may be incorrect though.
On normal U8800:
Code:
Disk /dev/block/mmcblk0: 3959 MB, 3959422976 bytes
1 heads, 16 sectors/track, 483328 cylinders
Units = cylinders of 16 * 512 = 8192 bytes
Device Boot Start End Blocks Id System
/dev/block/mmcblk0p1 1 30721 245760 b Win95 FAT32 CUST
Partition 1 does not end on cylinder boundary
/dev/block/mmcblk0p2 * 30721 30783 500 4d Unknown BL1 SBL1
Partition 2 does not end on cylinder boundary
/dev/block/mmcblk0p3 30783 31158 3000 46 Unknown BL2 TZ SBL2
Partition 3 does not end on cylinder boundary
/dev/block/mmcblk0p4 31158 483328 3617363+ 5 Extended EBR
Partition 4 does not end on cylinder boundary
/dev/block/mmcblk0p5 32769 34304 12288 59 Unknown LOGO?
/dev/block/mmcblk0p6 40961 57600 133120 4c Unknown ABOOT
/dev/block/mmcblk0p7 65537 65599 500 5a Unknown MISC - EMPTY
/dev/block/mmcblk0p8 73729 74112 3072 58 Unknown EMPTY
/dev/block/mmcblk0p9 81921 82795 7000 50 Unknown AUDIO?
/dev/block/mmcblk0p10 90113 90496 3072 4a Unknown MODEM_ST1
/dev/block/mmcblk0p11 98305 98688 3072 4b Unknown MODEM_ST2
/dev/block/mmcblk0p12 106497 134656 225280 83 Linux SYSTEM
/dev/block/mmcblk0p13 139265 216064 614400 83 Linux USERDATA
/dev/block/mmcblk0p14 221185 483328 2097152 69 Unknown INTERNAL_SD
Blefish said:
I belive the partition layout is same on both phones. What exactly do you want to use?
I added partition info, some may be incorrect though.
On normal U8800:
Code:
Disk /dev/block/mmcblk0: 3959 MB, 3959422976 bytes
1 heads, 16 sectors/track, 483328 cylinders
Units = cylinders of 16 * 512 = 8192 bytes
Device Boot Start End Blocks Id System
/dev/block/mmcblk0p1 1 30721 245760 b Win95 FAT32 CUST
Partition 1 does not end on cylinder boundary
/dev/block/mmcblk0p2 * 30721 30783 500 4d Unknown BL1 SBL1
Partition 2 does not end on cylinder boundary
/dev/block/mmcblk0p3 30783 31158 3000 46 Unknown BL2 TZ SBL2
Partition 3 does not end on cylinder boundary
/dev/block/mmcblk0p4 31158 483328 3617363+ 5 Extended EBR
Partition 4 does not end on cylinder boundary
/dev/block/mmcblk0p5 32769 34304 12288 59 Unknown LOGO?
/dev/block/mmcblk0p6 40961 57600 133120 4c Unknown ABOOT
/dev/block/mmcblk0p7 65537 65599 500 5a Unknown MISC - EMPTY
/dev/block/mmcblk0p8 73729 74112 3072 58 Unknown EMPTY
/dev/block/mmcblk0p9 81921 82795 7000 50 Unknown AUDIO?
/dev/block/mmcblk0p10 90113 90496 3072 4a Unknown MODEM_ST1
/dev/block/mmcblk0p11 98305 98688 3072 4b Unknown MODEM_ST2
/dev/block/mmcblk0p12 106497 134656 225280 83 Linux SYSTEM
/dev/block/mmcblk0p13 139265 216064 614400 83 Linux USERDATA
/dev/block/mmcblk0p14 221185 483328 2097152 69 Unknown INTERNAL_SD
Click to expand...
Click to collapse
Thank you very much. Here is the explanation:
I have a u8800-51 with android 2.2. This version of u8800 had the 1900mhz band for 3g, so for my country (in South America) I had 3g enabled.
Now I updated to gingerbread for u8800pro (because there is no update for u8800-51). It works great, but the only issue is 3g. Edge (2g) works great. This is because the u8800pro doesnt works with 1900mhz WCDMA bands (neither it's software)
I have read that in other android device, you can replace the "ril libs" (with the old ones from u8800-51 Froyo) in the system folder to enable bands (since my device u8800-51 has hardware capability). But for this, you have to also replace with the amss.mbn file associated with those lib files. Everything works when I just replace the lib files, but I still dont get 3g, only 2g. When I now replace the amss.mbn file (with radio values), it doesnt boots. I have read that this is because the partitions are different, so that is why I am asking you this.
Any ideas?
What would happen if you apply 2.2 amss.mbn on 2.3? If it doesn't work, try to replace the 2.3 libs with 2.2 ones and test again.
I'm only guessing this, so it may not work.
Sent from my U8800
Blefish said:
What would happen if you apply 2.2 amss.mbn on 2.3? If it doesn't work, try to replace the 2.3 libs with 2.2 ones and test again.
I'm only guessing this, so it may not work.
Sent from my U8800
Click to expand...
Click to collapse
Yeah, thats what I did, but it doesnt boots. I think that android is detecting that this file (amss.mbn) is not from this version/device. Thats why I am asking about the partitions. Maybe as I am replacing the amss.mbn file by another, the partition values are wrong somehow, and thats why it is not booting. Or maybe that is because of a md5 (checksum)? Any ideas of how to fix this?
pd: sorry for my bad english
It could be that modem is not booting up, yes. But I am not experienced in the modem part. I believe it's being loaded by the primary bootloader, but I am not sure. It would be easier if we'd know what part of the booting up crashes.
Are there differences in mmcblk0p10 and mmcblk0p11 in the 2.2 and 2.3?
Thank you very much for your help but I finally think the important file here is not the amss.mbn. Maybe it just cant be replaced by another. I think the thing is in the ril libs.. and also in the "rild" file in the bin folder. I am trying to get 3g to work now replacing those files.
here is the topic: http://forum.xda-developers.com/showthread.php?p=23407031#post23407031
Thanks again..

[Q] Hard bricked G2 won't appear in /dev/sdb* on linux

I was trying this to fix a hard-bricked G2 I just recieved:
http://forum.xda-developers.com/showthread.php?t=2582142
The device is in the following state:
No download mode
No recovery mode
Shows qhsusb_bulk in lsusb -v
I don't know much more about it (e.g. I don't know if it was rooted or what type of ROM was on it).
I need to unplug the battery by removing the back cover to have a chance to reboot it. The first boot after that it shows the LG logo, then a blank screen (back lit but no text).
(UPDATE: Pressing the power button 8 seconds also reboots the phone without having to unplug the battery).
When I wire it up to my Arch Linux computer here is what the command `dmesg` shows:
Code:
[ 3693.728255] usb 1-2: new high-speed USB device number 93 using xhci_hcd
[ 3693.901772] usb 1-2: config 1 has an invalid interface number: 20 but max is 1
[ 3693.901784] usb 1-2: config 1 has no interface number 1
[ 3693.903319] usb-storage 1-2:1.20: USB Mass Storage device detected
[ 3693.903868] scsi host843: usb-storage 1-2:1.20
[ 3694.905067] scsi 843:0:0:0: Direct-Access Qualcomm MMC Storage 1.00 PQ: 0 ANSI: 2
[ 3694.906568] sd 843:0:0:0: [sdb] 30777344 512-byte logical blocks: (15.7 GB/14.6 GiB)
[ 3694.906872] sd 843:0:0:0: [sdb] Write Protect is off
[ 3694.906883] sd 843:0:0:0: [sdb] Mode Sense: 0f 0e 00 00
[ 3694.907373] sd 843:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 3694.919101] sdb: sdb1 sdb2 sdb3 sdb4 sdb5 sdb6 sdb7 sdb8 sdb9 sdb10 sdb11 sdb12 sdb13 sdb14 sdb15 sdb16 sdb17 sdb18 sdb19 sdb20 sdb21 sdb22 sdb23 sdb24 sdb25 sdb26 sdb27 sdb28 sdb29 sdb30 sdb31 sdb32 sdb33 sdb34 sdb35 sdb36
[ 3694.923664] sd 843:0:0:0: [sdb] Attached SCSI disk
[ 3695.061360] usb 1-2: USB disconnect, device number 93
[ 3695.065521] sd 843:0:0:0: [sdb] Synchronizing SCSI cache
[ 3695.065552] sd 843:0:0:0: [sdb]
[ 3695.065554] Result: hostbyte=0x01 driverbyte=0x00
[ 3695.065557] sd 843:0:0:0: [sdb] CDB:
[ 3695.065558] cdb[0]=0x28: 28 00
[ 3695.065562] sd 843:0:0:0: [sdb]
[ 3695.065563] Result: hostbyte=0x01 driverbyte=0x00
[ 3695.065565] sd 843:0:0:0: [sdb] CDB:
[ 3695.065566] cdb[0]=0x28:
[ 3695.065567] 00 00 00
[ 3695.065569] 28
[ 3695.065571] 00
[ 3695.065571] 00
[ 3695.065572] 00
[ 3695.065573] 01
[ 3695.065573] 70
[ 3695.065574] 00
[ 3695.065574] 00
[ 3695.065575] 90
[ 3695.065576] 00
[ 3695.065578] end_request: I/O error, dev sdb, sector 368
[ 3695.065579] 80 00 00 f0 00
[ 3695.065582] quiet_error: 134 callbacks suppressed
[ 3695.065583] Buffer I/O error on device sdb, logical block 46
[ 3695.065586] Buffer I/O error on device sdb, logical block 47
[ 3695.065587] Buffer I/O error on device sdb, logical block 48
[ 3695.065589] end_request: I/O error, dev sdb, sector 128
[ 3695.065590] Buffer I/O error on device sdb, logical block 16
[ 3695.065592] Buffer I/O error on device sdb, logical block 49
[ 3695.065594] Buffer I/O error on device sdb, logical block 17
[ 3695.065595] Buffer I/O error on device sdb, logical block 50
[ 3695.065597] Buffer I/O error on device sdb, logical block 51
[ 3695.065598] Buffer I/O error on device sdb, logical block 52
[ 3695.065599] Buffer I/O error on device sdb, logical block 18
[ 3695.065633] sd 843:0:0:0: [sdb]
[ 3695.065636] Result: hostbyte=0x01 driverbyte=0x00
[ 3695.750741] usb 1-2: new high-speed USB device number 94 using xhci_hcd
[ 3695.924146] usb 1-2: config 1 has an invalid interface number: 20 but max is 1
[ 3695.924151] usb 1-2: config 1 has no interface number 1
...
Note the "config 1 has an invalid interface number: 20 but max is 1" error, and all the Buffer I/O errors.
Here is the relevant section of `lsusb -v`
Code:
Bus 001 Device 054: ID 05c6:9006 Qualcomm, Inc.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x05c6 Qualcomm, Inc.
idProduct 0x9006
bcdDevice 0.00
iManufacturer 1 LG Electronics Inc.
iProduct 2 QHSUSB__BULK
iSerial 3 1234567890ABCDEF
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 55
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 2mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 20
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 6 SCSI
bInterfaceProtocol 80 Bulk-Only
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Device Status: 0x0000
(Bus Powered)
Is there anything that could be done to fix these Buffer I/O errors so I can mount the phone (and continue with the FIX tutorial posted above)?
Anyone able to shed some lights on the meaning of these lines would be of great help in my quest of learning how to unbrick my phone.
Note: when connected to the computer the blank screen goes in a repeating cycle of being back lit for 1 second then no backlights for 1 second. The cycle stops (with backlights) when unplugging the phone.
Hello. I've got exactly the same problem, how you already somehow solved the problem?
NECRO:
same problem on a lg device, any input is appreaciated.

XT1254 Free your Turbo! AIO information thread

Lesson learned, head hanging down... Oh well. I tried guy. Either ways that only REINFORCES that we all need to get together and share what we know! Hence this thread:
Time for us to come together and put all of our knowledge together. Every known exploit for our bootloader, kernel, rom, ect needs to be logged in one area. All our partitions / sizes / locations / offsets need to be logged. Any and all information that can be gleamed from out fxz/sbf's need to be logged.
I have my own root exploit I want to work on for 5.0 and below... If that time comes, I'll release that. For now I'll keep this updated
Planned todo in order :
safestrap (Will boost Dev's, makes testing roms a breeze!)
kexec (Now Dev's can start juggling kernels) (maybe even forcefully reduce original kernels memory use) (reclaiming resources?, turning off unneeded original kernels modules ect... why not full hijacking of original kernel? Can you write to ANY memory region? (See graphics buffer vulnerability below.....hmmm 5.0 and under "AIO root / kexc / safestrap"? )
cm kernel (Hopefully a Dev beats me to it, as I have next planned....)
5.0 and below root (via graphics buffer vulnerability) https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-1474
How to backup critical files/partitions
**Just tried this, some partitions/files are assumed to be read protected...
So far, looks like we got data. I'm pretty sure its the kind you'd want if there was a brickfix in the future... sometimes each device has its own signature required for easy brickfix... Mines backed up in three different places already*
http://forum.xda-developers.com/dro...-aio-information-thread-t3138839/post61435029
XT1254 WRITE PROTECT :
if you bothered to read the init.rc files, you'd see that you can hijack the boot system early enough to disable qe if you're bothered by write protection, since this happens on fs stage:
# arrange access to the overlay
exec /system/bin/checknmount -d -s -m -t ext4 -r /overlay/sysupdate /cache/overlay/sysupdate.simg /cache/overlay/sysupdate.jar
# use the overlay, if it is compatible
exec /system/bin/stacker -d -c -r -t overlayfs /system /overlay/sysupdate[/HIDE]
How to copy your /firmware/image/*.* easily. *****Just tried this, some partitions/files are assumed to be read protected...
with efs explorer
copy /firmware/image/ folder to /sdcard/firmware/
with PC in MTP mode copy /image/ folder to PC
So far, looks like we got data. I'm pretty sure its the kind you'd want if there was a brickfix in the future... sometimes each device has its own signature required for easy brickfix... Mines backed up in three different places
List of partitions/files copied : (Remember, I havn't had time to even look further, the first one I opened wasn't blanked out.)
[email protected]:/ $ cd firmware
[email protected]:/firmware $ cd image
[email protected]:/firmware/image $ ls
acdb.mbn
adsp.b00
adsp.b01
adsp.b02
adsp.b03
adsp.b04
adsp.b05
adsp.b06
adsp.b07
adsp.b08
adsp.b10
adsp.b11
adsp.b12
adsp.mbn
adsp.mdt
apps.mbn
bdwlan11.bin
bdwlan20.bin
cmnlib.b00
cmnlib.b01
cmnlib.b02
cmnlib.b03
cmnlib.mdt
dsp2.mbn
efs1.bin
efs2.bin
efs3.bin
isdbtmm.b00
isdbtmm.b01
isdbtmm.b02
isdbtmm.b03
isdbtmm.mdt
keymaster.b00
keymaster.b01
keymaster.b02
keymaster.b03
keymaster.mdt
mba.mbn
otp11.bin
otp20.bin
playready.b00
playready.b01
playready.b02
playready.b03
playready.mdt
prov.b00
prov.b01
prov.b02
prov.b03
prov.mdt
qdsp6sw.mbn
qwlan11.bin
qwlan20.bin
rpm.mbn
sampleapp.b00
sampleapp.b01
sampleapp.b02
sampleapp.b03
sampleapp.mdt
sbl1.mbn
securemm.b00
securemm.b01
securemm.b02
securemm.b03
securemm.mdt
tqs.b00
tqs.b01
tqs.b02
tqs.b03
tqs.mdt
tz.mbn
utf11.bin
utf20.bin
widevine.b00
widevine.b01
widevine.b02
widevine.b03
widevine.mdt
[email protected]:/firmware/image $
Partition Table:
? ? ? Total size flash location partition name size notes:
179 0 30535680 "mmcblk0 " 32GB Flash Chip
179 1 131072 mmcblk0p1 " modem" 0x0000000008000000
179 2 384 "mmcblk0p2 " ? Sbl1 0x0000000000060000
179 3 56 "mmcblk0p3 " ? Sdi 0x000000000000e000
179 4 16 "mmcblk0p4 " sec: 0x0000000000004000
179 5 32 mmcblk0p5 " ddr" 0x0000000000008000
179 6 1024 mmcblk0p6 " aboot" 0x0000000000100000
179 7 256 mmcblk0p7 " rpm" 0x0000000000040000
179 8 512 mmcblk0p8 ? Utags 0x0000000000080000 contains imei, take note of backup partition
179 9 500 mmcblk0p9 ? Tz 0x000000000007d000
179 10 3072 mmcblk0p10 " factorytune1" 0x0000000000300000
179 11 1084 mmcblk0p11 " padA" 0x000000000010f000
179 12 384 mmcblk0p12 sbl1bak: 0x0000000000060000
179 13 1024 mmcblk0p13 " abootBackup" 0x0000000000100000
179 14 256 mmcblk0p14 ?rpmBackup 0x0000000000040000
179 15 512 mmcblk0p15 ? utagsBackup 0x0000000000080000 backup
79 16 500 mmcblk0p16 ? tzBackup 0x000000000007d000
179 17 1024 mmcblk0p17 " mdm1m9kefs1" 0x0000000000100000
179 18 1024 mmcblk0p18 " mdm1m9kefs2" 0x0000000000100000
179 19 2620 mmcblk0p19 " padB" 0x000000000028f000
179 20 2048 mmcblk0p20 " logs" 0x0000000000200000
179 21 32768 mmcblk0p21 " persist" 0x0000000002000000
179 22 256 mmcblk0p22 " mdm1hob" 0x0000000000040000
179 23 32 mmcblk0p23 " mdm1dhob" 0x0000000000008000
179 24 1024 mmcblk0p24 ? Sp 0x0000000000100000
179 25 128 mmcblk0p25 " cid" 0x0000000000020000
179 26 3072 mmcblk0p26 " pds" 0x0000000000300000
179 27 8192 mmcblk0p27 " logo" 0x0000000000800000
179 28 11264 mmcblk0p28 ? Clogo 0x0000000000b00000
179 29 1024 mmcblk0p29 " misc" 0x0000000000100000
179 30 1632 mmcblk0p30 " padC" 0x0000000000198000
179 31 780 mmcblk0p31 " mdm1m9kefs3" 0x00000000000c3000
259 0 1 mmcblk0p32 " mdm1m9kefsc" 0x0000000000000400
259 1 8 mmcblk0p33 ? Ssd 0x0000000000002000
259 2 8192 mmcblk0p34 " kpan" 0x0000000000800000
259 3 16384 mmcblk0p35 " boot" 0x0000000001000000
259 4 16400 mmcblk0p36 " recovery" 0x0000000001004000
259 5 16416 mmcblk0p37 " factorytune2" 0x0000000001008000
259 6 1469392 mmcblk0p38 " cache" 0x0000000059af4000
259 7 3457024 mmcblk0p39 ? System 0x00000000d3000000
259 8 25309056 mmcblk0p40 ? Userdata 0x0000000608be0000
179 32 4096 mmcblk0 rpmb (Replay Protected Memory Block) RPMB is not a regular partition and a different command sequence(CMD6-->CMD23-->CMD25-->CMD23-->CMD18) as mentioned in JEDEC Standard No. 84-A441, is required to access it, then why mmc initialisation code is using the wrong command sequence(CMD6-->CMD23-->CMD18) to access it?
Old Partition table:
(bootloader) sdi.git: git=MBM-NG-V70.47-0-gf291c61
(bootloader) sbl1.git: git=MBM-NG-V70.47-0-ga007c2c
(bootloader) rpm.git: git=MBM-NG-V70.47-0-g66204d2
(bootloader) tz.git: git=MBM-NG-V70.47-0-g4cdbfd4
(bootloader) aboot.git: git=MBM-NG-V70.47-0-gc723802
(bootloader) partition-size:modem: 0x0000000008000000
(bootloader) partition-size:sbl1: 0x0000000000060000
(bootloader) partition-size:sdi: 0x000000000000e000
(bootloader) partition-size:sec: 0x0000000000004000
(bootloader) partition-size:ddr: 0x0000000000008000
(bootloader) partition-size:aboot: 0x0000000000100000
(bootloader) partition-size:rpm: 0x0000000000040000
(bootloader) partition-size:utags: 0x0000000000080000
(bootloader) partition-size:tz: 0x000000000007d000
(bootloader) partition-size:factorytune1: 0x0000000000300000
(bootloader) partition-sizeadA: 0x000000000010f000
(bootloader) partition-size:sbl1bak: 0x0000000000060000
(bootloader) partition-size:abootBackup: 0x0000000000100000
(bootloader) partition-size:rpmBackup: 0x0000000000040000
(bootloader) partition-size:utagsBackup: 0x0000000000080000
(bootloader) partition-size:tzBackup: 0x000000000007d000
(bootloader) partition-size:mdm1m9kefs1: 0x0000000000100000
(bootloader) partition-size:mdm1m9kefs2: 0x0000000000100000
(bootloader) partition-sizeadB: 0x000000000028f000
(bootloader) partition-size:logs: 0x0000000000200000
(bootloader) partition-sizeersist: 0x0000000002000000
(bootloader) partition-size:mdm1hob: 0x0000000000040000
(bootloader) partition-size:mdm1dhob: 0x0000000000008000
(bootloader) partition-size:sp: 0x0000000000100000
(bootloader) partition-size:cid: 0x0000000000020000
(bootloader) partition-sizeds: 0x0000000000300000
(bootloader) partition-size:logo: 0x0000000000800000
(bootloader) partition-size:clogo: 0x0000000000b00000
(bootloader) partition-size:misc: 0x0000000000100000
(bootloader) partition-sizeadC: 0x0000000000198000
(bootloader) partition-size:mdm1m9kefs3: 0x00000000000c3000
(bootloader) partition-size:mdm1m9kefsc: 0x0000000000000400
(bootloader) partition-size:ssd: 0x0000000000002000
(bootloader) partition-size:kpan: 0x0000000000800000
(bootloader) partition-size:boot: 0x0000000001000000
(bootloader) partition-size:recovery: 0x0000000001004000
(bootloader) partition-size:factorytune2: 0x0000000001008000
(bootloader) partition-size:cache: 0x0000000059af4000
(bootloader) partition-size:system: 0x00000000d3000000
(bootloader) partition-size:userdata: 0x0000000608be0000
cat_/proc/partitions
Start_______End address_____major__minor__#blocks_____name____partition name
?0x?0?0?0?0__0x?0?0?0?0?___179_____0___30535680__mmcblk0
?0x?0?0?0?0__0x?0?0?0?0?___179_____1_____131072__mmcblk0p1 modem
?0x?0?0?0?0__0x?0?0?0?0?___179_____2_____384__mmcblk0p2 sbl1
?0x?0?0?0?0__0x?0?0?0?0?___179_____3______56__mmcblk0p3 sdi
?0x?0?0?0?0__0x?0?0?0?0?___179_____4______16__mmcblk0p4 sec
?0x?0?0?0?0__0x?0?0?0?0?___179_____5______32__mmcblk0p5 ddr
?0x?0?0?0?0__0x?0?0?0?0?___179_____6____1024__mmcblk0p6 aboot
?0x?0?0?0?0__0x?0?0?0?0?___179_____7_____256__mmcblk0p7 rpm
?0x?0?0?0?0__0x?0?0?0?0?___179_____8_____512__mmcblk0p8 utags
?0x?0?0?0?0__0x?0?0?0?0?___179_____9_____500__mmcblk0p9 tz
?0x?0?0?0?0__0x?0?0?0?0?___179____10____3072__mmcblk0p10 factorytune1
?0x?0?0?0?0__0x?0?0?0?0?___179____11____1084__mmcblk0p11 padA
?0x?0?0?0?0__0x?0?0?0?0?___179____12_____384__mmcblk0p12 sbl1bak
?0x?0?0?0?0__0x?0?0?0?0?___179____13____1024__mmcblk0p13 abootBackup
?0x?0?0?0?0__0x?0?0?0?0?___179____14_____256__mmcblk0p14 rpmBackup
?0x?0?0?0?0__0x?0?0?0?0?___179____15_____512__mmcblk0p15 utagsBackup
?0x?0?0?0?0__0x?0?0?0?0?___179____16_____500__mmcblk0p16 tzBackup
?0x?0?0?0?0__0x?0?0?0?0?___179____17____1024__mmcblk0p17 mdm1m9kefs1
?0x?0?0?0?0__0x?0?0?0?0?___179____18____1024__mmcblk0p18 mdm1m9kefs2
?0x?0?0?0?0__0x?0?0?0?0?___179____19____2620__mmcblk0p19 padB
?0x?0?0?0?0__0x?0?0?0?0?___179____20____2048__mmcblk0p20 logs
?0x?0?0?0?0__0x?0?0?0?0?___179____21___32768__mmcblk0p21 persist
?0x?0?0?0?0__0x?0?0?0?0?___179____22_____256__mmcblk0p22 mdm1hob
?0x?0?0?0?0__0x?0?0?0?0?___179____23______32__mmcblk0p23 mdm1dhob
?0x?0?0?0?0__0x?0?0?0?0?___179____24____1024__mmcblk0p24 sp
?0x?0?0?0?0__0x?0?0?0?0?___179____25_____128__mmcblk0p25 cid
?0x?0?0?0?0__0x?0?0?0?0?___179____26____3072__mmcblk0p26 pds
?0x?0?0?0?0__0x?0?0?0?0?___179____27____8192__mmcblk0p27 logo
?0x?0?0?0?0__0x?0?0?0?0?___179____28___11264__mmcblk0p28 clogo
?0x?0?0?0?0__0x?0?0?0?0?___179____29____1024__mmcblk0p29 misc
?0x?0?0?0?0__0x?0?0?0?0?___179____30____1632__mmcblk0p30 padC
?0x?0?0?0?0__0x?0?0?0?0?___179____31_____780__mmcblk0p31 mdm1m9kefs3
?0x?0?0?0?0__0x?0?0?0?0?___259_____0_______1__mmcblk0p32 mdm1m9kefsc
?0x?0?0?0?0__0x?0?0?0?0?___259_____1_______8__mmcblk0p33 ssd
?0x?0?0?0?0__0x?0?0?0?0?___259_____2____8192__mmcblk0p34 kpan
?0x?0?0?0?0__0x?0?0?0?0?___259_____3___16384__mmcblk0p35 boot
?0x?0?0?0?0__0x?0?0?0?0?___259_____4___16400__mmcblk0p36 recovery
?0x?0?0?0?0__0x?0?0?0?0?___259_____5___16416__mmcblk0p37 factorytune2
?0x?0?0?0?0__0x?0?0?0?0?___259____6__1469392__mmcblk0p38 cache
?0x?0?0?0?0__0x?0?0?0?0?___259____7__3457024__mmcblk0p39 system
?0x?0?0?0?0__0x?0?0?0?0?___259____8_25309056__mmcblk0p40 userdata
?0x?0?0?0?0__0x?0?0?0?0?___179____32____4096__mmcblk0rpmb *"protected data"
* The "RPMB partition is special and can not be accessed
by normal eMMC read / write CMDs". It will cause a kernel error, buffer I/O error"
BOOTLOADER:
Aboot:
Snaipersky said:
interesting stuff regarding ABOOT. newandroidbook.com/Articles/aboot.html?s. I have a Dev MX13, so I'm just here for ideological reasons.
As I understand it, the Turbo's WP is handled by ABOOT. Now, Moto has a bad habit of altering the bootloader so that downgrading is infeasible, and increments it. So it is possible to alter ABOOT.
According to NAB, most of the time (barring cases such as Samsung and Amazon, so we shouldn't have an issue- SHOULD being key) This is secured by a signature check rather than hashing, and the signature is of a fixed size.
One can retrieve the signed image, and if rooted, retrieve the image, sans-signature. Now, if we have the file with and without the signature, could one not create a WP-less, unsigned ABOOT, and then manually paste the signature (Forge it?) in front of it? It would be binary editing, Which I think would be the main challenge.
Could we daisychain this with MoFo to create an effective bootloader unlock? It would be a rootable, system flashable, and without WP, should be able to take a custom recovery.
I may be talking out my *** here, but just my understanding of things.
Click to expand...
Click to collapse
do some disassembly of tz.mbn and find a vulnerability to be able to blow the unlocking qfuse (assuming the device isn't permalocked by SBD_EN qfuse Moto uses)
a known bootloader exploit:
version: MBM-NG-V70.47-0-gcXXXXXX
https://www.codeaurora.org/projects...unds-checking-when-flashing-sparse-images-cve
KNOWN VULNERABILITIES :
bypass's intended restrictions on cryptographic operations, via a long key name:
https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2014-3100 -?? patched already?
https://www.exploit-db.com/docs/33864.pdf - ?? patched already?
Graphics buffer vulnerability :
https://packetstormsecurity.com/files/130778/Google-Android-Integer-Oveflow-Heap-Corruption.html
http://seclists.org/fulldisclosure/2015/Mar/63
https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-1474
Safestrap :
safestrap/kexec. Safestrap can be changed to "reuse" certain existing partitions or emulate any of them.
/cache 2.3mb used......... 1.36GB FREE! can be used for /system
/firmware 77mb used ...... 45MB FREE! can be used for /cache
start by being able to load /system on to /cache
then look deeper into partitions for another one
or
go the create a Xgb file on the data partition and load it as a data partition
reserved for kexec
HARDWARE:
[/HIDE]Hardware-ish:
https://www.codeaurora.org/cgit/qui...r&id=82117399ba17ea60b7f771c641ff5b1c9283bdc9
https://www.codeaurora.org/cgit/qui...r&id=82117399ba17ea60b7f771c641ff5b1c9283bdc9
https://www.codeaurora.org/cgit/qui...r&id=82117399ba17ea60b7f771c641ff5b1c9283bdc9
https://www.codeaurora.org/cgit/qui...r&id=82117399ba17ea60b7f771c641ff5b1c9283bdc9
https://www.codeaurora.org/cgit/qui...=AU_LINUX_ANDROID_JB_3.2.1.3.04.03.00.176.156
http://forum.xda-developers.com/showthread.php?t=1914359
https://gitlab.com/k2wl/g2_kernel/commit/c3bbe60c733a17a2295241b558d8162b4c782154?view=parallel
http://forum.xda-developers.com/showthread.php?t=2136738
http://forum.xda-developers.com/showthread.php?t=1235219
https://github.com/dtsinc/DTS-Eagle...ob/master/arch/arm/boot/dts/qcom/apq8084.dtsi
http://pastebin.com/tX06Yp3q
http://forum.gsmhosting.com/vbb/f609/atf-drive-v12-30-update-19-may-2015-a-937102/index5.html
http://forum.xda-developers.com/showthread.php?t=1914359
http://faq.riffbox.org/content/10/5...emmc-efi_pit_mbr_ebr-partitioning-plugin.html
Qualcomm APQ8084 TLMM block
This binding describes the Top Level Mode Multiplexer block found in the
MSM8960 platform.
Please refer to ../gpio/gpio.txt and ../interrupt-controller/interrupts.txt for
a general description of GPIO and interrupt bindings.
Please refer to pinctrl-bindings.txt in this directory for details of the
common pinctrl bindings used by client devices, including the meaning of the
phrase "pin configuration node".
The pin configuration nodes act as a container for an arbitrary number of
subnodes. Each of these subnodes represents some desired configuration for a
pin, a group, or a list of pins or groups. This configuration can include the
mux function to select on those pin(s)/group(s), and various pin configuration
parameters, such as pull-up, drive strength, etc.
PIN CONFIGURATION NODES:
The name of each subnode is not important; all subnodes should be enumerated
and processed purely based on their content.
Each subnode only affects those parameters that are explicitly listed. In
other words, a subnode that lists a mux function but no pin configuration
parameters implies no information about any pin configuration parameters.
Similarly, a pin subnode that describes a pullup parameter implies no
information about e.g. the mux function.
The following generic properties as defined in pinctrl-bindings.txt are valid
to specify in a pin configuration subnode:
- pins:
Usage: required
Value type: <string-array>
Definition: List of gpio pins affected by the properties specified in
this subnode. Valid pins are:
gpio0-gpio146,
sdc1_clk,
sdc1_cmd,
sdc1_data
sdc2_clk,
sdc2_cmd,
sdc2_data
- function:
Usage: required
Value type: <string>
Definition: Specify the alternative function to be configured for the
specified pins. Functions are only valid for gpio pins.
Valid values are:
adsp_ext, audio_ref, blsp_i2c1, blsp_i2c2, blsp_i2c3,
blsp_i2c4, blsp_i2c5, blsp_i2c6, blsp_i2c7, blsp_i2c8,
blsp_i2c9, blsp_i2c10, blsp_i2c11, blsp_i2c12,
blsp_spi1, blsp_spi2, blsp_spi3, blsp_spi4, blsp_spi5,
blsp_spi6, blsp_spi7, blsp_spi8, blsp_spi9, blsp_spi10,
blsp_spi11, blsp_spi12, blsp_uart1, blsp_uart2, blsp_uart3,
blsp_uart4, blsp_uart5, blsp_uart6, blsp_uart7, blsp_uart8,
blsp_uart9, blsp_uart10, blsp_uart11, blsp_uart12,
blsp_uim1, blsp_uim2, blsp_uim3, blsp_uim4, blsp_uim5,
blsp_uim6, blsp_uim7, blsp_uim8, blsp_uim9, blsp_uim10,
blsp_uim11, blsp_uim12, cam_mclk0, cam_mclk1, cam_mclk2,
cam_mclk3, cci_async, cci_async_in0, cci_i2c0, cci_i2c1,
cci_timer0, cci_timer1, cci_timer2, cci_timer3, cci_timer4,
edp_hpd, gcc_gp1, gcc_gp2, gcc_gp3, gcc_obt, gcc_vtt,i
gp_mn, gp_pdm0, gp_pdm1, gp_pdm2, gp0_clk, gp1_clk, gpio,
hdmi_cec, hdmi_ddc, hdmi_dtest, hdmi_hpd, hdmi_rcv, hsic,
ldo_en, ldo_update, mdp_vsync, pci_e0, pci_e0_n, pci_e0_rst,
pci_e1, pci_e1_rst, pci_e1_rst_n, pci_e1_clkreq_n, pri_mi2s,
qua_mi2s, sata_act, sata_devsleep, sata_devsleep_n,
sd_write, sdc_emmc_mode, sdc3, sdc4, sec_mi2s, slimbus,
spdif_tx, spkr_i2s, spkr_i2s_ws, spss_geni, ter_mi2s, tsif1,
tsif2, uim, uim_batt_alarm
- bias-disable:
Usage: optional
Value type: <none>
Definition: The specified pins should be configued as no pull.
- bias-pull-down:
Usage: optional
Value type: <none>
Definition: The specified pins should be configued as pull down.
- bias-pull-up:
Usage: optional
Value type: <none>
Definition: The specified pins should be configued as pull up.
- output-high:
Usage: optional
Value type: <none>
Definition: The specified pins are configured in output mode, driven
high.
Not valid for sdc pins.
- output-low:
Usage: optional
Value type: <none>
Definition: The specified pins are configured in output mode, driven
low.
Not valid for sdc pins.
- drive-strength:
Usage: optional
Value type: <u32>
Definition: Selects the drive strength for the specified pins, in mA.
Valid values are: 2, 4, 6, 8, 10, 12, 14 and 16
Example:
tlmm: [email protected] {
compatible = "qcom,apq8084-pinctrl";
reg = <0xfd510000 0x4000>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
interrupts = <0 208 0>;
uart2: uart2-default {
mux {
pins = "gpio4", "gpio5";
function = "blsp_uart2";
};
tx {
pins = "gpio4";
drive-strength = <4>;
bias-disable;
};
rx {
pins = "gpio5";
drive-strength = <2>;
bias-pull-up;
};
};
};
APQ Memory... This may or may not match, as it was not pulled off a turbo.
soc: soc { };
memory {
#address-cells = <2>;
#size-cells = <2>;
qsecom_mem: [email protected] {
linux,reserve-contiguous-region;
reg = <0 0 0 0x1100000>;
label = "qseecom_mem";
};
secure_mem: [email protected] {
linux,reserve-contiguous-region;
reg = <0 0 0 0xfc00000>;
label = "secure_mem";
};
tz_apps_and_debug_mem: [email protected] {
linux,reserve-contiguous-region;
linux,reserve-region;
linux,remove-completely;
reg = <0x0 0xd400000 0x0 0x700000>;
label = "tz_apps_and_debug_mem";
};
peripheral_mem: [email protected] {
linux,reserve-contiguous-region;
linux,reserve-region;
linux,remove-completely;
reg = <0x0 0x0db00000 0x0 0x1d00000>;
label = "peripheral_mem";
};
external_image_mem: [email protected] {
linux,reserve-contiguous-region;
linux,reserve-region;
linux,remove-completely;
reg = <0x0 0x0f800000 0x0 0x800000>;
label = "external_image_mem";
};
};
};
reserved for qualcomm download mode and recovery / backdoor flashing info
www.github.com/jcsullins/qdloader
http://forum.xda-developers.com/showthread.php?t=2136738
RANDOM INFO :
USB:
ProductID's the XT1254 can present:
VendorID 22b8 (Motorola, this never changes)
ProductID
2ea4 - MTP mode, software install Off
2ea5 - MTP mode, USB debugging on
2ea6 - PTP mode
2ea7 - PTP mode, USB debugging on
2ea8 - MTP mode, software install On
2e24 - MTP mode, with USB tethering active
NOTE: It is not possible to enable software install in PTP mode, or with USB debugging turned on.
For Google to find them together: VIDID 22b8:2ea4 22b8:2ea5 22b8:2ea6 22b8:2ea7 22b8:2ea8
Credit : http://jamesmcrow.com/node/11
Just in case you need another post reserved - let me know and I can transfer this one to you.......
jerdog said:
Just in case you need another post reserved - let me know and I can transfer this one to you.......
Click to expand...
Click to collapse
Hey, I plan on making this a MONSTER thread of information... I WILL work on this phone like I did the ms910. I can only find faint hints on xda that I ever even owned the phone... I still have this though :
http://androidforums.com/threads/de...esteem-4g-lg-ms910.722075/page-3#post-5867057
and this :
https://github.com/saschaelble?tab=repositories
This will be my :
RANDOM INFO TO BE DIGESTED,
http://lwn.net/Articles/600110/ -hardware?
https://github.com/razrqcom-dev-team/android_device_motorola_quark -cm12 kernel github for xt1225!!
https://www.google.com/search?q=mmcblk0 rpmb&ie=utf-8&oe=utf-8
http://www.digitalinternals.com/mobile/android-mmc-mmcblk-partition-layout/259/
https://forums.oneplus.net/threads/solution-how-i-recovered-my-oneplus-one-from-hard-brick.184927/
http://forum.xda-developers.com/showthread.php?p=50336648#post50336648
https://github.com/gokulnatha/GT-I9...ation/devicetree/bindings/ocmem/msm-ocmem.txt
https://github.com/dtsinc/DTS-Eagle...ob/master/arch/arm/boot/dts/qcom/apq8084.dtsi
https://www.google.com/search?q=emmc_appsboot.mbn&ie=utf-8&oe=utf-8
I have finished unbrick for Motorola Droid Turbo, if I understand you correctly.
http://forum.xda-developers.com/droid-turbo/general/turbo-unbrick-t3139811
Continuing to peddle your warez and hacked up nonsense, even via PM, has earned you a nice vacation. Closing thread.

How to resize a partition table ?

I'm trying to fix my messed up partition table in my Meizu 5 PRO for Ubuntu Touch installation.
Using ADB and fdisk I've managed to get this print out:
Code:
~ # fdisk /dev/block/sda
Note: sector size is 4096 (not 512)
Found valid GPT with protective MBR; using GPT
Command (m for help): p
Disk /dev/block/sda: 122142720 sectors, 1984M
Logical sector size: 4096
Disk identifier (GUID): 00042021-0408-4601-9dcc-a8c51255994f
Partition table holds up to 128 entries
First usable sector is 6, last usable sector is 15267834
Number Start (sector) End (sector) Size Code Name
1 1024 1279 1024K 0700 private
2 1280 1343 256K 0700 proinfo
3 1344 1407 256K 0700 misc
21 2048 3071 4096K 0700 param
22 3072 5119 8192K 0700 efs
23 5120 5631 2048K 0700 pnv
24 5632 6655 4096K 0700 ldfw
25 6656 7679 4096K 0700 dtb
26 7680 13823 24.0M 0700 bootimg
27 13824 22015 32.0M 0700 recovery
28 22016 30207 32.0M 0700 bootlogo
29 30208 35327 20.0M 0700 rstinfo
30 35328 40447 20.0M 0700 mnv
31 40448 45567 20.0M 0700 reserved1
32 45568 50687 20.0M 0700 reserved2
33 50688 55807 20.0M 0700 reserved3
41 65536 720895 2560M 0700 system
42 720896 851967 512M 0700 custom
43 851968 15267834 [B]54.9G 0700 cache[/B]
44 55808 65535 [B]38.0M 0700 userdata[/B]
I bolded partitions in question. Cache is taking up all the storage whereas "userdata" gets only 38MB. I need to resize "userdata" partition to take up most of the storage and leave about 2 GB for cache. I noticed cache partition is formatted in ext4 and "userdata" is vfat.
option "d" selects partition 1 for some reason.
after running
Code:
disk /dev/block/sda43
(which is the partition with 60GB) I get:
Code:
Command (m for help): p
Disk /dev/block/sda43: 59.0 GB, 59047391232 bytes
64 heads, 32 sectors/track, 7038 cylinders
Units = cylinders of 2048 * 4096 = 8388608 bytes
Device Boot Start End Blocks Id System
Someone more experienced, can you guide me ? I don't wanna mess it up more than it is.
Thank you in advance.
Update:
Have learned that the best tool for resizing a filesystem is resize2fs thus I ran:
Code:
~ # resize2fs /dev/block/sda43 1G
However even after resizing the filesystem to 1GB I still get:
Code:
43 851968 15267834 [B]54.9G 0700 cache[/B]
Shouldn't it be reading 1GB now ???
Oh boy. Maybe parts of this guide could help you:
https://forum.xda-developers.com/meizu-pro-5/how-to/tutorial-how-to-upgrade-to-ubuntu-touch-t4021397
You *need* the correct fdisk version for this, as stated in the guide.
Do not just copy the bold parts. Sectors for your current table are below the next code box):
Code:
Command (m for help): d
Partition number (1-3,21-33,43,44, default 44): 43
Partition 43 has been deleted
Command (m for help): d
Partition number (1-3,21-33,44, default 44): 44
Partition 44 has been deleted.
Command (m for help): n
Partition number (4-20,34-40,43-128, default 4): 43
First sector (6-15267834, default 1769472): [B]1769472[/B]
Last sector, +sectors or +size{K,M,G,T,P} (1769472-15267834, default 15267834): [B]2293775[/B]
Created a new partition 43 of type 'Linux filesystem' and of size 2 GiB.
Command (m for help): n
Partition number (4-20,34-40,44-128, default 4): 44
First sector (6-15267834, default 2294016): [B]2293776[/B]
Last sector, +sectors or +size{K,M,G,T,P} (2293776-15267834, default 15267834): [B]15267824[/B]
Created a new partition 44 of type 'Linux filesystem' and of size 49.5 GiB.
When creating partition 43 sector should be first 851969 - last 1376271 for 2GB cache
and for partition 44 first 1376272 - last 15267824 to assign the remaining space to userdata.
Next change the partition types to "Microsoft basic data"
Code:
Command (m for help): t
Partition number (1-3,21-33,41-44, default 44): 43
Partition type (type L to list all types): 11
Changed type of partition 'Linux filesystem' to 'Microsoft basic data'.
Command (m for help): t
Partition number (1-3,21-33,41-44, default 44): 44
Partition type (type L to list all types): 11
Changed type of partition 'Linux filesystem' to 'Microsoft basic data'.
Check again with "p", if the types are correct. If not, search correct type number with "t" and "L" and try again.
Afterwards, you need to continue to give the partitions names:
Code:
Command (m for help): x
Expert command (m for help): n
Partition number (1-3,21-33,41-44, default 44): 43
New name: cache
Partition number (1-3,21-33,41-44, default 44): 44
New name: userdata
Expert command (m for help): r
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
If the table has been successfully altered, you can now continue to install the filesystem:
Code:
~ # mke2fs -t ext4 -m 0 /dev/block/sda43
~ # mke2fs -t ext4 -m 0 /dev/block/sda44
This should fix your current dilemma. Its a lengthy guide and if you actually want the most recent ubuntu touch you might as well do it completely, resizing your system partition too. In that case ignore above changes.

Categories

Resources