Playstation Update Package (PUP): Difference between revisions

From Vita Developer wiki
Jump to navigation Jump to search
(improved structure definition, removed ugly picture (everything is explained now), also removed all that example stuff (its just clutter, if you need an example just download a PUP))
Line 260: Line 260:


== Recovery Menu Options ==
== Recovery Menu Options ==
=== 1. Restart System ===
=== 1. Restart the PS Vita System ===
This option boots your system as normal without changing any settings or files.
This option boots your system as normal without changing any settings or files.
=== 2. Rebuild Database ===
=== 2. Rebuild Database ===
Line 266: Line 266:
Deletes messages, playlists, changes made on "Information" screens, trimming information for pictures in "Photo", video thumbnails, video playback history and video resume information.
Deletes messages, playlists, changes made on "Information" screens, trimming information for pictures in "Photo", video thumbnails, video playback history and video resume information.
This operation may take a long time depending on the type and number of data items.
This operation may take a long time depending on the type and number of data items.
=== 3. Format the memory card===
=== 3. Format Memory Card===
This will format the memorycard, effectively erasing all data currently on it.
This will format the memorycard, effectively erasing all data currently on it.
=== 4. Restore PS Vita System ===
=== 4. Restore the PS Vita System ===
This will restore your system to original including, formatting and erasing all of the data on internal flash and returning all system settings to default. This will not take your system back to a previous Firmware release. Use this option as a last resort, unless you have nothing on the console that you want or you want to erase everything on the console, do not use this option.
This will restore your system to original including, formatting and erasing all of the data on internal flash and returning all system settings to default. This will not take your system back to a previous Firmware release. Use this option as a last resort, unless you have nothing on the console that you want or you want to erase everything on the console, do not use this option.
=== 5. System Update ===
=== 5. Update System Software ===
This can usefull if your system has become corrupted to the point you can not boot. This will allow the user to update their console with new firmware via :
This can usefull if your system has become corrupted to the point you can not boot. This will allow the user to update their console with new firmware via :
* PS3
* PS3

Revision as of 04:25, 31 December 2011

Extraction

The PS VITA update files can be extracted using the "PS VITA Firmware xTractor".

Decryption

To decrypt the files which are unpacked using the tool, the key is available under PS Vita Keys

Structure

The file structure of the Vita's PUP files is almost identical to the PS3's, although there is a slight difference in the header and the hash algorithm. For starters, whereas in PS3 the format was big-endian for the Vita it has been switched to little-endian (probably the same for all Vita formats). Also the Package Version field in Vita pups is set to 2 where in PS3 updates it was set to 1. There is also 0x50 bytes of extra data in the header and the hashes used are of a longer length than in PS3 updates (0x20 bytes in Vita vs 0x14 in PS3)

Header

Offset Length Type Information
0x0 0x8 unsigned long Magic (hex: 0x5343455546000001 ~ ASCII "SCEUF")
0x8 0x8 unsigned long Package Version
0x10 0x8 unsigned long Image Version
0x18 0x8 unsigned long File Count
0x20 0x8 unsigned long Header Length (2048, file data starts from here)
0x28 0x8 unsigned long Package Length (size of PUP file - 8)
0x30 0x50 UNKNOWN UNKNOWN, same for all >V1.0 files so far, maybe something for extra security? (or maybe to break a PS3 which tries to read the update)
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000030  02 00 00 00 01 00 00 00 00 00 00 00 02 00 00 00  ................
00000040  00 00 00 00 0F 00 00 00 00 00 00 00 00 00 00 00  ................
00000050  00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00000060  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00000070  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0x80 0x20 * File Count File Table File Table
0x80 + (0x20 * File Count) 0x40 * File Count Hash Table Hash Table
0x80 + (0x60 * File Count) 0x20 bytes Header Hash (unknown algo?)

File Table

The file table consists of a number of file entries determined by File Count, with the format below (which is the same as the format in PS3 PUP1 files)

Offset Length Type Information
0x0 0x8 unsigned long Entry ID
0x8 0x8 unsigned long Data Offset
0x10 0x8 unsigned long Data Length
0x18 0x8 unsigned long Unknown

Filename IDs

File Entry ID Filename
0x100 ngpversion.txt

Hash Table

The hash table contains a hash entry for every file inside the PUP.

The hash entry format is:

Offset Length Type Information
0x0 0x8 unsigned long File Index
0x8 0x20 bytes File Hash (unknown algo?)
0x28 0x18 bytes Unknown


Files

preinst - 01.000.000

