Skip to content

Mac os x

Apple Inc.'s Macintosh OS X (pronounced "OS Ten") is the operating system distributed with Apple computers. It includes heavily used several programs by default, including Apple Mail, a web browser called Safari, and an Apple Address Book, and iCal.

EFI boot

The firmware is responsible for initializing the hardware and performing a POST (Power-On Self Test).

The default boot volume is stored in NVRAM and can be configured through the "Startup Disk" preference pane or the nvram command line utility. E.g. to print all of the firmware variables.

nvram -p

Additional boot arguments can be provided via the "boot-args" value 2.

Mac OS X extends EFI with a read-only HFS+ driver. According to 3 HFS+ volume header fields are used to point to a "blessed file" to be loaded as an EFI application. Though it is not clear which header field the source is referring to but likely related to the "bless" utility

The firmware starts the Mac OS X boot loader (boot.efi). The bootloader displays a dark grey Apple logo on the screen and loads the Darwin kernel from disk, as well as the essential driver extensions.

The bootloader can be eithe a MZ-PE/COFF or EFI fat binary type executables and is commonly stored in:

/com.apple.recovery.boot/boot.efi
/System/Library/CoreServices/boot.efi
/usr/standalone/i386/boot.efi

The behavior of the bootloader can be configured in the com.apple.Boot.plist which can be found in:

/Library/Preferences/SystemConfiguration/

Disk image types

Mac OS X has support for various disk image types built-in, some of which are:

Burn Folder

Mac OS X Burn Folder:

$NAME.fpbf

This folder normally contains alias files (similar to LNK files under Windows). Which should have the following signature.

00000000  62 6f 6f 6b 00 00 00 00  6d 61 72 6b 00 00 00 00  |book....mark....|

These alias files contain additional date and time values.

Also check the following files for references to deleted .fpbf paths:

/Users/$USERNAME/Library/Preferences/com.apple.finder.plist
/Users/$USERNAME/Library/Preferences/com.apple.sidebarlists.plist

Actual burning of optical media is logged in:

/var/log/system.log
/Users/$USERNAME/Library/Logs/DiscRecording.log
/private/var/.logs_exporter/cache/Users/$USERNAME/Library/Logs/DiscRecording.log

Launch Agents

System-wide:

/Library/LaunchAgents
/System/Library/LaunchAgents

Per user:

/Users/$USERNAME/Library/LaunchAgents

These directories contain Property list (plist) files.

Launch Daemons

System-wide:

/Library/LaunchDaemons
/System/Library/LaunchDaemons

These directories contain Property list (plist) files.

Startup Items

/Library/StartupItems/
/System/Library/StartupItems/

Crash Reporter

/Library/Application Support/CrashReporter

Contains text files named .crash, .diag, .spin

Diagnostic Reports

/Library/Logs/DiagnosticReports

Internet Plug-Ins

System-wide:

/Library/Internet Plug-Ins

Per user:

/Users/$USERNAME/Library/Internet Plug-Ins

Quarantine event database

See 6

Snow Leopard and earlier

/Users/$USER/Library/Preferences/com.apple.LaunchServices.QuarantineEvents

SELECT datetime(LSQuarantineTimeStamp + 978307200, "unixepoch") as LSQuarantineTimeStamp, LSQuarantineAgentName, LSQuarantineOriginURLString, LSQuarantineDataURLString from LSQuarantineEvent;

Lion and later

/Users/$USER/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2

sleepimage

This file is similar to the hibernation file on Windows.

/private/var/vm/sleepimage

Also see: 7

Last shutdown logs

/private/var/log/com.apple.launchd/launchd-shutdown.system.log
/private/var/log/com.apple.launchd/launchd-shutdown.system.log.1

Package Files (.PKG)

Package Files (.PKG) are XAR archives that contain a cpio archive and metadata 9.

Encodings / Codepages

Mac OS X typically uses UTF-16 big-endian to store Unicode strings, it also defines several codepages 10 that can be used to store ASCII strings.

Note that some of these codepages can differ for different versions of Mac OS.

