Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
A script to fix EDID problems on external monitors in Mac OS. Source: http://embdev.net/topic/284710

patch-edid.rb

A script to fix EDID problems on external monitors in Mac OS.

  1. Connect the problem monitor.

  2. Download this script into your /System/Library/Displays/Overrides (note: this file is only writeable by root, so some commands require sudo).

cd /System/Library/Displays/Overrides
sudo curl -O https://gist.github.com/ejdyksen/8302862/raw/patch-edid.rb
  1. Run the script we just downloaded (as root again). This creates a new display override plist.
sudo ruby patch-edid.rb
  1. Disconnect and reconnect the monitor.

Source: http://embdev.net/topic/284710

#!/usr/bin/ruby
# Create display override file to force Mac OS X to use RGB mode for Display
# see http://embdev.net/topic/284710
#
# Update 2013-06-24: added -w0 option to prevent truncated lines
require 'base64'
data=`ioreg -l -w0 -d0 -r -c AppleDisplay`
edid_hex=data.match(/IODisplayEDID.*?<([a-z0-9]+)>/i)[1]
vendorid=data.match(/DisplayVendorID.*?([0-9]+)/i)[1].to_i
productid=data.match(/DisplayProductID.*?([0-9]+)/i)[1].to_i
puts "found display: vendorid #{vendorid}, productid #{productid}, EDID:\n#{edid_hex}"
bytes=edid_hex.scan(/../).map{|x|Integer("0x#{x}")}.flatten
puts "Setting color support to RGB 4:4:4 only"
bytes[24] &= ~(0b11000)
puts "Number of extension blocks: #{bytes[126]}"
puts "removing extension block"
bytes = bytes[0..127]
bytes[126] = 0
bytes[127] = (0x100-(bytes[0..126].reduce(:+) % 256)) % 256
puts
puts "Recalculated checksum: 0x%x" % bytes[127]
puts "new EDID:\n#{bytes.map{|b|"%02X"%b}.join}"
Dir.mkdir("DisplayVendorID-%x" % vendorid) rescue nil
f = File.open("DisplayVendorID-%x/DisplayProductID-%x" % [vendorid, productid], 'w')
f.write '<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">'
f.write "
<dict>
<key>DisplayProductName</key>
<string>Display with forced RGB mode (EDID override)</string>
<key>IODisplayEDID</key>
<data>#{Base64.encode64(bytes.pack('C*'))}</data>
<key>DisplayVendorID</key>
<integer>#{vendorid}</integer>
<key>DisplayProductID</key>
<integer>#{productid}</integer>
</dict>
</plist>"
f.close
@chiehchu

This comment has been minimized.

Copy link

chiehchu commented Aug 12, 2015

how about roll back?

@PrfsrX

This comment has been minimized.

Copy link

PrfsrX commented Aug 25, 2015

Anybody?... Would also love a roll back :)

@unknownzerx

This comment has been minimized.

Copy link

unknownzerx commented Sep 13, 2015

Will it work on El Capitan? With rootless...

@0x62ash

This comment has been minimized.

Copy link

0x62ash commented Oct 1, 2015

