I blogged about the Supported Mac models for Night Shift in Sierra 10.12.4+ and today I’d like to share an update on it.
Night Shift in macOS High Sierra 10.13.2 (Build 17C60c) has change a little. It’s still controlled by the CoreBrightness.framework and you need at least one of the following – or later – Mac models:
MacBookPro9,x
iMacPro1,x
iMac13,x
Macmini6,x
MacBookAir5,x
MacPro6,x
MacBook8,x
But as you can see here the iMac Pro is now also added and the CoreBrightness.framework now checks for the following Mac model names:
MacBookPro
iMac Pro
iMac
Macmini
MacBookAir
MacPro
MacBook
Night Shift is not supported on older Mac models, but you can change the data so that the check will pass instead of fail. Enabling Nigh Shift on older Mac models.
You can find the offset to the used data with help of:
nm /S*/L*/PrivateFrameworks/CoreBrightness.framework/CoreBrightness|grep _ModelMinVersion
0000000000021bc0 S _ModelMinVersion
Now you know the offset. Let’s dump the data:
xxd -s 0x21bc0 -l 28 /S*/L*/PrivateFrameworks/CoreBrightness.framework/CoreBrightness
00021bc0: 0900 0000 0100 0000 0d00 0000 0600 0000
00021bd0: 0500 0000 0600 0000 0800 0000
The marked bytes match with the following models:
MacBookPro9,x
iMacPro1,x
iMac13,x
Macmini6,x
MacBookAir5,x
MacPro6,x
MacBook8,x
1.) Disable SIP.
2.) Backup the CoreBrightness.framework
3.) Open the CoreBrightness.framework binary in a hex editor (app).
4.) Change the matching byte for your model.
5.) Save the file.
The next step is to re-sign the patched framework binary with:
sudo codesign -f -s - /S*/L*/PrivateFrameworks/CoreBrightness.framework/Versions/Current/CoreBrightness
Enjoy Nigh Shift on your no-longer-supported Mac 😉