Codepage Identifier Description
0 MacRoman Encoding used for English and several other Western languages, also see: Wikipedia: Mac OS Roman,Unicode.org: ROMAN.TXT (sometimes referred to as Microsoft codepage 10000 though it is unclear if this is the pre Mac OS 8.5 MacRoman variant)
1 MacJapanese also see: Unicode.org: JAPANESE.TXT (sometimes referred to as Mac Shift Jis or Microsoft codepage 10001)
2 MacChineseTrad also see: Unicode.org: CHINTRAD.TXT (sometimes referred to as Mac Big5 or Microsoft codepage 10002)
3 MacKorean also see: Unicode.org: KOREAN.TXT (sometimes referred to as Mac Hangul or Microsoft codepage 10003)
4 MacArabic Encoding used for Arabic texts, also see: Wikipedia: MacArabic encoding, Unicode.org: ARABIC.TXT (sometimes referred to as Microsoft codepage 10004). Note that certain Unicode characters can be translated into multiple codepage characters such as U+0020 can be represented as 0x20 or 0xa0.
5 MacHebrew also see: Unicode.org: HEBREW.TXT (sometimes referred to as Microsoft codepage 10005)
6 MacGreek Encoding used for Greek scripts, Wikipedia: MacGreek encoding, Unicode.org: GREEK.TXT (sometimes referred to as Microsoft codepage 10006)
7 MacCyrillic Encoding used for Cyrillic scripts, also see: Wikipedia: Mac OS Cyrillic encoding, Unicode.org: CYRILLIC.TXT. Note that MacCyrillic supersedes the MacCyrillic encoding prior to Mac OS 9.0 (sometimes referred to as MacCyrillicCurrSignStdVariant, MacRussian or Microsoft codepage 10007) and MacUkrainian, Unicode.org: UKRAINE.TXT (sometimes referred to as MacCyrillicCurrSignUkrVariant or Microsoft codepage 10017).
9 MacDevanagari also see: Unicode.org: DEVANAGA.TXT
10 MacGurmukhi also see: Unicode.org: GURMUKHI.TXT
11 MacGujarati also see: Unicode.org: GUJARATI.TXT
12 MacOriya
13 MacBengali
14 MacTamil
15 MacTelugu
16 MacKannada
17 MacMalayalam
18 MacSinhalese
19 MacBurmese
20 MacKhmer
21 MacThai also see: Wikipedia: ISO/IEC 8859-11 - Mac OS Thai, Unicode.org: THAI.TXT (sometimes referred to as Microsoft codepage 10021)
22 MacLaotian
23 MacGeorgian
24 MacArmenian
25 MacChineseSimp also see: Unicode.org: CHINSIMP.TXT (sometimes referred to as Mac GB2312 or Microsoft codepage 10008)
26 MacTibetan
27 MacMongolian
28 MacEthiopic
29 MacCentralEurRoman Encoding used for languages that use the Latin script, such as Central European and Southeastern European languages, also see: Wikipedia: Mac OS Central European encoding, Unicode.org: CENTEURO.TXT (sometimes referred to as Mac East Europe or Microsoft codepage 10029)
30 MacVietnamese
31 MacExtArabic
33 MacSymbol also see: Unicode.org: SYMBOL.TXT
34 MacDingbats also see: Wikipedia: Zapf Dingbats, Unicode.org: DINGBATS.TXT
35 MacTurkish also see: Wikipedia: Mac OS Turkish encoding, Unicode.org: TURKISH.TXT (sometimes referred to as Microsoft codepage 10081)
36 MacCroatian also see: Wikipedia: Mac OS Croatian encoding,Unicode.org: CROATIAN.TXT (sometimes referred to as Microsoft codepage 10082)
37 MacIcelandic also see: Wikipedia: Mac OS Icelandic encoding, Unicode.org: ICELAND.TXT (sometimes referred to as Microsoft codepage 10079)
38 MacRomanian also see: Wikipedia: Mac OS Romanian encoding,Unicode.org: ROMANIAN.TXT (sometimes referred to as Microsoft codepage 10010)
39 MacCeltic also see: Unicode.org: CELTIC.TXT
40 MacGaelic also see: Unicode.org: GAELIC.TXT
140 MacFarsi also see: Wikipedia: MacFarsi encoding, Unicode.org: FARSI.TXT
152 MacUkrainian see: MacCyrillic
236 MacInuit also see: Unicode.org: INUIT.TXT
252 MacVT100
255 MacHFS
2564 MacRomanLatin1

Also see

Formats

Apple Examiner

EFI

iCloud

Background and login items

ColorSync

Device Management Profile

Finder Alias and Bookmark

Quarantine event database

Unified logging

Yet Another Assembler (YAA)