Difference between revisions of "Project Database (PDB)"

From PS3 Developer wiki
Jump to: navigation, search
(Added info for ID 0x65)
 
(36 intermediate revisions by 8 users not shown)
Line 1: Line 1:
PDB (Package Database?) files are used by the PS3 to specify tasks for the XMB to do. They are stored in /dev_hdd0/vsh/task/ in 4 byte hex directories (e.g. 00000001/, 001ABCD0/)  
+
'''PDB''' (Project Database) files are used by the PS3 to specify tasks for the XMB to do. They are stored in /dev_hdd0/vsh/task/ in 4 byte hex directories (e.g. 00000001/, 001ABCD0/)  
  
Each directory represents a task and each task is defined by a couple of .pdb files. I believe pdb means package database, since the only place where these files appear is in /dev_hdd0/vsh/task and they seem to represent a .pkg download.  
+
Each directory represents an task id and each task is defined by a couple of .pdb files. I believe pdb means package database, since the only place where these files appear is in /dev_hdd0/vsh/task and they seem to represent a .pkg download.  
  
 
There will always be a 00000001/ directory with no .pkg file in it. I suppose it's there to represent another task the PS3 has to do (maybe the 'check for push downloads' for PSN+ users?), and I suggest never to mess with it.  
 
There will always be a 00000001/ directory with no .pkg file in it. I suppose it's there to represent another task the PS3 has to do (maybe the 'check for push downloads' for PSN+ users?), and I suggest never to mess with it.  
Line 7: Line 7:
 
Every other directory seems to represent a .pkg file that is being downloaded or has been downloaded (but not installed) through PSN. In each directory you should find the .pkg, a PNG image to show (filename ICON_FILE), and two or three .pdb files (d0.pdb and d1.pdb and an empty f0.pdb, which may or may not be there).  
 
Every other directory seems to represent a .pkg file that is being downloaded or has been downloaded (but not installed) through PSN. In each directory you should find the .pkg, a PNG image to show (filename ICON_FILE), and two or three .pdb files (d0.pdb and d1.pdb and an empty f0.pdb, which may or may not be there).  
  
 +
When there are unfinished/not installed (PS3 files, not for PSP or PSVITA) downloaded task, xmb/users/Turn Off System can appear the option to turn off the system automatically after background download.
  
 
=== Header ===   
 
=== Header ===   
Line 13: Line 14:
  
 
=== Data Entries ===
 
