Sonim XP8 (Root?)

Search This thread

smokeyou

Senior Member
Dec 27, 2008
64
20
XP8800 image I only have the Images_XP8A_USC-userdebug version here.

Dude no way.. Can you send me this? I modified the XP8 flash tool to eliminate server authentication - we can apply this with ease!

Userdebug is really the right way to achieve root :).

Magisk is cool depending on the case however I would personally rather keep su isolated to adb root. I managed to compile a partially working gsi-pie userdebug image however I couldn't manage to get the radio working so I abandoned that effort. This image of yours may just help to solve many things!!
 
Last edited:

eleotk

Senior Member
Apr 3, 2014
117
42
Dude no way.. Can you send me this? I modified the XP8 flash tool to eliminate server authentication - we can apply this with ease!

Userdebug is really the right way to achieve root :).

Magisk is cool depending on the case however I would personally rather keep su isolated to adb root. I managed to compile a partially working gsi-pie userdebug image however I couldn't manage to get the radio working so I abandoned that effort. This image of yours may just help to solve many things!!

This is an old version link https://drive.google.com/file/d/1vTuis5V9vaIDqaazIUSucPRXqS2-RyOC/view

---------- Post added at 12:17 PM ---------- Previous post was at 12:12 PM ----------

Dude no way.. Can you send me this? I modified the XP8 flash tool to eliminate server authentication - we can apply this with ease!

Userdebug is really the right way to achieve root :).

Magisk is cool depending on the case however I would personally rather keep su isolated to adb root. I managed to compile a partially working gsi-pie userdebug image however I couldn't manage to get the radio working so I abandoned that effort. This image of yours may just help to solve many things!!

XP5S image can be uploaded to google disk?BT Download No resources
 

smokeyou

Senior Member
Dec 27, 2008
64
20
This is an old version link https://drive.google.com/file/d/1vTuis5V9vaIDqaazIUSucPRXqS2-RyOC/view

---------- Post added at 12:17 PM ---------- Previous post was at 12:12 PM ----------



XP5S image can be uploaded to google disk?BT Download No resources

It hasn't seeded out yet but should be available. My wimpy google drive is full. It should go once the servers have bandwidth. If not ill have to figure out another way to send it over after work here.

This is a great file set! I'll plan to review in greater detail as I believe this will allow others to unlock the bootloader. Unlocking is not not really required nor useful currently however it may help with some of the gsi efforts.

Sonim included a handy backdoor. If you have the XP8 flash tool for this file set then we can try the following..

1. Prevent server communication by adding a hosts file entry
sonimexperiance.com 127.0.0.1
2. Create testlogin.txt within the XP8 flash tool install directory
Code:
{"status":"success","message":"1 successfully logged in","name":"1","activetabs":["download_tool","qcn_backup_restore"],"carriers":["00"],"multi_carrier":true,"phone_model":["8A"],"edl_user":"Yes","emc":"Yes","carrier_list":{"00":"Generic","10":"AT&T","11":"Bell","12":"Telus","13":"Sasktel","14":"Harris","15":"Verizon","16":"Ecom","17":"NAM","18":"Rogers","19":"T-Mobile","20":"EU Generic","21":"MSI","22":"CISCO","23":"NAM Public Safety","24":"Vodafone Global","25":"Orange","26":"Southern Linc","27":"OPTIO","28":"India","29":"SPRINT","30":"JVCK","31":"AUSTRALIA","32":"ACG","33":"CSPHIRE","34":"US-Cellular","multi_carrier":"Multi Carrier"}}
3. Launch flash tool and login with Username=1 / Password=1

The flashtool seems to be a UI front end for invoking methods defined within Qualcomm library's. It's very basic essentially so I have been avoiding it until now but it may be a good option for this debug image so I wanted to share what I know so far.
 
Last edited:

eleotk

Senior Member
Apr 3, 2014
117
42
It hasn't seeded out yet but should be available. My wimpy google drive is full and I personally avoid malware carriers such as androidfilehost. It should go once the servers have bandwidth. If not ill have to figure out another way to send it over after work here.

This is a great file set! I'll plan to review in greater detail as I believe this will allow others to unlock the bootloader. Unlocking is not not really required nor useful currently however it may help with some of the gsi efforts.

Sonim included a handy backdoor. If you have the XP8 flash tool for this file set then we can try the following..

1. Prevent server communication by adding a hosts file entry
sonimexperiance.com 127.0.0.1
2. Create testlogin.txt within the XP8 flash tool install directory
Code:
{"status":"success","message":"1 successfully logged in","name":"1","activetabs":["download_tool","qcn_backup_restore"],"carriers":["00"],"multi_carrier":true,"phone_model":["8A"],"edl_user":"Yes","emc":"Yes","carrier_list":{"00":"Generic","10":"AT&T","11":"Bell","12":"Telus","13":"Sasktel","14":"Harris","15":"Verizon","16":"Ecom","17":"NAM","18":"Rogers","19":"T-Mobile","20":"EU Generic","21":"MSI","22":"CISCO","23":"NAM Public Safety","24":"Vodafone Global","25":"Orange","26":"Southern Linc","27":"OPTIO","28":"India","29":"SPRINT","30":"JVCK","31":"AUSTRALIA","32":"ACG","33":"CSPHIRE","34":"US-Cellular","multi_carrier":"Multi Carrier"}}
3. Launch flash tool and login with Username=1 / Password=1

The flashtool seems to be a UI front end for invoking methods defined within Qualcomm library's. It's very basic essentially so I have been avoiding it until now but it may be a good option for this debug image so I wanted to share what I know so far.

SONIM xp8 upgrade tool I am always looking for


XP8 image download tool QPST can be used directly, I have been using QPST to download to XP5 XP7 XP8
Hi XP5S XP8800 link no resources available

QPST can also unlock mobile radio via QCN


The segmented graphics that are pulled out can be generated by XML after a total file is parsed and then modified by the decomposition tool. After the new file is segmented by XML, QPST can be downloaded.


Can XP5S elf XML four files be uploaded?
 

smokeyou

Senior Member
Dec 27, 2008
64
20
SONIM xp8 upgrade tool I am always looking for


XP8 image download tool QPST can be used directly, I have been using QPST to download to XP5 XP7 XP8
Hi XP5S XP8800 link no resources available

QPST can also unlock mobile radio via QCN


The segmented graphics that are pulled out can be generated by XML after a total file is parsed and then modified by the decomposition tool. After the new file is segmented by XML, QPST can be downloaded.


Can XP5S elf XML four files be uploaded?

I'm unable to make a lot of since of what your trying to say here but I think we are on the same page at least. Functionally the method works great as this how Sonim does it however practically for a backup scenario this will generate a few hundred files more then you actually need while skipping over critical sectors :).

QPST or tools included within the suite such as QFil work very similarly. If you look at the XP8 flash tool - it's basically just a Sonim branded wrapper around the same Qualcomm library's used under the QPST suite.

Prior to XML conversion, the parsed GPT looks like this.. Sonim factory images like the one here only cover the chunks they need essentially.
Code:
-----------------------
------Header Info------
-----------------------
# of Entries      72
Signature:        6075990659671082565
HeaderSize:       92
HeaderCRC32:      589562360
ArrayCRC32:       3800902740
MyLBA:            1
AlternateLBA:     122142719
PartitionEntryLBA:2
FirstUsableLBA:   34
LastUsableLBA:    122142686
DiskGUID_higher:  7860749167125229759
DiskGUID_lower:   541926384889619150

-----------------------
----Partition Info-----
-----------------------
Entry Number:       0
PartitionName:      xbl_a
Attributes:         1172061803023171584
UniquePartitionGUID:4484B5B7D865CB69CF0F54C5BE34C851
PartitionTypeGUID:  DEA0BA2CCBDD4805B4F9F428251C3E98
StartSector:        131072
EndSector:          138239
SectorCount:        7168

Entry Number:       1
PartitionName:      xbl_b
Attributes:         1152921504606846976
UniquePartitionGUID:2BC5464E748F13DBD5E985E087EEAA45
PartitionTypeGUID:  77036CD403D542BB8ED137E5A88BAA34
StartSector:        138240
EndSector:          145407
SectorCount:        7168

Entry Number:       2
PartitionName:      tz_a
Attributes:         1172061803023171584
UniquePartitionGUID:F1BA22F467353B384DECB237648A4DAF
PartitionTypeGUID:  A053AA7F40B84B1CBA082F68AC71A4F4
StartSector:        145408
EndSector:          153599
SectorCount:        8192

Entry Number:       3
PartitionName:      tz_b
Attributes:         1152921504606846976
UniquePartitionGUID:A763C81E365A1F3F5DF4CD78C90B219F
PartitionTypeGUID:  77036CD403D542BB8ED137E5A88BAA34
StartSector:        153600
EndSector:          161791
SectorCount:        8192

Entry Number:       4
PartitionName:      rpm_a
Attributes:         1172061803023171584
UniquePartitionGUID:F41C1A242EA5EB499C655A3C7849E6EA
PartitionTypeGUID:  098DF793D712413D9D4E89D711772228
StartSector:        161792
EndSector:          162815
SectorCount:        1024

Entry Number:       5
PartitionName:      rpm_b
Attributes:         1152921504606846976
UniquePartitionGUID:9C7D2E0D9DF21271BCF59B30483B102F
PartitionTypeGUID:  77036CD403D542BB8ED137E5A88BAA34
StartSector:        162816
EndSector:          163839
SectorCount:        1024

Entry Number:       6
PartitionName:      hyp_a
Attributes:         1172061803023171584
UniquePartitionGUID:B2BF9289790336DED70840A5BD9E584E
PartitionTypeGUID:  E1A6A6890C8D4CC6B4E855A4320FBD8A
StartSector:        163840
EndSector:          164863
SectorCount:        1024

Entry Number:       7
PartitionName:      hyp_b
Attributes:         1152921504606846976
UniquePartitionGUID:66126601E5DB4EF54F570CA629799C76
PartitionTypeGUID:  77036CD403D542BB8ED137E5A88BAA34
StartSector:        164864
EndSector:          165887
SectorCount:        1024

