Tag Archives: Munky

[MacOS] EPOS I. – EFI Post Install for White-Box PCs

We were working quite some time on this. Now here is EPOS I. – the “EFI Post Install” Script for white-box PCs that are almost hardware compatible with Apple’s devices

“EPOS I.” is an “EFI Post Install” Script

What does it do?

EPOS helps installing retail DVD’s of Apple’s Mac OS X 10.5 Leopard on white-box PC’s. EPOS is SlimBuild-Preboot compliant. And as such it makes installation very easy. Grab a copy of a SlimBuilt-Preboot CD image that matches your hardware (motherboard and graphics), then install Leopard and after installation run EPOS.

Technically EPOS I. automates the necessary steps of preparing MacOS’ native EFI partition and the installation of (legacy-) kexts to this EFI partition. The whole shebang was first discovered and described by Munky (all shouts fly out to him!). You may find his article here on the InsanelyMac forums.

Installation and Usage:

  • unplug ethernet cable from your white-box PC
  • copy EPOS I.zip to USB drive for instance
  • install Leopard from retail DVD using a SlimBuild-Preboot standard compatible CD (find links to tested disks below
  • boot installed Leopard using the SlimBuild-Preboot CD again
  • on first boot provide all the registration information required from Apple
  • see desktop for the first time
  • unpack EPOS I. and run it as ROOT from a terminal (have your SlimBuild-Preboot CD mounted)
  • EPOS takes about a minute to install everything
  • remove SlimBuild-Preboot CD from drive, reboot and let Apple’s autoinstaller grab the newest updates
  • enjoy a white-box Mek

Habit:

  • EPOS must be executed from the disk that will hold the EFI bootloaders.
  • If you are unsure what this means: better make sure you only have your DVD drive and your OS X harddrive connected.
  • I recommend using this script on a clean and fresh installed system, no other operating systems on the same disk!
  • prefers mounted SlimBuild-Preboot CD’s for getting kexts and the com.apple.Boot.plist
    (looks for /Volumes/SlimBuild-Preboot/initrd.img and /Volumes/SlimBuild-Preboot/com.apple.Boot.plist)
    if no SlimBuild-Preboot CD is found, EPOS tries to find Extensions in EPOS’ own Extensions folder

Supports:

  • autoextraction kexts from SlimBuild-Preboot CD
  • kexts in own Extensions folder
  • autoextraction com.apple.Boot.plist from SlimBuild-Preboot CD
  • com.apple.Boot.plist in own Plist folder
  • internally pretested with Leopard retail DVD’s 10.5.0, 10.5.1, 10.5.4 and 10.5.5

Notes:

  • Munky’s EFI Boot 6.1 included (found here)
  • compatible to Galaxy’s SlimBuild-Preboot creator 2.0 (Kudos!) found here
  • Tested with ximekon’s (Kudos, aswell) Gigabyte GA-EP35-DS3 SlimBuild-Preboot CDs found here

Error handling:

  • integrated for a bunch of common errors, anyway it remains an ugly script

Todo:

  • code cleanup / rewrite ;-)
  • autoinstallation of custom kernels
  • GUI is in the works, but don’t ask for timelines, we all got jobs to feed our families

License & restrictions:

  • This script is freeware but may NOT be used for commercial purposes!
  • It may NOT be included in SlimBuild-Preboot Disks that contain original / modded Apple kexts.
  • that means until not everything is self enabled via homebrew or legacy kexts you may only include it in your private SlimBuilds but don’t distribute them, please.
EPOS 0.95 running on a sample system :


Feedback

You are welcome to leave a note here in the comment’s section or on the insanelymac forums.

Download EPOS

Please download from the version history overview below. Did you know our sponsors yet? No we neither. Because it’s just Google adds. Anyway these premium sponsors really got the coolest offers and moreover by considering them you help us in return maintaining this site free… :-)

Version history:

  • 0.5 semi automatic really much too ugly one day rapid prototype (not released)
  • 0.6 rewrote using functions (not released)
  • 0.7 autodetermining of EFI partition (not released)
  • 0.8 improved error handling for common errors we experienced (not released)
  • 0.9 included autoextraction for SlimBuild-Preboot images (not released)
  • 0.95 included com.apple.Boot.plist extraction (released) –
    » Download EPOS 0.95 here…
  • 0.95.1 (cosmetic) bugfixes (not released)
  • 0.97 com.apple.Boot.plist bugfix (released) –
    » Download EPOS 0.97 here…
  • 10.0 “the got rich as bill from writing even uglier code” version (will definitly be released) ;-)

[MacOS] Pushing OS X on PCs Major Steps Forward

yet another incomplete news (AIN)

Since David Elliot (also known as DFE) showed the OS X on PC scene how to boot Leopard Retail DVDs on non EFI systems (=standard PCs) using his „Boot 132 CD“ there is even more strong progress – OS X is technically almost completely untied from a Macintosh computer. Based on DFE’s findings a guy going by the nick Munky applied DFE’s strategy to already installed OS X operating systems. He digged into Intel’s EFI standard and found Apple fully respects it. During Leopard’s installation process Apple’s Disk Utility.app also puts a hidden first partition on your harddisk.


bash-3.2# diskutil list
/dev/disk0
#:                       TYPE NAME          SIZE       IDENTIFIER
0:      GUID_partition_scheme              *149.1 Gi   disk0
1:                        EFI               200.0 Mi   disk0s1
2:                  Apple_HFS Leopard       138.0 Gi   disk0s2

The diskutil list command here reveals that the disk is formatted in the GUID partition scheme (Apple’s standard). The first partition is called EFI and the second partition holds the operating system as we know it: Leopard. Intel’s standard requires to have such a partition for having space for specific hardware drivers that might be booted before the operating system gets loaded.

Munky now found a second thing: although Apple respects the EFI standard their own EFI implemented on their Macs simply does not use that partition. It is empty. He now applied a trick known in the ancient cracking days as stealth method. As he knows the real Macs don’t use the EFI partiton, he just reformats it as an HFS+ volume and turns it as the first boot partition. Inside this EFI boot partition there is an own kext-bootcache which can hold modified kexts matching the individual hardware basis while the original kexts remain untouched (and unused) in Mac OS’ original /System/Library/Extensions folder. Thus allowing to perform original Apple autoupdates without breaking the system.

But as using hacked or binary modified .kexts is not desirable for they should not be distributed because of their – well – controversal legal status, a french guy going by the name CycloneFr refined a loader technique. He defined loader.kexts that only replace device information in the Info.plist of original kexts at runtime. Thus using always the newest kexts from the /System/Library/Extensions folder but with different device information.

We are currently compiling a complete newbie tutorial for the above mentioned procedure for a standard system. You think this sounds like a dream? So we can tell you it is not. Leopard has been completely untied from Macintoshs. There is no need to illegally download hacked Leopard distros from darkest filesharing networks anymore. You can now buy a copy of Leopard and use that original Leopard retail DVD for installation.

But you may have expected it. What we described here currently requires to be able to run (and understand) commands on the terminal. This comes why the whole procedure is really new (Munky discovered and explained this about 2 months ago, DFE’s Boot 132 thing is only 5 months old). You see: this is something from tomorrow which you already get to use today. It will still take some more time, until this process is completely user friendly like an EFI-X device, but you will not be depending on a third party hardware, you will be able to maintain your system and you will learn how it works.