**********************************************
            * QuickTime 5 Install/Archive Package Format *
            **********************************************

 - values use big endian (network) byte order
 - general terms: integer = signed value
 - general values: byte/char/octet = 8-bit value ; short/word = 16-bit value ;
                    long = 32-bit value
 - binary values: base-2 long unsigned values (values from 0 and 1)
 - octal values: base-8 long unsigned values (values from 0 through to 7)
 - decimal values: base-10 long unsigned values (values from 0 through to 9)
 - hexadecimal (hex) values: base-16 long unsigned values
                              (values from 0 to 9 and A to F)
 - atom offsets: values relative to atoms only
                  and are used to skip to the next atom
 - long mac file version: byte hex version + byte hex revision
                           + byte hex revision stage + byte hex non-final number
 - mac version revision stages: development = 0x20 ; alpha = 0x40 ;
                                 beta = 0x60 ; release = 0x80

FILE INFO

Suffix = ".pkg" ;  Mac OS Type = "pack" ;  Mac OS Creator = "qtup" ;
MIME="application/x-quicktime-install-package"

Standard single fork binary file that only uses a resource fork on HFS/HFS+ volumes
to store mac specific file info.

Unknown atoms can be safely skipped over, atoms can be in any order, all
lowercase long ASCII text strings used for atom names/types are reserved for
use by Apple and packages can contain multiple file atoms.

The format is limited to a total size of 2^32 bytes (< 4.3 GB).

FILE CONTAINER/HEADER

* 8+ bytes package container atom
    = long unsigned offset + long ASCII text string 'pckg'

   * 8+ bytes optional package file name atom
       = long unsigned offset + long ASCII text string 'pnam'
     -> name of this file = ASCII text string

   * 8+ bytes optional package title name atom
       = long unsigned offset + long ASCII text string 'punm'
     -> display name = ASCII text string

   * 8+ bytes optional target os atom
       = long unsigned offset + long ASCII text string 'tos '
     -> 3 bytes os type = 24-bit ASCII text string
       - OS types are Mac OS = 'mac' ; Mac OS X = 'osx' ; MS 32-bit Windows = 'win'

   * 8+ bytes optional target language atom
       = long unsigned offset + long ASCII text string 'lang'
     -> 2 bytes ISO language code = short ASCII text string
       - some language codes are English - North American = 'us'
       - some language codes are English - British = 'uk'
       - some language codes are German = 'de'; French = 'fr'; Italian = 'it'

   * 8+ bytes optional package task atom
       = long unsigned offset + long ASCII text string 'pact'
     -> 4 bytes system code = long ASCII text string
       - a system code for Restart = 'rsrt'

   * 8+ bytes optional license atom
       = long unsigned offset + long ASCII text string 'lice'

      * 8+ bytes optional license maintainer atom
          = long unsigned offset + long ASCII text string 'lcmn'
        -> 4 bytes company code = long ASCII text string
          - a company code for Apple = 'appl'

      * 8+ bytes optional license ID atom
          = long unsigned offset + long ASCII text string 'lcid'
        -> 4 bytes unique ID = long integer

      * 8+ bytes optional license language atom
          = long unsigned offset + long ASCII text string 'lang'
        -> 2 bytes ISO language code = short ASCII text string
          - some language codes are English - North American = 'us'
          - some language codes are English - British = 'uk'
          - some language codes are German = 'de'; French = 'fr'; Italian = 'it'

      * 8+ bytes optional license agree atom
          = long unsigned offset + long ASCII text string 'lcag'
        -> button name = ASCII text string

      * 8+ bytes optional license disagree atom
          = long unsigned offset + long ASCII text string 'lcdg'
        -> button name = ASCII text string

      * 8+ bytes license text atom
          = long unsigned offset + long ASCII text string 'lctx'
        -> user viewable text = ASCII text dump

   * 8+ bytes file atom
       = long unsigned offset + long ASCII text string 'file'

      * 8+ bytes compression atom
          = long unsigned offset + long ASCII text string 'comp'
        -> 4 bytes compression code = long ASCII text string
          - a compression code for Deflate = 'zlib'

      * 8+ bytes optional version atom
          = long unsigned offset + long ASCII text string 'vers'
        -> 4 bytes mac file version = long hex value (see above)

      * 8+ bytes optional file modified date atom
          = long unsigned offset + long ASCII text string 'fmdt'
        -> 4 bytes mac file local date
            = long unsigned value in seconds since beginning 1904 to 2040

      * 8+ bytes displayed file name atom
          = long unsigned offset + long ASCII text string 'fnam'
        -> displayed file name = ASCII text string

      * 8+ bytes unpacked file name atom
          = long unsigned offset + long ASCII text string 'unam'
        -> actual file name = ASCII text string

      * 8+ bytes file creator atom
          = long unsigned offset + long ASCII text string 'fcrt'
        -> 4 bytes mac os creator code = long ASCII text string

      * 8+ bytes file type atom
          = long unsigned offset + long ASCII text string 'ftyp'
        -> 4 bytes mac os type code = long ASCII text string

      * 8+ bytes location atom
          = long unsigned offset + long ASCII text string 'loca'
        -> 4 bytes install location code = long ASCII text string
          - some location codes are qt app directory = 0x7174C420 ; system directory = 'macs'
          - some location codes are system init directory = 'extn' ; qt system directory = 'qtex'
          - some location codes are web browser directories = 0xC46E6574
          - some location codes are system cdev directory = 'ctrl'
          - some location codes are control strip folder = 'sdev' ; loc. manager folder = 'walk'
          - some location codes are mac os runtime java folder = 0x6D726AC4
          - some location codes are os x qt system directory = 'qt3c'

      * 8+ bytes installer action atom
          = long unsigned offset + long ASCII text string 'inac'
        -> 4 bytes installer action code = long ASCII text string
          - some installer action codes are plain file = 'file' ; system add-on = 'init'
          - some installer action codes for system component = 'thng'

      * 8+ bytes data fork atom
          = long unsigned offset + long ASCII text string 'dfrk'
        -> 4 bytes uncompressed size = long unsigned value
        -> compressed data = hex dump

      * 8+ bytes mac resource fork atom
          = long unsigned offset + long ASCII text string 'rfrk'
        -> 4 bytes uncompressed size = long unsigned value
        -> compressed data = hex dump

    Source: geocities.com/xhelmboyx/quicktime/formats

               ( geocities.com/xhelmboyx/quicktime)                   ( geocities.com/xhelmboyx)