Entry Number:       8
PartitionName:      pmic_a
Attributes:         1172061803023171584
UniquePartitionGUID:00183D0361E38A4859B4BC5A921F65A8
PartitionTypeGUID:  C00EEF24770943D69799DD2B411E7A3C
StartSector:        165888
EndSector:          166911
SectorCount:        1024

Entry Number:       9
PartitionName:      pmic_b
Attributes:         1152921504606846976
UniquePartitionGUID:AD94DE481B30EB47394C29E8A101FC0E
PartitionTypeGUID:  77036CD403D542BB8ED137E5A88BAA34
StartSector:        166912
EndSector:          167935
SectorCount:        1024

Entry Number:       10
PartitionName:      fsg
Attributes:         1152921504606846976
UniquePartitionGUID:D17E31B85AFF4E0A7F9795BFA062AAED
PartitionTypeGUID:  638FF8E222C9E33B8F5D0E81686A68CB
StartSector:        167936
EndSector:          172031
SectorCount:        4096

Entry Number:       11
PartitionName:      boot_a
Attributes:         33495522228568064
UniquePartitionGUID:35F6A5CAF83D2A02FEA4FE3829507AE9
PartitionTypeGUID:  20117F86E9854357B9EE374BC1D8487D
StartSector:        262144
EndSector:          393215
SectorCount:        131072

Entry Number:       12
PartitionName:      boot_b
Attributes:         0
UniquePartitionGUID:34146781ABAF544D73B0C60992991A16
PartitionTypeGUID:  77036CD403D542BB8ED137E5A88BAA34
StartSector:        393216
EndSector:          524287
SectorCount:        131072

Entry Number:       13
PartitionName:      system_a
Attributes:         19140298416324608
UniquePartitionGUID:03D951970B4C82F2E18E50494F7DF348
PartitionTypeGUID:  97D7B01154DA4835B3C4917AD6E73D74
StartSector:        524288
EndSector:          8912895
SectorCount:        8388608

Entry Number:       14
PartitionName:      system_b
Attributes:         0
UniquePartitionGUID:D268C33C06054E69154612A4A09B9615
PartitionTypeGUID:  77036CD403D542BB8ED137E5A88BAA34
StartSector:        8912896
EndSector:          17301503
SectorCount:        8388608

Entry Number:       15
PartitionName:      vendor_a
Attributes:         1172061803023171584
UniquePartitionGUID:59F1157105A6234926D6694E53399D87
PartitionTypeGUID:  97D7B01154DA4835B3C4917AD6E73D74
StartSector:        17301504
EndSector:          19398655
SectorCount:        2097152

Entry Number:       16
PartitionName:      vendor_b
Attributes:         1152921504606846976
UniquePartitionGUID:DE1C3DC592719CD9FBC72E8E29DB0DDB
PartitionTypeGUID:  77036CD403D542BB8ED137E5A88BAA34
StartSector:        19398656
EndSector:          21495807
SectorCount:        2097152

Entry Number:       17
PartitionName:      oem_a
Attributes:         1154047404513689600
UniquePartitionGUID:D10B3B9617493B2AC46E52F8CB1AA877
PartitionTypeGUID:  9F1088E080E949718A01E41F8A5125F5
StartSector:        21495808
EndSector:          22544383
SectorCount:        1048576

Entry Number:       18
PartitionName:      oem_b
Attributes:         1152921504606846976
UniquePartitionGUID:5BD858D79751454B85CE2A4CFE76EC1B
PartitionTypeGUID:  7F75A567CF614E54A5BA46C724058B38
StartSector:        22544384
EndSector:          23592959
SectorCount:        1048576

Entry Number:       19
PartitionName:      keymaster_a
Attributes:         1172061803023171584
UniquePartitionGUID:C39101EDA3E8DC59872A410DB6B75AFC
PartitionTypeGUID:  A11D2A7CD82A4C2F8A011805240E6626
StartSector:        23592960
EndSector:          23595007
SectorCount:        2048

Entry Number:       20
PartitionName:      keymaster_b
Attributes:         1152921504606846976
UniquePartitionGUID:5BF8F4C06949214690F55D3326436235
PartitionTypeGUID:  77036CD403D542BB8ED137E5A88BAA34
StartSector:        23595008
EndSector:          23597055
SectorCount:        2048

Entry Number:       21
PartitionName:      cmnlib_a
Attributes:         1172061803023171584
UniquePartitionGUID:7423F861179F6D1E3B97AC918BBDC80F
PartitionTypeGUID:  73471795AB5443F9A8474F72EA5CBEF5
StartSector:        23597056
EndSector:          23599103
SectorCount:        2048

Entry Number:       22
PartitionName:      cmnlib64_a
Attributes:         1172061803023171584
UniquePartitionGUID:5E9BB1B2C821BCCFC76D017CE307A5AB
PartitionTypeGUID:  8EA6489312674A1B947C7C362ACAAD2C
StartSector:        23599104
EndSector:          23601151
SectorCount:        2048

Entry Number:       23
PartitionName:      cmnlib_b
Attributes:         1152921504606846976
UniquePartitionGUID:4396985DDDF8745786D2527B11A9A3ED
PartitionTypeGUID:  77036CD403D542BB8ED137E5A88BAA34
StartSector:        23601152
EndSector:          23603199
SectorCount:        2048

Entry Number:       24
PartitionName:      cmnlib64_b
Attributes:         1152921504606846976
UniquePartitionGUID:55F4E17B8B8446028AB296482B9F7C7B
PartitionTypeGUID:  77036CD403D542BB8ED137E5A88BAA34
StartSector:        23603200
EndSector:          23605247
SectorCount:        2048

Entry Number:       25
PartitionName:      mdtpsecapp_a
Attributes:         1172061803023171584
UniquePartitionGUID:BE4C9CE400AC841ACDCC6F29189FCC60
PartitionTypeGUID:  EA02D68087124552A3BEE6087829C1E6
StartSector:        23605248
EndSector:          23613439
SectorCount:        8192

Entry Number:       26
PartitionName:      mdtpsecapp_b
Attributes:         1152921504606846976
UniquePartitionGUID:1A05DE4148CB4277AA214BADA840E37A
PartitionTypeGUID:  77036CD403D542BB8ED137E5A88BAA34
StartSector:        23613440
EndSector:          23621631
SectorCount:        8192

Entry Number:       27
PartitionName:      mdtp_a
Attributes:         1172061803023171584
UniquePartitionGUID:80723EAB1E02B4767A8CE0516F760047
PartitionTypeGUID:  3878408AE2634B67B8786340B35B11E3
StartSector:        23621632
EndSector:          23687167
SectorCount:        65536

Entry Number:       28
PartitionName:      mdtp_b
Attributes:         1152921504606846976
UniquePartitionGUID:36679842C7AE4B39685C61A5E7C71C20
PartitionTypeGUID:  77036CD403D542BB8ED137E5A88BAA34
StartSector:        23687168
EndSector:          23752703
SectorCount:        65536

Entry Number:       29
PartitionName:      modem_a
Attributes:         1172061803023171584
UniquePartitionGUID:393E8968D30CCE34A3D4834C32786E78
PartitionTypeGUID:  EBD0A0A2B9E5443387C068B6B72699C7
StartSector:        23752704
EndSector:          23977983
SectorCount:        225280

Entry Number:       30
PartitionName:      modem_b
Attributes:         1152921504606846976
UniquePartitionGUID:09E68ACEA2BD6EFB1E87560360DA00E6
PartitionTypeGUID:  77036CD403D542BB8ED137E5A88BAA34
StartSector:        23977984
EndSector:          24203263
SectorCount:        225280

Entry Number:       31
PartitionName:      dsp_a
Attributes:         1172061803023171584
UniquePartitionGUID:C3A6FF1EE3FDBDCD29291FCB8E121D9A
PartitionTypeGUID:  7EFE50102A1A4A1AB8BC990257813512
StartSector:        24203264
EndSector:          24236031
SectorCount:        32768

Entry Number:       32
PartitionName:      dsp_b
Attributes:         1152921504606846976
UniquePartitionGUID:C9E203F51348E00AE482E5BD79142D3E
PartitionTypeGUID:  77036CD403D542BB8ED137E5A88BAA34
StartSector:        24236032
EndSector:          24268799
SectorCount:        32768

Entry Number:       33
PartitionName:      reserve3
Attributes:         1152921504606846976
UniquePartitionGUID:5A0E2EF8FD223B7B3CE512D76EF30ED1
PartitionTypeGUID:  84E6728FA5AD4C98A791F41350E9AE7D
StartSector:        24268800
EndSector:          24286839
SectorCount:        18040

Entry Number:       34
PartitionName:      abl_a
Attributes:         1172061803023171584
UniquePartitionGUID:484B9D6361CBA44FDBAFAAF0E21D535F
PartitionTypeGUID:  BD6928A14CE0A0384F3A1495E3EDDFFB
StartSector:        24286840
EndSector:          24288887
SectorCount:        2048

Entry Number:       35
PartitionName:      abl_b
Attributes:         1152921504606846976
UniquePartitionGUID:62D9848A322A06C284B687570FDCA29C
PartitionTypeGUID:  77036CD403D542BB8ED137E5A88BAA34
StartSector:        24288888
EndSector:          24290935
SectorCount:        2048

Entry Number:       36
PartitionName:      dip
Attributes:         1152921504606846976
UniquePartitionGUID:AF07D06179195F7DDD4118E29578686E
PartitionTypeGUID:  4114B077005D4E12AC8CB493BDA684FB
StartSector:        24290936
EndSector:          24292983
SectorCount:        2048

Entry Number:       37
PartitionName:      devinfo
Attributes:         1152921504606846976
UniquePartitionGUID:8EB270F691DF25852D43C9D03C858006
PartitionTypeGUID:  65ADDCF40C5C4D9AAC2DD90B5CBFCD03
StartSector:        24292984
EndSector:          24292991
SectorCount:        8

