Index.dat
Encrypted form of version.txt. Contains info about firmware version/build/date etc.
Location
PS3
/dev_flash/vsh/etc/index.dat
PS Vita
vs0:vsh/etc/index.dat
PS4
/priv/etc/index.dat
Decryption
Index.dat is aligned to 0x10 bytes, digested with SHA-1 (PS3), SHA-256 (PS Vita, PS4) then encrypted with AES128CBC (PS3), AES256CBC (PS Vita, PS4).
Reciprocally, index.dat is decrypted with AES128CBC (PS3), AES256CBC (PS Vita, PS4), digest is verified then version.txt is stored as null-terminated string and is displayed as is or parsed.
Tools
See [1]
Alternative Readout
PS3
This info can also be read with More System Information.
PSVita
This info can also be read with More System Information
PS3 Example
Note: You can find more samples per version on the talk page
3.55 RETAIL/CEX
– $öNý> ¶˜`³Únªì*¹¾5000000000000 release:03.5500: build:47516,20101127:tetsu@tetsu-linux14 target:0001:CEX-ww security:4072@security/sdk_branches/release_355/trunk: system:46573@sys/sdk_branches/release_355/trunk: x3:15614@x3/branches/target35x: paf:6107@paf/branches/target35x: vsh:83779@vsh/branches/target35x: sys_jp:69@sys_jp/branches/target35x: ps1emu:6555@emu/branches/target101/ps1: ps1netemu:6679@emu/branches/target355/ps1_net: ps1newemu:6556@emu/branches/target202/ps1_new: ps2emu:6597@emu/branches/target350/ps2: ps2gxemu:14473@branches/target355/gx: ps2softemu:13474@branches/soft190/soft: pspemu:6646@emu/branches/target355/psp: emerald:3781@emerald/target35x: bdp:14948@bdp/prof5/branches/target35x: patch:: auth:47516:
Pre Bytes = sha1sum of the text, padded with 0 (byte 0x30) to fill 0x20 size:
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00000000 72 65 6C 65 61 73 65 3A 30 33 2E 36 35 30 30 3A release:03.6500: 00000010 0A 62 75 69 6C 64 3A 34 39 37 36 34 2C 32 30 31 .build:49764,201 00000020 31 30 35 31 33 3A 74 65 74 73 75 40 74 65 74 73 10513:tetsu@tets 00000030 75 2D 6C 69 6E 75 78 31 36 0A 74 61 72 67 65 74 u-linux16.target 00000040 3A 30 30 30 31 3A 43 45 58 2D 77 77 0A 73 65 63 :0001:CEX-ww.sec 00000050 75 72 69 74 79 3A 34 34 34 37 40 73 65 63 75 72 urity:4447@secur 00000060 69 74 79 2F 73 64 6B 5F 62 72 61 6E 63 68 65 73 ity/sdk_branches 00000070 2F 72 65 6C 65 61 73 65 5F 33 36 35 2F 74 72 75 /release_365/tru 00000080 6E 6B 3A 0A 73 79 73 74 65 6D 3A 34 37 33 39 33 nk:.system:47393 00000090 40 73 79 73 2F 73 64 6B 5F 62 72 61 6E 63 68 65 @sys/sdk_branche 000000A0 73 2F 72 65 6C 65 61 73 65 5F 33 36 35 2F 74 72 s/release_365/tr 000000B0 75 6E 6B 3A 0A 78 33 3A 31 35 37 37 36 40 78 33 unk:.x3:15776@x3 000000C0 2F 62 72 61 6E 63 68 65 73 2F 74 61 72 67 65 74 /branches/target 000000D0 33 36 78 3A 0A 70 61 66 3A 36 31 31 38 40 70 61 36x:.paf:6118@pa 000000E0 66 2F 62 72 61 6E 63 68 65 73 2F 74 61 72 67 65 f/branches/targe 000000F0 74 33 36 78 3A 0A 76 73 68 3A 38 35 34 32 35 40 t36x:.vsh:85425@ 00000100 76 73 68 2F 62 72 61 6E 63 68 65 73 2F 74 61 72 vsh/branches/tar 00000110 67 65 74 33 36 78 3A 0A 73 79 73 5F 6A 70 3A 37 get36x:.sys_jp:7 00000120 31 40 73 79 73 5F 6A 70 2F 62 72 61 6E 63 68 65 1@sys_jp/branche 00000130 73 2F 74 61 72 67 65 74 33 36 78 3A 0A 70 73 31 s/target36x:.ps1 00000140 65 6D 75 3A 36 37 33 37 40 65 6D 75 2F 62 72 61 emu:6737@emu/bra 00000150 6E 63 68 65 73 2F 74 61 72 67 65 74 31 30 31 2F nches/target101/ 00000160 70 73 31 3A 0A 70 73 31 6E 65 74 65 6D 75 3A 37 ps1:.ps1netemu:7 00000170 30 37 36 40 65 6D 75 2F 62 72 61 6E 63 68 65 73 076@emu/branches 00000180 2F 74 61 72 67 65 74 33 36 30 2F 70 73 31 5F 6E /target360/ps1_n 00000190 65 74 3A 0A 70 73 31 6E 65 77 65 6D 75 3A 36 37 et:.ps1newemu:67 000001A0 30 35 40 65 6D 75 2F 62 72 61 6E 63 68 65 73 2F 05@emu/branches/ 000001B0 74 61 72 67 65 74 32 30 32 2F 70 73 31 5F 6E 65 target202/ps1_ne 000001C0 77 3A 0A 70 73 32 65 6D 75 3A 36 37 36 36 40 65 w:.ps2emu:6766@e 000001D0 6D 75 2F 62 72 61 6E 63 68 65 73 2F 74 61 72 67 mu/branches/targ 000001E0 65 74 33 36 30 2F 70 73 32 3A 0A 70 73 32 67 78 et360/ps2:.ps2gx 000001F0 65 6D 75 3A 31 34 37 38 38 40 62 72 61 6E 63 68 emu:14788@branch 00000200 65 73 2F 74 61 72 67 65 74 33 36 30 2F 67 78 3A es/target360/gx: 00000210 0A 70 73 32 73 6F 66 74 65 6D 75 3A 31 33 34 37 .ps2softemu:1347 00000220 34 40 62 72 61 6E 63 68 65 73 2F 73 6F 66 74 31 4@branches/soft1 00000230 39 30 2F 73 6F 66 74 3A 0A 70 73 70 65 6D 75 3A 90/soft:.pspemu: 00000240 37 32 32 31 40 65 6D 75 2F 62 72 61 6E 63 68 65 7221@emu/branche 00000250 73 2F 74 61 72 67 65 74 33 36 35 2F 70 73 70 3A s/target365/psp: 00000260 0A 65 6D 65 72 61 6C 64 3A 33 38 31 35 40 65 6D .emerald:3815@em 00000270 65 72 61 6C 64 2F 74 61 72 67 65 74 33 36 78 3A erald/target36x: 00000280 0A 62 64 70 3A 31 35 38 31 36 40 62 64 70 2F 70 .bdp:15816@bdp/p 00000290 72 6F 66 35 2F 62 72 61 6E 63 68 65 73 2F 74 61 rof5/branches/ta 000002A0 72 67 65 74 33 36 78 3A 0A 70 61 74 63 68 3A 3A rget36x:.patch:: 000002B0 0A 61 75 74 68 3A 34 39 37 36 34 3A 0A 0A 0A 0A .auth:49764:....
Sample: dev_flash-vsh-etc-index.dat.rar (1.2 KB)
Pastie of content: http://pastebin.com/MqC3UFFT
Correlation to PUP version
PUP Image version - versus Build number in index.dat/version.txt
PUP Image version is located at offset 0x10-0x17 example OFW 3.15 CEX:
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000 53 43 45 55 46 00 00 00 00 00 00 00 00 00 00 01 SCEUF...........
00000010 00 00 00 00 00 00 94 8F 00 00 00 00 00 00 00 07 ......”.........
hex:948F (PUP image version) = dec:38031 (index.dat/version.txt)
On official firmwares the value is the same, but they are used in different stages. PUP image version is used by ps3swu.self (updater) when installing firmwares in normal and recovery mode. Index.dat/version.txt is not looked at when installing (hence, why you can have a 3.15 firmware with Image version correlating to 3.15 OFW and spoofed to look like a 4.11 firmware).
For MFW's/MFW Builder, the Image version is increased by +1, which is why you need to use Recovery mode to install a same version firmware.
Breakdown of elements
PSP / PS3
release
notes version
build
notes build number,reverse date:owner
ximai-linux / tetsu@tetsu-linux?(.rd.scei.sony.co.jp): Server that the firmware was built on (using Scientific Linux (RHEL 3/4 based) with Xen on IA64 )
target
notes intended Product Code
security
system
x3
?ANSI C standard? (X3.159-1989 and ISO/IEC 9899:1990)
Or... it could be the codename for "XMB version 3" ? (the first XMB interface implementation in a PlayStation was the PSX, second was the PSP, and third was the PS3)
paf
?parseArgumentsFile?. Name inherited from psp firmware.
vsh/module/paf.prx vsh/module/pafmini.prx
vsh/module/paf.sprx (from firmware 1.00 up to 2.17) vsh/module/paf_ext.sprx (from firmware 1.90 up to 4.91) vsh/module/paf_psjs.sprx (from firmware 2.70 up to 4.91) vsh/module/paf_web.sprx (from firmware 1.90 up to 4.91)
vsh
relates to VSH
sys_jp
?seems related to Japanese input method I/O ?
codec
only seen in 0.90 and earlier, not in 0.95 and later
emu
only seen in 0.90 and earlier, not in 0.95 and later (where they are splitted into ps1emu and ps2emu)
ps1emu
relates to Emulation#ps1emu
ps1netemu
relates to Emulation#ps1emu
ps1newemu
relates to Emulation#ps1emu
ps2emu
relates to Emulation#ps2emu
ps2gxemu
relates to Emulation#ps2emu
ps2softemu
relates to Emulation#ps2emu
pspemu
relates to Emulation#pspemu
emerald
?AV-player? / NA on DEX/DECH/DECR since 0.95
bdp
Bluray Disc Player. N/A on DEX/DECH/DECR since 0.95.
patch
auth
PSVita
sys-revision vsh-revision security-revision sys-repository-path vsh-repository-path security-repository-path sdk-internal-build-number vsh-build-number
|