macOS Sierraの「Night Shift」を古いMacで有効にする方法

※本サイトは、アフィリエイト広告による収益を得て運営しています。リンク先での購入により売上の一部が本サイトに還元されることがあります。
macOS Sierraの「Night Shift」を古いMacで有効にする方法

ディスプレイの色温度を低くして目への負担を軽減してくれる「Night Shift」機能が、macOS Sierraの 10.12.4 からMacでも使用できる様になりました。設定は、システム環境設定のディスプレイから可能です。

macOS High Sierra では、このページの記載の方法では動作しません。具体的には「手順4」の機種IDの箇所になります。iMac Proが追加された為に数値が追加されています。ご注意ください。

macOS High Sierra の場合は、macOS High Sierraの「Night Shift」を古いMacで有効にする方法 をご覧ください。

  • 2018年1月24日
    macOS Sierra 10.12.6のアップデートが公開されましたが、問題なく「Night Shift」機能が使えています。
  • 2017年9月5日
    Night Shift機能をメニューバーから操作するアプリ「Shifty」の情報を追加しました。

Night Shift の対応機種は、macOS Sierra 10.12.4 を搭載した以下のMacになります。Mac で Night Shift を使う方法 - Apple サポートより引用

  • MacBook (Early 2015 以降)
  • MacBook Air (Mid 2012 以降)
  • MacBook Pro (Mid 2012 以降)
  • Mac mini (Late 2012 以降)
  • iMac (Late 2012 以降)
  • Mac Pro (Late 2013 以降)

外部ディスプレイを使う場合は以下の製品を使う必要があります。

  • Apple LED Cinema Display
  • Apple Thunderbolt Display
  • LG UltraFine 5K Display
  • LG UltraFine 4K Display

当然の事ながら、2011年製のMacBook Proは対応機種では無いので享受するとこはできませんが、ハードウェアレベルのチェックで無く、システムファイル(CoreBrightness.framework)の数値を変更するだけなので、Night Shiftを有効にしてみました。

対応していないMacでNight Shiftを有効に
対応していないMacでNight Shiftを有効に

非対応のMacでNight Shift(ナイトシフト)を有効にする手順

Supported Mac models for Night Shift in Sierra 10.12.4+ – Pike's Universumを参考に数値やコマンドを引用させて頂きました。

Night Shiftを有効にするMacの機種は、MacBook Pro 15 Early 2011 で、macOSX Sierraのバージョンは、10.12.4 です。
Appleの開発アプリのXcodeもしくは、hexエディターが必要です。この記事では、Xcodeを使用しています。Xcodeは、Mac App Storeからダウンロードできます。

Macのセキュリティ整合性保護機能(SIP:System Integrity Protection)を一時的に無効にして、システムファイルを編集しますので、ご注意ください。

手順1 SIPを無効にする

リカバリモード(Command + R を押しながら)でMacを起動。Appleロゴとプログレスバーが表示されたらキーを離してもOKです。

起動後に画面上部にあるメニューの「ユーティリティ」にある「ターミナル」をクリックして、ターミナルを起動。SIPを無効にするために以下のコマンドを実行します。

csrutil disable

成功すると、Successfully disabled System Integrity Protection. Please restart the machine for the changes to take effect. と表示されますので、Macを再起動します。

手順2 CoreBrightness.frameworkのバックアップ

CoreBrightness.framework は以下のディレクトリになりますので、Finderの「フォルダの移動」から以下のディレクトリに移動します。

/System/Library/PrivateFrameworks/

CoreBrightness.frameworkは、フォルダになっていますので全てバックアップ。
イレギュラーな方法ですので、元に戻す場合に備えてオリジナルは、安全な場所に別途保存をおすすめします。
※SIPが無効になっていない場合は、CoreBrightness.frameworkの中身が表示されません。SIPを無効にしてください。

手順3 XcodeでCoreBrightness.frameworkを開く

Xcodeを立ち上げて、メニュー「File」-> 「Open...」で CoreBrightness.framework の中にある「CoreBrightness」を開きます。ショートカットアイコンのように矢印がついているアイコンです。

CoreBrightness ディレクトリ
CoreBrightness ディレクトリ

ファイルを開いた状態で、Shift + Command + J で Project navigator を表示して、以下の画像のように左カラムの CoreBrightness を右クリック ->「Open As」 -> 「Hex」で開きます。