Entry Number:       38
PartitionName:      apdp
Attributes:         1152921504606846976
UniquePartitionGUID:629D9CA3D7CC2B58CEC7807F3891B286
PartitionTypeGUID:  E6E98DA2E22A4D12AB33169E7DEAA507
StartSector:        24292992
EndSector:          24293503
SectorCount:        512

Entry Number:       39
PartitionName:      msadp
Attributes:         1152921504606846976
UniquePartitionGUID:271EC8E83092F44EA04EDF4BF21FCA74
PartitionTypeGUID:  ED9E810105FA46B782AA8D58770D200B
StartSector:        24293504
EndSector:          24294015
SectorCount:        512

Entry Number:       40
PartitionName:      dpo
Attributes:         1152921504606846976
UniquePartitionGUID:4AC79A2F8E8BF413B3608C6F052393DE
PartitionTypeGUID:  11406F3511734869807B27DF71802812
StartSector:        24294016
EndSector:          24294017
SectorCount:        2

Entry Number:       41
PartitionName:      splash
Attributes:         1152921504606846976
UniquePartitionGUID:FFC2D7C49FF6214F4DD33DA230E8C940
PartitionTypeGUID:  AD99F201DC714E309630E19EEF553D1B
StartSector:        24294024
EndSector:          24360871
SectorCount:        66848

Entry Number:       42
PartitionName:      limits
Attributes:         1152921504606846976
UniquePartitionGUID:FE933C1E602586E8293350991315EED3
PartitionTypeGUID:  10A0C19C516A54445CE3664C3226A794
StartSector:        24360872
EndSector:          24360879
SectorCount:        8

Entry Number:       43
PartitionName:      toolsfv
Attributes:         1152921504606846976
UniquePartitionGUID:EE5BE8BADAD8C6808BE88DBFDD37ECF6
PartitionTypeGUID:  97745ABA135A44C39ADC05616173C24C
StartSector:        24360880
EndSector:          24362927
SectorCount:        2048

Entry Number:       44
PartitionName:      logfs
Attributes:         0
UniquePartitionGUID:B0DBDDF823525A7DBE7D4A8DE5CE4EEF
PartitionTypeGUID:  E4BE69BF300E42A18A49A5AD554EE25D
StartSector:        24379392
EndSector:          24395775
SectorCount:        16384

Entry Number:       45
PartitionName:      reserve4
Attributes:         1152921504606846976
UniquePartitionGUID:C7E0BC4ABF091F27EE88FD8D9080646A
PartitionTypeGUID:  D6D91F37FBCE41B0B838B83BC46ABA40
StartSector:        24510464
EndSector:          24525735
SectorCount:        15272

Entry Number:       46
PartitionName:      reserve5
Attributes:         1152921504606846976
UniquePartitionGUID:5102BC03589B7919F05FEF1A43CA0E57
PartitionTypeGUID:  4BFE1EF93DC449389E09695AB87BE9BF
StartSector:        24525736
EndSector:          24537383
SectorCount:        11648

Entry Number:       47
PartitionName:      reserve0
Attributes:         1152921504606846976
UniquePartitionGUID:4515120742DF492070EEF1445A85B71A
PartitionTypeGUID:  20A11580EA2F49D38E2367A726B52C41
StartSector:        24537384
EndSector:          24547023
SectorCount:        9640

Entry Number:       48
PartitionName:      ddr
Attributes:         1152921504606846976
UniquePartitionGUID:AD825D40C9EFA83494C1FEFAA112DB71
PartitionTypeGUID:  20A0C19C286A42FA9CE7F64C3226A794
StartSector:        24547024
EndSector:          24549071
SectorCount:        2048

Entry Number:       49
PartitionName:      sec
Attributes:         1152921504606846976
UniquePartitionGUID:250A9842CB68D2A73AC7F284850B3641
PartitionTypeGUID:  303E6AC3AF154C549E9BD9A8FBECF401
StartSector:        24549072
EndSector:          24549103
SectorCount:        32

Entry Number:       50
PartitionName:      bluetooth_a
Attributes:         1172061803023171584
UniquePartitionGUID:2703910AE004776EF59EF8EF85953C5F
PartitionTypeGUID:  6CB747F1C2EF4092ADD0CA39F79C7AF4
StartSector:        24549104
EndSector:          24551151
SectorCount:        2048

Entry Number:       51
PartitionName:      bluetooth_b
Attributes:         1152921504606846976
UniquePartitionGUID:A958B6588FB4EB36F89B2A8D95D0AB1D
PartitionTypeGUID:  77036CD403D542BB8ED137E5A88BAA34
StartSector:        24551152
EndSector:          24553199
SectorCount:        2048

Entry Number:       52
PartitionName:      fsc
Attributes:         0
UniquePartitionGUID:DE611F06533FECA77F22BF6DAF56A2BD
PartitionTypeGUID:  57B90A1622C9E33B8F5D0E81686A68CB
StartSector:        24641536
EndSector:          24641537
SectorCount:        2

Entry Number:       53
PartitionName:      ssd
Attributes:         0
UniquePartitionGUID:9635D07377F397B26A9DB2A244880BD8
PartitionTypeGUID:  2C86E742745E4FDDBFD8B6A7AC638772
StartSector:        24641544
EndSector:          24641559
SectorCount:        16

Entry Number:       54
PartitionName:      modemst1
Attributes:         0
UniquePartitionGUID:A3A279323835D88D3B7FC0C84BD56CD2
PartitionTypeGUID:  EBBEADAF22C9E33B8F5D0E81686A68CB
StartSector:        24641560
EndSector:          24645655
SectorCount:        4096

Entry Number:       55
PartitionName:      modemst2
Attributes:         0
UniquePartitionGUID:633126E914581D8671DD28909F6624AC
PartitionTypeGUID:  0A288B1F22C9E33B8F5D0E81686A68CB
StartSector:        24645656
EndSector:          24649751
SectorCount:        4096

Entry Number:       56
PartitionName:      persist
Attributes:         0
UniquePartitionGUID:A7D5F7D5DB347144DD13A781A33E2B96
PartitionTypeGUID:  6C95E238E3434BA8B4898681ED22AD0B
StartSector:        24649752
EndSector:          24715287
SectorCount:        65536

Entry Number:       57
PartitionName:      misc
Attributes:         0
UniquePartitionGUID:A6671984FACF80CEF74ECCB5E18D8EF1
PartitionTypeGUID:  82ACC91F357C4A689C8F689E1B1A23A1
StartSector:        24715288
EndSector:          24717335
SectorCount:        2048

Entry Number:       58
PartitionName:      keystore
Attributes:         0
UniquePartitionGUID:808BB0E03AEBE060B0ACAAD893AC43B5
PartitionTypeGUID:  DE7D40290F5B41C8AE7EF6C023A02B33
StartSector:        24717336
EndSector:          24718359
SectorCount:        1024

Entry Number:       59
PartitionName:      devcfg_a
Attributes:         19140298416324608
UniquePartitionGUID:F5175F8647257A4DB10FF3CA59532B54
PartitionTypeGUID:  F65D4B16343D4E25AAFCBE99B6556A6D
StartSector:        24718360
EndSector:          24720407
SectorCount:        2048

Entry Number:       60
PartitionName:      devcfg_b
Attributes:         0
UniquePartitionGUID:DE2C3DD7FC55FDA74B4D648B3ED5D73D
PartitionTypeGUID:  77036CD403D542BB8ED137E5A88BAA34
StartSector:        24720408
EndSector:          24722455
SectorCount:        2048

Entry Number:       61
PartitionName:      frp
Attributes:         0
UniquePartitionGUID:7956EE4368C9960F13A7237D99429C50
PartitionTypeGUID:  91B72D4D71E04CBF9B8E236381CFF17A
StartSector:        24722456
EndSector:          24723479
SectorCount:        1024

Entry Number:       62
PartitionName:      logdump
Attributes:         0
UniquePartitionGUID:F2ACF659E44CA652958B022F82A697A4
PartitionTypeGUID:  5AF80809AABB49439168CDFC38742598
StartSector:        24723480
EndSector:          24854551
SectorCount:        131072

Entry Number:       63
PartitionName:      sti
Attributes:         0
UniquePartitionGUID:78B4C09575E004F0F0F1538C9F7D7AA5
PartitionTypeGUID:  AA9A5C4C4F1F7D3A014A22BD33BF7191
StartSector:        24854552
EndSector:          24858647
SectorCount:        4096

Entry Number:       64
PartitionName:      storsec
Attributes:         1152921504606846976
UniquePartitionGUID:9D4F6A07A696E3631A465981B5FAFA81
PartitionTypeGUID:  02DB45FEAD1B4CB6AECC0042C637DEFA
StartSector:        24903680
EndSector:          24903935
SectorCount:        256

Entry Number:       65
PartitionName:      rawdump
Attributes:         0
UniquePartitionGUID:82BAD4D153AEE3A18AB9D25EF2B3C673
PartitionTypeGUID:  66C9B323F7FC48B6BF966F32E335A428
StartSector:        25034752
EndSector:          25296895
SectorCount:        262144

Entry Number:       66
PartitionName:      vbmeta_a
Attributes:         1154047404513689600
UniquePartitionGUID:6189F426220BC850D306B03896566C77
PartitionTypeGUID:  4B7A15D6322C42AC811088B7DA0C5D77
StartSector:        25296896
EndSector:          25297023
SectorCount:        128

Entry Number:       67
PartitionName:      vbmeta_b
Attributes:         1152921504606846976
UniquePartitionGUID:0E35F237C91EF9799ECD3FE55FB9BA56
PartitionTypeGUID:  77036CD403D542BB8ED137E5A88BAA34
StartSector:        25297024
EndSector:          25297151
SectorCount:        128

Entry Number:       68
PartitionName:      userdata
Attributes:         0
UniquePartitionGUID:94A1AF557C6CD99AA52CA203DEF1DF14
PartitionTypeGUID:  1B81E7E6F50D419BA7392AEEF8DA3335
StartSector:        25427968
EndSector:          122142686
SectorCount:        96714719


