I described the method I used to edid the EDID on page 7 (Jun 25, 2014 9:02 PM).
Lazlo, you have a PB287 model 28a2. The override file should be at /System/Library/Displays/Overrides/DisplayVendorID-469/DisplayProductID-28a2
The contents of an override file for product 28a2 that uses 3840 x 2160 50 Hz CVT-RB for the preferred timing mode should look like this:
<?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">
<dict>
<key>DisplayProductID</key>
<integer>10402</integer>
<key>DisplayVendorID</key>
<integer>1129</integer>
<key>IODisplayEDID</key>
<data>AP///////wAEaaIoAAAAABAYAQSlPiJ4Ohy1o1dPoCcNUFSjCADRwIFAgYCVALMAgcABAQEBqKwAoPBwM4AwIDUAbVUhAAAaBHQAMPJwWoCwWIoAbVUhAAAaAAAA/QAeUBigPAQRAPD4OPA8AAAA/ABBU1VTIFBCMjg3CiAgATwCAydxTwECAxESEwQUBR+QDg8dHiMJFweDAQAAagMMABAAAHggAACMCtCKIOAtEBA+lgBtVSEAABgBHQByUdAeIG4oVQBtVSEAAB4BHQC8UtAeILgoVUBtVSEAAB6MCtCQIEAxIAxAVQBtVSEAABgAAAAAAAAAAAAAAAAAAAAA6w==</data>
</dict>
</plist>
For the PB287Q model 28a3, the override file should be at /System/Library/Displays/Overrides/DisplayVendorID-469/DisplayProductID-28a3
The contents of an override file for product 28a3 that uses 3840 x 2160 50 Hz CVT-RB for the preferred timing mode should look like this:
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>DisplayProductID</key>
<integer>10403</integer>
<key>DisplayVendorID</key>
<integer>1129</integer>
<key>IODisplayEDID</key>
<data>AP///////wAEaaMoAAAAABQYAQSlPiJ4Ohy1o1dPoCcNUFS/7wDRwIFAgYCVALMAcU+BwAEBqKwAoPBwM4AwIDUAbVUhAAAaBHQAMPJwWoCwWIoAbVUhAAAaAAAA/QAeUBigPAQRAPD4OPA8AAAA/ABBU1VTIFBCMjg3UQogAUUCAydxTwECAxESEwQUBR+QDg8dHiMJFweDAQAAagMMABAAAHggAACMCtCKIOAtEBA+lgBtVSEAABgBHQByUdAeIG4oVQBtVSEAAB4BHQC8UtAeILgoVUBtVSEAAB6MCtCQIEAxIAxAVQBtVSEAABgAAAAAAAAAAAAAAAAAAAAA6w==</data>
</dict>
</plist>
I removed the serial numbers from the EDIDs.
Make sure the spaces or tabs are normal and not non-breaking spaces. Use plutil to make sure the files are valid. Make sure the vendor and product ids match your display.
I made a shell script to output the text of an override file given the path of an already edited EDID binary file:
#!/bin/bash
#
# Output the text for an override file
# $1: name of EDID file (128 or 256 bytes)
vendorid=$((0x$(dd if="$1" bs=2 skip=4 count=1 2> /dev/null | xxd -p)))
productid=$((0x$(dd if="$1" bs=2 skip=5 count=1 conv=swab 2> /dev/null | xxd -p)))
echo "Path: /System/Library/Displays/Overrides/DisplayVendorID-$(printf '%x' $vendorid)/DisplayProductID-$(printf '%x' $productid)"
echo '<?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">
<dict>
<key>DisplayProductID</key>
<integer>'$productid'</integer>
<key>DisplayVendorID</key>
<integer>'$vendorid'</integer>
<key>IODisplayEDID</key>
<data>'$(base64 < "$1")'</data>
</dict>
</plist>'