On El Capitan (disabled rootless) after patching I got acid colors.
So Im using apple default profiles for my Asus VX239 with terrible font smoothing :(

@mirfilip

This comment has been minimized.

Copy link

mirfilip commented Oct 22, 2015

No it won't work with El Capitan. /System/Library/Displays/Overrides doesn't exist and cannot be created or modified even by sudo.

I wonder if turning off SIP and adding this path to excluded paths in /System/Library/Sandbox/rootless.conf. Anyone tried that?

EDIT: Just turned off rootless, patch obviously still works as expected. Also, it's worth to new overrides path to excluded paths in rootless cfg.

@aocana

This comment has been minimized.

Copy link

aocana commented Nov 6, 2015

not works for my asus vx239
:-(

@serefacet

This comment has been minimized.

Copy link

serefacet commented Nov 10, 2015

Not works for my asus vx239 too . I nearly try all kinds of these solutions , DELL and Samsung Monitors seems ok , but I have no solution on asus vx239. Any help is appreciated.

@nooks

This comment has been minimized.

Copy link

nooks commented Nov 14, 2015

Not work in Mac mini 2009 with VGA display

+-o AppleDisplay  <class AppleDisplay, id 0x1000048fa, registered, matched, active, busy 0 (0 ms), retain 8>
    {
      "IOClass" = "AppleDisplay"
      "CFBundleIdentifier" = "com.apple.iokit.IOGraphicsFamily"
      "IOProviderClass" = "IODisplayConnect"
      "DisplayProductID" = 1815
      "IOPowerManagement" = {"CapabilityFlags"=49152,"MaxPowerState"=3,"CurrentPowerState"=3}
      "IODisplayPrefsKey" = "IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IGPU@2/AppleIntelFramebuffer@1/display0/AppleDisplay-756e6b6e-717"
      "IODisplayParameters" = {"bgsc"={"min"=0,"max"=65536,"value"=65536},"pscn"={"min"=8800,"max"=10000,"value"=10000},"rgsc"={"min"=0,"max"=65536,"value"=65536},"cmod"={"min"=0,"max"=4096,"value"=1},"ggsc"={"min"=0,"max"=65536,"value"=65536},"cyuv"={"min"=0,"max"=268435456,"value"=268435456},"vblm"={"min"=0,"max"=196608,"value"=65536},"gsc "={"min"=0,"max"=65536,"value"=65536},"colr"={"min"=0,"max"=18446744073709551615,"value"=257}}
      "IOProbeScore" = 2000
      "IOMatchCategory" = "IODefaultMatchCategory"
      "IODisplayConnectFlags" = <00000000>
      "DisplayVendorID" = 1970170734
      "DisplaySerialNumber" = 0
    }
@maurei

This comment has been minimized.

Copy link

maurei commented Nov 24, 2015

Maybe you want to update this topic with the following relevant information:

  1. In El Capitan
    /System/Library/Displays/Overrides
    is now located at
    /System/Library/Displays/Contents/Resources/Overrides
  2. Even with sudo, any write operations will not be permitted. To fix this, reboot in recovery mode (cmd+r during reboot), under utils, open up the terminal. Do csrutil disable. Reboot, and run the script in the relocated folder.
@martystack

This comment has been minimized.

Copy link

martystack commented Dec 2, 2015

Thanks Maurei for the update.

And if ANYONE is interested in why it doesn't work in OSX El Captain, it is because...

OS X 10.11 « El Capitan » introduces a feature called « System Integrity Protection », aka « SIP » or « rootless » . A lot has been said about this feature on several information media.

Because of this SwitchResX isn't working without overriding the SIP- Maurei explained the work around.

You can read more on this issue here:
http://www.madrau.com/support/support/srx_1011.html

@oliviergilloire

This comment has been minimized.

Copy link

oliviergilloire commented Feb 10, 2016

Hi

OS X El Capitan, did all of the above (csrutil disable, root enabled) but the ruby patch-edid.rb just doesn't output anything (no error message, no output on terminal...)

macpro:Overrides root# ruby patch-edid.rb
macpro:Overrides root#
No command line output whatsoever?

The command "ioreg -l -w0 -d0 -r -c AppleDisplay" properly works though and outputs the below:

+-o AppleDisplay <class AppleDisplay, id 0x100000c3e, registered, matched, active, busy 0 (0 ms), retain 8>
{
"IOClass" = "AppleDisplay"
"CFBundleIdentifier" = "com.apple.iokit.IOGraphicsFamily"
"IOProviderClass" = "IODisplayConnect"
"DisplayProductID" = 16540
"IODisplayEDID" = <00ffffffffffff0090ac9c404c37303231170104b5351e783a1df5ae4f35b3250d5054000000010101010101010101010101010101014dd000a0f0703e80302035000f282100001a000000ff0030303030303030303030303030000000fc0044454c4c20555032343134510a000000fd001d4b1f8c36000a20202020202000cc>
"IODisplayPrefsKey" = "IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/GFXB@3/IOPP/GFX2@0/ATY,KaniS@5/AMDFramebufferSI/display0/AppleDisplay-90ac-409c"
"IOPowerManagement" = {"CapabilityFlags"=49152,"MaxPowerState"=3,"CurrentPowerState"=3}
"IOProbeScore" = 2000
"IODisplayParameters" = {"bgsc"={"min"=0,"max"=65536,"value"=65536},"pscn"={"min"=10000,"max"=10000,"value"=10000},"rgsc"={"min"=0,"max"=65536,"value"=65536},"thrm"={"min"=0,"max"=120,"value"=51},"cmod"={"min"=0,"max"=4096,"value"=1},"ggsc"={"min"=0,"max"=65536,"value"=65536},"cyuv"={"min"=0,"max"=268435456,"value"=268435456},"dith"={"min"=0,"max"=1,"value"=0},"vblm"={"min"=0,"max"=196608,"value"=65536},"gsc "={"min"=0,"max"=65536,"value"=65536},"colr"={"min"=0,"max"=268439825,"value"=268439553}}
"IOMatchCategory" = "IODefaultMatchCategory"
"AppleDisplayType" = 2
"IODisplayAttributes" = {"IODisplayAttributes"=<676174760000000073676c6600000000726c6f630100000063706220040000006364670080808000676c666400000000>}
"AppleSense" = 37119
"IODisplayConnectFlags" =
"DisplayVendorID" = 37036
"DisplaySerialNumber" = 842020684
}

What could be wrong here?

@donald-jackson

This comment has been minimized.

Copy link

donald-jackson commented Mar 1, 2016

May I ask potentially a different question? I have an external GPU with HDMI 2.0 which works running YCBR 4:4:4 when in Bootcamp but I can't seem to force it to do so in OS X. How can I modify this script to force the only mode available to YCBR 4:4:4 (rather than RGB) as this is in fact a TV. Attached is what I currently get (no custom resolutions, only the HDMI pixel clock patch).
screenshot 2016-03-01 09 28 34

@ojczeo

This comment has been minimized.

Copy link

ojczeo commented Apr 9, 2016

Awesome, thanks for sharing!

@cheynewallace

This comment has been minimized.

Copy link

cheynewallace commented May 23, 2016

Twice now, this script has saved me from basically having to throw away a monitor. After a recent upgrade to El Capitan I thought It was all over, thanks also to @maurei for the info regarding the new file location. Never would of found that

@davidbdeath

This comment has been minimized.

Copy link

davidbdeath commented Aug 26, 2016

Is there a way to use this to force 10Bit? My display supports it but even after running the patch my Mac doesn't.

@AlexCoderBit

This comment has been minimized.

Copy link

AlexCoderBit commented Aug 29, 2016

Made my day for second time now ))
Though it took a while for me to make it work on a same MBP 13 but with a new monitor.