I'm sure many methods exist but the best way I found to parse the GPT is to simply use Qualcomm methods provided under SubSysSwDownload.dll. This DLL is hard to find as it's part of DART but it's there on the internet. Create a new VS project using the sample code below while referencing the required dll. This will parse the live GPT from the device and produce an accurate rawprogram0 xml.

Code:
using SwDownload;
using System.Diagnostics;
using System.Threading;
using System.IO;
using System;
namespace GPTConsole{
    class Program{
        static void Main(string[] args)
        {
            string arg0 = "";
            string arg1 = "";
            string startsector = "";
            Console.WriteLine(args.Length);
            if (args.Length != 0) {
                arg0 = args[0];
                if (args.Length == 1) startsector = "1";
                if (args.Length == 2) startsector = args[1]; 
            }
            else
            {
                Console.WriteLine("Please provide a COM Port # - Example: GPTConsole 14");
            }           
            

            string XMLFile = "rawprogram0.xml";
            if (File.Exists(XMLFile)) File.Delete(XMLFile);
            StreamWriter sw1 = new StreamWriter(XMLFile);
            sw1.WriteLine("<?xml version=\"1.0\"?>");
            sw1.WriteLine("<data>");
            sw1.WriteLine("  <!--NOTE: This is an ** Autogenerated file **-->");
            sw1.WriteLine("  <!--NOTE: Sector size is 512bytes-->");
            try
            {
                using (Process myProcess = new Process())
                {
                    myProcess.StartInfo.FileName = "fh_loader.exe";
                    myProcess.StartInfo.Arguments = ("--port=\\\\.\\COM" + arg0 + " --convertprogram2read --sendimage=gpt_header --start_sector=" + startsector + " --lun=0 --num_sectors=1 --noprompt --showpercentagecomplete --zlpawarehost=1 --memoryname=emmc");
                    myProcess.StartInfo.UseShellExecute = false;
                    myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
                    myProcess.StartInfo.RedirectStandardOutput = true;
                    myProcess.StartInfo.RedirectStandardError = true;
                    myProcess.Start();
                    Thread.Sleep(2000);
                    myProcess.Close();
                }

                gpt_header_t HInfo = GPTParser.ParseGPTHeader("gpt_header");
                Console.WriteLine("-----------------------");
                Console.WriteLine("------Header Info------");
                Console.WriteLine("-----------------------");
                Console.WriteLine("# of Entries       " + HInfo.NumberofPartitionEntries);
                Console.WriteLine("Signature:         " + HInfo.Signature);
                Console.WriteLine("HeaderSize:        " + HInfo.HeaderSize);
                Console.WriteLine("HeaderCRC32:       " + HInfo.HeaderCRC32);
                Console.WriteLine("ArrayCRC32:        " + HInfo.PartitionEntryArrayCRC32);
                Console.WriteLine("MyLBA:             " + HInfo.MyLBA);
                Console.WriteLine("AlternateLBA:      " + HInfo.AlternateLBA);
                Console.WriteLine("PartitionEntryLBA: " + HInfo.PartitionEntryLBA);
                Console.WriteLine("FirstUsableLBA:    " + HInfo.FirstUsableLBA);
                Console.WriteLine("LastUsableLBA:     " + HInfo.LastUsableLBA);
                Console.WriteLine("DiskGUID_higher:   " + HInfo.DiskGUID_higher);
                Console.WriteLine("DiskGUID_lower:    " + HInfo.DiskGUID_lower);
                Console.WriteLine();
                Console.WriteLine("-----------------------");
                Console.WriteLine("----Partition Info-----");
                Console.WriteLine("-----------------------");

                using (Process myProcess2 = new Process())
                {
                    myProcess2.StartInfo.FileName = "fh_loader.exe";
                    myProcess2.StartInfo.Arguments = ("--port=\\\\.\\COM" + arg0 + " --convertprogram2read --sendimage=gpt_entries --start_sector=" + HInfo.PartitionEntryLBA + " --lun=0 --noprompt --num_sectors=20 --showpercentagecomplete --zlpawarehost=1 --memoryname=emmc");
                    myProcess2.StartInfo.UseShellExecute = false;
                    myProcess2.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
                    myProcess2.StartInfo.RedirectStandardOutput = true;
                    myProcess2.StartInfo.RedirectStandardError = true;
                    myProcess2.Start();
                    Thread.Sleep(2000);
                    myProcess2.Close();
                }
                
                partition_info_list PIList = GPTParser.ParseGPTEntries("gpt_entries", HInfo.NumberofPartitionEntries, HInfo.SizeOfPartitionEntry);
                Int32 CurrentPart = 0;
                foreach (var item in PIList)
                {
                    string size = (item.EndingLBA - item.StartingLBA + 1L).ToString(); 
                    Console.WriteLine("Entry Number:        " + CurrentPart);                    
                    Console.WriteLine("PartitionName:       " + item.PartitionName);
                    Console.WriteLine("Attributes:          " + item.Attributes);
                    Console.WriteLine("PartitionGUIDRaw:    " + item.UniquePartitionGUID);
                    Console.WriteLine("PartitionGUIDPrint:  " + item.UniquePartitionGUID_Printable);
                    Console.WriteLine("TypeGUIDRaw:         " + item.PartitionTypeGUID);
                    Console.WriteLine("TypeGUIDPrint:       " + item.UniquePartitionGUID_Printable);
                    Console.WriteLine("StartSector:         " + item.StartingLBA);
                    Console.WriteLine("EndSector:           " + item.EndingLBA);
                    Console.WriteLine("SectorCount:         " + size);
                    Console.WriteLine();
                    sw1.WriteLine("<program SECTOR_SIZE_IN_BYTES=\"512\" file_sector_offset=\"0\" start_sector=\"" + item.StartingLBA + "\" sparse=\"false\" readbackverify=\"false\" physical_partition_number=\"0\" partofsingleimage=\"false\" num_partition_sectors=\"" + size + "\" label=\"" + item.PartitionName + "\" filename=\"" + item.PartitionName + ".img\" />");
                    CurrentPart = CurrentPart + 1;
                }
            }
            catch (Exception ex)
            {
                Console.Write(ex.Message);
            }

            sw1.WriteLine("</data>");
            sw1.Close();
            Console.ReadLine();
            }        
    }
}
(All XML data posted by me has been validated under this method)

So this seems to be the vanilla (non-carrier specific) firmware variant. Since USCellular does not appear to carry the XP8, I'm assuming USC means "US Carriers". With the image applied the device only produces Sonim branding on boot and no pre-loaded apps exist aside from a few engineering apps due to this being a USERDEBUG variant.

Bootloader can be unlocked easily however still remains with limited functionality. Also hitting the intrusive red eio screen at boot with/without a locked bootloader. After flashing back to AT&T the eio is gone and bootloader remains unlocked also. It seems like this early debug variant does not contain verity data (causing eio errors) - or this could be stored somewhere else on the device and I'm just missing it.

The GPT is the same as we have seen with AT&T and Telus making flashing easy. No OTA unfortunately however I have a feeling that we can force an update by changing the build fingerprint to a non-debug string. Have you done testing around this aspect by chance?

Did that XP5s download ever kick off for you?
 
Last edited:

eleotk

Senior Member
Apr 3, 2014
117
42
Did that XP5s download ever kick off for you?[/QUOTE]

XP5s link still has no resources for one day
 

eleotk

Senior Member
Apr 3, 2014
117
42
I'm unable to make a lot of since of what your trying to say here but I think we are on the same page at least. Functionally the method works great as this how Sonim does it however practically for a backup scenario this will generate a few hundred files more then you actually need while skipping over critical sectors :).

QPST or tools included within the suite such as QFil work very similarly. If you look at the XP8 flash tool - it's basically just a Sonim branded wrapper around the same Qualcomm library's used under the QPST suite.

Prior to XML conversion, the parsed GPT looks like this.. Sonim factory images like the one here only cover the chunks they need essentially.
Code:
-----------------------
------Header Info------
-----------------------
# of Entries      72
Signature:        6075990659671082565
HeaderSize:       92
HeaderCRC32:      589562360
ArrayCRC32:       3800902740
MyLBA:            1
AlternateLBA:     122142719
PartitionEntryLBA:2
FirstUsableLBA:   34
LastUsableLBA:    122142686
DiskGUID_higher:  7860749167125229759
DiskGUID_lower:   541926384889619150

-----------------------
----Partition Info-----
-----------------------
Entry Number:       0
PartitionName:      xbl_a
Attributes:         1172061803023171584
UniquePartitionGUID:4484B5B7D865CB69CF0F54C5BE34C851
PartitionTypeGUID:  DEA0BA2CCBDD4805B4F9F428251C3E98
StartSector:        131072
EndSector:          138239
SectorCount:        7168

Entry Number:       1
PartitionName:      xbl_b
Attributes:         1152921504606846976
UniquePartitionGUID:2BC5464E748F13DBD5E985E087EEAA45
PartitionTypeGUID:  77036CD403D542BB8ED137E5A88BAA34
StartSector:        138240
EndSector:          145407
SectorCount:        7168

Entry Number:       2
PartitionName:      tz_a
Attributes:         1172061803023171584
UniquePartitionGUID:F1BA22F467353B384DECB237648A4DAF
PartitionTypeGUID:  A053AA7F40B84B1CBA082F68AC71A4F4
StartSector:        145408
EndSector:          153599
SectorCount:        8192

Entry Number:       3
PartitionName:      tz_b
Attributes:         1152921504606846976
UniquePartitionGUID:A763C81E365A1F3F5DF4CD78C90B219F
PartitionTypeGUID:  77036CD403D542BB8ED137E5A88BAA34
StartSector:        153600
EndSector:          161791
SectorCount:        8192

Entry Number:       4
PartitionName:      rpm_a
Attributes:         1172061803023171584
UniquePartitionGUID:F41C1A242EA5EB499C655A3C7849E6EA
PartitionTypeGUID:  098DF793D712413D9D4E89D711772228
StartSector:        161792
EndSector:          162815
SectorCount:        1024

