[BigSur]MacBookPro13を擬似解像度1920*1200にする方法

[BigSur]MacBookPro13を擬似解像度1920*1200にする方法

実装環境

  • MacBook Pro 13(2019)
  • macOS BigSur(11.0.1)

はじめに

macOS 10.15 Catalinaまではシステムファイルのディレクトリをマウントした後に設定ファイルを編集していましたが、BigSurにアップデートしたらマウントした時にmount: / failed with 66と権限がないとエラーが出てマウントできませんでした。

macOS BigSurでは/System/Library/Displaysを/Libraryにコピーして、コピーした/Libraryの中の.plistを編集することで解像度を追加することができます。

この方法は公式で推奨された方法ではないので、設定する方は自己責任でお願いします。

/System/Library/Displaysを/Libraryにコピー

ターミナルを開き次のコマンドを実行しDisplaysディレクトリをコピーします。

$ sudo cp -R /System/Library/Displays /Library/

コピーした/Library/displays/contents/Resources/Overridesの中のファイルを編集しますが、端末によって対象のファイルが異なります。どのファイルを編集すれば良いか次の手順で調べます。

編集する解像度の設定ファイルを調べる

ターミナルで次のコマンドを実行します。

$ ioreg -lw0 | grep IODisplayPrefsKey

| |   | | |       "IODisplayPrefsKeyOld" = "IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IGPU@2/AppleIntelFramebuffer@0/display0/AppleBacklightDisplay-610-a03d"
| |   | | |       "IODisplayPrefsKey" = "IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IGPU@2-610-a03d-eab0383154f95e06"

2つ見つかりますがIODisplayPrefsKeyの値、そして'/'で区切られた最後の値のIGPU@2-610-a03d-eab0383154f95e06から編集するファイルが分かります。

IGPU@2-610-a03d-eab0383154f95e06は'-'で区切られています。

DisplayVendorID-[2番目の値]がディレクトリ名で、DisplayProductID-[3番目]が設定ファイル名となります。この例では以下のファイルが対象となります。

/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-a03d

解像度 1920*1200の設定を追加

ターミナルで設定ファイルが保存されているディクトりをカレントにします。

$ cd /Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610

編集する前にバックアップをとります。

$ sudo cp -p DisplayProductID-a03d DisplayProductID-a03d.org

vimで編集します。

$ sudo vim DisplayProductID-a03d

解像度1920*1200の設定はAAAPAAAACWAAAAABです。の直前に追加してください。コメントを除いてコピーしてください。

<!-- 一部抜粋 -->
<array>
    <data>AAANIAAACDQA</data>
    <data>AAALQAAABwgA</data>
    <data>AAAKAAAABkAA</data>
    <data>AAAIAAAABQAA</data>
    <data>AAAKAAAABkAAAAABACAAAA==</data>
    <data>AAAKAAAABaAAAAABACAAAA==</data>
    <data>AAAHgAAABLAAAAABACAAAA==</data>
    <data>AAAHgAAABDgAAAABACAAAA==</data>
    <data>AAAFAAAAAtAAAAABACAAAA==</data>
    <data>AAAGcgAABBoAAAAB</data>
    <data>AAAFoAAAA4QAAAAB</data>
    <data>AAAFAAAAAyAAAAAB</data>
    <data>AAAEgAAAAtAAAAAB</data>
    <data>AAAEAAAAAwAAAAAB</data>
    <data>AAADSAAAAg0AAAAB</data>
    <data>AAADIAAAAlgAAAAB</data>
    <data>AAACgAAAAeAAAAAB</data>
    <data>AAANIAAACDQAAAAJAKAAAA==</data>
    <data>AAALQAAABwgAAAAJAKAAAA==</data>
    <data>AAAKAAAABkAAAAAJAKAAAA==</data>
    <data>AAAIAAAABQAAAAAJAKAAAA==</data>
    <data>AAAKAAAABaAAAAAJAKAAAA==</data>
    <data>AAAGcgAABBoAAAAJAKAAAA==</data>
    <data>AAAHgAAABLAAAAAJAKAAAA==</data>
    <data>AAAHgAAABDgAAAAJACAAAA==</data>
    <data>AAAFAAAAAtAAAAAJACAAAA==</data>
    <data>AAAPAAAACWAAAAAB</data>   <!-- 追加 1920*1200の設定 -->
</array>

編集が終わったら保存して、diffコマンドで変更内容を確認します。

$ diff DisplayProductID-a03d DisplayProductID-a03d.org
53d52
<         <data>AAAPAAAACWAAAAAB</data>

再起動と解像度を変更

システムを再起動して、ディスプレイの設定を確認すると1920*1200が設定できるようになっています。

この方法はrootファイルを直接変更していないし、SIPを無効にする必要もないのでセキュリティにも安心だと思います。

Commentsこの記事のコメント

メールアドレスが公開されることはありません。お気軽にコメントどうぞ。

人気記事