OS X 10.7.4 Software Update

So I waited a few days to gather some information from users on what has gone wrong with this one before posting if it is safe or if caution is advised. The verdict – caution is advised.

This is the first update that I myself have encountered a problem with so I will attempt to cover what I know as well as what others have found, and how to fix what we’ve seen break.

First problem report I heard was – a kernel panic when running the combo update.

This was related to ApplePolicyControl.kext – when the update loaded it, the system panicked and left things in a non functional state. The users resolution was to re run the combo update from a separate OS X installation, remove the problematic kext when it was done and to then run myFix. This extension is removed by the myHack “Remove Problematic Extensions” feature but that won’t help if it is loaded on a running system by a combo update.

This can be avoided however – if you have an smbios.plist that identifies your system as something that ApplePolicyControl.kext will not panic on – no panic will happen, this was the case with my own system. So you have two options:

  1. Create an smbios.plist for your system that ApplePolicyControl.kext will not panic on
  2. Run combo update from another OS X installation, targeting the 10.7.x OS X installation you want to update, when finished, run “Remove Problematic Extensions” function from myHack.

Ok, next problem – This happened on my system. When the update was completed, I rebooted. The system panicked on IOPCIFamily.kext. So I rebooted again with -f -v, no panic this time, but the system hung when trying to load AppleHDA, and claimed that kextd was not running. So first I attempted to boot into my ‘fail-safe partition’ which is basically an extra myHack OS X Install Disk for 10.7 that I have on my internal boot partition so I don’t have to dig out my USB stick every time something goes wrong. It hung at the same point….

While I am not entirely sure why the separate partition with a 10.7.0 OS X installer on it was effected by the update the reason for it happening isn’t really important – the solution is simple – I plugged in my USB myHack OS X Install Disk, ran myFix – a full one, not a quick one – and rebooted – everything works fine now. So to sum it up:

  1. Ensure your myHack OS X Install Disk is not attached or mounted on the system
  2. Run the 10.7.4 update and reboot when it is finished
  3. Boot to your myHack OS X Install Disk
  4. Run myFix, select full not quick, run, and reboot when it is finished
  5. Boot your OS X 10.7.4 installation

The last problem I have seen was reported by a user on the forum. His Nvidia GTX295 stopped working after the update. This is a problem I have seen in past updates and why in the myHack guide I always advise users to backup at minimum their /S/L/E directory prior to running any OS X updates. You may read the thread he opened on the forum HERE

The solution for this problem is as follows, and the following method can be adapted to virtually any hardware device that no longer functions after an OS X update due to Apple’s modifications of the System Extensions:

  1. Prior to running an OS X update, always backup /System/Library/Extensions
  2. In his case his NVidia graphics no longer work due to updates of the Nvidia graphics so he could either determine exactly which kext is the problem and replace only that one with the one from his 10.7.3 backup, or he could replace all of the nvidia graphics extensions including the frame-buffers
  3. Determine which extensions you want to override in /System/Library/Extensions in his case he took all of the Nvidia extensions and frame-buffers
  4. Place the extensions from 10.7.3 backup in /Extra/Extensions
  5. Run myFix, reboot
  6. Boot to OS X 10.7.4

A full list of the NVidia extensions and frame-buffers is in the thread I linked to, the clean way to do it would be to just grab the ones for your card specifically – I will be explaining to him how to figure out which ones he needs in the forum thread.

So there you have it, that is how to avoid the 3 most common problems I have seen thus far with this update. If you encounter a new one please let me know via the forum – I will update this post if needed.

Additionally, keep in mind 10.7.4 is pulling code in from 10.8 so there might be a number of issues for users who are still relying on older graphics or i386 libraries…

myHack 3.1

This release was made ahead of my planned schedule due to a couple of bugs being brought to my attention that I wanted to fix immediately. Since I was going to make this release anyway I used the opportunity to polish off a few other things that I had on the todo list, a few things that were suggested by users, and update a couple things in the bundle.

I’ve also added a new feature to the extra installation function, thanks to a suggestion by blackosx. It will install the Extra directory as usual, it will then check to see if you have an /Extra/10.(6/7/8)/Extensions directory – not just /Extra/Extensions. If one exists for the OS X version that exists on the target device, it will merge it with /Extra and then remove all the 10.(6/7/8) subdirectories from Extra. This will prove even more useful in the near future but for the time being it just helps users with this particular Extra schema to have a smoother ride while using myHack to update their systems.

The download is available on the guide page.

Changelog:

  • Bugfix: Correct issue with myhack OS X post install patch of OSInstall.pkg when myHack OS X Install Disk is created on a Snow Leopard system
  • Bugfix: lspcidrv.kext and RemovedExtras won’t get moved to ExtraBackups when installing a new Extra
  • Extra/10.(6/7/8) subdirectories will now be merged based on target OS version
  • Disabled the Create OS X Installer option from myHack while running on an OS X Installer
  • Disabled Cancel buttons on myHack OS X post install dialogs
  • If cancel button is pressed on Extra file selection dialog, return to Generic Extra/Use Your Own menu instead of exiting myHack
  • Revised Snow Leopard installation source detection – Instead of looking in /Volumes/Mac OS X Install DVD/ all volumes mounted in /Volumes/* are scanned
  • Fix permissions on /bin, /usr/bin, and /usr/sbin on osx installers so that all the binaries can be executed properly
  • Disable kernelcache on OS X Installers
  • Enable kernelcache on user supplied extras instead of just the generic one
  • When running myFix, check that myHack.kext is latest version, if not, update it
  • Removed log output for enabling ownership on devices
  • Minor cosmetic fix to DMG – attempt to prevent the text from being cut off on the bottom
  • Removed pkgutil and strings binaries from bundled utilities
  • Stripped ppc arch from bundled utilities
  • Updated myFix to version 2.1
  • Updated FakeSMC to version 4.2
  • Updated Chameleon

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

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.1

There has been this persistent thorn in my side since some other not so tech savvy people out there started releasing their own Chameleon installers and unlucky users attempted to use them – Boot sector corruption from incorrect installation of boot0.

The issue is not one that is immediately apparent, it is only when you attempt a normal manual installation of chameleon or installation of chameleon using myHack that the problem reveals itself and the system fails to boot.

I attempted to resolve the issue in myHack 2.0 RC2, and while the fix worked for some people, the issue has proven to be a continued problem for others, and the fix itself apparently causes problems for a few other users that use unique installation schema’s as well.

I have revised the method used to ‘Flush’ the boot sector and repair the corruption in this release of myFix. It is my hope that this will solve the problem once and for all, otherwise more extreme measures may be required.

Changelog:

  • Revised chameleon installation – using new method to repair damaged boot sectors
  • Clean up temp files after running tests during chameleon install
Make sure to read the release page for myFix 2.0 if you have not done so already, for a complete list of changes, contents and features.

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.

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.