lets try with an example (my display):
open Darwin Dumper, choose EDID from list and hit Run. its create 3 files in saving path: EDID.bin, EDID.hex, EDID.txt
my default EDID (EDID.txt) is:
Code:
header: 00 ff ff ff ff ff ff 00
serial number: 06 af ed 38 00 00 00 00 2b 18
version: 01 04
basic params: 95 22 13 78 02
chroma info: 51 25 93 58 57 8f 28 1f 50 54
established: 00 00 00
standard: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
descriptor 1: 78 37 80 b4 70 38 2e 40 6c 30 aa 00 58 c1 10 00 00 18
descriptor 2: 00 00 00 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 20
descriptor 3: 00 00 00 fe 00 41 55 4f 0a 20 20 20 20 20 20 20 20 20
descriptor 4: 00 00 00 fe 00 42 31 35 36 48 54 4e 30 33 2e 38 20 0a
extensions: 00
checksum: e9
according to above, Default EDID is:
Code:
00FFFFFF FFFFFF00 06AFED38 00000000 2B180104 95221378 02512593 58578F28 1F505400 00000101 01010101 01010101 01010101 01017837 80B47038 2E406C30 AA0058C1 10000018 0000000F 00000000 00000000 00000000 00200000 00FE0041 554F0A20 20202020 20202020 000000FE 00423135 3648544E 30332E38 200A00E9
so in default EDID Byte 20 (every two words are one Byte-count from zero-) and Check sum (last byte) are 95 and E9 respectively.
then open EDID.bin (created by Darwin dumper) using FixEDID app and choose Apple iMac Display (16:10)-you can test another option- and select make. it's create 3 files/folder on desktop. Open DisplayProductID-XXX inside DisplayVendorID-xxx Folder by plist editor. IODisplayEDID value is:
Code:
00FFFFFF FFFFFF00 061012A0 00000000 1C160104 B5301B78 226FB1A7 554C9E25 0C505400 00000101 01010101 01010101 01010101 01017837 80B47038 2E406C30 AA0058C1 10000018 000000FC 00694D61 630A2020 20202020 20200000 00FE0041 554F0A20 20202020 20202020 000000FE 00423135 3648544E 30332E38 200A00BC
now we know that byte 20 for Apple iMac Display (16:10) is
B5. delete IODisplayEDID value in DisplayProductID-xxx created by FixEDID and paste
default EDID value (Exept Byte 20 and check sum Byte). for calculate check sum you can use
this online tools. just copy all bytes (except the last one), in my case:
Code:
00FFFFFF FFFFFF00 06AFED38 00000000 2B180104 B5221378 02512593 58578F28 1F505400 00000101 01010101 01010101 01010101 01017837 80B47038 2E406C30 AA0058C1 10000018 0000000F 00000000 00000000 00000000 00200000 00FE0041 554F0A20 20202020 20202020 000000FE 00423135 3648544E 30332E38 200A00
and calculate check sum. for mine is "C9"
So new and final IODisplayEDID value for push in Overrides folder Is:
Code:
00FFFFFF FFFFFF00 06AFED38 00000000 2B180104 B5221378 02512593 58578F28 1F505400 00000101 01010101 01010101 01010101 01017837 80B47038 2E406C30 AA0058C1 10000018 0000000F 00000000 00000000 00000000 00200000 00FE0041 554F0A20 20202020 20202020 000000FE 00423135 3648544E 30332E38 200A00C9
after edit EDID its better to correct DisplayProductID and DisplayVendorID acording to EDID (Bytes 8,9,10,11). for my display Byte 8 and 9 :06AF (DisplayVendorID)
Byte 10 and 11: ED38(DisplayProductID)
after convert these Bytes from Hex to Dec:
DisplayVendorID=1711
DisplayProductID=14573 (for convert DisplayProductID Hex to Dec, first reverse it, then convert. for mine ED38>38ED>14573).
finally save DisplayVendorID-xxx folder containing DisplayProductID-xxx file to /System/Library/Displays/Contents/Resources/Overrides/
fix permissions and restart.
I hope that this example be useful.