Entry Number:       5
PartitionName:      rpm_b
Attributes:         1152921504606846976
UniquePartitionGUID:9C7D2E0D9DF21271BCF59B30483B102F
PartitionTypeGUID:  77036CD403D542BB8ED137E5A88BAA34
StartSector:        162816
EndSector:          163839
SectorCount:        1024

Entry Number:       6
PartitionName:      hyp_a
Attributes:         1172061803023171584
UniquePartitionGUID:B2BF9289790336DED70840A5BD9E584E
PartitionTypeGUID:  E1A6A6890C8D4CC6B4E855A4320FBD8A
StartSector:        163840
EndSector:          164863
SectorCount:        1024

Entry Number:       7
PartitionName:      hyp_b
Attributes:         1152921504606846976
UniquePartitionGUID:66126601E5DB4EF54F570CA629799C76
PartitionTypeGUID:  77036CD403D542BB8ED137E5A88BAA34
StartSector:        164864
EndSector:          165887
SectorCount:        1024

Entry Number:       8
PartitionName:      pmic_a
Attributes:         1172061803023171584
UniquePartitionGUID:00183D0361E38A4859B4BC5A921F65A8
PartitionTypeGUID:  C00EEF24770943D69799DD2B411E7A3C
StartSector:        165888
EndSector:          166911
SectorCount:        1024

Entry Number:       9
PartitionName:      pmic_b
Attributes:         1152921504606846976
UniquePartitionGUID:AD94DE481B30EB47394C29E8A101FC0E
PartitionTypeGUID:  77036CD403D542BB8ED137E5A88BAA34
StartSector:        166912
EndSector:          167935
SectorCount:        1024

Entry Number:       10
PartitionName:      fsg
Attributes:         1152921504606846976
UniquePartitionGUID:D17E31B85AFF4E0A7F9795BFA062AAED
PartitionTypeGUID:  638FF8E222C9E33B8F5D0E81686A68CB
StartSector:        167936
EndSector:          172031
SectorCount:        4096

Entry Number:       11
PartitionName:      boot_a
Attributes:         33495522228568064
UniquePartitionGUID:35F6A5CAF83D2A02FEA4FE3829507AE9
PartitionTypeGUID:  20117F86E9854357B9EE374BC1D8487D
StartSector:        262144
EndSector:          393215
SectorCount:        131072

Entry Number:       12
PartitionName:      boot_b
Attributes:         0
UniquePartitionGUID:34146781ABAF544D73B0C60992991A16
PartitionTypeGUID:  77036CD403D542BB8ED137E5A88BAA34
StartSector:        393216
EndSector:          524287
SectorCount:        131072

Entry Number:       13
PartitionName:      system_a
Attributes:         19140298416324608
UniquePartitionGUID:03D951970B4C82F2E18E50494F7DF348
PartitionTypeGUID:  97D7B01154DA4835B3C4917AD6E73D74
StartSector:        524288
EndSector:          8912895
SectorCount:        8388608

Entry Number:       14
PartitionName:      system_b
Attributes:         0
UniquePartitionGUID:D268C33C06054E69154612A4A09B9615
PartitionTypeGUID:  77036CD403D542BB8ED137E5A88BAA34
StartSector:        8912896
EndSector:          17301503
SectorCount:        8388608

Entry Number:       15
PartitionName:      vendor_a
Attributes:         1172061803023171584
UniquePartitionGUID:59F1157105A6234926D6694E53399D87
PartitionTypeGUID:  97D7B01154DA4835B3C4917AD6E73D74
StartSector:        17301504
EndSector:          19398655
SectorCount:        2097152

Entry Number:       16
PartitionName:      vendor_b
Attributes:         1152921504606846976
UniquePartitionGUID:DE1C3DC592719CD9FBC72E8E29DB0DDB
PartitionTypeGUID:  77036CD403D542BB8ED137E5A88BAA34
StartSector:        19398656
EndSector:          21495807
SectorCount:        2097152

Entry Number:       17
PartitionName:      oem_a
Attributes:         1154047404513689600
UniquePartitionGUID:D10B3B9617493B2AC46E52F8CB1AA877
PartitionTypeGUID:  9F1088E080E949718A01E41F8A5125F5
StartSector:        21495808
EndSector:          22544383
SectorCount:        1048576

Entry Number:       18
PartitionName:      oem_b
Attributes:         1152921504606846976
UniquePartitionGUID:5BD858D79751454B85CE2A4CFE76EC1B
PartitionTypeGUID:  7F75A567CF614E54A5BA46C724058B38
StartSector:        22544384
EndSector:          23592959
SectorCount:        1048576

Entry Number:       19
PartitionName:      keymaster_a
Attributes:         1172061803023171584
UniquePartitionGUID:C39101EDA3E8DC59872A410DB6B75AFC
PartitionTypeGUID:  A11D2A7CD82A4C2F8A011805240E6626
StartSector:        23592960
EndSector:          23595007
SectorCount:        2048

Entry Number:       20
PartitionName:      keymaster_b
Attributes:         1152921504606846976
UniquePartitionGUID:5BF8F4C06949214690F55D3326436235
PartitionTypeGUID:  77036CD403D542BB8ED137E5A88BAA34
StartSector:        23595008
EndSector:          23597055
SectorCount:        2048

Entry Number:       21
PartitionName:      cmnlib_a
Attributes:         1172061803023171584
UniquePartitionGUID:7423F861179F6D1E3B97AC918BBDC80F
PartitionTypeGUID:  73471795AB5443F9A8474F72EA5CBEF5
StartSector:        23597056
EndSector:          23599103
SectorCount:        2048

Entry Number:       22
PartitionName:      cmnlib64_a
Attributes:         1172061803023171584
UniquePartitionGUID:5E9BB1B2C821BCCFC76D017CE307A5AB
PartitionTypeGUID:  8EA6489312674A1B947C7C362ACAAD2C
StartSector:        23599104
EndSector:          23601151
SectorCount:        2048

Entry Number:       23
PartitionName:      cmnlib_b
Attributes:         1152921504606846976
UniquePartitionGUID:4396985DDDF8745786D2527B11A9A3ED
PartitionTypeGUID:  77036CD403D542BB8ED137E5A88BAA34
StartSector:        23601152
EndSector:          23603199
SectorCount:        2048

Entry Number:       24
PartitionName:      cmnlib64_b
Attributes:         1152921504606846976
UniquePartitionGUID:55F4E17B8B8446028AB296482B9F7C7B
PartitionTypeGUID:  77036CD403D542BB8ED137E5A88BAA34
StartSector:        23603200
EndSector:          23605247
SectorCount:        2048

Entry Number:       25
PartitionName:      mdtpsecapp_a
Attributes:         1172061803023171584
UniquePartitionGUID:BE4C9CE400AC841ACDCC6F29189FCC60
PartitionTypeGUID:  EA02D68087124552A3BEE6087829C1E6
StartSector:        23605248
EndSector:          23613439
SectorCount:        8192

Entry Number:       26
PartitionName:      mdtpsecapp_b
Attributes:         1152921504606846976
UniquePartitionGUID:1A05DE4148CB4277AA214BADA840E37A
PartitionTypeGUID:  77036CD403D542BB8ED137E5A88BAA34
StartSector:        23613440
EndSector:          23621631
SectorCount:        8192

Entry Number:       27
PartitionName:      mdtp_a
Attributes:         1172061803023171584
UniquePartitionGUID:80723EAB1E02B4767A8CE0516F760047
PartitionTypeGUID:  3878408AE2634B67B8786340B35B11E3
StartSector:        23621632
EndSector:          23687167
SectorCount:        65536

Entry Number:       28
PartitionName:      mdtp_b
Attributes:         1152921504606846976
UniquePartitionGUID:36679842C7AE4B39685C61A5E7C71C20
PartitionTypeGUID:  77036CD403D542BB8ED137E5A88BAA34
StartSector:        23687168
EndSector:          23752703
SectorCount:        65536

Entry Number:       29
PartitionName:      modem_a
Attributes:         1172061803023171584
UniquePartitionGUID:393E8968D30CCE34A3D4834C32786E78
PartitionTypeGUID:  EBD0A0A2B9E5443387C068B6B72699C7
StartSector:        23752704
EndSector:          23977983
SectorCount:        225280

Entry Number:       30
PartitionName:      modem_b
Attributes:         1152921504606846976
UniquePartitionGUID:09E68ACEA2BD6EFB1E87560360DA00E6
PartitionTypeGUID:  77036CD403D542BB8ED137E5A88BAA34
StartSector:        23977984
EndSector:          24203263
SectorCount:        225280

Entry Number:       31
PartitionName:      dsp_a
Attributes:         1172061803023171584
UniquePartitionGUID:C3A6FF1EE3FDBDCD29291FCB8E121D9A
PartitionTypeGUID:  7EFE50102A1A4A1AB8BC990257813512
StartSector:        24203264
EndSector:          24236031
SectorCount:        32768

Entry Number:       32
PartitionName:      dsp_b
Attributes:         1152921504606846976
UniquePartitionGUID:C9E203F51348E00AE482E5BD79142D3E
PartitionTypeGUID:  77036CD403D542BB8ED137E5A88BAA34
StartSector:        24236032
EndSector:          24268799
SectorCount:        32768

Entry Number:       33
PartitionName:      reserve3
Attributes:         1152921504606846976
UniquePartitionGUID:5A0E2EF8FD223B7B3CE512D76EF30ED1
PartitionTypeGUID:  84E6728FA5AD4C98A791F41350E9AE7D
StartSector:        24268800
EndSector:          24286839
SectorCount:        18040

Entry Number:       34
PartitionName:      abl_a
Attributes:         1172061803023171584
UniquePartitionGUID:484B9D6361CBA44FDBAFAAF0E21D535F
PartitionTypeGUID:  BD6928A14CE0A0384F3A1495E3EDDFFB
StartSector:        24286840
EndSector:          24288887
SectorCount:        2048

Entry Number:       35
PartitionName:      abl_b
Attributes:         1152921504606846976
UniquePartitionGUID:62D9848A322A06C284B687570FDCA29C
PartitionTypeGUID:  77036CD403D542BB8ED137E5A88BAA34
StartSector:        24288888
EndSector:          24290935
SectorCount:        2048

