Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Legacy Apple OS

Older operating systems may be more complicated to install, but are sometimes necessary for various reasons. While a compatible board identifier and CPUID are the obvious requirements for proper functioning of an older operating system, there are many other less obvious things to consider. This section covers a common set of issues relevant to installing older macOS operating systems.

While newer operating systems can be downloaded over the internet, older operating systems did not have installation media for every minor release. For compatible distributions of such, download a device-specific image and modify it if necessary. Visit this archived Apple Support article for a list of the bundled device-specific builds for legacy operating systems. However, as this may not always be accurate, the latest versions are listed below.

macOS 10.8 and 10.9

  • Disk images on these systems use the Apple Partitioning Scheme and require the OpenPartitionDxe driver to run DMG recovery and installation (included in OpenDuet). It is possible to set DmgLoading to Disabled to run the recovery without DMG loading avoiding the need for OpenPartitionDxe.
  • Cached kernel images often do not contain family drivers for networking (IONetworkingFamily) or audio (IOAudioFamily) requiring the use of Force loading in order to inject networking or audio drivers.

macOS 10.7

  • All previous issues apply.
  • SSSE3 support (not to be confused with SSE3 support) is a hard requirement for macOS 10.7 kernel.
  • Many kexts, including Lilu when 32-bit kernel is used and a lot of Lilu plugins, are unsupported on macOS 10.7 and older as they require newer kernel APIs, which are not part of the macOS 10.7 SDK.
  • Prior to macOS 10.8 KASLR sliding is not supported, which will result in memory allocation failures on firmware that utilise lower memory for their own purposes. Refer to acidanthera/bugtracker#1125 for tracking.

macOS 10.6

  • All previous issues apply.
  • SSSE3 support is a requirement for macOS 10.6 kernel with 64-bit userspace enabled. This limitation can mostly be lifted by enabling the LegacyCommpage quirk.
  • Last released installer images for macOS 10.6 are macOS 10.6.7 builds 10J3250 (for MacBookPro8,x) and 10J4139 (for iMac12,x), without Xcode). These images are limited to their target model identifiers and have no -no_compat_check boot argument support. Modified images (with ACDT suffix) without model restrictions can be found here (MEGA Mirror), assuming macOS 10.6 is legally owned. Refer to the DIGEST.txt file for details. Note that these are the earliest tested versions of macOS 10.6 with OpenCore.

Model checking may also be erased by editing OSInstall.mpkg with e.g. Flat Package Editor by making Distribution script to always return true in hwbeModelCheck function. Since updating the only file in the image and not corrupting other files can be difficult and may cause slow booting due to kernel cache date changes, it is recommended to script image rebuilding as shown below:

#!/bin/bash
# Original.dmg is original image, OSInstall.mpkg is patched package
mkdir RO
hdiutil mount Original.dmg -noverify -noautoopen -noautoopenrw -noautofsck -mountpoint RO
cp RO/.DS_Store DS_STORE
hdiutil detach RO -force
rm -rf RO
hdiutil convert Original.dmg -format UDRW -o ReadWrite.dmg
mkdir RW
xattr -c OSInstall.mpkg
hdiutil mount ReadWrite.dmg -noverify -noautoopen -noautoopenrw -noautofsck -mountpoint RW
cp OSInstall.mpkg RW/System/Installation/Packages/OSInstall.mpkg
killall Finder fseventsd
rm -rf RW/.fseventsd
cp DS_STORE RW/.DS_Store
hdiutil detach RW -force
rm -rf DS_STORE RW
hdiutil convert ReadWrite.dmg -format UDZO -o ReadOnly.dmg

macOS 10.5

  • All previous issues apply.
  • This macOS version does not support x86_64 kernel and requires i386 kernel extensions and patches.
  • This macOS version uses the first (V1) version of prelinkedkernel, which has kext symbol tables corrupted by the kext tools. This nuance renders prelinkedkernel kext injection impossible in OpenCore. Mkext kext injection will still work without noticeable performance drain and will be chosen automatically when KernelCache is set to Auto.
  • Last released installer image for macOS 10.5 is macOS 10.5.7 build 9J3050 (for MacBookPro5,3). Unlike the others, this image is not limited to the target model identifiers and can be used as is. The original 9J3050 image can be found here (MEGA Mirror), assuming macOS 10.5 is legally owned. Refer to the DIGEST.txt file for details. Note that this is the earliest tested version of macOS 10.5 with OpenCore.

macOS 10.4

  • All previous issues apply.
  • This macOS version has a hard requirement to access all the optional packages on the second DVD disk installation media, requiring either two disks or USB media installation.
  • Last released installer images for macOS 10.4 are macOS 10.4.10 builds 8R4061a (for MacBookPro3,1) and 8R4088 (for iMac7,1)). These images are limited to their target model identifiers as on newer macOS versions. Modified 8R4088 images (with ACDT suffix) without model restrictions can be found here (MEGA Mirror), assuming macOS 10.4 is legally owned. Refer to the DIGEST.txt file for details. Note that these are the earliest tested versions of macOS 10.4 with OpenCore.