Important Announcement

This site will be down between 15:00 and 18:00 KST today. My office building is doing an “electrical safety check”  (they do this once every 3 years apparently) to ensure the safety and stability of the power grid in the building.

I apologize for any inconvenience this may cause. I’m not too happy about it myself but I guess that is the price I have to pay for the clean, reliable power I have been receiving.

myHack Installer 1.0 FINAL Released

This version is now deprecated, consult the installer guide for a link to the latest version.

This release focused on further fine tuning the installer for smoother operation and enhanced functionality. You may notice that I have not added many “new features” but the existing features have greatly improved and the few new features that have been added are very useful refinements. I am considering this to be the first “Stable” release of the myHack installer and thus the beginning of the official 1.0 branch.

Note: It will take longer to run than previous versions due to a modified version of pfix 3.0 being run during post installation. This has been done to ensure absolute error-free installation. Just wait patiently and an installation succeeded message will be displayed when these scripts have completed, do not exit the installer prematurely!

Read full documentation here.

Download myHack_installer_1.0.mpkg.zip here.

Changelog:

v1.0 FINAL:

  • -Updated Chameleon 2.0 RC4 to Chameleon-2.0-RC4_PCEFI-10.5_AsereBLN_myHack-1.0 r111
  • -Updated pfix v2.6 to pfix v3.0
  • -pfix now installed to /usr/sbin/ instead of /
  • -Refined and improved pre-installation, bootloader installation, and post-installation scripts.
  • -Added function to backup any existing /Extra directory prior to installation.
  • -fdisk will now be used internally instead of overwriting the stock OS X one in /usr/sbin/
  • -Replaced IOATAFamily.kext with a different one known to have fewer problems.
  • -Added function to install tar, gzip, bzip2, rsync and nano to /usr/bin/ if target is installation device.
  • -Modified default com.apple.Boot.plist for Graphics Enabler to include a default VESA resolution.
  • -New and improved boot theme.

v1.0 RC5.2:

  • -Updated pfix v2.4 to pfix v2.6
  • -Added function to to hide /boot file.
  • -Added function to GraphicsEnabler option which will now determine the PciRoot value automatically.*
  • -Bugfix: Corrected minor bug in post-install script. (Force system cache rebuild with kextcache)
  • -Bugfix: Corrected minor bug in pre-install script. (Added IONetworkingFamily.kext to cleanup script)

* Automatic PciRoot discovery function will only be run when installer is targeting the root partition of a running Snow Leopard installation. If PciRoot can not be determined a default PciRoot value of 1 will be used instead.

v1.0 RC5.1:

  • -Updated pfix v2.3 to pfix v2.4
  • -Removed VoodooHDA.kext (Caused kernel panics for too many users).
  • -Removed PlatformUUID.kext (no longer required).
  • -Improved post-installation scripts to significantly reduce execution time.

v1.0 RC5:

  • -Updated PC EFI 10.5 to Chameleon 2.0 RC4
  • -Updated pfix v2.1.1 to pfix v2.3
  • -Created new “GraphicsDisabler” feature.*
  • -Added voodooHDA.kext to provide limited audio support for a variety of audio hardware.
  • -Added custom IONetworkingFamily.kext to provide support for additional networking hardware.
  • -Bugfix: New IOATAFamily.kext which now works correctly on a wider variety of hardware.**
  • -Bugfix: New SleepEnabler.kext which is compatible with OS X 10.6.0-10.6.3.***
  • -Replaced OpenHaltRestart.kext with EvOreboot.kext.
  • -Revised bundled kernel extensions. ****
  • -Revised “Read Me” section of installer in hopes that people will no longer make a very critical mistake.
  • -Improved boot theme to give a fresh and more visually appealing appearance.
  • -Made a significant number of alterations to internal installer coding and installation scripts.

* This function will provide true VESA functionality to virtually ALL graphics hardware, including the hardware which failed to function in VESA mode with the old Framebufferdisabler.kext.

