Index.dat

From PS3 Developer wiki
Revision as of 06:28, 12 April 2023 by Derf (talk | contribs) (Text replacement - "playstationdev.wiki/psvitadevwiki" to "psdevwiki.com/vita")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Encrypted form of version.txt. Contains info about firmware version/build/date etc.

Location[edit | edit source]

PS3[edit | edit source]

/dev_flash/vsh/etc/index.dat

PS Vita[edit | edit source]

vs0:vsh/etc/index.dat

PS4[edit | edit source]

/priv/etc/index.dat

Decryption[edit | edit source]

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[edit | edit source]

See [1]

Alternative Readout[edit | edit source]

PS3[edit | edit source]

This info can also be read with More System Information.

PSVita[edit | edit source]

This info can also be read with More System Information

PS3 Example[edit | edit source]

Note: You can find more samples per version on the talk page

3.55 RETAIL/CEX[edit | edit source]

– $ö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[edit | edit source]

PUP Image version - versus Build number in index.dat/version.txt[edit | edit source]

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[edit | edit source]

PSP / PS3[edit | edit source]

release[edit | edit source]

notes version

build[edit | edit source]

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[edit | edit source]

notes intended Product Code

security[edit | edit source]

system[edit | edit source]

x3[edit | edit source]

?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[edit | edit source]

?parseArgumentsFile?. Name inherited from psp firmware.

PAF related modules in PSP[edit | edit source]

vsh/module/paf.prx
vsh/module/pafmini.prx

PAF related modules in PS3[edit | edit source]

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[edit | edit source]

relates to VSH

sys_jp[edit | edit source]

?seems related to Japanese input method I/O ?

codec[edit | edit source]

only seen in 0.90 and earlier, not in 0.95 and later

emu[edit | edit source]

only seen in 0.90 and earlier, not in 0.95 and later (where they are splitted into ps1emu and ps2emu)

ps1emu[edit | edit source]

relates to Emulation#ps1emu

ps1netemu[edit | edit source]

relates to Emulation#ps1emu

ps1newemu[edit | edit source]

relates to Emulation#ps1emu

ps2emu[edit | edit source]

relates to Emulation#ps2emu

ps2gxemu[edit | edit source]

relates to Emulation#ps2emu

ps2softemu[edit | edit source]

relates to Emulation#ps2emu

pspemu[edit | edit source]

relates to Emulation#pspemu

emerald[edit | edit source]

?AV-player? / NA on DEX/DECH/DECR since 0.95

bdp[edit | edit source]

Bluray Disc Player. N/A on DEX/DECH/DECR since 0.95.

patch[edit | edit source]

auth[edit | edit source]

PSVita[edit | edit source]

sys-revision
vsh-revision
security-revision

sys-repository-path
vsh-repository-path
security-repository-path

sdk-internal-build-number
vsh-build-number