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.

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.

OS X 10.8 Mountain Lion – First Impressions

So I grabbed the developer preview 1 for testing and to ensure myHack 2.1 would work with it. Here are my first impressions.

First and foremost the obligatory screenshot from my primary hackintosh workstation – installed using myHack 2.1 & my extra’s from lion:

myHack Pro running OS X 10.8 DP1

All my system’s hardware works exactly as it does in Lion. One of the advantages to using clean methods of installation, a properly edited dsdt.aml + smbios.plist, and kernel extensions that do not interfere with the vanilla system extensions across OS versions.

My 2 cents on Mountain Lion: iOS lovers users will likely love it, OS X lovers will be largely unimpressed but still happy.

Preview 1 appears to be fairly stable, certainly more stable than 10.7’s DP1. I have heard reports of some minor issues from some people but I haven’t encountered anything serious myself yet.

Notification Center is the one feature I have the most positive anticipation of. It is a great idea and I am eager to get away from growl – I really do not like the dated feel of growl nor the direction they have taken the project in. The problem I have with Notification Center for now is that it is virtually useless on any practical level for non-iOS users until third party app developers start to utilize it – or someone comes out with an app that will catch growl notifications and forward them to it. The menu-bar icon for it strikes me as being a far cry from the typical apple aesthetics, but not intolerable. The way they have integrated notification center into the desktop with the “Lion Linen” is sleek though, and I do appreciate that aspect of it. I look forward to seeing how this turns out in the final product.

A lot of people are raving about the new native airplay features on ML, I don’t have anything to try these with myself so I can’t comment but it does ‘look cool’ and will probably be very useful for those with apple tv in particular. I imagine many people will also appreciate the new iCloud integration, I myself have my own server that I sync with and as such have no intention of using the iCloud service.

Aside from what I have mentioned above there are some minor changes here and there, some new apps here and there but nothing that reaches out and grabs my ‘wow’ response personally. Possibly because I am not an iOS user I don’t find them particularly useful or perhaps I was just hoping for more. There will be a million blog posts about these individual apps they have added to the system with complete reviews, but as I am personally disinterested for now I won’t cover them here.

My biggest complaints so far: Apple is forcing you to go through app store for OS updates now, and apparently does not allow non-signed apps to run. If this will be the case in the final release or not is hard to say. Looks like the app store updates are a guarantee, and many users will likely prefer it this way… I myself have tried to avoid the app store but will likely finally fall in line with the apple empire – doesn’t seem like I have much of a choice left. I think people are going to throw a fit if they don’t allow non-signed apps to run on the final release though I suspect it may just have something to do with “GateKeeper” being buggy and unfinished, but only time will tell.

Probably thing thing that will bother the hackintosh world the most is the fact that Apple is removing ALL 32bit support from ML. While those of you, like myself, with modern systems made in the last 2 or 3 years won’t be effected by this, there are still a large number of users running legacy systems that require 32bit kernel extensions for some components to work. Some groups have indicated that they will attempt to port some of these 32bit extensions to run on 64bit kernel but when/if this will happen is impossible to say with any certainty at all.

So far it feels just like lion with a bit more polish on top and a few new apps – with minimal core changes to the OS itself. Not as significant as the changes from leopard > snow leopard > lion.

Well that is all I have to say for now… more to come in the future.

Happy Hackintoshing!