** This new IOATAFamily.kext includes new builds of AppleIntelPIIXATA.kext, IOATABlockStorage.kext & IOATAPIProtocolTransport.kext embedded as plug-ins inside of it, they are no longer required separately. It has been compiled from 10.6.2 source and also prevents a kernel panic that was encountered previously on some hardware. IMPORTANT NOTE: We have tested this with 10.6.3 beta and determined that it DOES NOT WORK and will in fact likely cause a kernel panic. If you require this extension due to a lack of SATA+AHCI do not upgrade to 10.6.3 until a solution is discovered.

*** This SleepEnabler.kext should be compatible with future versions of OS X as well. The previous Sleepenabler.kext included with earlier versions of myHack Installer causes a kernel panic if not removed prior to booting after a 10.6.2 update.

**** Removed the following kernel extensions: AHCIPortInjector.kext, AppleUpstreamUserClientDisabler.kext, AttansicL1eEthernet.kext, FramebufferDisabler.kext, IOAHCIBlockStorageInjector.kext, JMicronATA.kext, LegacyJMB36xSATA.kext, & SKGE.kext.

Replaced the following kernel extensions with newer versions: AppleIntelPIIXATA.kext, IOATAFamily.kext, OpenHaltRestart.kext, Sleepenabler.kext.

Renamed: LegacyAppleRTC_32bit_Only.kext to LegacyAppleRTC.kext (32bit limitation is well documented I don’t think it needs to be in the name anymore).

v1.0 RC4.1:

  • -Updated PC EFI 10.4.1 to PC EFI 10.5
  • -Updated pfix v1.2 to pfix v2.1.1
  • -Made minor changes to “Read Me” section of installer for additional clarity.

v1.0 RC4:

  • -Added “Chocolate Kernel”* which allows OS X 10.6 to be run on legacy Intel, AMD** & i5 processors.
  • -myHack Installer package now copies itself to the / of an installation device automatically.
  • -Added Snow Leopard port of lspci.
  • -Added native 64bit Snow Leopard build of IOATAFamily.kext for functional PATA (IDE) support.
  • -Updated pfix v1.1 to pfix v1.2.
  • -Updated PC EFI 10.3 to PC EFI 10.4.1.
  • -Updated default com.apple.Boot.plist to use EthernetBuiltIn=y.
  • -Refined and improved install scripts & the descriptions of each individual option.
  • -Important information regarding known issues embedded into installer “Read Me” section.

* For full release notes regarding the “Chocolate Kernel” please see the Downloads page.

** This kernel will run most AMD systems but it does not include on the fly CPUID patching so if you intend to use this on an AMD system you will need to obtain a third party tool to patch your binaries.

v1.0 RC3:

  • - Bugfix: PC EFI 10.3 was not properly installing over the Chameleon boot file in previous versions.
  • - Bugfix: OSInstall MBR MOD would sometimes not properly install when using RC2.
  • - OSInstall MBR MOD now checks for OSInstall.mpkg on target drive and is installed automatically.
  • - Graphics Enabler option added.
  • - Consolidated and simplified core options.

v1.0 RC2:

  • - Bugfix: Added permissions enabling script to post-install. Details posted on the v1.0 RC2 release page.
  • - Integrated OSInstall.mpkg & OSInstall framework into a single option.
  • - Changed openhaltrestart.kext option to selected by default.
  • - Added pfix v1.1 to installer.
  • - Improved kext descriptions.

v1.0 RC1:

Includes:

  • - Chameleon 2.0 RC3.
  • - PC EFI 10.3.
  • - Sample com.apple.Boot.plist for basic operation.
  • - Snow Leopard inspired myHack Chameleon boot theme.
  • - All of the kexts listed on the Downloads page.
  • - A number of bugfixes and snow leopard specific enhancements to the Chameleon installation scripts.
  • - Detailed descriptions of each custom option.

Chameleon v2.0-RC4 AsereBLN myHack v1.0-r111

This version is now deprecated, consult the Downloads Page for a link to the latest version.

