myHack 3.0

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

This version was downloaded 2054 times.

I’ve put so much time and effort into actually working on myHack 3.0 that I’m a bit burned out and not really sure where to begin in describing it all. I guess I will just cover a few of the major core changes and leave the rest to the myHack guide.

The first significant change you will notice is the flow of the dialogs now allows you to use myHack as a front end to myFix, and gives a couple of other useful options in addition to the creation of OS X installers and the old install chameleon + extra options that were used for post installation in the past. The old post installation method is no longer required, myHack now runs automatically during OS X installation and installs chameleon, extras, utilities, etc automatically – you will notice growl-like notifications and several dialogs will popup within the last 2 minutes of OS X installation – this is myHack doing it’s job and making your life easier.

The next significant change that will not be immediately noticed is you no longer have to put any extensions in /System/Library/Extensions/ – myHack installs myHack.kext to /System/Library/Extensions/ and utilizes new features inside of myFix to merge everything you place into /Extra/Extensions/ into the myHack.kext. This is really wonderful for 3 reasons:

  1. There is no longer any question of ‘can this run from /Extra/Extensions or do I need to put it in /System/Library/Extensions/’
  2. It keeps /System/Library/Extensions/ clean and there is no reason to ever overwrite a vanilla extension. All extensions from /Extra/Extensions have their versions bumped during the merging process to ensure that they load even if an extension with the same name already exists on the system.
  3. It allows us to utilize kernelcache for much faster boot times, the way OS X was meant to run. Special thanks to Bronx Teck who originally created and tested this technique, he suggested it would be a good feature to add to myHack and I then expanded on his original idea by adding the version bumping to the migration so there would not be any conflicts.

A constant source of irritation to people for many months now has been the lack of 4k sector support in chameleon, while most of us who have worked on chameleon have known the problem really has to do with the dd utility in OS X, until now, the fix had to be applied manually from the command line or from linux. No more, the improved chameleon installation functions I have written into myFix 2 will work on all advanced format devices with 4k sectors.

With a little help from nawcom and meklort I was able to create pure on-the-fly OSInstall patching for MBR support. No longer are the OSInstall mpkg/framework bundled with myHack and the modification is no longer limited to only a few OS versions. It has been tested and is working with everything from 10.6.0-10.6.8, 10.7.0-10.7.3 and all of the 10.8 developer previews released so far (as of the time of this writing, we are on developer preview 3).

I took the time to update a few things that are bundled with myHack as well. FakeSMC has been updated to version 4.1 – it has been working reliably for me and I noticed that despite the fact FakeSMC 2.1 worked perfectly it was confusing new users because it would complain about missing keys (which wasn’t really important, but irritating). Also it does support the use of plugins, the only one I use personally is the IntelCPUMonitor.kext. I have also added the PS2 extensions I use for my notebook, if you have a USB keyboard and mouse you can remove these post installation and run myFix, but more and more users are utilizing myHack on notebook computers so it is better to have these and not need them than to need them and not have them. I also updated the pci-ids database for lspci (you can do this at any time manually by runing “sudo update-pciids” from a terminal, but I thought it would be nice to bundle it anyway as the old database was about 3 years old).

Another useful feature that will not be immediately apparent is I have ported the code I used in myHack 1.x for PciRoot detection to myHack 3. When installing a Generic Extra from a usb installer or when targeting / (root) it will detect your PciRoot and add it to the org.chameleon.Boot.plist automatically. It only runs if installing a Generic Extra because I would expect that if you are using your own Extra that you already have set everything up correctly, and it does not run when creating an OS X installer because you may not be using that installer on the same system. When booting the OS X installer if graphics does not work with graphics enabler at first you will need to pass PciRoot=1 at the boot prompt, if that does not work your graphics are not properly supported by Graphics Enabler.

Important note: Since kernelcache is now used by default you will need to be aware that if you are running myFix from a system running a different arch or older OS, such as fixing a lion installation that will runs a 64bit kernel from a Snow Leopard system that is running an i386 kernel the kernelcache will not be created correctly and it will cause a boot failure of the installation disk. Meklort helped me out by patching the latest build of chameleon to ensure that the -f flag will ignore the kernelcache completely and not only the kextcache. So if your OS X installation fails to boot, the first thing to try is passing the -f flag at the boot prompt.

The changelog can sum up the rest, I have more changes planned for myHack but I will be waiting to hear back from users on their own experiences working with the new software before I do anymore work on it, and will take into account their suggestions as I always do.

The downloads page has been removed, and I am no longer going to maintain download links on release pages – you will find a link to download myHack 3.0 in the myHack guide.