Entry Number:       36
PartitionName:      dip
Attributes:         1152921504606846976
UniquePartitionGUID:AF07D06179195F7DDD4118E29578686E
PartitionTypeGUID:  4114B077005D4E12AC8CB493BDA684FB
StartSector:        24290936
EndSector:          24292983
SectorCount:        2048

Entry Number:       37
PartitionName:      devinfo
Attributes:         1152921504606846976
UniquePartitionGUID:8EB270F691DF25852D43C9D03C858006
PartitionTypeGUID:  65ADDCF40C5C4D9AAC2DD90B5CBFCD03
StartSector:        24292984
EndSector:          24292991
SectorCount:        8

Entry Number:       38
PartitionName:      apdp
Attributes:         1152921504606846976
UniquePartitionGUID:629D9CA3D7CC2B58CEC7807F3891B286
PartitionTypeGUID:  E6E98DA2E22A4D12AB33169E7DEAA507
StartSector:        24292992
EndSector:          24293503
SectorCount:        512

Entry Number:       39
PartitionName:      msadp
Attributes:         1152921504606846976
UniquePartitionGUID:271EC8E83092F44EA04EDF4BF21FCA74
PartitionTypeGUID:  ED9E810105FA46B782AA8D58770D200B
StartSector:        24293504
EndSector:          24294015
SectorCount:        512

Entry Number:       40
PartitionName:      dpo
Attributes:         1152921504606846976
UniquePartitionGUID:4AC79A2F8E8BF413B3608C6F052393DE
PartitionTypeGUID:  11406F3511734869807B27DF71802812
StartSector:        24294016
EndSector:          24294017
SectorCount:        2

Entry Number:       41
PartitionName:      splash
Attributes:         1152921504606846976
UniquePartitionGUID:FFC2D7C49FF6214F4DD33DA230E8C940
PartitionTypeGUID:  AD99F201DC714E309630E19EEF553D1B
StartSector:        24294024
EndSector:          24360871
SectorCount:        66848

Entry Number:       42
PartitionName:      limits
Attributes:         1152921504606846976
UniquePartitionGUID:FE933C1E602586E8293350991315EED3
PartitionTypeGUID:  10A0C19C516A54445CE3664C3226A794
StartSector:        24360872
EndSector:          24360879
SectorCount:        8

Entry Number:       43
PartitionName:      toolsfv
Attributes:         1152921504606846976
UniquePartitionGUID:EE5BE8BADAD8C6808BE88DBFDD37ECF6
PartitionTypeGUID:  97745ABA135A44C39ADC05616173C24C
StartSector:        24360880
EndSector:          24362927
SectorCount:        2048

Entry Number:       44
PartitionName:      logfs
Attributes:         0
UniquePartitionGUID:B0DBDDF823525A7DBE7D4A8DE5CE4EEF
PartitionTypeGUID:  E4BE69BF300E42A18A49A5AD554EE25D
StartSector:        24379392
EndSector:          24395775
SectorCount:        16384

Entry Number:       45
PartitionName:      reserve4
Attributes:         1152921504606846976
UniquePartitionGUID:C7E0BC4ABF091F27EE88FD8D9080646A
PartitionTypeGUID:  D6D91F37FBCE41B0B838B83BC46ABA40
StartSector:        24510464
EndSector:          24525735
SectorCount:        15272

Entry Number:       46
PartitionName:      reserve5
Attributes:         1152921504606846976
UniquePartitionGUID:5102BC03589B7919F05FEF1A43CA0E57
PartitionTypeGUID:  4BFE1EF93DC449389E09695AB87BE9BF
StartSector:        24525736
EndSector:          24537383
SectorCount:        11648

Entry Number:       47
PartitionName:      reserve0
Attributes:         1152921504606846976
UniquePartitionGUID:4515120742DF492070EEF1445A85B71A
PartitionTypeGUID:  20A11580EA2F49D38E2367A726B52C41
StartSector:        24537384
EndSector:          24547023
SectorCount:        9640

Entry Number:       48
PartitionName:      ddr
Attributes:         1152921504606846976
UniquePartitionGUID:AD825D40C9EFA83494C1FEFAA112DB71
PartitionTypeGUID:  20A0C19C286A42FA9CE7F64C3226A794
StartSector:        24547024
EndSector:          24549071
SectorCount:        2048

Entry Number:       49
PartitionName:      sec
Attributes:         1152921504606846976
UniquePartitionGUID:250A9842CB68D2A73AC7F284850B3641
PartitionTypeGUID:  303E6AC3AF154C549E9BD9A8FBECF401
StartSector:        24549072
EndSector:          24549103
SectorCount:        32

Entry Number:       50
PartitionName:      bluetooth_a
Attributes:         1172061803023171584
UniquePartitionGUID:2703910AE004776EF59EF8EF85953C5F
PartitionTypeGUID:  6CB747F1C2EF4092ADD0CA39F79C7AF4
StartSector:        24549104
EndSector:          24551151
SectorCount:        2048

Entry Number:       51
PartitionName:      bluetooth_b
Attributes:         1152921504606846976
UniquePartitionGUID:A958B6588FB4EB36F89B2A8D95D0AB1D
PartitionTypeGUID:  77036CD403D542BB8ED137E5A88BAA34
StartSector:        24551152
EndSector:          24553199
SectorCount:        2048

Entry Number:       52
PartitionName:      fsc
Attributes:         0
UniquePartitionGUID:DE611F06533FECA77F22BF6DAF56A2BD
PartitionTypeGUID:  57B90A1622C9E33B8F5D0E81686A68CB
StartSector:        24641536
EndSector:          24641537
SectorCount:        2

Entry Number:       53
PartitionName:      ssd
Attributes:         0
UniquePartitionGUID:9635D07377F397B26A9DB2A244880BD8
PartitionTypeGUID:  2C86E742745E4FDDBFD8B6A7AC638772
StartSector:        24641544
EndSector:          24641559
SectorCount:        16

Entry Number:       54
PartitionName:      modemst1
Attributes:         0
UniquePartitionGUID:A3A279323835D88D3B7FC0C84BD56CD2
PartitionTypeGUID:  EBBEADAF22C9E33B8F5D0E81686A68CB
StartSector:        24641560
EndSector:          24645655
SectorCount:        4096

Entry Number:       55
PartitionName:      modemst2
Attributes:         0
UniquePartitionGUID:633126E914581D8671DD28909F6624AC
PartitionTypeGUID:  0A288B1F22C9E33B8F5D0E81686A68CB
StartSector:        24645656
EndSector:          24649751
SectorCount:        4096

Entry Number:       56
PartitionName:      persist
Attributes:         0
UniquePartitionGUID:A7D5F7D5DB347144DD13A781A33E2B96
PartitionTypeGUID:  6C95E238E3434BA8B4898681ED22AD0B
StartSector:        24649752
EndSector:          24715287
SectorCount:        65536

Entry Number:       57
PartitionName:      misc
Attributes:         0
UniquePartitionGUID:A6671984FACF80CEF74ECCB5E18D8EF1
PartitionTypeGUID:  82ACC91F357C4A689C8F689E1B1A23A1
StartSector:        24715288
EndSector:          24717335
SectorCount:        2048

Entry Number:       58
PartitionName:      keystore
Attributes:         0
UniquePartitionGUID:808BB0E03AEBE060B0ACAAD893AC43B5
PartitionTypeGUID:  DE7D40290F5B41C8AE7EF6C023A02B33
StartSector:        24717336
EndSector:          24718359
SectorCount:        1024

Entry Number:       59
PartitionName:      devcfg_a
Attributes:         19140298416324608
UniquePartitionGUID:F5175F8647257A4DB10FF3CA59532B54
PartitionTypeGUID:  F65D4B16343D4E25AAFCBE99B6556A6D
StartSector:        24718360
EndSector:          24720407
SectorCount:        2048

Entry Number:       60
PartitionName:      devcfg_b
Attributes:         0
UniquePartitionGUID:DE2C3DD7FC55FDA74B4D648B3ED5D73D
PartitionTypeGUID:  77036CD403D542BB8ED137E5A88BAA34
StartSector:        24720408
EndSector:          24722455
SectorCount:        2048

Entry Number:       61
PartitionName:      frp
Attributes:         0
UniquePartitionGUID:7956EE4368C9960F13A7237D99429C50
PartitionTypeGUID:  91B72D4D71E04CBF9B8E236381CFF17A
StartSector:        24722456
EndSector:          24723479
SectorCount:        1024

Entry Number:       62
PartitionName:      logdump
Attributes:         0
UniquePartitionGUID:F2ACF659E44CA652958B022F82A697A4
PartitionTypeGUID:  5AF80809AABB49439168CDFC38742598
StartSector:        24723480
EndSector:          24854551
SectorCount:        131072

Entry Number:       63
PartitionName:      sti
Attributes:         0
UniquePartitionGUID:78B4C09575E004F0F0F1538C9F7D7AA5
PartitionTypeGUID:  AA9A5C4C4F1F7D3A014A22BD33BF7191
StartSector:        24854552
EndSector:          24858647
SectorCount:        4096

Entry Number:       64
PartitionName:      storsec
Attributes:         1152921504606846976
UniquePartitionGUID:9D4F6A07A696E3631A465981B5FAFA81
PartitionTypeGUID:  02DB45FEAD1B4CB6AECC0042C637DEFA
StartSector:        24903680
EndSector:          24903935
SectorCount:        256

Entry Number:       65
PartitionName:      rawdump
Attributes:         0
UniquePartitionGUID:82BAD4D153AEE3A18AB9D25EF2B3C673
PartitionTypeGUID:  66C9B323F7FC48B6BF966F32E335A428
StartSector:        25034752
EndSector:          25296895
SectorCount:        262144

Entry Number:       66
PartitionName:      vbmeta_a
Attributes:         1154047404513689600
UniquePartitionGUID:6189F426220BC850D306B03896566C77
PartitionTypeGUID:  4B7A15D6322C42AC811088B7DA0C5D77
StartSector:        25296896
EndSector:          25297023
SectorCount:        128