I have taken a snapshot from aserebln’s github (with all the changes he made up till 2010/02/12) and modified it with some additional alterations both cosmetic and functional, the most important of which was removing the pciroot detection he included from PCEFI 10.5 – it causes an unrecoverable memory fault on systems with integrated graphics cards (making it impossible to boot the system) and uses a different definition for PciRoot in com.apple.Boot.plist than myHack installer has been configured to define. It has been compiled without an integrated theme reducing it’s size and improving boot performance. This bootloader includes all of the features of Chameleon RC4 & PC EFI 10.5 + many bugfixes, syntax corrections, optimizations, and new features including but not limited to the following:

Note: Items which have been crossed out are a part of the memory detection code aserebln has been working on, however aserebln has not yet publicly released the source code for this memory detection. They will be included in any future release of this branch as soon as he releases the source code. Don’t worry though, this is purely cosmetic stuff – and if you really want your memory to be detected properly by OS X you can simply put the correct values into an smbios.plist in /Extra

AsereBLN changes:

  1. FACP RestartFix is enabled by default if you have an Intel CPU
  2. Memory Manufactor Code Lookup for some common Vendors (OCZ, G.Skill, GeIL, Crossair, Kingston)
  3. Fixed a bug with Memory Manufactor Code Lookup (DDR3: ManufactorID, Parity-Bit)
  4. Added Patriot, Crucial, A-DATA Memory Manufactor
  5. Support for 945 northbridge and ICH8, ICH7 southbridges
  6. SMBus Device Enable for systems there the controller is disabled (Tip from iNDi)
  7. printout a message if theme fails to load due to a missing file
  8. removed a print in non verbose mode to keep the Booter quiet
  9. You can supply a system-id with system-id= in com.apple.Boot.plist
  10. You can prevent the system-id injection with system-id=No in com.apple.Boot.plist
  11. system-type is now supported. Default is 1 (Desktop). Use system-type=2 in com.apple.Boot.plist if you have laptop.
  12. Removed the setVideoMode(TEXT) in resume.c to make Hibernation work.
  13. Support for 946GZ/PZ, Q963/Q965a and P965 northbridge memory controllers.
  14. Fixed a bug with system-type injection
  15. The system-type which gets injected is printed in verbose mode
  16. Added more memory manufactors.
  17. Support for 965GM and 965GME northbridge memory controllers (still untesteted).
  18. Improved system-type injection. ACPI V2 FACP PM_Profile is patched to match system-type.
  19. Fixed a bug with system-id injection (com.apple.Boot.plist).
  20. Supported memory manufactors: Micron, Samsung, Transcend, Apacer, Kingston, PNY, MDT, Corsair, GeIL, takeMS, Buffalo, Mushkin, OCZ, A-DATA, G.SKILL, TeamElite, Patriot and Crucial.
  21. Supported memory controllers: Core i5/i7 IMC, 945G/P, 955X, 945GM/PM, 945GME, 946GZ/PZ, Q963/Q965, P965, P35, X38/X48, 965GM, 965GME and P45.
  22. Supported SMBus controllers: P55, ICH10, ICH9, ICH8 and ICH7.
  23. To set system-type put a system-type= into com.apple.Boot.plist (1=Desktop, 2=Laptop enables Battery, 3=Workstation). Default system-type is 1 (Desktop).
  24. Fixed the font swapping bug (small & console font).
  25. Fixed a problem with disabled MCH MMIO on some mainboards (needed to detect dram frequency).
  26. Fixed the font swapping bug (small & console font) for the Booter with an embedded theme.
  27. Fixed an issue with memory detection for some mainboard (2 slot only mainboards).
  28. Added support for PM45 northbridge memory controller.
  29. Added memory manufactor lookup for: Hynix, Nanya, KingMax, Qimonda and SuperTalent.
  30. Added nVidia GT240 device lookup.
  31. You can now hide HFS partitions too using “Hide Partition” in com.apple.Boot.plist.
  32. Made the verbose output when using nVidia/ATI ROM’s more useful.
  33. Fixed a bug with sprintf (rek).
  34. Merged hibernation fix from Chameleon repo (46).
  35. Made verbosity at early bootstage useable.
  36. Added nVidia ION device lookup.
  37. Added a feature to set/override the nVidia NVCAP value using NVCAP_ key in com.apple.Boot.plist.

