myFix 1.2

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

This release is a bugfix for users who want to run myfix on legacy intel and OS X 10.5 systems that can only run i386 code. I sometimes forget that some people use i386 only kernels, such as legacy intel kernels used for first generation atom systems or core duo’s. Thus in my haste to get myFix released I compiled it as an x86_64 binary, which will run fine for anyone on a Snow Leopard or Lion vanilla kernel, but people on Leopard or legacy intel systems will get a “Bad CPU type in executable” error when they try to launch myFix. Additionally I noticed some bugs in my /Extra/Extensions.mkext generation for users running myFix under OS X 10.5 “Leopard” so I fixed those too.

Please make sure to review the release notes for myFix 1.1 and 1.0 for a complete explanation of features.

A complete list of the changes from myFix 1.1 are as follows:

  • -Compiled as i386 binary rather than x86_64 binary
  • -Corrected some syntax errors for users running myFix under OS X 10.5 “Leopard”
  • -Added running kernel version and arch to output logs to help with debugging in future bug report submissions

myFix 1.1

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

This release adds a function which resolves a common issue that people have faced in the past… SleepEnabler problems and SleepEnabler related kernel panics after running OS X Software Updates.

When myFix is run it will test to see if /Extra/SleepEnabler.kext exists – if it does it will automatically define the correct pmVersion in your /Extra/com.apple.Boot.plist or /Extra/org.chameleon.Boot.plist (org.chameleon.Boot.plist is the new location for this boot configuration file on all new builds of chameleon). Additionally if the target is the root device (the device your OS is currently running on) it will automatically configure the flags that you would previously have to open System Preferences > Energy Saver and check the boxes for manually (which previously, if left unchecked, would result in a reboot on wake from sleep).

This function is compatible with most xnu-sleep-enabler builds. The obvious advantage to including this feature in myFix is that you will no longer have to remove or replace SleepEnabler.kext when updating to a new version of OS X. You can simply run myFix before rebooting, after an update, or from your USB Installer.

This function currently supports 10.6.0-10.6.8 and 10.7.0 pmVersions, if you are running a different version of OS X than this it will set pmVersion=0 to disable SleepEnabler completely. I will release updates to myFix that will add support for newer versions of OS X as they become available.

Please make sure to review the full release notes for myFix here.

A complete list of the changes from myFix 1.0 are as follows:

  • -Added fix SleepEnabler function
  • -Added check for Boot.plist
  • -Cleaned up output log slightly

myFix 1.0 (pfix 4.0)

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 and the beginning of something more. pfix 3.1 was a solid performer, I received no bug reports, but truth is it was a little messy. I had seen many issues with the way kextd/kextcache functions in Snow Leopard and users rebooting prior to the system prelinked kernel caches being completely built. So to ensure fail proof operation I coded it to build all of the caches manually, not just the Extensions.mkext. This wasn’t the ideal way to do things, but it required minimal time on my part to simply fix bugs in 3.0/2.x rather than rewrite it in a new format.

That said, with OS X 10.7 about to be officially released to the wild it was time for a rewrite, not only to clean up the old code but to expand functionality to the new version of OS X.

One of the biggest complaints I received about pfix 3.1 was that it took so long to execute… Why wait so long when you can just chown/chmod and then touch /System/Library/Extensions? Well the reason is simple really – it is not the fault of pfix – it is the fault of Snow Leopard’s kextcache. It takes a ridiculously long time to rebuild the system prelinked kernel caches if there is a problem with them or they don’t exist after having been deleted. If you were to simply touch /System/Library/Extensions and then reboot imediately, kextcache would not be finished and it will take you up to 15 minutes to boot your system, if it boots at all. Good news is, Lion doesn’t have this problem.

So what have I changed? Well not only will myFix detect the OS version it is running on, but it also detects the OS version of the target and adjusts the functions and syntax for mkext creation accordingly. I have extended support for it to run on Leopard and Lion. I have dropped support for running it on Tiger. I have also added full support for Leopard and Lion as target’s. So now you can use myFix from Leopard, Snow Leopard, and Lion to repair any Leopard, Snow Leopard, or Lion volumes.

