Here is a quick guide to enable Night Shift on unsupported Macs if you want to try it.
- First you will need to navigate to /System/Library/PrivateFrameworks
- Once you are there, look for the framework named CoreBrightness.framework
- Right click on CoreBrightness.framework and 'Open in New Tab'
- Next, navigate to /Versions/A
- Now that we are here we need to make a copy of your CoreBrightness just in case something goes wrong. So right click on CoreBrightness and choose 'Copy "CoreBrightness"' and then paste it to the Desktop or somewhere that you will be able to find it later incase you need it.
- Now right click on coreBrightness again and this time choose 'Open With' and choose 'Other...'
- That will open up a window that takes you to your Applications folder. You will choose 0xED
Once it opens we will be ready to edit the file.
This can look intimidating, but if you follow along you will be fine
You should now be looking at this
- First thing we need to do is navigate to the Offset so we can find the Hex that we need to change. To do that just look in the top right corner and you will see 'Go To Offset' and in the box above it will say 'Hex'. Click in that box and type 1D490 and then hit Enter on your keyboard. You should now see a blue cursor like this
The cursor will be on a 09 and that is the start of the string that has all the different Mac models that support Night Shift.
The Mac models and corresponding hex number is as followed.
0900 0000 0D00 0000 0600 0000 0500 0000 0600 0000 0800 0000
- MacBookPro 09
- iMac 0D
- Macmini 06
- MacBookAir 05
- MacPro 06
- MacBook 08
These number correspond to the Mac identifier number i.e. 7,1 or 13,1. And these identifiers correspond to the year of the Mac. So this is telling the software what the earliest Mac is that it wants to see that will give you the Night Shift option
So as an example lets look at the iMac in the list. Its position is 0D. If you look up D as a hex number and convert it to a decimal you will see that it corresponds to 13. So the earliest identifier for iMac that the software wants to see is 13,x. Now, if you look up 'iMac 13,1" you will see that that identifier corresponds to the late 2012 iMac. Meaning that the only iMacs that officially support Night Shift are from late 2012 to the most recent. Got it? Ok, lets do one more. Look at MacBook Pro. The hex number is 09. This DOES NOT mean that Night Shift is supported on 2009 MacBook Pros. Rather, the 09 hex corresponds to the identifier 9,x. If you look up MacBook Pro 9,1 you will notice that corresponds to the model year mid 2012. See how it works now?
NOTE: Notice that the Mac mini and the Mac Pro have the same number. If you are editing for either of these platforms make sure you edit the right location. Also note that I have listed each model in order that it appears so it is easier for you to follow.
You need to know the identifier of your Mac for this next part. If you don't know it just look it up in 'About This Mac' 'System Report'
Now that you have the identifier you need to go to this http://www.binaryhexconverter.com/decima... and type the first number of your identifier and convert it. Now that you have the hex number just add a zero in front of it and we are ready to change it in CoreBrightness.
As an example, the identifier of my iMac is 7,1. So I type in 7 in the converter and I get 7 as the hex number. Now I just add a zero to it and I have 07 now. Now I look at the list of Macs and see that the hex number I need to edit is 0D. So I highlight 0D in the file like this
And then type 07, like this
Now just make sure you save it before you close the application. To make sure you changed it you can reopen it and navigate back to the location and see that the change you made is still there.
NOTE: You need to make sure you highlight it like I did or you won't actually change it, you will instead just be adding your hex number to the string and that will cause it to not work. To check and make sure you changed it right just go back and match up the string of numbers that I provided above and it should be exactly the same EXCEPT for the hex number you changed for your Mac.
The last thing we need to do is re-sign the patched framework binary with:
sudo codesign -f -s - /S*/L*/PrivateFrameworks/CoreBrightness.framework/Versions/Current/CoreBrightness
in Terminal. Since we are using 'sudo' you will have to type in your password after you enter this.
Once you do this all you need to do now is restart your Mac and you will have the Night Shift option in Display in System Preferences.
IF when you click on Display, System Preferences crashes, that means that you didn't edit it right OR you didn't type the command into terminal properly. This is why you must have a backup of the CoreBrightness file like I told you to make at the beginning of this write up.
As always, If you have any questions just leave them here and I am always more that happy to help. I will eventually be making a video on how to do this to go along with my hackintosh videos on youtube.