Entry Number:       67
PartitionName:      vbmeta_b
Attributes:         1152921504606846976
UniquePartitionGUID:0E35F237C91EF9799ECD3FE55FB9BA56
PartitionTypeGUID:  77036CD403D542BB8ED137E5A88BAA34
StartSector:        25297024
EndSector:          25297151
SectorCount:        128

Entry Number:       68
PartitionName:      userdata
Attributes:         0
UniquePartitionGUID:94A1AF557C6CD99AA52CA203DEF1DF14
PartitionTypeGUID:  1B81E7E6F50D419BA7392AEEF8DA3335
StartSector:        25427968
EndSector:          122142686
SectorCount:        96714719


I'm sure many methods exist but the best way I found to parse the GPT is to simply use Qualcomm methods provided under SubSysSwDownload.dll. This DLL is hard to find as it's part of DART but it's there on the internet. Create a new VS project using the sample code below while referencing the required dll. This will parse the live GPT from the device and produce an accurate rawprogram0 xml.

Code:
using SwDownload;
using System.Diagnostics;
using System.Threading;
using System.IO;
using System;
namespace GPTConsole{
    class Program{
        static void Main(string[] args)
        {
            string arg0 = "";
            string arg1 = "";
            string startsector = "";
            Console.WriteLine(args.Length);
            if (args.Length != 0) {
                arg0 = args[0];
                if (args.Length == 1) startsector = "1";
                if (args.Length == 2) startsector = args[1]; 
            }
            else
            {
                Console.WriteLine("Please provide a COM Port # - Example: GPTConsole 14");
            }           
            

            string XMLFile = "rawprogram0.xml";
            if (File.Exists(XMLFile)) File.Delete(XMLFile);
            StreamWriter sw1 = new StreamWriter(XMLFile);
            sw1.WriteLine("<?xml version=\"1.0\"?>");
            sw1.WriteLine("<data>");
            sw1.WriteLine("  <!--NOTE: This is an ** Autogenerated file **-->");
            sw1.WriteLine("  <!--NOTE: Sector size is 512bytes-->");
            try
            {
                using (Process myProcess = new Process())
                {
                    myProcess.StartInfo.FileName = "fh_loader.exe";
                    myProcess.StartInfo.Arguments = ("--port=\\\\.\\COM" + arg0 + " --convertprogram2read --sendimage=gpt_header --start_sector=" + startsector + " --lun=0 --num_sectors=1 --noprompt --showpercentagecomplete --zlpawarehost=1 --memoryname=emmc");
                    myProcess.StartInfo.UseShellExecute = false;
                    myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
                    myProcess.StartInfo.RedirectStandardOutput = true;
                    myProcess.StartInfo.RedirectStandardError = true;
                    myProcess.Start();
                    Thread.Sleep(2000);
                    myProcess.Close();
                }

                gpt_header_t HInfo = GPTParser.ParseGPTHeader("gpt_header");
                Console.WriteLine("-----------------------");
                Console.WriteLine("------Header Info------");
                Console.WriteLine("-----------------------");
                Console.WriteLine("# of Entries       " + HInfo.NumberofPartitionEntries);
                Console.WriteLine("Signature:         " + HInfo.Signature);
                Console.WriteLine("HeaderSize:        " + HInfo.HeaderSize);
                Console.WriteLine("HeaderCRC32:       " + HInfo.HeaderCRC32);
                Console.WriteLine("ArrayCRC32:        " + HInfo.PartitionEntryArrayCRC32);
                Console.WriteLine("MyLBA:             " + HInfo.MyLBA);
                Console.WriteLine("AlternateLBA:      " + HInfo.AlternateLBA);
                Console.WriteLine("PartitionEntryLBA: " + HInfo.PartitionEntryLBA);
                Console.WriteLine("FirstUsableLBA:    " + HInfo.FirstUsableLBA);
                Console.WriteLine("LastUsableLBA:     " + HInfo.LastUsableLBA);
                Console.WriteLine("DiskGUID_higher:   " + HInfo.DiskGUID_higher);
                Console.WriteLine("DiskGUID_lower:    " + HInfo.DiskGUID_lower);
                Console.WriteLine();
                Console.WriteLine("-----------------------");
                Console.WriteLine("----Partition Info-----");
                Console.WriteLine("-----------------------");

                using (Process myProcess2 = new Process())
                {
                    myProcess2.StartInfo.FileName = "fh_loader.exe";
                    myProcess2.StartInfo.Arguments = ("--port=\\\\.\\COM" + arg0 + " --convertprogram2read --sendimage=gpt_entries --start_sector=" + HInfo.PartitionEntryLBA + " --lun=0 --noprompt --num_sectors=20 --showpercentagecomplete --zlpawarehost=1 --memoryname=emmc");
                    myProcess2.StartInfo.UseShellExecute = false;
                    myProcess2.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
                    myProcess2.StartInfo.RedirectStandardOutput = true;
                    myProcess2.StartInfo.RedirectStandardError = true;
                    myProcess2.Start();
                    Thread.Sleep(2000);
                    myProcess2.Close();
                }
                
                partition_info_list PIList = GPTParser.ParseGPTEntries("gpt_entries", HInfo.NumberofPartitionEntries, HInfo.SizeOfPartitionEntry);
                Int32 CurrentPart = 0;
                foreach (var item in PIList)
                {
                    string size = (item.EndingLBA - item.StartingLBA + 1L).ToString(); 
                    Console.WriteLine("Entry Number:        " + CurrentPart);                    
                    Console.WriteLine("PartitionName:       " + item.PartitionName);
                    Console.WriteLine("Attributes:          " + item.Attributes);
                    Console.WriteLine("PartitionGUIDRaw:    " + item.UniquePartitionGUID);
                    Console.WriteLine("PartitionGUIDPrint:  " + item.UniquePartitionGUID_Printable);
                    Console.WriteLine("TypeGUIDRaw:         " + item.PartitionTypeGUID);
                    Console.WriteLine("TypeGUIDPrint:       " + item.UniquePartitionGUID_Printable);
                    Console.WriteLine("StartSector:         " + item.StartingLBA);
                    Console.WriteLine("EndSector:           " + item.EndingLBA);
                    Console.WriteLine("SectorCount:         " + size);
                    Console.WriteLine();
                    sw1.WriteLine("<program SECTOR_SIZE_IN_BYTES=\"512\" file_sector_offset=\"0\" start_sector=\"" + item.StartingLBA + "\" sparse=\"false\" readbackverify=\"false\" physical_partition_number=\"0\" partofsingleimage=\"false\" num_partition_sectors=\"" + size + "\" label=\"" + item.PartitionName + "\" filename=\"" + item.PartitionName + ".img\" />");
                    CurrentPart = CurrentPart + 1;
                }
            }
            catch (Exception ex)
            {
                Console.Write(ex.Message);
            }

            sw1.WriteLine("</data>");
            sw1.Close();
            Console.ReadLine();
            }        
    }
}
(All XML data posted by me has been validated under this method)

So this seems to be the vanilla (non-carrier specific) firmware variant. Since USCellular does not appear to carry the XP8, I'm assuming USC means "US Carriers". With the image applied the device only produces Sonim branding on boot and no pre-loaded apps exist aside from a few engineering apps due to this being a USERDEBUG variant.

Bootloader can be unlocked easily however still remains with limited functionality. Also hitting the intrusive red eio screen at boot with/without a locked bootloader. After flashing back to AT&T the eio is gone and bootloader remains unlocked also. It seems like this early debug variant does not contain verity data (causing eio errors) - or this could be stored somewhere else on the device and I'm just missing it.

The GPT is the same as we have seen with AT&T and Telus making flashing easy. No OTA unfortunately however I have a feeling that we can force an update by changing the build fingerprint to a non-debug string. Have you done testing around this aspect by chance?

Did that XP5s download ever kick off for you?

XP5s link still has no resources for one day

QFlashTool.9.1.6 https://www.mediafire.com/file/lsce3h0i6rta8h8/QFlashTool.9.1.6.rar/file
 
Last edited:

eleotk

Senior Member
Apr 3, 2014
117
42
You are just full of treasures for the community :).

I'll gladly share images and even my own janky c# but I get hesitant when it comes to this stuff.. Greatly appreciate you helping to cover the gaps!

The download is successful, it is not the image I want. I used to have an XP5S image and the data is lost.
 

smokeyou

Senior Member
Dec 27, 2008
64
20
What makes this userdebug version so special? With it being AT&T, would most of its contents still work with my telus version?

It's not really all that special given the age as it's a very early 7.1 release. Generally the idea is native SU binary, verity control, & unlock capability.. This debug image is not AT&T though, it's USC that appears to be a generic US Carrier image.

I believe any carrier firmware will work since the modem implementation is probably about the same aside from branding. A Telus image will likely include Telus apps that may be desirable if you have Telus service. Or in other words it should work but you likely have a better experience currently.
 

albert.r

Senior Member
Oct 25, 2010
70
2
userdebug firmware for Xp8

Dude no way.. Can you send me this? I modified the XP8 flash tool to eliminate server authentication - we can apply this with ease!

Userdebug is really the right way to achieve root :).

Magisk is cool depending on the case however I would personally rather keep su isolated to adb root. I managed to compile a partially working gsi-pie userdebug image however I couldn't manage to get the radio working so I abandoned that effort. This image of yours may just help to solve many things!!

I would also appreciate a userdebug firmware build for Xp8. Please share it if you can.

-albertr
 

eleotk

Senior Member
Apr 3, 2014
117
42
I would also appreciate a userdebug firmware build for Xp8. Please share it if you can.

-albertr


Unlock fastboot
Step 1, open the developer mode

Go to “Settings” → “About Phone” and click “Version Number” 7 times to open Developer mode.

Step 2, open oemlock

Go to “Settings” → “Other Settings” → “Developer Mode” and open the OEM to unlock;

3 START mode
fastboot flashing unlock
 
Last edited:

albert.r

