[Hardware Hacking General] E:V:A:
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.

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>

[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:

[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:

[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...