shiecldk Posted June 3, 2013 Share Posted June 3, 2013 Thanks, Andy. I've applied your kext and made my Sony DRU-880S recognized as HL-DT-ST DVD-RW GH41N, which are used in Mac Pros. Could you tell me what's the benefit to make it recognized as SuperDrive? 1 Link to comment Share on other sites More sharing options...
Andy Vandijck Posted June 3, 2013 Author Share Posted June 3, 2013 Thanks, Andy. I've applied your kext and made my Sony DRU-880S recognized as HL-DT-ST DVD-RW GH41N, which are used in Mac Pros. Could you tell me what's the benefit to make it recognized as SuperDrive? That it's recognized as Apple drive. In Tiger times this was needed for burning, etc. There is some advantages now too. The drive seems to work a little better. 1 Link to comment Share on other sites More sharing options...
pico joe Posted June 15, 2013 Share Posted June 15, 2013 confirm .. com.AnV.Software.apple.decrypt .. work in Maverick 10.9 DP1 1 Link to comment Share on other sites More sharing options...
C.Frio Posted June 15, 2013 Share Posted June 15, 2013 hi.. sorry to the basic question.. should I only put the appledecrypt.kext on s/l/e or other procedures.. thank you.. c.frio Link to comment Share on other sites More sharing options...
Andy Vandijck Posted June 22, 2013 Author Share Posted June 22, 2013 Use DarwinDumper to dump your EDID. Open EDID.bin with a hex editor. Open EDID.txt to check your EDID. First of replace the serial number with this one in the EDID.bin (find and replace). 06 10 12 a0 00 00 00 00 1c 16 This will give you the Apple required serial number. Next replace the chroma info with this to get Apple style colors on your display. 6f b1 a7 55 4c 9e 25 0c 50 54 Last but not least you need to edit one of the descriptors with this one (probably not the first as this is most likely the detailed resolution, use one you don't need). 00 00 00 fc 00 69 4d 61 63 0a 20 20 20 20 20 20 20 20 This will give the iMac display data. Save up the binary and leave it open. Use edid-decode to check the modifications and look for the checksum. Correct the checksum and save it up again. Download iMac_Display_Override.zip below. Edit DisplayProductID-717 with a plist editor (plistedit pro for example). Replace IODisplayEDID Data field with the hex value of your new EDID.bin Open IORegistryExplorer. Look for AppleDisplay (under display0 part under your GFX card). Look up DisplayVendorID. Rename the folder DisplayVendorID-756e6b6e to DisplayVendorID-<your_vendor> Open the folder. Switch back to IORegistryExplorer. Look up DisplayProductID. Rename the file DisplayProductID-717 to DisplayProductID-<your_product> Install the folder in /System/Library/Displays/Overrides Reboot. If you did it right it will look like the picture below Enjoy... Screenshot is made under VMWare Workstation running Mavericks (I didn't have my Mac around right now). EDIT: DisplayOverride is not fully good, use the kext set available below (override download removed) 5 Link to comment Share on other sites More sharing options...
mR.GeeK Posted June 22, 2013 Share Posted June 22, 2013 I believe this is a cosmetic hack only.... right? If not, what are its benefits?? Link to comment Share on other sites More sharing options...
Andy Vandijck Posted June 22, 2013 Author Share Posted June 22, 2013 I believe this is a cosmetic hack only.... right? If not, what are its benefits?? The identification data is cosmeticThe chroma info improves the colors on the screen. Link to comment Share on other sites More sharing options...
MiniHack Posted June 22, 2013 Share Posted June 22, 2013 I did this hack just now (thanks Andy) and it did work. As an aside, I had hoped it might solve my issue of iTunes vid.s being greened out (I think it is some sort of DRM?) - wondered if this might convince my hack to play my (payed for) iTunes stuff. Unfortunately not though. Link to comment Share on other sites More sharing options...
Andy Vandijck Posted June 23, 2013 Author Share Posted June 23, 2013 I'm going to write an automatic tool to do the edid upgrade. I'm thinking of adding the following Apple display models: - MacBook Pro panel. - iMac panel. - Cinema HD display. So it will be easy to override it. Keep you posted 3 Link to comment Share on other sites More sharing options...
shiecldk Posted June 23, 2013 Share Posted June 23, 2013 Great! I made my cheap S22A350H recognized as an expansive Apple Thunderbolt Display. Thanks Andy. However, it's still using TN Panel.... Link to comment Share on other sites More sharing options...
Rampage Dev Posted June 23, 2013 Share Posted June 23, 2013 I'm going to write an automatic tool to do the edid upgrade. I'm thinking of adding the following Apple display models: - MacBook Pro panel. - iMac panel. - Cinema HD display. So it will be easy to override it. Keep you posted Cinema HD display is something I would be interested in. Link to comment Share on other sites More sharing options...
ctroncosor Posted June 23, 2013 Share Posted June 23, 2013 Well dear Rampage Cinema Display HD are in another level .. Link to comment Share on other sites More sharing options...
shiecldk Posted June 23, 2013 Share Posted June 23, 2013 Cinema HD display is something I would be interested in. You can try the Thunderbolt one if you like. serial: 06 10 27 92 39 08 23 16 23 16 chroma: 6F B1 A7 55 4C 9E 25 0C 50 54 descriptors: 00 00 00 FC 00 54 68 75 6E 64 65 72 62 6F 6C 74 0A 20 Link to comment Share on other sites More sharing options...
3.14r2 Posted June 23, 2013 Share Posted June 23, 2013 @shiecldk Apple Thunderbolt Display with CRT LOL!!! 2 Link to comment Share on other sites More sharing options...
shiecldk Posted June 23, 2013 Share Posted June 23, 2013 @shiecldk Apple Thunderbolt Display with CRT LOL!!! I did notice that..Don't know how come it recognized as CRT. XD Link to comment Share on other sites More sharing options...
Andy Vandijck Posted June 23, 2013 Author Share Posted June 23, 2013 Just a quick update. App partially written. It already fetches the display vendors and devices. You get the first found display first. You can change the monitor number and press a button to get the screen you want. It already makes a display override with the click of a button and modded edid binary. Manual entry of display vendor and product is also possible. Still todo: Make the descriptor patching code smart. Calculate the proper checksum. Add the data for Cinema HD and MacBook Pro panels (iMac is done) @shiecldk: could you please upload the full edid of that thunderbolt display? I'll add it too. Oh yeah. And then we also need the vendor and product id of that thunberbolt display from under ioregistry, AppleDisplay (in most cases under display0) I did notice that.. Don't know how come it recognized as CRT. XD Basic params controls the display type.Just experiment with it... 2 Link to comment Share on other sites More sharing options...
shiecldk Posted June 24, 2013 Share Posted June 24, 2013 @shiecldk: could you please upload the full edid of that thunderbolt display? I'll add it too. Oh yeah. And then we also need the vendor and product id of that thunberbolt display from under ioregistry, AppleDisplay (in most cases under display0) Basic params controls the display type. Just experiment with it... So I tried to change the whole Basic params with thunderbolt display's one, but it's still recognized as CRT... Here is the report from EDID Manager: I found Thunderbolt Display's EDID thought the internet: https://answers.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+question/220899 http://tdev.me/2010/12/apple-hardware-dumps/ (<--The MacMini6,2 one use Thunderbolt Display. See its I/O REGISTRY and SYSTEM PROFILER.) According to the MacMini6,2's ioreg from tdev.me: DisplayVendorID: 0x610 DisplayProductID: 0x9227 EDID: 00 ff ff ff ff ff ff 00 06 10 27 92 1f 00 23 16 23 16 01 04 b5 3c 22 78 22 6f b1 a7 55 4c 9e 25 0c 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 56 5e 00 a0 a0 a0 29 50 30 20 35 00 55 50 21 00 00 1a 1a 1d 00 80 51 d0 1c 20 40 80 35 00 55 50 21 00 00 1c 00 00 00 ff 00 43 30 32 4a 39 30 30 58 46 32 47 43 0a 00 00 00 fc 00 54 68 75 6e 64 65 72 62 6f 6c 74 0a 20 01 0f 02 03 0c c1 23 09 07 07 83 01 00 00 56 5e 00 a0 a0 a0 29 50 30 20 35 00 55 50 21 00 00 1a 1a 1d 00 80 51 d0 1c 20 40 80 35 00 55 50 21 00 00 1c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 13 And the file should be DisplayVendorID-610/DisplayProductID-9227: <dict> <key>DisplayProductID</key> <integer>37415</integer> <key>DisplayProductName</key> <string>Thunderbolt Display</string> </dict> Now, this is the result: <dict> <key>DisplayProductID</key> <integer>37415</integer> <key>DisplayVendorID</key> <integer>1552</integer> <key>DisplayProductName</key> <string>Thunderbolt Display</string> <key>IODisplayEDID</key> <data>AP///////wAGECeSOQgjFiMWAQO1PCJ4Im+xp1VMniUMUFS/74BxT4EAgUCBgJUAlQ+pQLMAAjqAGHE4LUBYLEUA3QwRAAAeAR0AclHQHiBuKFUA3QwRAAAeAAAA/QAySx9REQAKICAgICAgAAAA/ABUaHVuZGVyYm9sdAogAW0=</data> </dict> I got a different display image compare to #6: Still recongized as CRT.. In real MacMini6,2 show these: I don't have the property IODisplayCapabilityString in my ioreg, while the real MacMini6,2 do: Link to comment Share on other sites More sharing options...
Andy Vandijck Posted June 24, 2013 Author Share Posted June 24, 2013 @shiecldk: IODisplayCapabilityString? <"prot(monitor) type(LCD) model(Thunderbolt Display) cmds(01 02 03 E3 F3) VCP(02 05 10 52 62 66 8D 93 B6 C0 C8 C9 CA D6(01 02 03 04) DF E9 EB ED FD) mccs_ver(2.2)"> or? IODisplayTechnologyType? <00 ff 02 03> IODisplayFirmwareLevel? <ff ff 01 38> IODisplayMCCSVersion? <00 02 02 00> IODisplayControllerID? <00 00 00 ff> These are all absent in normal display. Also got a picture of the GUI of the new app. Take a peek... 1 Link to comment Share on other sites More sharing options...
Andy Vandijck Posted June 24, 2013 Author Share Posted June 24, 2013 I found a way to inject the other needed info. I made a driver. You still need to edit it with a plist editor. Replace under Monitor Apple ID Injection -DisplayProductID -DisplayVendorID with your display vendor and product id under AppleDisplay. Next, under IOProviderMergeProperties Replace IODisplayEDID with the EDID data you made. Last, look up the IODisplayPrefsKey in IORegistryExplorer and copy it. Paste it in and rename after */display0/AppleDisplay-***-*** to */display0/AppleDisplay-610-a012 Save and install the driver. Clean caches and reboot. If done right, you will have it exactly like on my screenshot I'll still make the app to edit the EDID but this driver should be used alongside @shiecldk: You need to edit every parameter to match your thunderbolt display in the Info.plist. After that it will work just fine. Monitor_Apple.kext.zip 3 Link to comment Share on other sites More sharing options...
shiecldk Posted June 24, 2013 Share Posted June 24, 2013 Also got a picture of the GUI of the new app. Take a peek... I look forward to it. @shiecldk: You need to edit every parameter to match your thunderbolt display in the Info.plist. After that it will work just fine. Awesome...Andy! Now it's recognized as LCD!! Btw, don't know why the value in IODisplayCapabilityString is showed as Hex. Link to comment Share on other sites More sharing options...
Andy Vandijck Posted June 24, 2013 Author Share Posted June 24, 2013 I just did some tests.The kext completely negates the need for a display override.Tested in ML and Mavericks without display override and with the kext.It works just fine.I wonder if I should add kext auto gen to the app... EDIT: Here is a picture under Mavericks. The kext should work for older versions of OS X too (probably even Tiger ) Look! No more ugly black display icon... Link to comment Share on other sites More sharing options...
artur_pt Posted June 24, 2013 Share Posted June 24, 2013 hello Andy i always use EDID to my graphics work.. with chameleon must inject the forced edid in the file under /system/library/displays/... now with clover don't need it grab my original edid and inject it only show my note display like a external monitor like the image u have i test one solution it work .. in core.. replacing values in files.. but if any update .. mess with this files .. must do it again i use several kext from u.. isight. ubsmouse , dvd drive and use yur voodoops2controller so i will wait for the final solution.. for this.. nice work regards Link to comment Share on other sites More sharing options...
Andy Vandijck Posted June 24, 2013 Author Share Posted June 24, 2013 I did the testings for monitor overrides. Pics below... Somebody with mobile should test the MacBook Pro solution (in my case it gave an iMac display because I have an iMac model, with a mobile model it probably gives the notebook...). The rest works right. 4 override kexts made (adapt them where needed). The */display0/AppleDisplay-*-* overrides (for IODisplayPrefsKey) iMac : */display0/AppleDisplay-610-a012 Cinema HD : */display0/AppleDisplay-610-9232 Thunderbolt : */display0/AppleDisplay-610-9227 MacBook Pro : */display0/AppleDisplay-610-a014 Adapt your own IODisplayPrefsKey to the correct vendor and device using above as value guide. Now the EDID fixes: iMac you know... (see first post). Thunderbolt: Serial number data 06 10 27 92 1f 00 23 16 23 16 Chroma info 6f b1 a7 55 4c 9e 25 0c 50 54 Descriptor for name 00 00 00 fc 00 54 68 75 6e 64 65 72 62 6f 6c 74 0a 20 Descriptor for serial number 00 00 00 ff 00 43 30 32 4a 39 30 30 58 46 32 47 43 0a Note that this needs 2 descriptor overrides. Cinema HD: Serial number 06 10 32 92 7c 9f 00 02 2a 10 Chroma info fe 87 a3 57 4a 9c 25 13 50 54 Descriptor for name 00 00 00 fc 00 43 69 6e 65 6d 61 20 48 44 0a 00 00 00 Descriptor for serial number 00 00 00 ff 00 43 59 36 34 32 30 5a 36 55 47 31 0a 00 Note again that we need to override 2 descriptors MacBook Pro: Serial number 06 10 14 a0 00 00 00 00 0a 16 Chroma info 6f b1 a7 55 4c 9e 25 0c 50 54 Descriptor for name 00 00 00 fc 00 43 6f 6c 6f 72 20 4c 43 44 0a 20 20 20 This only needs one descriptor override. Pictures below Monitor_Override_Kexts.zip 2 Link to comment Share on other sites More sharing options...
Popular Post Andy Vandijck Posted June 24, 2013 Author Popular Post Share Posted June 24, 2013 The app is finished.After running it automatically get the display data from the first display.If you want to make a patch for the second, change the number above on 2 instead of 1 and press the set display data button.If you have a second screen it will now get the required data.Use DarwinDumper (2.7.6 or better) to get your EDID.In DarwinDumper (2.9.1 or better) open EDID.bin, for older open the EDID.hex file with the open button.Select the Apple Display type to emulate.Press the Make button.Now on your desktop you will get the following new files:- A displayoverride for your display which is patched (probably don't want to use this).- A EDID binary which is patched (handy for 2nd check with edie-decode).- DisplayMergeNub.kext auto tailored for your config (probably want to install this).EDIT: New version V1.1- Modified driver creation to use the new DisplayMergeNub- Fixed a bug to get 2nd / 3rd / etc display with button (caused crash)- Added basic params override for display to be set as LCD- Fixed Info.plist creation codeEDIT: 1.1b- Fixed OSBundleLibraries in Info.plist generationEDIT: 1.2- Fixed driver file copy bug in case of spaces in path- Added Apple LED Cinema display data and option- Added option for only EDID injection (unpatched)EDIT: 1.3- Added support for the display classes AppleDisplay and AppleBacklightDisplay (for some notebooks)EDIT: 1.4- Added IODisplayPrefs check in DisplayMergeNub.kext- Added build target for DisplayMergeNub.kext- Added IODisplayPrefs key in FixEDID for matching on that key- Added optimization for multiple monitors (identical), now you can override each display, even on multiple GPU's individually- Fixed a mistake in just edid overrideEDIT: 1.5- Added override for IODisplayPrefs (check/don't check)- Added used display class for the selected monitor auto detection (AppleDisplay/AppleBacklightDisplay)- Updated DisplayMergeNub.kext for handling boolean for IODisplayPrefs use or notEDIT: 1.5b- Recompiled 32-bit kext binary for 10.5 and above- Recompiled 64-bit kext binary for 10.6 and above- Merged both binaries in one universal binary so the kext now works on 10.5 and betterEDIT: 1.6- Added hex2int conversion in ObjC manner (thanks toMarchrius for the hex2int routine)- Changed code to only parse vendor and device once and then convert to int and set the decimal value- So thanks to Marchrius setting the vendor and device values is a lot faster nowEDIT: 1.7- Added version override to EDID V1.4 (fixes some issues)- Added option for adding / fixing monitor ranges descriptor (missing in some EDID's but required by EDID V1.3 or V1.4)- Option for adding / fixing monitor ranges is by default enabled but can be disabled by unchecking the checkboxEDIT: 1.8- Disabled checkbox for monitor range patch by default (patch can be enabled by clicking on the checkbox)- Rewrote the routine for getting the IODisplayPrefs key and setting the vendor and device id in both decimal and hexadecimal (thanks to Marchrius for supplying the faster routine, I modified it slightly for multiple displays) it now gets the vendor and device id from the IODisplayPrefs key instead of running 2 tasks for getting them. It also is now NSTask and NSPipe based (thanks again to Marchrius). It really is about 4 times faster.- Made override for monitor ranges more generic, it should now work on any displayEDIT: 1.9- List with all the displays implemented from which you can choose (credits: Marchrius)- Reads only once the displays unless refresh is clicked (credits: Marchrius)- Faster setting of display data (credits: Marchrius)- New UI (credits: Marchrius)EDIT: 2.0- Added display class override to kext- Added display class override to app=> This means you can make an AppleBacklightDisplay from an AppleDisplay and vice versaEDIT: 2.1- Added signed kext- Added signed app (all now GateKeeper compliant)- Added scaled resolutions adding for HiDPI support- More bugfixesEDIT: 2.2- Added help function- Added remove button for resolutions- Added credits file- Added color profile only patch- Added adding / fixing monitor ranges on no patch and color profile only- Added quick buttons for displays (click menu of display models, type 1 to 7)- Added quick buttons for Display Class (click menu of class, type A or - Added quick buttons for Display Override Class (click menu, type C or D)* For using HiDPI resolutions, use RetinaDisplayMenu, attached below...EDIT: 2.2.1- Changed synthesized method to direct binding (enables building of 32+64 bit app and adds support for building for versions less than 10.7.X)- Rebuilt FixEDID with a 32+64 bit universal appEDIT: 2.3- Added iMac Retina panel (iMac14,2)- Added aspect ratio description after panel names (16:10 or 16:9)- Bugfix related to fixing monitor ranges on "Only Inject EDID Unpatched" and "Only Patch Color Profile"EDIT: 2.3.1- Added MacBook Air panel (MacBookAir5,1)- Added scaleable UI- Added fullscreen app supportEDIT: 2.3.2- Added aspect ratio detection based on first detailed descriptor of the EDID on open of the EDID binary (based on detailed resolution)EDIT: 2.3.2 (2nd build)- Fixed aspect ratio detection, there was a resolution issue and I reimplemented detection based on GCD value (greatest common divisor)NOTE: For 32 bit and 64 bit kext it will need to be rebuilt using an older version of Xcode... Xcode 5.X's clang compiler won't build 32 bit kextsIf you have Monitor_Apple.kext or DisplayMergeNub.kext installed and which to patch, remove the kext in /S/L/E and caches, reboot, run DarwinDumper and then run the app, otherwise the display values will be wrong...Enjoy and please give me feedback Source is included Github repo: https://github.com/andyvand/FixEDID Github development repo: https://github.com/andyvand/FixEDID_Devel RetinaDisplayMenu.zip FixEDID-2.3.2.zip 33 1 Link to comment Share on other sites More sharing options...
Andy Vandijck Posted June 24, 2013 Author Share Posted June 24, 2013 The application is made. It is available here: http://www.insanelymac.com/forum/topic/290130-fixedid-v10-application-to-generate-overrides-automatically-for-apple-displays/ Binary and source Link to comment Share on other sites More sharing options...
Recommended Posts