****************************** * Mac OS Alias Record Format * ****************************** - values use big endian (network) byte order - general terms: integer = signed value - general values: byte = 8-bit value; short/word = 16-bit value; long = 32-bit value - fixed point values: value made up of an integer for whole numbers and an unsigned value for the decimal - octal values: base-8 long unsigned values (values containing 8 and 9 are invalid) FILE INFO Suffix = N/A; Mac OS Application Type = "adrp"; Mac OS Folder Type = "fdrp"; Resource Type = "alis"; MIME=N/A Mac OS resource fork based binary format that provides a link to files and folders on HFS/HFS+ volumes. Can be used as a self contained file or part of an existing format. ALIAS RECORD STRUCTURE Note: the record is for use with the Apple's Alias File Manager. A basic record is 150 bytes in length excluding extra info. The Mac OS uses colons in file paths instead of forward slashs as used in URLs, so the colon can't be used in file, directory nor disk names. Also directorys and files have a Mac OS name limit of 31 characters. Disks have a limit of 27 characters. -> 4 bytes user type name/app creator code = long ASCII text string (none = 0) -> 2 bytes record size = short unsigned total length -> 2 bytes record version = short integer version (current version = 2) -> 2 bytes alias kind = short integer value (file = 0; directory = 1) -> 1 byte volume name string length = byte unsigned length -> 27 bytes volume name string -> NOTE: if volume name string < 27 chars then pad with zeros -> 4 bytes volume created mac date = long unsigned value in seconds since beginning 1904 to 2040 -> 2 bytes volume signature = short unsigned HFS value -> 2 bytes volume type = short integer mac os value - types are Fixed HD = 0; Network Disk = 1; 400kB FD = 2 - types are 800kB FD = 3; 1.4MB FD = 4; Other Ejectable Media = 5 -> 2 bytes parent directory id = short unsigned HFS value -> 1 bytes file name string length = byte unsigned length -> 63 bytes file name string -> NOTE: if file name string < 63 chars then pad with zeros -> 4 bytes file number = long unsigned HFS value -> 4 bytes file created mac date = long unsigned value in seconds since beginning 1904 to 2040 -> 4 bytes file type name = long ASCII text string -> 4 bytes file creator name = long ASCII text string -> 2 bytes nlvl From (directories from alias thru to root) = short integer range -> 2 bytes nlvl To (directories from root thru to source) = short integer range -> NOTE: if alias on different volume then set above to -1 -> 4 bytes volume attributes = long hex flags -> 2 bytes volume file system id = short integer HFS value -> 10 bytes reserved = 80-bit value set to zero * 4+ bytes optional extra data strings = short integer type + short unsigned string length - types are Extended Info End = -1; Directory Name = 0; Directory IDs = 1 - types are Absolute Path = 2; AppleShare Zone Name = 3; AppleShare Server Name = 4 - types are AppleShare User Name = 5; Driver Name = 6; Revised AppleShare info = 9 - types are AppleRemoteAccess dialup info = 10 -> string data = hex dump -> odd lengths have a 1 byte odd string length pad = byte value set to zero ALIAS RECORD STRUCTURE OUTSIDE OF SIZE LENGTH Note: the following is for use with the Apple's Alias Resource Manager. -> 4 bytes resource type name = long ASCII text string -> 2 bytes resource ID = short integer value -> 2 bytes resource end pad = short value set to zero