[Windows 10 Mobile] TristanLeBoss:
Regarding the FFU file itself (10586.1102.3063.Retail.FFU): the image embedded catalog is not signed. I attached it to this post. I also attached the extracted hash table. Indeed, the cat file only contains a SHA1 of the hashtable: it's enough to ensure the data is fine.

All the informations:

"_SECURITY_HEADER" position: 0

_SECURITY_HEADER

----------------

cbSize[4]: 20000000 (32)

Signature[12]: 5369676e6564496d61676520 (SignedImage )

dwChunkSizeInKb[4]: 80000000 (128)

dwAlgId[4]: 0c800000 (32780)

dwCatalogSize[4]: 48010000 (328)

dwHashTableSize[4]: 00a50600 (435456)

"Signed Catalog" position: 32

"Hash table data" position: 360 (+328)

"Padding" position: 435816 (+435456)

"_IMAGE_HEADER" position: 524288 (+88472)

Image Integrity Validation

--------------------------

Verify SHA-1 hash (91b4b4d9944bd90e36891b26c6ecded90190fcd5) of the hash table against the one from the embedded catalog

-> SHA-1 hash of the hash table match the hash from the catalog

Verify 1783627776 bytes of data per chunk of 128 kilobytes using 13608 SHA256 hashes (32 bytes)

-> Done successfully!

_IMAGE_HEADER

-------------

cbSize[4]: 18000000 (24)

Signature[12]: 496d616765466c6173682020 (ImageFlash )

ManifestLength[4]: f41a0000 (6900)

dwChunkSize[4]: 80000000 (128)

"Manifest" position: 524312

"Padding" position: 531212 (+6900)

"_STORE_HEADER" position: 655360 (+124148)

_STORE_HEADER

-------------

dwUpdateType[4]: 00000000 (0)

MajorVersion[2]: 0100 (1)

MinorVersion[2]: 0000 (0)

FullFlashMajorVersion[2]: 0200 (2)

FullFlashMinorVersion[2]: 0000 (0)

szPlatformId[192]: 5849414f4d49544553542e5869616f6d69383937342e4d49340000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 (XIAOMITEST.Xiaomi8974.MI4)

dwBlockSizeInBytes[4]: 00000200 (131072)

dwWriteDescriptorCount[4]: 25350000 (13605)

dwWriteDescriptorLength[4]: 58520300 (217688)

dwValidateDescriptorCount[4]: 00000000 (0)

dwValidateDescriptorLength[4]: 00000000 (0)

dwInitialTableIndex[4]: 00000000 (0)

dwInitialTableCount[4]: 01000000 (1)

dwFlashOnlyTableIndex[4]: d1000000 (209)

dwFlashOnlyTableCount[4]: 01000000 (1)

dwFinalTableIndex[4]: 23350000 (13603)

dwFinalTableCount[4]: 02000000 (2)

NumOfStores[2]: Skipped because field is only for version 2 FFU image

StoreIndex[2]: Skipped because field is only for version 2 FFU image

StorePayloadSize[8]: Skipped because field is only for version 2 FFU image

DevicePathLength[2]: Skipped because field is only for version 2 FFU image

DevicePath[2]: Skipped because field is only for version 2 FFU image

"_VALIDATION_ENTRY" position: 655608

"_VALIDATION_ENTRY" size: 0

"_BLOCK_DATA_ENTRY" position: 655608

"_BLOCK_DATA_ENTRY" size: 217688

"_IMAGE_PAYLOAD" position: 917504

_VALIDATION_ENTRY

-----------------

Skipped because there is no validation entries

_BLOCK_DATA_ENTRY

-----------------