Xcode Hexとして開く
Xcode Hexとして開く

手順4 Macの機種IDの数値を変更する

XcodeでCoreBrightnessを開いた状態
XcodeでCoreBrightnessを開いた状態

CoreBrightnessを開いた状態で、Command + F で以下の文字列を検索します。

09 00 00 00 0d 00 00 00 06 00 00 00 05 00 00 00 06 00 00 00 08 00 00 00

上記の数値で、Night Shiftに対応する機種か否かを判定しているので、数値の変更のみで有効にすることができます。

具体的には、機種IDと対応する数値は以下になっています。
※機種IDは、Finderの「このMacについて」「システムレポート...」で確認することが可能です。

  • MacBookPro9,x = “09”
  • iMac13,x = “0d”
  • Macmini6,x = “06”
  • MacBookAir5,x = “05”
  • MacPro6,x = 2番目の “06”
  • MacBook8,x = “08”

今回Night Shiftを有効にするのはMacBook Proなので、上記の数値からMacBookPro9,xの機種がデフォルトでNight Shiftを利用することができます。

私のMacBook Pro 15 Early 2011 の場合、機種IDは MacBookPro8,2 になるので、本来は有効にできませんが MacBookPro9,xを意味する「09」の部分をMacBookPro8,2の「08」に変更することでNight shiftを有効にして使用することが可能になります。以下が変更した数値になります。変更箇所は先頭の「08」のみ。

08 00 00 00 0d 00 00 00 06 00 00 00 05 00 00 00 06 00 00 00 08 00 00 00

変更時のカーソルの位置が分りづらいですが、2つの数値を選択して入力する方法が入力しやすかったです。
変更後保存して、CoreBrightness.framework を /System/Library/PrivateFrameworks/ に上書きします。

手順5 変更した数値をシステムに反映させる

ターミナル.appで以下のコマンドを実行して、署名をし直す必要があります。
※パスワードは2回聞かれました。

sudo codesign -f -s - /S*/L*/PrivateFrameworks/CoreBrightness.framework/Versions/Current/CoreBrightness

以上で、編集作業は終了です。

手順6 SIPを有効にして完了

手順1でSIPを無効にしたので、元の状態に戻します。
Command + R を押しながらMacを起動。起動後に画面上部にあるメニューの「ユーティリティ」にある「ターミナル」をクリックして、ターミナルを起動。SIPを有効にするために以下のコマンドを実行します。

csrutil enable

SIPを有効にしたとのメッセージの表示後にMacを再起動。システム環境設定のディスプレイに、Night Shiftのタブが表示されていれば成功です!
SIPが有効になっているか否かは、以下のコマンドで確認することができます。有効になっている場合は、enabled と表示されます。

csrutil status

今までf.luxを使用していましたが、オンにしているだけで細かい機能は使っていなかったのでNight Shiftにスイッチしました。

Night Shift機能をメニューバーから操作するアプリ「Shifty」

「Shifty」は、f.luxのようにメニューバーからNight Shiftのオン/オフ, 色温度の調整, アプリごとの設定、1時間のみ無効、開始終了時間の無効の操作が行えるので、便利ですね。
※再起動などのログイン時に起動させるには、PreferencesのLaunch Shifty at Loginをオンにする必要があります。

Night Shift機能をメニューバーから操作「Shifty」
Night Shift機能をメニューバーから操作「Shifty」

Shiftyのダウンロードは、Shifty - Get more control over Night Shiftになります。ソースコードはGitHub - thompsonate/Shiftyにて公開されています。

macOSのアップデート後について

macOSをアップデートするとNight Shiftを有効にするために編集した CoreBrightness.framework がデフォルトに戻ってしまいNight Shiftが無効になるので、再度設定が必要になります。



この記事のタイトルとURLをコピーする
スポンサーリンク

macOS Sierraの「Night Shift」を古いMacで有効にする方法” への3件のコメントがあります

  1. 参考にさせていただきました。iMac 21.5-inch, Mid 2011(機種ID:iMac12,1)を使用しているのですが、“0d”の部分はどのような数値にすればよろしいかお分かりになれば教えてください。

※現在この記事でのコメント投稿は受け付けておりません。管理人へのお問合せは、お問合せページ からお願い致します。