Okay! Time to breathe some new life into the Shift. That's right folks. OS X now runs flawlessly on the HTC Shift and graphics are running without a hitch thanks to modified GMA 950 kexts. It's nice to play around with other devices. TBH the HD2 is too plain for me atm and I'm waiting for a Desire HD build of Android for it. In the mean time, here is some darwin goodness for the worlds favourite UMPC. First of all, to answer a few questions I encountered in the other threads, OS X will run perfectly fine on the Shift. Some people are blindly saying that the 950 has issues with OS X. Guys please do some research before posting misleading information. The 950's were the original on-boards for the MacBooks. It's impossible for it not to be supported. Better, with HW Acceleration! Okay so what works and what doesn't?
- GMA 950 w HW Acc.
- Internal drive
- Ethernet/USB Expansion Hub
- Battery/Charging recognition
- Display (although I tried forcing 1024x600 it will only create a scaled view and it's not useable)
- SD Card slot
- Fingerprint Scanner (I'm not surprise, OS X doesn't have support for it anyway)
So almost everything works! Which is good news. I'm not sure if WiFi and bluetooth will work. Theoretically WiFi should work because the iPhone 2G and 3G use the exact same card that the Shift uses. However I need to find a way to extract the kexts from a firmware file which is proving to be difficult as Apple is now ridiculously locking down access to the images. Once I find this kext, WiFi should be a go. Bluetooth, I'm not sure about. I don't even know what stack it is so I can't look for a driver. Fingerprint scanner I'm not worried about as it proves useless most of the time anyway.
Okay so how do you get this working. Well I went through the trouble (and a majority of my download quota) to find which builds work best so you don't have to. Now don't come asking me for download links to these builds because I will NOT give them to you. Try google. Below is a rundown of the tested builds.
iAtkos 5i - Boots into verbose mode and kernel panics.
iPC - Does not boot at all. Installed netkas PCEFI - no change
XXX_10.5.6 - Boots into installer, won't run after installation
Leo4Allv3 - Boots into verbose mode and kernel panics.
Leopard 10.5.6 Pendrive - Boots perfectly to blue screen, loginwindows.app hangs
So the above builds were pretty helpless. The only ones that worked to some degree were iAtkos, XXX, and Pendrive, pendrive having the most success. Loginwindow.app was the only thing stopping boot. So I tried a number of things. First thing that comes to mind is replacing the app file. This didn't work and continued to crash. Then something else got my attention. the blue screen after the Apple logo turns black and then back to blue again. The only explanation to this would do this is that the graphics drivers were trying to load but failing. So this was a problem with the 950 kexts. The iAtkos disk came with excellent modified 950 drivers. Installing these onto the pendrive bulid solved this and it booted to the desktop. Below is the complete set of instructions to getting everything working including dual boot.
If you want dual boot working properly, I strongly recommend installing Windows first. That is, if you want to avoid a lot of hassle. Now as you may know, OS X is an HFS OS and Windows is an MBR. If you go about installing Windows on a drive with no other system on it, it is going to convert the entire partition table. This can be solved by creating two partitions under GPT. If OS X is on one partition, Windows will create a hybrid partition table. (MBR/GPT)
1) First you are going to need to find a copy of the leopard pendrive build and restore it to an external drive or usb. You are going to need access to a working hackintosh or Mac to be able to do this.
2) Once the restore is complete you need to go ahead and install the GMA950a.pkg and the GMA950b.pkg from inside the iAtkos disk. If you aren't able to find these I will attach these below.
3) Once these are installed, we are going to need a bootloader for the machine to see the drives. There is a great bootloader credits to netkas here.
4) Plug in the external drive that you restored and installed these to and fire up your shift. Boot into the external drive bask in the glory of OS X. But we're not done yet.
5) Go and download IOATAFamily_ICH10 that's attached below and install it onto the boot drive. Reboot.
6) You need to head over to /Applications/Utilities/Disk Utility.app. Now we are going to partition the internal drive and it WILL ERASE THE WINDOWS INSTALLATION. It should come up on the top left as a grey hard disk. Now you need to select the one at the very top. i.e. the parent directory. You should now have a tab labeled "Partition." Click on that an you will get a box that has your hard drive name in it. Select "Volume Scheme" -> 2 Partitions and click on the first box. On the right, name this to whatever you like. I had Macintosh HD and select the size. Make sure the Format is set to Mac OS Extended (Journaled).
7) Now select the second partition and name it to something. I had Windows. Adjust the size and set it to MS-DOS (FAT). Now click options. and there will be three partition tables to choose from. Select GUID Partition Table (GPT). Click apply and this will erase the internal disk and replace it with two partitions.
8) Close disk utility and boot into your Windows disk. Install Windows onto THE WINDOWS PARTITION YOU CREATED. Not the Mac one.
9) After the install is complete, reboot into the external drive that you originally booted OS X off and open Disk Utility.
10) Now click on the Mac partition that you created in step 6 and click the restore tab. There will be two entry fields here, one called source, the other destination. Now depending on what the external drive is, it will either be an orange disk or a white disk. What you are going to do is drag the orange/white disk that you booted off into the source, and the Mac partition you created into destination. Tick the erase destination box and click restore. This will take roughly about 20 minutes.
11) When restore is complete, we have two more things left to do. We need to install the bootloader and set the partition as active. Now remember the bootloader we installed onto the external drive? All you need to do is install the same thing, but to the internal this time.
12) Almost there! Just need to mark the partition as active. I will post a screenshot incase this step is confusing. You need to go to /Applications/Utilities/Terminal.app. If you are familiar with Linux, this is a piece of cake. Just type the commands below.
Now there should be all the attached drives listed. Take not of your internal drives now. You should see on the left, /dev/diskX (where X is a positive integer) and under that will be a hash followed by a series of sequential numbers. select the appropriate number for your internal Mac partition. Mine was disk0s2. In most circumstances, it should be disk0 that you are after as it is the main drive. Next type the command below.
sudo frisk -e /dev/rdisk0 (or whatever the 0 is meant to be in your circumstance)
Ignore the error "fdisk: could not open MBR file ..."
f X (where X is the number that was next to the partition. In my case 2, in disk0s'2'. "
write (hit enter key)
y (hit enter)
exit (to quit)
I FORGOT TO ADD THIS STEP! Before rebooting, run the bootloader from http://www.mediafire.com/?zybzmmm5uyz on the newly imaged internal drive. If you do not do this, the machine will boot up to a flashing underscore. You need to do this as the boot files are not copied from the first time you do it.
Now restart the machine, pull out the external drive and boot into the internal drive. There should now be a countdown timer. Press any key to interrupt this and you will get a list of your partitions. Mac OS X and Windows. if you want to go into Windows, just select it and hit enter. Similarly for Mac.
Hope this wasn't too confusing. Running OS X on alien hardware is not an easy task and if you succeeded, consider it a great accomplishment! Any questions, just ask below. I am on school holiday at the moment so I'll have a lot more time to answer! I will post up developments on WiFi so stay tuned!