(Removed because it's really long !)

"Padding" position: 873296

"_IMAGE_PAYLOAD" position: 917504

GUID Partition Table Layouts

----------------------------

GUID Partition Table from data block #0

+-----+-----------+-----------+--------+------------------------------------+
+ # | Start LBA | End LBA | Size | Name |
+-----+-----------+-----------+--------+------------------------------------+
+-----+-----------+-----------+--------+------------------------------------+

GUID Partition Table from data block #209

+-----+-----------+-----------+--------+------------------------------------+
+ # | Start LBA | End LBA | Size | Name |
+-----+-----------+-----------+--------+------------------------------------+
| 0| 1024| 2047| 1024|SBL1 |
| 1| 2048| 2559| 512|UEFI_BS_NV |
| 2| 3072| 3583| 512|UEFI_RT_NV |
| 3| 4096| 8191| 4096|UEFI |
| 4| 8192| 10239| 2048|DDR |
| 5| 10240| 12287| 2048|SSD |
| 6| 12288| 14335| 2048|PADDING0 |
| 7| 14336| 30719| 16384|DPP |
| 8| 30720| 30783| 64|DBI |
| 9| 31744| 32743| 1000|RPM |
| 10| 32768| 33767| 1000|TZ |
| 11| 33792| 34815| 1024|WINSECAPP |
| 12| 34816| 67583| 32768|TZAPPS |
| 13| 67584| 68607| 1024|BACKUP_SBL1 |
| 14| 68608| 68671| 64|BACKUP_DBI |
| 15| 69632| 73727| 4096|BACKUP_UEFI |
| 16| 73728| 74727| 1000|BACKUP_RPM |
| 17| 74752| 75751| 1000|BACKUP_TZ |
| 18| 75776| 76799| 1024|BACKUP_WINSECAPP |
| 19| 76800| 109567| 32768|BACKUP_TZAPPS |
| 21| 117760| 131071| 13312|PADDING1 |
| 22| 131072| 134143| 3072|MODEM_FS1 |
| 23| 134144| 137215| 3072|MODEM_FS2 |
| 24| 137216| 137247| 32|MODEM_FSC |
| 25| 138240| 154623| 16384|PLAT |
| 26| 154624| 220159| 65536|EFIESP |
| 27| 220160| 262143| 41984|PADDING2 |
| 28| 262144| 265215| 3072|MODEM_FSG |
| 29| 265216| 491519| 226304|PADDING3 |
| 30| 491520| 524287| 32768|PERSIST |
+-----+-----------+-----------+--------+------------------------------------+

GUID Partition Table from data block #13603

+-----+-----------+-----------+--------+------------------------------------+
+ # | Start LBA | End LBA | Size | Name |
+-----+-----------+-----------+--------+------------------------------------+
| 0| 1024| 2047| 1024|SBL1 |
| 1| 2048| 2559| 512|UEFI_BS_NV |
| 2| 3072| 3583| 512|UEFI_RT_NV |
| 3| 4096| 8191| 4096|UEFI |
| 4| 8192| 10239| 2048|DDR |
| 5| 10240| 12287| 2048|SSD |
| 6| 12288| 14335| 2048|PADDING0 |
| 7| 14336| 30719| 16384|DPP |
| 8| 30720| 30783| 64|DBI |
| 9| 31744| 32743| 1000|RPM |
| 10| 32768| 33767| 1000|TZ |
| 11| 33792| 34815| 1024|WINSECAPP |
| 12| 34816| 67583| 32768|TZAPPS |
| 13| 67584| 68607| 1024|BACKUP_SBL1 |
| 14| 68608| 68671| 64|BACKUP_DBI |
| 15| 69632| 73727| 4096|BACKUP_UEFI |
| 16| 73728| 74727| 1000|BACKUP_RPM |
| 17| 74752| 75751| 1000|BACKUP_TZ |
| 18| 75776| 76799| 1024|BACKUP_WINSECAPP |
| 19| 76800| 109567| 32768|BACKUP_TZAPPS |
| 20| 109568| 117759| 8192|MMOS |
| 21| 117760| 131071| 13312|PADDING1 |
| 22| 131072| 134143| 3072|MODEM_FS1 |
| 23| 134144| 137215| 3072|MODEM_FS2 |
| 24| 137216| 137247| 32|MODEM_FSC |
| 25| 138240| 154623| 16384|PLAT |
| 26| 154624| 220159| 65536|EFIESP |
| 27| 220160| 262143| 41984|PADDING2 |
| 28| 262144| 265215| 3072|MODEM_FSG |
| 29| 265216| 491519| 226304|PADDING3 |
| 30| 491520| 524287| 32768|PERSIST |
| 31| 524288| 5537791| 5013504|MainOS |
| 32| 5537792| 20967423|15429632|Data |
+-----+-----------+-----------+--------+------------------------------------+

Data Blocks to Partitions

-------------------------

Data Block #0-0: -> GPT

Data Block #0-1: -> GPT

Data Block #1-0: -> SBL1

to

Data Block #4-0: -> SBL1

Data Block #5-0: -> UEFI_BS_NV

to

Data Block #8-0: -> UEFI_RT_NV

Data Block #9-0: -> UEFI

to

Data Block #24-0: -> UEFI

Data Block #25-0: -> PADDING0

to

Data Block #32-0: -> PADDING0

Data Block #33-0: -> DPP

Data Block #34-0: -> DBI

Data Block #35-0: -> RPM

to

Data Block #38-0: -> RPM

Data Block #39-0: -> TZ

to

Data Block #42-0: -> TZ

Data Block #43-0: -> WINSECAPP

to

Data Block #46-0: -> WINSECAPP

Data Block #47-0: -> TZAPPS

to

Data Block #48-0: -> TZAPPS

Data Block #49-0: -> BACKUP_TZAPPS

to

Data Block #60-0: -> BACKUP_TZAPPS

Data Block #61-0: -> MODEM_FS2

to

Data Block #68-0: -> MODEM_FS2

Data Block #69-0: -> MODEM_FSC

Data Block #70-0: -> PLAT

to

Data Block #127-0: -> PLAT

Data Block #128-0: -> EFIESP

to

Data Block #208-0: -> EFIESP

Data Block #209-0: -> GPT

Data Block #210-0: -> MMOS

to

Data Block #211-0: -> MMOS

Data Block #212-0: -> MainOS

to

Data Block #12925-0: -> MainOS

Data Block #12926-0: -> Data

to

Data Block #13602-0: -> Data

Data Block #13603-0: -> GPT

Data Block #13604-0: -> GPT