Supported Mac models for Night Shift in High Sierra 10.13.2

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 😉

Advertisements

9 thoughts on “Supported Mac models for Night Shift in High Sierra 10.13.2

  1. Pingback: Supported Mac models for Night Shift in Sierra 10.12.4+ – Pike's Universum

  2. hi, i’ve used your patch in my MBP 5,5 running a patched high sierra (since it’s a 5,5)
    it works great except that i can’t enter displays tab anymore in sys. pref.
    there’s any sort of fix for that?

    • Hi,

      Yes. See the comments section of the previous blog article (for 10.12.4). You need to use the correct path:

      sudo codesign -f -s - /S*/L*/PrivateFrameworks/CoreBrightness.framework/Versions/Current/CoreBrightness
  3. Thank for this update.

    As an alternative that I find simpler (for your step 4) :

    * Find the function which check the Night Shift support :
    nm /System/Library/PrivateFrameworks/CoreBrightness.framework/CoreBrightness | grep _CBU_IsNightShiftSupported

    => “000000000001e166 T _CBU_IsNightShiftSupported” (on 10.13.1)

    * Open “/System/Library/PrivateFrameworks/CoreBrightness.framework/CoreBrightness” with a hexadecimal editor, and replace the 8 bytes at the given offset (0x1e166 there) by “48 C7 C0 01 00 00 00 C3”.

  4. Hi Piker, tried on 10.13.1 now, to see if it works here.
    no more crashes, but also no place to adjust.
    and it seems that the ugly brown is gone.
    I followed the above description.
    Is it possible that it has something to do with internal external display ?
    I did lots of hacks in including Hackingtoshes, but Im not a coder, Im a trained musician. Id like to get Sierra working like this I`ll do fresh install and try again. And really hope that I will get it to work in the end.

    • Hi Marc,

      Good to hear that it finally works.

      You mean there’s no preference tab anymore?

      I cannot verify this right now. The problem here is that the Mac model that I use, in combination with the version of macOS, won’t show it either.

  5. No tab in sys-prefs / display, thats in high sierra.
    In Sierra I did pretty much the same, but there is kept crashing sys-prefs and notifications.
    I might have done it wrong, or I tried something before and its not virgin, can’t tell,
    Some where I read, that it has to do with the intern and extern monitor setting, that would be why we don’t see the tab. I don’t have a other monitor to check that.
    Could be, that the monitor is not supported.
    Would be nice to find out, not just for me, there is a lot of people having the same problem.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s