PDB is a container format for record
databaseA database is an organized collection of data for one or more purposes, usually in digital form. The data are typically organized to model relevant aspects of reality , in a way that supports processes requiring this information...
s in
Palm OSPalm OS is a mobile operating system initially developed by Palm, Inc., for personal digital assistants in 1996. Palm OS is designed for ease of use with a touchscreen-based graphical user interface. It is provided with a suite of basic applications for personal information management...
, Garnet OS and
Access Linux PlatformThe Access Linux Platform , once referred to as a "next-generation version of the Palm OS" is an open source-based operating system for mobile devices developed and marketed by Access Co., of Tokyo, Japan. The platform includes execution environments for Java, classic Palm OS, and GTK+-based native...
. Its structure is similar to
PRCPRC is a container format for code databases in Palm OS, Garnet OS and Access Linux Platform. Its structure is similar to PDB databases. Usually, a PRC file is a flat representation of a Palm OS application that is stored as forked database on the PDA....
resource databases. The PalmDOC eBook format is a special version of the PDB format.
Structure of PDB file
A PDB file contains a PDB header, PDB record headers and
recordsIn computer science, a record is an instance of a product of primitive data types called a tuple. In C it is the compound data in a struct. Records are among the simplest data structures. A record is a value that contains other values, typically in fixed number and sequence and typically indexed...
.
| PDB Header |
| PDB Record Header |
| PDB Records |
PDB Header
The PDB header is located at the beginning of the file and contains meta-information on the file :
| Offset |
Name |
Type |
Size |
| 0x00 |
name |
char |
32 Bytes |
| 0x20 |
file attributes |
integer |
2 Bytes |
| 0x22 |
version |
integer |
2 Bytes |
| 0x24 |
creation time |
Macintosh time |
4 Bytes |
| 0x28 |
modification time |
Macintosh time |
4 Bytes |
| 0x2c |
backup time |
Macintosh time |
4 Bytes |
| 0x30 |
modification number |
integer |
4 Bytes |
| 0x34 |
app_info |
integer |
4 Bytes |
| 0x38 |
sort_info |
integer |
4 Bytes |
| 0x3c |
type |
integer |
4 Bytes |
| 0x40 |
creator |
integer |
4 Bytes |
| 0x44 |
unique_id_seed |
integer |
4 Bytes |
| 0x48 |
next_record_list |
integer |
4 Bytes |
| 0x4c |
num_records |
integer |
2 Bytes |
PDB Record Header
For every record, there is an eight byte record header, containing:
| name |
type |
size |
notes |
| offset |
integer |
4 bytes |
Byte number in the PDB file (counting from zero), where the record is located |
| attributes |
byte |
1 byte |
Attributes of the record (delete/dirty/busy/secret/category) |
| UniqueID |
integer |
3 bytes |
Always 0 |
PDB Records
Now the records themselves follow. The usual order is AppInfoArea, SortInfoArea and records, sequentially.