If you want to override the NVCAP value, you must determine the PCI DeviceID of your graphic card. For instance: my new GTX260 has the DeviceID 0×05e2. Knowing the DeviceID add this to your com.apple.Boot.plist:

<key>NVCAP_05e2</key>
<string>0000000000000000000000000000000000000000</string>

The NVCAP value is exactly 20 bytes long. You have to specify it in binary form using ASCII-HEX (0-9,a-f). For instance like this:

0400000000000300040000000000000700000000

It’s the NVCAP value of my nVidia 9400GT taken directly from NVCap Maker. Do not use a Base64 encoded NVCAP value like this one: BAAAAAAAAwAEAAAAAAAABwAAAAA=. To decode Base64 use the following command:

echo “BAAAAAAAAwAMAAAAAAAABwAAAAA=” | openssl enc -d -base64 | xxd -p

myHack changes:

  1. Removed pciroot uid detection code and reverted all references to it back to standard chameleon rc4 method
  2. Cleaned up cosmetic features such as version info output generation
  3. Added additional information to non-gui boot prompt

In conclusion, this is the best thing out there for retail installs on the systems which the myHack Installer has been designed and optimized for!

A big thanks to AsereBLN, netkas, rekursor, and everyone else who has worked on this!

You may download Chameleon_v2.0-RC4_AsereBLN_myHack_v1.0-r111.zip [binary only] here.

You may download Chameleon_v2.0-RC4_AsereBLN_myHack_v1.0-r111.src.zip [source code only] here.

pfix v3.0 Released

This version is now deprecated, consult the downloads page for a link to the latest version.

This is a complete rewrite of the pfix utility. In my last few revisions of the 2.x branch a number of potential problems were revealed to me. Of the reproducible errors – errors due to problems with kextd were the main culprit, even when forced rebuilding of kextcache was done. Though failures such as these were limited to a small number of end users any failure of pfix is unacceptable to me. After extensive testing of many different new methods to resolve all of these issues pfix 3.0 is ready for public release.

This version will take longer to execute than previous versions when correcting permissions and rebuilding caches for a root system volume but it will do so with virtually no possibility of errors. If all you are doing is swapping around a few kexts in /Extra however I have introduced a flag to skip the repair of the system permissions and caches for a very quick operation. Additionally pfix is now designed to operate from /usr/sbin/ like a standard *nix utility and includes a usage output viewable by running “pfix –help” (without the quotes) from a terminal.

Basic Usage: pfix [option]
Example Usage: pfix -s -v 1 -t /

Option       GNU long option      Meaning
-h           –help                Show this message
-s           –skipsystem          Don’t repair /system/library/extensions
-v <level>   –verbose <level>     Set kextcache output’s verbosity level
-t <path>    –target <path>       Path to target partition to run pfix on

A complete list of the changes in v3.0 are as follows:

  • -Completely re-written and restructured code with much cleaner syntax and improved functionality
  • -Improved terminal log output information and format
  • -Added run time flags
  • -Added help flag and usage output
  • -Added skip system repair flag (if you only need to quickly repair /Extra)
  • -Added kextcache/diskutil verbosity flag (no verbosity by default [quiet])
  • -Added target flag (a list of available targets will be displayed by default)
  • -Debugged several functions for improved operation and log output when run from OS X installation devices.
  • -Now removes all system caches prior to rebuilding instead of only removing kext caches.
  • -Repair permissions using diskutil prior to rebuilding caches when targeting root partition. [no longer optional]
  • -Updates prelinked kernel cache & kext info caches prior to rebuilding system kext caches when targeting root.
  • -Created installation package to properly install pfix to /usr/sbin/ so that it is available from any terminal path.