I tried to make this guide simple but with a fair amount to make it easy for more people to join in on the hackintosh goodness. If you don’t understand something I encourage you to look up more detailed guides on specific topics in the guide for a better understanding of it or post questions here (it’s also possible I wasn’t clear enough at some points and will try to clarify if someone points out something that wasn’t well worded)
This post should work for both qHD and FHD screen resolution models of the XPS 13 9350. Just make sure you patch your own SSDT/DSDT that you got from your computer as my SSDTs/DSDT may cause a KP for your computer (more on that below)
This guide is for El Capitan 10.11.6 and you’ll want to update to the latest BIOS before continuing (1.4.4 as of this writing).
What works:
samsung 950 pro NVMe SSD (should work for stock SSDs too)
retina display
touchscreen (basically only actions that involve a single tap/dragging files works. can't drag to scroll but that's probably a limitation with OSX)
touchpad gestures*
wifi + bluetooth (I'm using the DW1560 wifi card I ordered on eBay, the stock wifi card sort of works but is a big hassle**)
brightness slider
battery indicator
power management
webcam
sound including microphone+headphones
dual boot with windows
* touchpad sometimes sticks when you try and drag things if you enable tap to touch+drag and you have to tap again to get it to unstick. not a huge deal, I use a bluetooth mouse most of the time anyway
**if you're using the stock wifi card, the bluetooth works but the wifi won't turn off. the workaround found previously in this thread requires a windows installation as dual boot and is as follows: in OSX, go into your wifi preferences and add your network ID/password (wifi isn't working yet so you'll have to add it manually). one that's done, boot into windows (up to the initial lock screen is fine as long as your wifi is on), then restart the computer (restart, don't use shut down) and boot into your OSX installation. about 50%-60% of the time your wifi will be working until you shut it down). In my experience the stock card randomly stopped working as well and you had to click on the wifi and turn it off and on again to get it going again (you can do this without needing to restart).
I highly recommend getting the DW1560 wifi card if you’re not afraid to open up the laptop (it uses pretty sturdy clips so it’s scary opening it for the first time). If you do get one the easiest way to put it in is to attach the antenna’s on the card first and then insert it into the slot on the motherboard
What doesn't work:
brightness keys: I’ve tried everything suggested in the previous XPS 13 thread but had no luck with these so far
facetime+imessage: check this guide to work towards getting these to work as it’s important to find your own unique valid and unused system IDs
USB-C: I don't have any USB-C devices currently so I can't test this out
minor screen garble for the apple logo for the last 2 seconds of startup
Clover:
Here’s a (very) brief overview of the clover file attached to the post so you have a better idea of what we’re editing:
Clover config (config.plist):
This is the general config folder for Clover. There is too much in here to go over and it is worth reading the Clover wikia to understand the things that you can modify here. The config included is already set up for the most part. There will be a couple of things to modify in this guide listed below. I recommend downloading Xcode from the app store (large file as it’s the full iOS/macOS software development app) for viewing the config.plist to make it easier to view and modify with proper formatting.
The Kext folder (clover/Kexts):
Kexts are essentially your drivers for OSX and are required to make certain devices on your computer to work. Kexts place in this folder are loaded to add additional functionality to what OSX offers. Once OSX is installed, these kexts are then placed into the /System/Library/Extensions OSX folder to speed up the boot time. (this will be covered below by using Kext Utility to install them).
Here's a quick breakdown of what each one is for in case you're ever looking for something here:
ACPIBatteryManager provides a battery% indicator
AppleHDA_ALC256 also called a dummy audio kext, this one is set up to work with the XPS 13 sound card. It injects into the AppleHDA kext found in OSX
ApplePS2SmartTouchPad is required for the touchpad
BrcmFirmwareRepo and
BrcmPatchRAM2 are required for WiFi
CodecCommander fixes headphone static and sound after wake
FakePCIID_BCM94352Z_as_BCM94360CS2 enables Bluetooth
FakeSMC required for booting hackintosh
HackrNVMeFamily-10_11_6 is a patched NVMe kext required for non-Apple support NVMe SSDs
IntelBacklight provides better range for backlight levels
IONVMeFamily is Apple's native El Capitan NVMe kext. Only required for initial installation
USBInjectAll is for USB functionality
ACPI folder (clover/ACPI):
Files in ACPI/orig are the files generated by my BIOS. To generate your own, delete my files from the provided orig folder and highlight your OSX installation in Clover and press F4 (also press fn+f4 just in case) before you boot into OSX. This is where you’ll get your SSDTs and DSDT files needed for patching to make OSX communicate with your system better and fix most of the problems.
Files in ACPI/patched will have the files you took from your orig folder that you made corrections to.
Installation:
Before you start, go into your BIOS and make sure secure boot is turned off and that your SSD is set to AHCI mode instead of RAID. Also if you're having trouble running any of the applications below, go to system preferences -> security and privacy and make sure all apps are allowed to run.
First you need to obtain a vanilla El Capitan download from the Apple app store, you will need access to an existing OSX installation to do so. Then from the Apple device make USB by following
this guide.
Use the CLOVER folder I included (goes in the EFI folder of your OSX installation USB’s EFI partition, you can access this easily from Windows when the USB is plugged in or use
EFI mounter on a Mac (Replace the old clover folder if there’s one already). Set aside everything in the Kexts/SLE folder and delete them from the USB. Also delete the files in ACPI/orig and ACPI/patched (these are just there so you know what the folder will look like once you set up your system). Once this is done proceed with the installation. If you are interested in dual booting windows, read the section at the bottom of this guide first.
Once OSX is installed, boot into OSX and use
EFI mounter to mount the EFI partition of both your SSD and your installation USB. Delete all the kexts from Kexts/Other folder and select everything from the SLE folder you just set aside and drop them into
Kext Utility.
Copy the EFI folder from the USB and transfer it to your SSD so you can boot up your computer without needing the USB. At this point I don’t really use the USB unless I messed something up and can no longer boot into OSX and the Clover folder I refer to for the rest of this guide will be the one on your SSD. Also, in your BIOS check your boot order and make sure your primary boot method is targeted to EFI/CLOVER/CLOVERX64.efi as you’ll be able to boot both windows and OSX from Clover.
NOTE: if you have the stock wifi card I would remove the two Bcrm kexts from the Kexts/Other folder before installing to make it load faster. bcrmpatchram2 hangs for about 30 seconds on a cold boot with the DW1820A, but it loads properly whenever you boot from a restart however. This is another reason why I recommend getting the DW1560 card though to avoid the hassle
SSDTs and DSDT patching:
I've included my SSDTs/DSDT files but I would recommend patching your own, especially if you have a different model than my XPS 13. However, you'll want to keep the SSDT-19 from my clover folder to clear the headphone static with codeccommander.kext. follow
Rehabman's patching guide very closely on how to properly patch your files. Make sure you disassemble all your SSDTs and DSDT at the same time using refs.txt in his guide. The list of patches below come from his patch repo found in his guide.
I patched all SSDTs (except for those with an "x" in their file name) with GFX0 -> IGPU
SSDT-1 also requires [gfx0] cleanup/fix errors patch
I added the following DSDT patches so far, I encourage you to read the descriptions provided with each one when applying them to have a basic idea of what these do:
rename _DMS to _XDMS (do this first)
GFX0 -> IGPU
RTC fix
OS check fix WIN8
mutex non-zero sync levels
brightness fix
HDAS -> HDEF (no patch for this on Rehabman's repo, use find+replace to find all instances of HDAS and replace them with HDEF)
layout 3 (can only be applied after HDAS has been replaced to HDEF)
IRQ fix
fix_wak2
these are the base patches I used on my DSDT and work with that file whenever I want to test out other patches.
once SSDTs and DSDT are patched, add them to the ACPI/patched in the clover folder. At this point, make sure you go into your Clover config.plist and set SSDT dropoem to True (or YES if using Xcode). also include SSDT-19. Don't include SSDTs with an x at the end (7 to 13).
Once all that is done, restart your laptop and highlight your OSX installation. Press Space and boot without caches. Once OSX is fully booted, open the OSX Terminal app and type
sudo touch /System/Library/Extensions && sudo kextcache -u /
After restart the computer and sound should now be working properly.
Native power management:
Follow Rehabman's guide
here using the link for Piker-Alpha’s beta ssdtPRGen and add the generated SSDT to your patched ACPI folder (if you rename it make sure it matches the name in the sortedorder table in config). iMac17,1 seems to be the best SMBIOS choice for this (already set to it in my clover folder).
Extras:
A few settings that may be useful to anyone reading that I preferred to make it behave more like windows:
in system settings->trackpad you can enable tap to touch and drag so you don't have to click mouse
in system settings ->keyboard you can change modifier keys to switch control and command keys so that they work similarly to ctrl and alt windows keys
I also installed paragon 14 to enable NFTS writing on windows partition. I did this so I was able to set my iTunes folder on my windows partition as my OSX folder as well so I don't need to take up twice the space on my SSD if I want access to my music on either OS. Paragon also has a Windows version that allows you to see your OSX partition from Windows
in my config.plist, boot->defaultvolume is set to EFI with a 3 second timeout so it'll automatically boot windows after 3 seconds if nothing has been selected by then (assuming you installed windows like I did). you can change this to match the name of the partition you want as default
for dual booting: download windows using the windows USB tool (download only, don't make a bootable USB from it). Once you have an ISO for windows, use
Rufus USB creation tool to make a GTP partition scheme (important) windows boot USB. Install OSX first and during installation use the disk utility to a GTP partition drive with two partitions, both formatted in macOS extended format. the first partition should be your windows installation and the 2nd one should be your mac installation (windows seems pretty picky on order of drives when making an installation). Once OSX is installed, I recommend installing windows now to make sure you did it properly before you full set up your OSX installation. During installation you'll have to delete the mac formatted partition then create a new partition from the unallocated space. you're now free to install windows normally on that partition. you'll have to point your BIOS too boot up from clover once you're done.
I hope this helps everyone, most of this information is a summary from all the great help found throughout
this thread and
Rehabman's awesome guides. This is my first hackintosh as I wanted to play around with Xcode and learn to use it and I'm pretty happy with the results so far. I'll keep editing this once I or someone else has more to add. Currently, El Capitan is much more stable and complete than Sierra so I will be focusing on this version for a while.