XPostFacto is an open source utility that enables the installation of PowerPC versions of Mac OS X up to Mac OS X v10.4 (Tiger), and Darwin on some PowerPC-based Apple Macintosh systems that are not officially supported for them by Apple.
XPostFacto - often referred to as "XPF" - runs under Mac OS 9 and allows an unmodified Mac OS X installation disc to be launched on machines which cannot boot Mac OS X unaided. This allows Mac OS X to be installed on certain Mac models which could otherwise only run System 7, Mac OS 8 or Mac OS 9, albeit sometimes with incomplete functionality. For example, it can be used to install Mac OS X v10.2 on a PowerPC 603 and 604 mac like the 604 equipped Power Macintosh 8600 or 9600 (Though Mac OS X 10.3 and newer will not run at all on a 603 or 604 processors unless the machines are upgraded to a G3 or G4 processor).
It also allows more recent versions of Mac OS X to be installed on older G3 Macs which can only officially run earlier versions of OS X - for example, it allows Mac OS X v10.3 and Mac OS X v10.4 to run successfully on Beige G3s, 10.2 having been the last version supported by Apple. It can even facilitate otherwise-awkward installations on supported machines; for instance, it allows Mac OS X v10.4, which shipped on DVD media, to be installed onto a Blue and White G3 with only an external, non-bootable DVD drive. Likewise, Mac OS X 10.4 Tiger ended support for machines that lacked built-in FireWire ports, these being the original iMac G3s and iBook G3s, but XPostFacto allows the use of 10.4 on them.
The name is a pun on ex post facto, a Latin phrase meaning "after the fact", commonly used in legal matters to refer to retroactive actions applying a later state of affairs (such as legislation) to earlier situations. In this context, it refers to the installation of software which did not exist yet at the time the hardware was manufactured: it retroactively "applies" Mac OS X to pre-existing hardware.
This software engineering feat by developer Ryan Rempel is made possible by the publication of the source code for Darwin, the open-source foundation of Mac OS X.
XPF's functionality is achieved via three different routes. The program provides a replacement boot loader for Macs with OldWorld firmware, provides a set of kernel modules to allow the Mac OS X kernel to support various pieces of system hardware which are unsupported in the retail release, and includes a mechanism to transparently boot the kernel off a supported medium - termed a "helper drive", such as the internal hard disk - even when installing Mac OS X to or from a non-bootable volume, such as a USB optical drive or a hard disk which is unsupported by the kernel or system firmware.
Once Mac OS X has been installed, XPF also runs under that operating system. On unsupported machines, XPF should be used instead of Apple's "Startup Disk" control panel or system preference pane to select whether the Mac should boot into Mac OS X or an older version like Mac OS 9.
Although versions of XPF were available before the release of Mac OS X v10.2, v10.3 and v10.4, no version was available at the time of the release of v10.5, which XPF 4 does not support. XPostFacto is not required to run v10.5 on unsupported Macs as long as they have a G4 processor and AGP graphics, the official requirement of an 867 MHz G4 processor only needs to be bypassed at the time of installation with LeopardAssist, and once installed Leopard will run without problems or requiring XPostFacto. On Macs that have only PCI graphics though, such as the Beige G3, the version of XPostFacto intended for use with Mac OS X 10.4 needs to be used in order to boot 10.5 successfully (provided that it has been upgraded to a G4 processor as Leopard will not run at all on G3s), although it cannot be used to actually install the operating system as it does not recognise the 10.5 DVD (another machine would have to be used for the installation and then either have the hard drive transferred into the unsupported machine or put the unsupported machine into Target Disk Mode to have the unsupported OS installed to it).