@ImRob

This comment has been minimized.

Copy link

ImRob commented Sep 12, 2016

Not working for me, i'm about to return this monitor. Thanks anyway @maurei

@ghost

This comment has been minimized.

Copy link

ghost commented Sep 21, 2016

Hi guys, I had this working on El Capitan, but I've updated to Sierra and performed all the process (turned off SIP too). I can download the file into the correct directory, but for some reason it isn't running the script. What could be going wrong?

@aocana

This comment has been minimized.

Copy link

aocana commented Oct 1, 2016

Hi,

I have ASUS VX239 and OS sierra. I have connected this monitor to my macbook pro and doesn't work, someone can help me to run this monitor with my macbook pro.?

thanks!!

@Zweedeend

This comment has been minimized.

Copy link

Zweedeend commented Oct 13, 2016

I have to go through this process every time there is a new update for the Mac. Here are the steps I took for Sierra (they are the same for El Capitan)

  1. Reboot into Recovery Mode, by holding ⌘ + R when the computer is booting
  2. Open the Terminal window by going to Utilities -> Terminal
  3. Type csrutil disable; reboot and press Enter
  4. Let the computer boot normally (not Recovery Mode)
  5. Follow the original instructions (on the top of this page), except that the folder in step 2 is changed. It is now /System/Library/Displays/Contents/Resources/Overrides
  6. Don't stop here. It is important on re-enable the System Integrety Protection. Reboot into Recovery Mode, by holding ⌘ + R when the computer is booting
  7. Open the Terminal window by going to Utilities -> Terminal
  8. Type csrutil enable; reboot and press Enter
  9. Let the computer boot normally. Done