Changelog:

  • Over 1,600 revisions since myHack 2.2
  • Compiled as universal i386 & x86_64 binary (previously only i386)
  • myFix now integrated into myHack
  • Improved GUI and dialogs
  • Reduced launch time
  • Added support for myHack to be run from read only volumes
  • Added support for myHack to be run from OS X install disk
  • myHack now installs chameleon/extras/utilities during OS X post install
  • myHack can now be run from the OS X install disk’s “Utilities” menu
  • myHack application state saving disabled
  • Links in myHack app window now open in default browser
  • Additional menu options for new features
  • Chameleon installation is now performed by myFix
  • Chameleon installation now supports “Advanced Format” disks with 4k blocks
  • Removed “OSInstall Mod” files for 10.6, 10.6.3, 10.7 and 10.7.3
  • OSInstall.mpkg is now is modified by myHack directly
  • OSInstall.framework is now patched by myHack directly
  • OSInstall framework patches have been tested on 10.6-10.6.8, 10.7-10.7.3 & 10.8 DP1-DP3
  • GraphicsEnabler=Yes is now default option in org.chameleon.Boot.plist
  • UseKernelCache=Yes is now default option in org.chameleon.Boot.plist
  • Ported PciRoot detection code from myHack 1.x
  • Improved OS X Installation source detection
  • Added “Rescan” button on target selection dialog
  • If user extra is invalid, user is taken back to extra selection dialog
  • Improved detection for read-only targets
  • Added detection for mounted disk image targets
  • Volumes that are not formatted as hfs are no longer listed in target selection dialog
  • Root volume is no longer listed in target selection dialog when creating OS X Installer
  • Target device is no longer unmounted before user confirms erase
  • Base System and Install ESD are unmounted after file copy is completed
  • Updated lspci pci.ids.gz
  • Updated FakeSMC.kext to version 4.1
  • Updated Chameleon to myHack git fork
  • Added ApplePS2Controller.kext and AppleACPIPS2Nub.kext
  • Disabled / (root) target from target selection dialog when creating OS X Installer
  • Vastly improved error handling and detection throughout
  • Numerous additional internal changes and improvements
Additional details of the myHack app’s contents, credits, and instructions are maintained on the guide page.

Feel free to post thank you comments and whatnot on this post but for support or to report a problem you encounter – please use the Forum or the #hackintosh channel on SojuGarden IRC.

myFix 2.0

Rather than bore you with several paragraphs describing everything in great detail I’m just going let the bullet points in the changelog do the talking for me. While myFix has been greatly improved and altered on a fundamental level, it is now much more integrated with myHack itself so I will be explaining the new features in more detail on the release notes for myHack 3.0 and in the myHack guide.

Changelog:

  • Over 600 revisions since myFix 1.3
  • Compiled as universal i386 & x86_64 binary (previously only i386)
  • myHack app now serves as a graphical front end
  • Revised terminal app functionality
  • myFix is now distributed exclusively with myHack app
  • Utilizes new myHack.kext for kernelcache support
  • Cleanly merges Extra Extensions with System Extensions
  • Added new chameleon (re)installation feature
  • Added single user and safe boot support
  • Added new sudo access method
  • If run under single user mode, root is fsck’ed and mounted automatically.
  • Vastly improved error handling and detection
  • /Extra/Extensions.mkext no longer built
  • Removed routines to fix sleep enabler pmversion
  • Dropped all support for OS X 10.5

Feel free to post thank you comments and whatnot on this post but for support or to report a problem you encounter – please use the Forum or the #hackintosh channel on SojuGarden IRC.

Chameleon Sources

To make things a little easier on myself in preparation for the release of myHack 3.0+ I’ve pulled the latest chameleon from svn, applied some fixes specific to git, myHack and my ML patch, and pushed it to my git account. You will now be able to view/access the Chameleon source I use for myHack there. The link will be placed in the appropriate places on this site as well as in the footer for future reference.

https://github.com/Conti/Chameleon

myHack 2.2

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

This version was downloaded 13599 times.

I noticed two things while testing some more unorthodox configurations with myHack 2.1. Since I was testing on multiple systems I had renamed some Extra directories from them, for example “Extra_Notebook_ML”. When installed with myHack I noticed that instead of installing to /Volumes/myHack OS X Install Disk/Extra – it would end up in /Volumes/myHack OS X Install Disk/Extra_Notebook_ML/. Oops. So I fixed that.

Also I was able to reproduce a very random error that only a small number of people have ever reported to me. I’m not sure if the error I reproduced was caused by the same problem as these users but I have added an enhancement to myHack to prevent it from ever happening again. The symptom was an instant reboot before chameleon menu loaded. It was really rather confusing to me as there was no reason for it (code wise) and the same version of chameleon installed on the USB stick worked fine… Then I noticed something – that wasn’t reported in myHack or even the terminal when installing chameleon by hand – for some reason when booting from the USB stick OS X was mounting all the HFS+ partitions (other than the root volume) as read-only!