Additionally instead of running all the commands manually I let kextd/kextcache do it’s job – after the initial permission repair (and optional diskutil repairPermissions) it will simply touch /System/Library/Extensions – and then it will WAIT until kextcache is finished. In some cases it will still take a while for kextcache to finish, but by waiting it will let you, the user, know when it’s safe to reboot so that you do not reboot your system prematurely and have a problem. In most cases however it will actually finish quite quickly. By adding the optional flag to skip the diskutil repairPermissions step it will go even faster, however, I do suggest you let diskutil repairPermissions run as chmod 0755 is *NOT* the correct permissions for many of the files in /System/Library/Extensions.

What did I mean by “and the beginning of something more”?

myFix will be more than simply a Permissions & Caches utility. In the future I will be adding additional functions to myFix. Stay tuned…

So without further adieu let me present you with myFix 1.0

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

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

A complete list of the changes to the pfix functions from pfix v3.1 are as follows:

  • -Completely re-written from scratch with much cleaner syntax and improved functionality
  • -Target OS version detection
  • -Added skip diskutil repairPermissions flag
  • -Added support for OS X 10.5 Leopard and OS X 10.7 Lion targets
  • -Improved support for OS X 10.6 Snow Leopard
  • -Removed support for OS x 10.4 completely

myHack Installer 1.1 Released

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

This is an important update of the myHack installer. It adds support for the OS X 10.6.3 Retail DVD & the OS X 10.6.4 Software Update.

Read full documentation here.

[Download not found]

Changelog:

v1.1:

  • - Added support for USB Installer creation from OS X 10.6.3 Retail DVD.*
  • - Updated SleepEnabler.kext to new build to add OS X 10.6.4 compatibility.**
  • - Replaced LegacyAppleRTC.kext with ElliottForceLegacyRTC.kext.***
  • - Refined install scripts and significantly reduced post-install script execution time.
  • - Reverted some of the changes to the v1.0.1 boot theme back to the v1.0 apperance.

* OSInstall MOD for both 10.6.0 and 10.6.3 Retail DVD’s is now available within myHack installer, the version of your OS X Installation Medium will be determined automatically and the appropriate files moved into place accordingly.

** The SleepEnabler.kext from v1.0 RC5 – v1.0.1 will cause a kernel panic after an update to OS X 10.6.4. This new build of SleepEnabler.kext will function properly in OS X 10.6.0-10.6.4. (Thanks to nawcom for updating it).

*** LegacyAppleRTC.kext does not function under a 64bit kernel, the ElliottForceLegacyRTC.kext functions under both 32bit and 64bit kernels.

v1.0.1:

* This new IONetworkingFamily.kext (compiled by aschar) removes the need for the EthernetBultIn flag and resolves a Time Machine bug encountered by RTL8111/8168B users.

** Users had complained that they felt the myHack logo during boot was too much ‘branding’ and like an advertisement for a product, so I have reverted the boot screen to the default gray apple logo to give it a more ‘vanilla’ feel and altered the main boot screen to be a little more organized, also reducing the size of the myHack logo and placing it in the bottom right hand corner – it is my hope that myHack users enjoy this boot theme as much as I do.

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.

myHack Installer 1.0.1 Released

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

This is a minor revision and important bugfix of the myHack installer.

Changelog:

v1.0.1:

* This new IONetworkingFamily.kext (compiled by aschar) removes the need for the EthernetBultIn flag and resolves a Time Machine bug encountered by RTL8111/8168B users.

** Users had complained that they felt the myHack logo during boot was too much ‘branding’ and like an advertisement for a product, so I have reverted the boot screen to the default gray apple logo to give it a more ‘vanilla’ feel and altered the main boot screen to be a little more organized, also reducing the size of the myHack logo and placing it in the bottom right hand corner – it is my hope that myHack users enjoy this boot theme as much as I do.

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.