@antwake

This comment has been minimized.

Copy link

antwake commented Oct 28, 2016

for those who have no output when running the script (like @oliviergilloire ) be sure that the file (patch-edid.rb) isn't empty.
I had to download it manually and copy/paste it in /System/Library/Displays/Contents/Resources/Overrides
Worked with my 21:9 AOC Q2963PM

@mickeyklein

This comment has been minimized.

Copy link

mickeyklein commented Dec 20, 2016

When I type in the script it asks for a password? anyone know what to do with that? I don't have a password on my mac

@joserocha3

This comment has been minimized.

Copy link

joserocha3 commented Dec 24, 2016

@mickeyklein the password is your user account password, the one you type in when you turn on your mac

@MacMiniUser2017

This comment has been minimized.

Copy link

MacMiniUser2017 commented Jan 19, 2017

I have a Mac mini (2011) with Sierra conected on a Philips TV. Because a get sometimes strange colors I try the solution on this webpage. But I think that I do something wrong because I get a error… I hope you can help me.

This is the error I get in the terminal:

patch-edid.rb:11:in match': invalid byte sequence in UTF-8 (ArgumentError) from patch-edid.rb:11:inmatch'
from patch-edid.rb:11:in `

'
I did the steps below. Only I remove the line "sudo curl -O https://gist.github.com/ejdyksen/8302862/raw/patch-edid.rb" because the script wash empty. So I replace it with the script in the download file.

1 Reboot into Recovery Mode, by holding ⌘ + R when the computer is booting
2 Open the Terminal window by going to Utilities -> Terminal
3 Type csrutil disable; reboot and press Enter
4 Let the computer boot normally (not Recovery Mode)
5 I open the terminal and type this:

cd /System/Library/Displays/Contents/Resources/Overrides

(I place patch-edid.rb in the map Overrides)

sudo ruby patch-edid.rb

6 Don't stop here. It is important on re-enable the System Integrety Protection. Reboot into Recovery Mode, by holding ⌘ + R when the computer is booting
7 Open the Terminal window by going to Utilities -> Terminal
8 Type csrutil enable; reboot and press Enter
9 Let the computer boot normally. Done

@juanignaciosl

This comment has been minimized.

Copy link

juanignaciosl commented Jan 20, 2017

@MacMiniUser2017 thank you very much, you saved me!

@juanignaciosl

This comment has been minimized.

Copy link

juanignaciosl commented Jan 28, 2017

FYI I just upgraded to Beta 4 and the external display stopped working, only a blue screen was disabled. I'm not sure whether it's related with the override or it was caused by a wrong installation. I'll do a full wipe (in a few days) and try again.

@cumanzor

This comment has been minimized.

Copy link

cumanzor commented Mar 29, 2017

Confirming this works on 10.12.4. Just make sure you are using the correct paths (/System/Library/Displays/Contents/Resources/Overrides) and that csrutil is disabled (and then renable it back)

@niewb

This comment has been minimized.

Copy link

niewb commented May 3, 2017

@ejdyksen how do I undo the patch/revert to how I had things before?

@natefinch

This comment has been minimized.

Copy link

natefinch commented May 26, 2017

This fixed my problem (late 2016 Macbook Pro driving a Dell U3014 via Thunderbolt to HDMI). I expected my display to stop being listed as "NTSC" under the refresh rate, but it did not. I almost thought maybe it hadn't worked, except then I noticed the fonts looked a lot better, so I guess it's fine. Wanted to note that for anyone coming here.

@gevariya-ajit

This comment has been minimized.

Copy link

gevariya-ajit commented Jun 18, 2017

Is this new title showing anywhere? I am not getting affected with this changes for new display LG 24MP88HV-S.

Display with forced RGB mode (EDID override)

@faywong

This comment has been minimized.

Copy link

faywong commented Sep 6, 2017

It doesn't work on Sierra.

faywongdeMBP-2:~ faywong$ sudo ruby ./patch-edid.rb
Password:
./patch-edid.rb:1: unknown regexp option - b
@niewb

This comment has been minimized.

Copy link

niewb commented Sep 12, 2017

How do I undo the patch? I think it made things worse. @ejdyksen

@GonzaloGM

This comment has been minimized.

Copy link

GonzaloGM commented Jan 6, 2018

Late, but might help: to revert it, disconnect your external display, then delete the folder from the Overrides folder (you'll need to disable SIP) and reconnect the display (I restarted after deleting it but not sure it's necessary).

@bennburke

This comment has been minimized.

Copy link

bennburke commented Mar 31, 2018

Hello all, I'm running 10.13.2 on my mid 2011 MBA (13") and desperately trying to run a Fujitsu P24W-7 monitor.
I followed all the steps and all I get at the end of these steps is this:

patch-edid.rb:11:in <main>': undefined method []' for nil:NilClass (NoMethodError)

any ideas on what I could be doing wrong here?
many thanks!

@Bootquick

This comment has been minimized.

Copy link

Bootquick commented Apr 4, 2018

Hello all, Same problem as bennburke:
patch-edid.rb:11:in

': undefined method[]' for nil:NilClass (NoMethodError)
Any suggestion?
Many thanks for your support

@MrtnGrdnr

This comment has been minimized.

Copy link

MrtnGrdnr commented Apr 5, 2018

I have changed a lot of things & want to remove the patch, is there a command I can use to do this?
many thanks in advance

@kelvin22

This comment has been minimized.

Copy link

kelvin22 commented Apr 30, 2018

@MacMiniUser2017 instructions was previously working on Sierra, but after upgrading to High Sierra 10.13.4 it has reset back to original resolutions, and repeating the instructions doesn't work.

@cron13

This comment has been minimized.

Copy link

cron13 commented Jun 17, 2018

hi, it is possible to make script like this one, that enable 5.1 sound and 120hz/200hz mode on external tv that connected via hdmi?

@yarnball

This comment has been minimized.

Copy link

yarnball commented Oct 15, 2018

Hi, on Mojava (10.14) there is no /Overrides folder inside of Displays.

Is it possible to work on 10.14? Cheers

@mvtorres

This comment has been minimized.

Copy link

mvtorres commented Oct 27, 2018

Hi, on Mojava (10.14) there is no /Overrides folder inside of Displays.

Is it possible to work on 10.14? Cheers

Its now in /System/Library/Displays/Contents/Resources/Overrides/

@yverbytskyi

This comment has been minimized.

Copy link

yverbytskyi commented Dec 25, 2018

Made alive my HP LP2475w, connecting to MBP2018
For High Sierra path is just the same as for Mojave - /System/Library/Displays/Contents/Resources/Overrides/
So, what i've done:

  1. @maurei Even with sudo, any write operations will not be permitted. To fix this, reboot in recovery mode (cmd+r during reboot), under utils, open up the terminal. Do csrutil disable. Reboot, and run the script in the relocated folder.
  2. @antwake for those who have no output when running the script (like @oliviergilloire ) be sure that the file (patch-edid.rb) isn't empty.
    I had to download it manually and copy/paste it in /System/Library/Displays/Contents/Resources/Overrides
  3. sudo ruby patch-edid.rb
  4. Reconnect monitor vs reboot
  5. It really worked) Thanks all
@ionut-movila

This comment has been minimized.

Copy link

ionut-movila commented Jan 3, 2019

I can confirm this works really great.

Tested on a Hackintosh configuration with AMD RX-560 video card, running macOS 10.13.6 High Sierra.
My display is LG TV 4K 50UK6950.

After upgrading to 10.13.6 I was able to get 4k@60Hz and with this script also chroma 4:4:4 that is really great for text readability.

Chroma test here, last two lines: http://i.rtings.com/images/test-materials/2017/chroma-444.png

No need to look further for other solutions, like paid one SwitchResX that did NOT work for me.

To test refresh rate go here: https://www.testufo.com/framerates#count=3&background=stars&pps=3840

Even if the system report does not show 60Hz, using the link above I can confirm it does output 60Hz.

As for HDMI cable no need to use a special one, I think mine it's an old one with nothing special about HDMI 2.0 support.

But I was able to tell that 4k@60Hz with chroma 4:4:4 does work with this video card + TV display + cable because it did work first on Windows 10.

@haiqibian

This comment has been minimized.

Copy link

haiqibian commented Feb 28, 2019

I tried all the way above, but I only got the highest resolution 1920x1080. How to get higher resolution 2560x1440? I am using MacBook pro Mini Displayport to HDMI.

Thanks a lot

@polyh3dron

This comment has been minimized.

Copy link

polyh3dron commented May 11, 2019

On a 2017 MacBook Pro running Mojave I’m getting an “Operation not permitted” error when running this script even after disabling csrutil, and giving disk access to terminal. This also just worked for me on another identical model MacBook Pro. Any idea what I can do? On the machine it worked on, I didn’t even need to give terminal full disk access, so I’m wondering if some other tweak I did to my settings somewhere along the way was what allowed me to run the script properly.

@dzhioev

This comment has been minimized.

Copy link

dzhioev commented Sep 9, 2019

I can't beleive this worked! Thank you all so much!
My setup: MacBook Pro (Retina, 13-inch, Early 2015), Mac OS Mojave 10.14.6, Samsung C34J791 display.
I used updated instruction from this comment.

@favorov

This comment has been minimized.

Copy link

favorov commented Sep 14, 2019

The solution with csrutil disable/enable from the recovery system worked om mojave. Thank you. I left my WiFi switched on when running the system with disabled system integrity check and the network refused to be connected when I return the system to normal life. https://www.ikream.com/2019/09/how-to-fix-macos-mojave-wifi-problems-cannot-connect-to-wifi-33661 (solution3) helped. Now, I think that it is better first to prepare the override folder somewhere at ~ by running the topic-start ruby script (it does not require even sudo) and then to copy it to its /System/Library/Displays/Overrides location using the recovery terminal.

@ersiner

This comment has been minimized.

Copy link

ersiner commented Oct 9, 2019

The solution does not work for macOS Catalina because the system files now reside in read-only APFS volume. Any suggestions?

@anderskill

This comment has been minimized.

Copy link

anderskill commented Oct 10, 2019

The solution does not work for macOS Catalina because the system files now reside in read-only APFS volume. Any suggestions?

Also struggling with this. 'csrutil disable' does not make it possible to delete or change files within System anymore.
Anyone who's gotten this to work in macOS Catalina?

@anderskill

This comment has been minimized.

Copy link

anderskill commented Oct 10, 2019

https://wccftech.com/macos-catalina-runs-on-dedicated-read-only-system-volume/

Guessing this is the end.

If anyone finds a solution please let us know. This new update makes my external monitor useless for photo editing since it's in YPbPr instead of RGB.

@favorov

This comment has been minimized.

Copy link

favorov commented Oct 10, 2019

There is a clue at https://www.insanelymac.com/forum/topic/339035-pre-release-macos-catalina/?page=57
I did not try it myself yet.


On 9/7/2019 at 9:46 AM, SavageAUS said:
I just did a fresh install of Catalina DP? 19A546d but i cannot figure out how to add my custom resolution back in /System/Library/Displays/Contents/Resources/Overrides/ as macOS tells me it is a read only file system.

In Hackintool under Tools there is a button called "Disable Gatekeeper and mount the disk in read/write mode" which should allow you to write to this location.

In Hackintool under Tools there is a button called "Disable Gatekeeper and mount the disk in read/write mode" which should allow you to write to this location.

@23andreas

This comment has been minimized.

Copy link

23andreas commented Oct 16, 2019

@anderskill @ersiner To mount your volume in read/write mode use sudo mount -uw /

@anderskill

This comment has been minimized.

Copy link

anderskill commented Oct 16, 2019

@23andreas

And this makes it possible to still use this fix in Catalina?

@23andreas

This comment has been minimized.

Copy link

23andreas commented Oct 16, 2019

@anderskill I got this problem after updating to Catalina, and it fixed the problem for me. I followed this article using this script. Before moving the folder I ran sudo mount -uw /

@anderskill

This comment has been minimized.

Copy link

anderskill commented Oct 17, 2019

Yes I got it to work as well. I Mounted the -Data drive in Disk Utility and was then able to copy the DisplayVendor folder to the Overrides by using Terminal in Recovery Mode. Thanks for the help!

@skramstad

This comment has been minimized.

Copy link

skramstad commented Nov 1, 2019

I think I got it working but did a different approach.

I lost my override with the latest Catalina upgrade, and got that read-only system warning. But I found out I can edit the file SwitchResX creates in the /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-XXXX with SIP disabled.

DisplayVendorID-XXXX is your connected display manufacture.

I'll try to explain the steps as best as I can:

  1. Install SwitchResX
  2. Disable SIP and reboot
  3. Open SwitchResX and create a custom custom resolution, I dont think it matter what your settings are since we are gonna overwrite it with the edid override.
  4. Open your old edid override file / or a new one in a text editor/sublime and copy all the text
  5. Open folder /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-XXXX (replace XXX with your manufacture) and you will see SwitchResX created a new file named something like DisplayYearManufacture-2015-DisplayWeek...
  6. Open that file in sublime/text editor, and replace the content with your edid override from step 4.
  7. Save and type your password
  8. Reboot and see if your display changed its name
  9. Remember to enable SIP when done

Hope this helps! Cheers

@Akram-Hassan

This comment has been minimized.

Copy link

Akram-Hassan commented Nov 4, 2019

Worked on Catalina after mounting as explained by @23andreas . Thanks guys!

@jancantor

This comment has been minimized.

Copy link

jancantor commented Nov 15, 2019

I just got an old monitor from a friend, DELL U3014t. Like everyone else, I tried connecting it to my MacBook Pro (mid 2012, CatalinaOS) using a Displayport to miniDP but no luck. I get this message on my monitor screen:

There is no signal coming from your computer.
Press any key on the keyboard blah blah blah...

I tried the following instructions above using the edid patch from here. However, after running the patch, I get this message:

No display data found! Are any external displays connected?

I have yet to try @skramstad's instructions but having trouble following, specifically Step 5. I'm not sure where to get my VendorID.

@cappetta

This comment has been minimized.

Copy link

cappetta commented Nov 16, 2019

wondering how to completely reset your custom settings after attempting this script. seems I might have disabled my hdmi port - any suggestions?

@skramstad

This comment has been minimized.

Copy link

skramstad commented Nov 24, 2019

@jancantor I use SwitchResX to get the VendorID. I open the SwitchResX app, select the display in the left sidebar and from there you are able to identify the VendorID. You may also export the display information to a txt file in SwitchResX. I believe you get the VendorID from the folder name the script generated.

@cappetta I had some trouble with my Samsung c34j791 thunderbolt 3 display and forcing RGB mode. I cant get 100Hz and stuck on 60Hz. So only way to fix that 60Hz problem was to delete the custom settings file. macOS dont have a default file for this display, however I'm not able to get the script working... but on this display 100Hz is a must for me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.