Type Header Information Size
ASCII:MM.mmmm (01.500) [none] version.txt 1
PSP2SWU.SELF? SCE .ELF binary0.self 4536
PSP2SWU.SPRX? SCE .ELF binary1.self 42
XML license.xml 451
SCE package_file_0.pkg 7904
SCE package_file_1.pkg 8130
SCE package_file_2.pkg 8196
SCE package_file_3.pkg 8196
SCE package_file_4.pkg 8196
SCE package_file_5.pkg 7883
SCE package_file_6.pkg 8052
SCE package_file_7.pkg 6943
SCE package_file_8.pkg 7758
SCE package_file_9.pkg 7805
SCE package_file_10.pkg 7804
SCE package_file_11.pkg 8005
SCE package_file_12.pkg 8103
SCE package_file_13.pkg 8084
SCE package_file_14.pkg 8066
SCE package_file_15.pkg 1661
SCEWM package_file_16.pkg 14
SCEAS package_file_17.pkg 1

systemdata - 01.000.010

Type Header Information Size
ASCII:MM.mmmm (01.500) [none] version.txt 1
PSP2SWU.SELF? SCE .ELF binary0.self 4536
PSP2SWU.SPRX? SCE .ELF binary1.self 42
XML license.xml 451
SCE package_file_0.pkg 2625
SCE package_file_1.pkg 4048
SCE package_file_2.pkg 2746
SCE package_file_3.pkg 3874
SCE package_file_4.pkg 4742
SCE package_file_5.pkg 4660
SCE package_file_6.pkg 3946
SCE package_file_7.pkg 4145
SCE package_file_8.pkg 4630
SCE package_file_9.pkg 5476
SCE package_file_10.pkg 4860
SCE package_file_11.pkg 4722
SCEWM package_file_12.pkg 4
SCEAS package_file_13.pkg 1

full - 01.500.000

Type Header Information Size
ASCII:MM.mmmm (01.500) [none] version.txt 1
PSP2SWU.SELF? SCE .ELF binary0.self 4536
PSP2SWU.SPRX? SCE .ELF binary1.self 42
XML license.xml 451
SCE package_file_0.pkg 634
SCE package_file_1.pkg 6718
SCE package_file_2.pkg 8194
SCE package_file_3.pkg 8194
SCE package_file_4.pkg 8194
SCE package_file_5.pkg 8194
SCE package_file_6.pkg 8194
SCE package_file_7.pkg 8194
SCE package_file_8.pkg 8194
SCE package_file_9.pkg 8194
SCE package_file_10.pkg 8194
SCE package_file_11.pkg 6154
SCEWM package_file_12.pkg 4
SCEAS package_file_13.pkg 1

Recovery Menu

  1. Turn OFF your PS Vita (Press Power Button for 10 seconds)
  2. Now press and hold "R" + Power + PS (PlayStation Button)
  3. Wait...
  4. Now you're in Recovery Menu (Mode)

See also: http://www.youtube.com/watch?v=R532NpDMQhw Since 1.51 it seems alot easier to enter recovery menu: http://www.youtube.com/watch?v=ublLC235QV0 Vpsmenu.jpg

Recovery Menu Options

1. Restart the PS Vita System

This option boots your system as normal without changing any settings or files.

2. Rebuild Database

This can be a usefull feature if you have lost files on your system for no apparent reason. Try using this feature to see if it can restore those files. This will also rewrite corrupted files within the database, potentially eliminating future issues. This feature should not erase any of your saved data or settings.
Deletes messages, playlists, changes made on "Information" screens, trimming information for pictures in "Photo", video thumbnails, video playback history and video resume information. This operation may take a long time depending on the type and number of data items.

3. Format Memory Card

This will format the memorycard, effectively erasing all data currently on it.

4. Restore the PS Vita System

This will restore your system to original including, formatting and erasing all of the data on internal flash and returning all system settings to default. This will not take your system back to a previous Firmware release. Use this option as a last resort, unless you have nothing on the console that you want or you want to erase everything on the console, do not use this option.

5. Update System Software

This can usefull if your system has become corrupted to the point you can not boot. This will allow the user to update their console with new firmware via :

  • PS3
  • PC
  • PS Vita memorycard

Regioning

If simular to PS3, then there is no regioning in the .PUP files, they are the same for all different regions.
The PS Vita however gets the psp2-updatelist.xml from different servers, depening on the region of that model.

Retail:

22 dec 2011 :: full 01.510.000 + systemdata 01.000.010 + preinst 01.000.000:

<update_data_list>
  <region id="jp">
    <np level0_system_version="01.510.000" level1_system_version="01.510.000" level2_system_version="01.510.000"/>
    <version system_version="01.510.000" label="01.510">
      <update_data update_type="full">
        <image size="94500352">
          http://djp01.psp2.update.playstation.net/update/psp2/image/2011_1222/rel_48ac631ecae3837a7530506de0d73eaf/PSP2UPDAT.PUP?dest=jp
        </image>
      </update_data>
    </version>
    <recovery spkg_type="systemdata">
      <image spkg_version="01.000.010" size="56817152">
        http://djp01.psp2.update.playstation.net/update/psp2/image/2011_1222/sd_52ff6b714e5f701d15938a6fee68fb66/PSP2UPDAT.PUP?dest=jp
      </image>
    </recovery>
    <recovery spkg_type="preinst">
      <image spkg_version="01.000.000" size="128837120">
        http://djp01.psp2.update.playstation.net/update/psp2/image/2011_1222/pre_a18a91bb8c86f8c1a101d19fcb15fb6d/PSP2UPDAT.PUP?dest=jp
      </image>
    </recovery>
  </region>
</update_data_list>

14 dec 2011 :: full 01.500.000 + systemdata 01.000.010 + preinst 01.000.000:

<update_data_list>
  <region id="jp">
    <np level0_system_version="01.500.000" level1_system_version="01.500.000" level2_system_version="01.500.000"/>
    <version system_version="01.500.000" label="01.500">
      <update_data update_type="full">
        <image size="94496256">
          http://djp01.psp2.update.playstation.net/update/psp2/image/2011_1214/rel_f090a69bcf392b5c311b9e786c5cc0b5/PSP2UPDAT.PUP?dest=jp
        </image>
      </update_data>
    </version>
    <recovery spkg_type="systemdata">
      <image spkg_version="01.000.010" size="56817152">
        http://djp01.psp2.update.playstation.net/update/psp2/image/2011_1214/sd_484243f3964158b38ad1adaac0332a3e/PSP2UPDAT.PUP?dest=jp
      </image>
    </recovery>
    <recovery spkg_type="preinst">
      <image spkg_version="01.000.000" size="128837120">
        http://djp01.psp2.update.playstation.net/update/psp2/image/2011_1214/pre_24b5601c3b3aa63b51cf5eaeab718a4c/PSP2UPDAT.PUP?dest=jp
      </image>
    </recovery>
  </region>
</update_data_list>

Shop:

<update_data_list>
  <region id="shop">
    <np level0_system_version="00.000.000" level1_system_version="00.000.000" level2_system_version="00.000.000"/>
    <version system_version="00.000.000">
      <update_data update_type="full">
        <image>NA</image>
      </update_data>
    </version>
  </region>
</update_data_list>

Retail basic structure of the update URL:

http://d<TLD>01.psp2.update.playstation.net/update/psp2/image/<YYYY_MMDD>/pre_<md5>/PSP2UPDAT.PUP?dest=<TLD>
(TLD=2 letter abbreviation from above region, YYYY_MMDD is release date, md5 is 22-digits long HASH)

Revisions

01.030.010

SKU Release version in Japan

01.050.00

shipped on launch gaming cards

01.500.000 Complete

14 dec 2011
Update released online together with Japanese launch 01.500.000 PSP2UPDAT.PUP's (266.73 MB)

preinst 01.000.000

http://djp01.psp2.update.playstation.net/update/psp2/image/2011_1214/pre_24b5601c3b3aa63b51cf5eaeab718a4c/PSP2UPDAT.PUP
1.000.000 PSP2UPDAT.PUP (122.87 MB)

systemdata 01.000.010

http://djp01.psp2.update.playstation.net/update/psp2/image/2011_1214/sd_484243f3964158b38ad1adaac0332a3e/PSP2UPDAT.PUP
1.000.010 PSP2UPDAT.PUP (54.19 MB)

full 01.500.000

http://djp01.psp2.update.playstation.net/update/psp2/image/2011_1214/rel_f090a69bcf392b5c311b9e786c5cc0b5/PSP2UPDAT.PUP


01.510.000 Complete

22 dec 2011
PSP2UPDAT.PUP's (266.74 MB)

preinst 01.000.000

http://djp01.psp2.update.playstation.net/update/psp2/image/2011_1222/pre_a18a91bb8c86f8c1a101d19fcb15fb6d/PSP2UPDAT.PUP
PSP2UPDAT.PUP (122.87 MB)

systemdata 01.000.010

http://djp01.psp2.update.playstation.net/update/psp2/image/2011_1222/sd_52ff6b714e5f701d15938a6fee68fb66/PSP2UPDAT.PUP
PSP2UPDAT.PUP (54.19 MB)

full 01.510.000

http://djp01.psp2.update.playstation.net/update/psp2/image/2011_1222/rel_48ac631ecae3837a7530506de0d73eaf/PSP2UPDAT.PUP
PSP2UPDAT.PUP (90.12 MB)