So now myHack performs a check on the target volume prior to running any tasks, and will alert the user to unmount, and mount the drive again using disk utility if it is mounted as read-only – this method resulted in a volume that was writable in all of my tests, as it should, unless the device is physically damaged or has a ‘read only’ switch, as some USB sticks do. Hopefully in the extremely unlikely event that anyone runs into this issue, this simple check will save you a headache.

I’ve also taken the time to bump the chameleon version while I was at it, I have once again applied the patch for mountain lion support.

I’ve cleaned up some other internal things that don’t require mention, but sufficed to say the app runs a little bit smoother now.

Changes from myHack 2.1:

  • Updated Chameleon to 2.1svn r1827*[1]
  • Bugfix: User supplied Extra with name other than Extra will now be installed correctly.
  • Enhancement: Test to ensure target volume is mounted read/write before running any tasks.
  • Cleaned up and improved a few things in the code.

*[1] I have edited Chameleon 2.1svn r1827 to include support for OS X 10.8 – these modifications have not yet been added to the official Chameleon trunk.

Make sure to read the release page for myHack 2.1 if you have not done so already, for a complete list of changes, contents and features.

Additional details of the myHack app’s contents are maintained on the downloads page. Credits and instructions are maintained on the guide page.

Please post thank you comments or report successful Mountain Lion installs on this post but for support or to report a problem you encounter – please use the myHack forum instead.

myHack 2.1

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

This version was downloaded 1298 times.

You may notice I have skipped past the 2.0 Final release, I have been very busy in the last months and while I had been working on one I have already deprecated it by adding one new feature in particular – support for OS X 10.8 Mountain Lion.

I have decided to remove the myHack Chameleon boot theme and stick with text only instead. The GUI is more trouble than it is worth at times and the Chameleon GUI code could really use a rewrite, should you choose to use a graphical menu you may install and configure one during post installation. I may provide one or more boot themes in the future as a separate download but what I have always aimed for with myHack is to keep things simple and to (hopefully) get as many systems booting as possible with minimal effort so I see no need for them to be installed by default.

You will also notice I am removing the EvOreboot.kext – it is no longer needed since newer builds of chameleon include a restart fix.

I have added experimental support for OS X 10.8 Mountain Lion. It has been tested and is working with Developer Preview 1 – The “Generic Extra” failed to boot my system personally (kernel panic on ApplePolicyControl, I will find a way to correct this using a “Generic Extra” in a future release of myHack, this is also a problem many people have with 10.7.3) – there is a simple solution to the ApplePolicyControl panic however, and that is using appropriate smbios information for your system in /Extra/smbios.plist. As I already have one I have used on both Snow Leopard and Lion I proceeded to move beyond testing and simply copied my Lion Extra’s onto the USB stick – after that the ML installer booted and OS X 10.8 installed without problem.

I call this experimental support because I can not and will not provide/disclose any information regarding OS X 10.8 that would violate my ADC NDA via this blog or the forum until the official public release is made. Additionally I do not know what changes are in store for 10.8, so while I can confirm myHack 2.1 will work for Developer Preview 1 with an Extra that works for you in Lion, I have no way to know how it will work with future releases.

I have not included an OSInstall Mod for 10.8 DP1 in this release. If you are one of the few ADC subscribers out there who still use MBR partitions on your hackintosh but would like to give ML a test run – Nawcom has posted an OSInstall bundle on his blog here. Installation is self explanatory, simply overwrite the files in the appropriate locations with the files included in the archive.

 

Changes from 2.0 RC4(.1):

  • Updated Chameleon to 2.1svn r1822*[1]
  • Added experimental support for OS X 10.8 Mountain Lion*[2]
  • Added MBR OSInstall Mod for OS X 10.7.3 Installers*[3]
  • Bugfix: Passwords containing a $ symbol will now be accepted.
  • Removed EvOreboot.kext.
  • Disabled graphical boot menu.
  • Removed myHack boot theme.
  • Polished off Chameleon modules installation method.

*[1] I have edited Chameleon 2.1svn r1822 to include support for OS X 10.8 – these modifications have not yet been added to the official Chameleon trunk. This new build of Chameleon does resolve the bug that many experienced on RC4(.1) – bug info and resolution was posted here and here.

*[2] Tested with OS X 10.8 Mountain Lion Developer Preview 1 – May not work in future versions. You will have to point to the InstallESD.dmg manually by use of the “Browse Manually” option for now. The Install Mac OS X Mountain Lion.app itself will only be supported after the official public release.

*[3] Credit goes to Nawcom for taking the time to cook this up for us the other day.

Todo:

  • Update myFix
  • Find more time to improve myHack & myFix further

Make sure to read the release pages for myHack 2.0 RC1, RC2, RC3 and RC4 if you have not done so already, for a complete list of changes, contents and features.

Additional details of the myHack app’s contents will be maintained on the downloads page. Credits and further instructions will be maintained on the guide page.

Please post thank you comments and successful Mountain Lion installs on this post but for support or to report a problem you encounter – please use the myHack forum instead.