Senior Member
Oct 25, 2010
70
2
SONIM XP8 file
ATT image
https://mega.nz/#!anZmXCAZ!fEuFYIXOA...4g8Siqg0ECSHxg

Unlock fastboot
Step 1, open the developer mode

Go to “Settings” → “About Phone” and click “Version Number” 7 times to open Developer mode.

Step 2, open oemlock

Go to “Settings” → “Other Settings” → “Developer Mode” and open the OEM to unlock;

3 START mode
fastboot flashing unlock

@eleotk, thanks! When I try to download it from mega.nz, it ask for a decryption key (screenshot attached)...
Do you know what is it?

Thanks,
-albertr
 

Top Liked Posts

  • There are no posts matching your filters.
  • 7
    Enjoy!

    XP8 Android Root Theory - DEBUG or Magisk over EDL
    EDL is a must since Fastboot cannot be unlocked initially from standard "user" builds.

    One option is flash a userdebug image (below) allowing for adb root, fastboot unlocking, and other useful features.
    or
    Without unlocking the bootloader - Similar flashing methods remain valid when standard magisk powered root is desired. This method allows preservation of all current system data aside from boot.img. All is covered since Magisk works with AVB and we have EDL as a flashing alternative. Please see Android Boot Flow > LOCKED Devices with Custom Root of Trust for more information.

    Recommend method ..
    It's up to you.. If you want OTA updates and your planning to use root apps then go with Magisk. As of today we have current debug images available and I personally prefer isolated adb root access only however future availability of updated Debug images cannot be guaranteed.

    Disclaimer
    -Devices with locked bootloaders will display a custom OS warning at boot
    -Tested on AT&T branded devices only - please provide system dump for validation on other builds
    -I have not identified any JTAG procedures and I can not help if you hard brick your device!
    -This guide only touches boot_a and should be relatively safe since boot_b remains unmodified. I'm pretty sure this is enough to restore the original boot.img to boot_a under a failure scenario.. But I'm not really qualified enough to say definitively either.
    -Take great caution - this is raw emmc access and critical system data! You are proceeding at your own risk!

    Magisk Root

    Step 1 - Pull Boot.img
    We need to pull the boot.img in order to feed it to magisk later for patching. It's also good to keep on hand for if/when you need to restore for any reason.
    1. Create an XML file with the data below
    Code:
    <?xml version="1.0"?>
    <data>
    <program start_sector="262144" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="131072" label="boot_a" filename="boot.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
    </data>
    2. Boot to EDL mode and load firehose programmer
    Code:
    QSaharaServer.exe -p \\.\COM<#> -s 13:prog_emmc_ufs_firehose_Sdm660_ddr.elf
    3. Backup boot.img using the following command
    Code:
    fh_loader.exe  --convertprogram2read --port=\\.\COM<#> --sendxml=<xmlfile.xml> --lun=0  --memoryname=emmc --noprompt --reset
    Or visit the XP8 carrier firmware thread for full system backup steps.
    https://xdaforums.com/showpost.php?p=80465045&postcount=6

    Step 2 - Magisk Patch
    1. ADB push boot.img /storage/self/primary/Download/
    2. Install Magisk Manager and apply patch to boot.img
    2a. Download from https://xdaforums.com/apps/magisk/official-magisk-v7-universal-systemless-t3473445
    2b. Extract and run adb install magisk.apk
    2c. Open Magisk app and apply patch to boot.img
    3. ADB pull /storage/self/primary/Download/magisk_patched.img

    Step 3 - Restore
    1. Change the filename attribute in the XML to reflect newly created magisk_patched.img as shown below
    Code:
    <?xml version="1.0"?>
    <data>
    <program start_sector="262144" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="131072" label="boot_a" filename="magisk_patched.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
    </data>
    2. Boot back into EDL mode and load firehose programmer
    Code:
    QSaharaServer.exe -p \\.\COM<#> -s 13:prog_emmc_ufs_firehose_Sdm660_ddr.elf
    3. Apply magisk_patched.img using the following command
    Code:
    fh_loader.exe --port=\\.\COM<#> --sendxml=<xmlfile.xml> --lun=0  --memoryname=emmc --noprompt --reset

    USERDEBUG Flash

    Step 1 - Backup
    1. Boot to EDL mode and load firehose programmer
    2. Generate rawprogram0.xml - Run GPTConsole <COM Number>
    Example: GPTConsole 19
    3. Initiate backup
    Code:
    fh_loader.exe --port=\\.\COM<#> --convertprogram2read --sendxml=rawprogram0.xml --lun=0  --memoryname=emmc --noprompt --reset
    4. Wipe all partitions
    Code:
    fh_loader.exe --port=\\.\COM<#> --convertprogram2read --sendxml=erase.xml --lun=0  --memoryname=emmc --noprompt --reset
    5. Restore new image
    Code:
    fh_loader.exe --port=\\.\COM<#> --sendxml=rawprogram0.xml --lun=0  --memoryname=emmc --noprompt --reset --search_path=<extracted image file directory>
    // rawprogram0_unsparse.xml for some images

    Images and OTA Files

    Full 8.1 System Image
    XP8A_ATT_user_8A.0.5-11-8.1.0-10.54.00
    XP8A_ATT-user-8A.0.5-10-8.1.0-10.49.00

    USERDEBUG Images
    XP8A_ATT_userdebug_8A.0.5-11-8.1.0-10.54.00
    XP8A_ACG-userdebug-8A.0.0-00-7.1.1-32.00.12
    XP8A_USC-userdebug-8A.0.0-00-7.1.1-34.00.10
    (ATT 7.1 pending upload. Please check back or use other links available further in thread.)

    OTA Updates
    XP8_ATT_user_N10.01.75-O10.49.00
    XP8_ATT_user_O10.49.00-O10.54.00
    XP8_TEL_user_N12.00.24-O12.23.00

    Flash Tools - programmer (elf) file provided by eleotk!
    XP8 Drivers

    Firmware Carrier Codes
    Code:
        None = 0,
        ATT = 10
        Bell = 11
        Telus = 12
        Sasktel = 13
        Harris = 14
        Verizon = 15
        Ecom = 16
        NAM = 17
        Rogers = 18
        T_Mobile = 19
        EU_Generic = 20
        MSI = 21
        CISCO = 22
        NAM_Public_Safety = 23
        Vodafone_Global = 24
        Orange = 25
        Southern_Linc = 26
        OPTIO = 27
        India = 28
        SPRINT = 29
        JVCK = 30
        AUS = 31
        ACG = 32
        CSPIRE = 33
        USC = 34
        SB = 35
        Multi = 99

    Automatic OTA without AT&T service:
    Purchase a blank AT&T SIM card ($5)
    Start online prepaid activation - complete pages 1 & 2
    **SIM Card is now partially active without funding - do not complete page 3 (payment)***
    *#*#368378#*#* > Clear UI > Check for updates in settings

    XP5s
    Sprint Image: XP5SA.0.2-03-7.1.2-29.03.00
    Works the same. Tested with unmodified Sprint firmware. Like most other apps, the Magisk manager app is unusable since the XP5s has no touch screen - I had to patch the boot image on another device. You can plug in a USB mouse however the cursor does not seem to invoke in-app tap's.

    Need to use the appropriate Firehose loader (prog_emmc_firehose_8920.mbn) and replace the boot image location according to the XP5s GPT (start_sector="790528").
    4
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    Sonim XP8 is officially Rooted with TWRP
    replace downloaded boot.img with your boot.img in firmware folder from the link below
    tested on android 7x-8x USERDEBUG builds.
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

    =======================================================================
    Bugs -
    cant flash system.img
    wipe/format data wipes phone completely
    ive tested both functions its the way this phone is setup its pretty weird.

    =======================================================================
    Updates -
    will be working on figuring out how to build a custom OS
    any help would be greatly appreciated

    =======================================================================
    NEW LINK with sonim flash tool , boot.img , magisk , and no verity
    I dont ! take any credit for the mentioned applications just the
    TWRP port
    ==========
    Thank you to all who kept this thread in motion lets keep it going !!
    ========================================================================
    ADB -
    adb reboot
    bootloader - takes you to fastboot where you can select recovery mode
    adb reboot
    edl - takes you to flash mode.
    adb reboot recovery doesnt work !
    ========================================================================


    NEW LINK - GDRIVE
    3
    Instructions ROOT easy way

    1. Download ROM/Userdebug image (you can find it on first page)
    XP8A_ATT_userdebug_8A.0.5-11-8.1.0-10.54.00
    XP8A_ACG-userdebug-8A.0.0-00-7.1.1-32.00.12
    XP8A_USC-userdebug-8A.0.0-00-7.1.1-34.00.10

    2. Unpack archive of the userdebug image
    3. Install XP8 Drivers ( also on first page)
    4. Connect your phone to PC
    5. Copy Boot.img from the unpacked zip to your phone in Downloads folder
    6. Install Magisk Manager to your phone (first page)
    7. Open Magisk and patch the boot.img you just copied in Downloads folder
    8. Copy the magisk_patched.img that you have created to the unpacked archive of the ROM
    9. Rename boot.img from ROM folder to boot_backup.img
    10. Rename magisk_patched.img to boot.img
    11. Download Sonim+Software+Update+Tool.zip and unpack & install it to your PC
    12. Open Sonim Software Update Tool (username: 1, password: 1) and guide XML PATH and Build Path to the ROM folder
    13. Click Start
    3
    After flash some devices stuck on logo. Just make factory reset,any help can ask me
    3
    Hey guys, been a while and I'm glad to share some updates with the community!

    Main post here has been updated according to the progress made in the previous posts. Much thanks to everyone for providing early debug images, files, and knowledge!

    Updates
    - Torrent file hosting moved to Android FIle Host
    - Current 8.1.0 AT&T Debug image uploaded
    - 8.1.0 Debug image verified to retain dm-verity! At least on current AT&T builds.
    - Additional factory images uploaded
    - All basic flash tools, elf files, drivers, and GPTConsole executable uploaded
    - More images will be uploaded in the following days. Ran out of time to upload everything tonight.

    Full Android File Host Repository - Here

    We continue to welcome new images for the file collection.