=== Data Entries ===
{| border="1"
+
{| class="wikitable"
 
!Offset
 
!Offset
 
!Length
 
!Length
Line 42: Line 43:
  
 
=== Entry IDs ===
 
=== Entry IDs ===
{| border="1"
+
{| class="wikitable"
 
!File Entry ID
 
!File Entry ID
 
!Filename   
 
!Filename   
 
|-
 
|-
 +
|0x64
 +
|
 +
|- 
 +
|0x65
 +
| Task active (0=paused, 1=downloading)
 +
|- 
 +
|0x66
 +
| Task unregister auto.
 +
|- 
 +
|0x68
 +
|
 +
|- 
 
|0x69  
 
|0x69  
|Package Name
+
|Package Name (Task Title)
 
|-   
 
|-   
 
|0x6A   
 
|0x6A   
|Icon Patch
+
|Icon Path
 
|-  
 
|-  
 +
|0x6B
 +
|Task Subtype (0=photo,1=music,2=video,4=patch?)
 +
|- 
 +
|0x6C
 +
|
 +
|- 
 +
|0xC8
 +
| Authentication UserName
 +
|- 
 +
|0xC9
 +
| Authentication Password
 +
|- 
 
|0xCA   
 
|0xCA   
|Server URL   
+
|Server URL/URI  
 
|-
 
|-
 
|0xCB  
 
|0xCB  
Line 59: Line 84:
 
|-   
 
|-   
 
|0xCC  
 
|0xCC  
  |Package Creation Date  
+
  |Package Last-Modified
 +
|-
 +
|0xCD
 +
  |  Move XCB
 
|-
 
|-
 
|0xCE  
 
|0xCE  
 
  |Package File Size   
 
  |Package File Size   
 +
|-
 +
|0xCF
 +
|
 
|-
 
|-
 
|0xD0
 
|0xD0
  |Downloaded Size   
+
  |Downloaded Size/Received Length
 +
|-
 +
|0xD1
 +
  |Referer?
 +
|-
 +
|0xD2
 +
|
 +
|-
 +
|0xD3
 +
|
 +
|-
 +
|0xD5
 +
|(Video) PlayCount
 +
|-
 +
|0xD6
 +
|(Video) StopPointInfo
 +
|-
 +
|0xD7
 +
|(Video) StopPointInfoSuppl
 +
|-
 +
|0xD8
 +
| File Download In Progress
 
|-
 
|-
 
|0xD9  
 
|0xD9  
Line 71: Line 123:
 
|-
 
|-
 
|0xDA  
 
|0xDA  
  |Download Completed   
+
  |Download Completed / Video:Video.reserved30
 +
|-
 +
|0xDB
 +
 
 +
|-
 +
|0xDC
 +
 +
|-
 +
|0xDD
 +
 +
|-
 +
|0xDE
 +
|(String)
 +
|-
 +
|0xDF
 +
|
 +
|-
 +
|0xE0
 +
|(String)
 +
|-
 +
|0xE1
 +
|(String)
 +
|-
 +
|0xE2
 +
|(String)
 +
|-
 +
|0xE3
 +
|(String)
 +
|-
 +
|0xE4
 +
|
 +
|-
 +
|0xE5
 +
|
 +
|-
 +
|0xE6
 +
|
 +
|-
 +
|0xE7
 +
|Title ID
 +
|-
 +
|0xEA
 +
| Video:Common.reserved24
 +
|-
 +
|0xEB
 +
| Log URL
 +
|-
 +
|0xEC
 +
|
 +
|-
 +
|0xED
 +
|
 +
|-
 +
|0xEE
 +
|
 +
|-
 +
|0xEF
 +
|Video:Video.reserved29
 +
|-
 +
|0xF0
 +
|
 +
|-
 +
|0xF1
 +
|
 +
|-
 +
|0xF2
 +
|
 +
|-
 +
|0xF3
 +
|preordered
 +
|-
 +
|0xF4
 +
|
 +
|-
 +
|0xF5
 +
|(drmcontent)
 
|-
 
|-
 
|}
 
|}
Line 79: Line 206:
  
  
{| border="1"
+
{| class="wikitable"
 
!ID
 
!ID
 
  !Length  
 
  !Length  
Line 129: Line 256:
 
Here are the values seen in a game task :  
 
Here are the values seen in a game task :  
  
  {| border="1"
+
  {| class="wikitable"
  
 
  !Type
 
  !Type
Line 176: Line 303:
  
  
{| border="1"
+
{| class="wikitable"
 
!Type
 
!Type
 
   !Length
 
   !Length
Line 183: Line 310:
 
  |-
 
  |-
  
|0x000000D0  |8  |64bit value  |current file size or total file size of .pkg in Big Endian
+
|0x000000D0   
 +
|8   
 +
|64bit value   
 +
|current file size or total file size of .pkg in Big Endian  
 +
|-
  
|0x000000CE  |8  |64bit value  |current file size or total file size of .pkg in Big Endian  
+
|0x000000CE   
 +
|8  
 +
  |64bit value  
 +
  |current file size or total file size of .pkg in Big Endian  
 
(same value as D0 for a fully downloaded title, need partial downloads to determine which key represents what)  
 
(same value as D0 for a fully downloaded title, need partial downloads to determine which key represents what)  
 +
|-
 
   
 
   
|0x000000CC  |variable  |"Thu, 02 Sep 2010 02:05:50 GMT" (qore)  |Date of when the .pkg was created (apparently since it's almost 1 week before it appeared on PSN)   
+
|0x000000CC   
 +
|variable   
 +
|"Thu, 02 Sep 2010 02:05:50 GMT" (qore)   
 +
|Date of when the .pkg was created (apparently since it's almost 1 week before it appeared on PSN)   
 +
|-
  
 
|0x0000006A  
 
|0x0000006A  
Line 237: Line 376:
 
|}
 
|}
  
 +
This is all the information we have so far.. unfortunately, since Sony decided to block access to PSN, we can't test more downloading, so it's hard to get new .pdb files, and so it's hard to extrapolate more.
 +
 +
= Tools  =
 +
 +
* [http://github.com/kakaroto/ps3utils PS3Utils] - by KaKaRoTo (link not working) - forks with pdb_gen.c: [https://github.com/shadowbladeZ/ps3utils] [https://github.com/omgneeq/ps3utils]<br />
 +
* [https://raw.github.com/wargio/ps3utils/master/pdb_gen.c PS3Utils pdb_gen.c] - old fork from KaKaRoTo (Deroad)
 +
 +
= Files  =
 +
 +
Heavy Rain Episode 1: [http://stoker25.com/files/hre1/d0.pdb d0] [http://stoker25.com/files/hre1/d1.pdb d1] [http://stoker25.com/files/hre1/ICON_FILE ICON_FILE]
  
This is all the information we have so far.. unfortunately, since Sony decided to block access to PSN, we can't test more downloading, so it's hard to get new .pdb files, and so it's hard to extrapolate more.
 
  
=== Tools === 
 
PS3Utils - by KaKaRoTo
 
  
=== Files === 
+
{{File Formats}}<noinclude>[[Category:Main]]</noinclude>
Heavy Rain Episode 1: d0 d1 ICON_FILE
 

Latest revision as of 11:51, 10 December 2019

PDB (Project Database) files are used by the PS3 to specify tasks for the XMB to do. They are stored in /dev_hdd0/vsh/task/ in 4 byte hex directories (e.g. 00000001/, 001ABCD0/)

Each directory represents an task id and each task is defined by a couple of .pdb files. I believe pdb means package database, since the only place where these files appear is in /dev_hdd0/vsh/task and they seem to represent a .pkg download.

There will always be a 00000001/ directory with no .pkg file in it. I suppose it's there to represent another task the PS3 has to do (maybe the 'check for push downloads' for PSN+ users?), and I suggest never to mess with it.

Every other directory seems to represent a .pkg file that is being downloaded or has been downloaded (but not installed) through PSN. In each directory you should find the .pkg, a PNG image to show (filename ICON_FILE), and two or three .pdb files (d0.pdb and d1.pdb and an empty f0.pdb, which may or may not be there).

When there are unfinished/not installed (PS3 files, not for PSP or PSVITA) downloaded task, xmb/users/Turn Off System can appear the option to turn off the system automatically after background download.

Header[edit]

The file starts with a 4 byte magic of 0x00000000

Data Entries[edit]

Offset Length Type Information
0x0 0x4 unsigned int Entry ID
0x4 0x4 unsigned int Length
0x8 0x4 unsigned int Length (again?)
0xC Length bytes Data

Entry IDs[edit]

File Entry ID Filename
0x64
0x65 Task active (0=paused, 1=downloading)
0x66 Task unregister auto.
0x68
0x69 Package Name (Task Title)
0x6A Icon Path
0x6B Task Subtype (0=photo,1=music,2=video,4=patch?)
0x6C
0xC8 Authentication UserName
0xC9 Authentication Password
0xCA Server URL/URI
0xCB Package Filename
0xCC Package Last-Modified
0xCD Move XCB
0xCE Package File Size
0xCF
0xD0 Downloaded Size/Received Length
0xD1 Referer?
0xD2
0xD3
0xD5 (Video) PlayCount
0xD6 (Video) StopPointInfo
0xD7 (Video) StopPointInfoSuppl
0xD8 File Download In Progress
0xD9 Content ID
0xDA Download Completed / Video:Video.reserved30
0xDB
0xDC
0xDD
0xDE (String)
0xDF
0xE0 (String)
0xE1 (String)
0xE2 (String)
0xE3 (String)
0xE4
0xE5
0xE6
0xE7 Title ID
0xEA Video:Common.reserved24
0xEB Log URL
0xEC
0xED
0xEE
0xEF Video:Video.reserved29
0xF0
0xF1
0xF2
0xF3 preordered
0xF4
0xF5 (drmcontent)

Here are some entries that have been observed (in the order seen on file). I will first document the task 1, then pkg tasks :


ID Length Type Known values Meaning
0x64 4 int 2 ?
0x65 4 int 1(d0.pdb) 2 (d1.pdb) ? (part maybe?)
0x66 1 byte 0 ?
0x6B 4 int -1 ?
0x68 4 int 0x80023e13 ?
0x6C 4 int 3

Note that it doesn't look like the 00000001/ task pdb values change depending on the number of tasks available.

Here are the values seen in a game task :

Type Length Known values Meaning
0x00000064 4 0
0x00000065 4 0
0x00000066 1 0
0x0000006B 4 3
0x00000068 4 0x80023e13 or 0x80023e1A or 0
0x0000006C 4 0

The values are different from the 00000001/ task, but they seem consistent for all .pkg tasks. The value of 0x00000068 is the only one that changes, and it's either 0 in one file or in the other (d0.pdb vs. d1.pdb), never both, and always one.

Also, Here are the values that only appeared in the pkg tasks, they come right after the above KLLVs. Note that all variable lengths mean it's a string and that it includes a trailing 0x00 in the string :


Type Length Known values Meaning
0x000000D0 8 64bit value current file size or total file size of .pkg in Big Endian
0x000000CE 8 64bit value current file size or total file size of .pkg in Big Endian

(same value as D0 for a fully downloaded title, need partial downloads to determine which key represents what)

0x000000CC variable "Thu, 02 Sep 2010 02:05:50 GMT" (qore) Date of when the .pkg was created (apparently since it's almost 1 week before it appeared on PSN)
0x0000006A variable "/dev_hdd0/vsh/task/00000002/ICON_FILE" (qore) Path to PNG image for thumbnail on the XMB
0x00000069 variable "Qore® Episode 28: September 2010" (qore) File title to show on the XMB
0x000000CA variable "http://zeus.dl.playstation.net/...." (qore) Download URL of .pkg
0x000000CB variable "TSk2vwaT....UP7hmNPRk.pkg" (qore) Filename of .pkg
0x000000D9 variable "UP9000-NPUA80191_00-QOREISSUE0282010" (qore) Content id of .pkg
0x000000DA 1 1 Paused ? Completed ? Currently active ? other ?
0x000000CD 1 0 Paused ? Completed ? Currently active ? other ?
0x000000EB variable "http://nsx-e.np.dl.playstation.net/nsx/log?&sid=...&filetype=drmcontent&fileid=UP90..&sizemb=1692.3" (qore) URL for logging game installs?
0x000000EC 1 0 Paused ? Completed ? Currently active ? other ?

This is all the information we have so far.. unfortunately, since Sony decided to block access to PSN, we can't test more downloading, so it's hard to get new .pdb files, and so it's hard to extrapolate more.

Tools[edit]

Files[edit]

Heavy Rain Episode 1: d0 d1 ICON_FILE