├── DisplayMergeNub ├── Classes │ └── DisplayMergeNub.cpp ├── DisplayMergeNub-Info.plist ├── Headers │ ├── DisplayMergeNub.h │ └── KextVer.h └── Release 10.7 and + │ └── DisplayMergeNub.kext │ └── Contents │ ├── Info.plist │ ├── MacOS │ └── DisplayMergeNub │ └── _CodeSignature │ └── CodeResources ├── FixEDID.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcuserdata │ │ └── andyvand.xcuserdatad │ │ ├── UserInterfaceState.xcuserstate │ │ └── WorkspaceSettings.xcsettings └── xcuserdata │ └── andyvand.xcuserdatad │ ├── xcdebugger │ ├── Breakpoints.xcbkptlist │ └── Breakpoints_v2.xcbkptlist │ └── xcschemes │ ├── DisplayMergeNub.xcscheme │ ├── FixEDID.xcscheme │ └── xcschememanagement.plist ├── FixEDID ├── AppDelegate.h ├── AppDelegate.m ├── Credits.rtf ├── DisplayMergeNub ├── FixEDID-Info.plist ├── FixEDID-Prefix.pch ├── FixEDID.help │ ├── .DS_Store │ └── index.html ├── FixEDID.icns ├── Vers.h ├── _CodeSignature │ └── CodeResources ├── en.lproj │ ├── InfoPlist.strings │ └── MainMenu.xib └── main.m ├── Release_10.7 and + └── FixEDID.app │ └── Contents │ ├── Info.plist │ ├── MacOS │ └── FixEDID │ ├── PkgInfo │ ├── Resources │ ├── Credits.rtf │ ├── DisplayMergeNub │ ├── FixEDID.help │ │ └── index.html │ ├── FixEDID.icns │ ├── _CodeSignature │ │ └── CodeResources │ └── en.lproj │ │ ├── InfoPlist.strings │ │ └── MainMenu.nib │ ├── _CodeSignature │ └── CodeResources │ └── embedded.provisionprofile └── readme.md /DisplayMergeNub/Classes/DisplayMergeNub.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright � 1998-2012 Apple Inc. All rights reserved. 3 | * 4 | * @APPLE_LICENSE_HEADER_START@ 5 | * 6 | * This file contains Original Code and/or Modifications of Original Code 7 | * as defined in and that are subject to the Apple Public Source License 8 | * Version 2.0 (the 'License'). You may not use this file except in 9 | * compliance with the License. Please obtain a copy of the License at 10 | * http://www.opensource.apple.com/apsl/ and read it before using this 11 | * file. 12 | * 13 | * The Original Code and all software distributed under the License are 14 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 15 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 16 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 17 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 18 | * Please see the License for the specific language governing rights and 19 | * limitations under the License. 20 | * 21 | * @APPLE_LICENSE_HEADER_END@ 22 | */ 23 | 24 | 25 | #include 26 | #include 27 | 28 | #include "DisplayMergeNub.h" 29 | #include "KextVer.h" 30 | OSDefineMetaClassAndStructors(DisplayMergeNub, IOService) 31 | 32 | static bool haveCreatedRef = false; 33 | 34 | bool 35 | DisplayMergeNub::start(IOService *provider) 36 | { 37 | IOLog("%s\n", (const char *)DisplayMergeNubVersionString); 38 | IOLog("Version %f\n", DisplayMergeNubVersionNumber); 39 | IOLog("Copyright © 2013-2014 AnV Software\n"); 40 | 41 | return (true); 42 | } 43 | 44 | //================================================================================================ 45 | // 46 | // probe() 47 | // 48 | // This is a special Display driver which will always fail to probe. However, the probe 49 | // will have a side effect, which is that it merge a property dictionary into his provider's 50 | // parent NUB in the IOService if the device and vendor match 51 | // 52 | //================================================================================================ 53 | // 54 | IOService * 55 | DisplayMergeNub::probe(IOService *provider, SInt32 *score) 56 | { 57 | #pragma unused (score) 58 | OSDictionary *providerDict = (OSDictionary*)getProperty("IOProviderMergeProperties"); 59 | OSNumber *providerVendor = (OSNumber*)provider->getProperty("DisplayVendorID"); 60 | OSNumber *providerDevice = (OSNumber*)provider->getProperty("DisplayProductID"); 61 | OSString *providerDisplayPrefs = (OSString*)provider->getProperty("IODisplayPrefsKey"); 62 | OSNumber *vendorValue = (OSNumber*)getProperty("DisplayVendorID"); 63 | OSNumber *deviceValue = (OSNumber*)getProperty("DisplayProductID"); 64 | OSString *displayPrefs = (OSString*)getProperty("IODisplayPrefsKey"); 65 | OSBoolean *ignoreDisplayPrefs = (OSBoolean*)getProperty("IgnoreDisplayPrefs"); 66 | OSString *displayOverrideClass = (OSString*)providerDict->getObject("IOClass"); 67 | 68 | if ((providerDict) && (providerVendor->unsigned64BitValue() == vendorValue->unsigned64BitValue()) && (providerDevice->unsigned64BitValue() == deviceValue->unsigned64BitValue())) 69 | { 70 | // provider->getPropertyTable()->merge(providerDict); // merge will verify that this really is a dictionary 71 | if ((!strncmp(providerDisplayPrefs->getCStringNoCopy(), displayPrefs->getCStringNoCopy(), providerDisplayPrefs->getLength())) || (ignoreDisplayPrefs->isTrue())) 72 | { 73 | if (displayOverrideClass) 74 | { 75 | provider->setName(displayOverrideClass->getCStringNoCopy()); 76 | } 77 | 78 | MergeDictionaryIntoProvider( provider, providerDict); 79 | } 80 | } 81 | 82 | return (NULL); // always fail the probe! 83 | } 84 | 85 | //================================================================================================ 86 | // 87 | // MergeDictionaryIntoProvider 88 | // 89 | // We will iterate through the dictionary that we want to merge into our provider. If 90 | // the dictionary entry is not an OSDictionary, we will set that property into our provider. If it is a 91 | // OSDictionary, we will get our provider's entry and merge our entry into it, recursively. 92 | // 93 | //================================================================================================ 94 | // 95 | bool 96 | DisplayMergeNub::MergeDictionaryIntoProvider(IOService * provider, OSDictionary * dictionaryToMerge) 97 | { 98 | const OSSymbol * dictionaryEntry = NULL; 99 | OSCollectionIterator * iter = NULL; 100 | bool result = false; 101 | 102 | if (!provider || !dictionaryToMerge) 103 | return (false); 104 | 105 | // 106 | // rdar://4041566 -- Trick the C++ run-time into keeping us loaded. 107 | // 108 | if (haveCreatedRef == false) 109 | { 110 | haveCreatedRef = true; 111 | getMetaClass()->instanceConstructed(); 112 | } 113 | 114 | // Get the dictionary whose entries we need to merge into our provider and get 115 | // an iterator to it. 116 | // 117 | iter = OSCollectionIterator::withCollection((OSDictionary *)dictionaryToMerge); 118 | if ( iter != NULL ) 119 | { 120 | // Iterate through the dictionary until we run out of entries 121 | // 122 | while ( NULL != (dictionaryEntry = (const OSSymbol *)iter->getNextObject()) ) 123 | { 124 | const char * str = NULL; 125 | OSDictionary * sourceDictionary = NULL; 126 | OSDictionary * providerDictionary = NULL; 127 | OSObject * providerProperty = NULL; 128 | 129 | // Get the symbol name for debugging 130 | // 131 | str = dictionaryEntry->getCStringNoCopy(); 132 | 133 | // Check to see if our destination already has the same entry. If it does 134 | // we assume that it is a dictionary. Perhaps we should check that 135 | // 136 | providerProperty = provider->getProperty(dictionaryEntry); 137 | if ( providerProperty ) 138 | { 139 | providerDictionary = OSDynamicCast(OSDictionary, providerProperty); 140 | } 141 | 142 | // See if our source entry is also a dictionary 143 | // 144 | sourceDictionary = OSDynamicCast(OSDictionary, dictionaryToMerge->getObject(dictionaryEntry)); 145 | 146 | if ( providerDictionary && sourceDictionary ) 147 | { 148 | // Need to merge our entry into the provider's dictionary. However, we don't have a copy of our dictionary, just 149 | // a reference to it. So, we need to make a copy of our provider's dictionary 150 | // 151 | OSDictionary * localCopyOfProvidersDictionary; 152 | UInt32 providerSize; 153 | UInt32 providerSizeAfterMerge; 154 | 155 | localCopyOfProvidersDictionary = OSDictionary::withDictionary( providerDictionary, 0); 156 | if ( localCopyOfProvidersDictionary == NULL ) 157 | { 158 | break; 159 | } 160 | 161 | // Get the size of our provider's dictionary so that we can check later whether it changed 162 | // 163 | providerSize = providerDictionary->getCapacity(); 164 | 165 | // Note that our providerDictionary *might* change 166 | // between the time we copied it and when we write it out again. If so, we will obviously overwrite anychanges 167 | // 168 | result = MergeDictionaryIntoDictionary( sourceDictionary, localCopyOfProvidersDictionary); 169 | 170 | if ( result ) 171 | { 172 | // Get the size of our provider's dictionary so to see if it's changed (Yes, the size could remain the same but the contents 173 | // could have changed, but this gives us a first approximation. We're not doing anything with this result, although we could 174 | // remerge 175 | // 176 | providerSizeAfterMerge = providerDictionary->getCapacity(); 177 | 178 | result = provider->setProperty( dictionaryEntry, localCopyOfProvidersDictionary ); 179 | if ( !result ) 180 | { 181 | break; 182 | } 183 | } 184 | else 185 | { 186 | // If we got an error merging dictionaries, then just bail out without doing anything 187 | // 188 | break; 189 | } 190 | } 191 | else 192 | { 193 | result = provider->setProperty(dictionaryEntry, dictionaryToMerge->getObject(dictionaryEntry)); 194 | if ( !result ) 195 | { 196 | break; 197 | } 198 | } 199 | } 200 | iter->release(); 201 | } 202 | return (result); 203 | } 204 | 205 | 206 | //================================================================================================ 207 | // 208 | // MergeDictionaryIntoDictionary( parentSourceDictionary, parentTargetDictionary) 209 | // 210 | // This routine will merge the contents of parentSourceDictionary into the targetDictionary, recursively. 211 | // Note that we are only modifying copies of the parentTargetDictionary, so we don't expect anybody 212 | // else to be accessing them at the same time. 213 | // 214 | //================================================================================================ 215 | // 216 | bool 217 | DisplayMergeNub::MergeDictionaryIntoDictionary(OSDictionary * parentSourceDictionary, OSDictionary * parentTargetDictionary) 218 | { 219 | OSCollectionIterator* srcIterator = NULL; 220 | OSSymbol* keyObject = NULL ; 221 | bool result = false; 222 | 223 | if (!parentSourceDictionary || !parentTargetDictionary) 224 | return (false); 225 | 226 | // Get our source dictionary 227 | // 228 | srcIterator = OSCollectionIterator::withCollection(parentSourceDictionary) ; 229 | 230 | while (NULL != (keyObject = OSDynamicCast(OSSymbol, srcIterator->getNextObject()))) 231 | { 232 | const char * str; 233 | OSDictionary * childSourceDictionary = NULL; 234 | OSDictionary * childTargetDictionary = NULL; 235 | OSObject * childTargetObject = NULL; 236 | 237 | // Get the symbol name for debugging 238 | // 239 | str = keyObject->getCStringNoCopy(); 240 | 241 | // Check to see if our destination already has the same entry. 242 | // 243 | childTargetObject = parentTargetDictionary->getObject(keyObject); 244 | if ( childTargetObject ) 245 | { 246 | childTargetDictionary = OSDynamicCast(OSDictionary, childTargetObject); 247 | } 248 | 249 | // See if our source entry is also a dictionary 250 | // 251 | childSourceDictionary = OSDynamicCast(OSDictionary, parentSourceDictionary->getObject(keyObject)); 252 | 253 | if ( childTargetDictionary && childSourceDictionary) 254 | { 255 | // Our target dictionary already has the entry for this same object AND our 256 | // source is also a dictionary, so we need to recursively add it. 257 | // 258 | // Need to merge our entry into the provider's dictionary. However, we don't have a copy of our dictionary, just 259 | // a reference to it. So, we need to make a copy of our target's dictionary 260 | // 261 | OSDictionary * localCopyOfTargetDictionary; 262 | UInt32 targetSize; 263 | UInt32 targetSizeAfterMerge; 264 | 265 | localCopyOfTargetDictionary = OSDictionary::withDictionary( childTargetDictionary, 0); 266 | if ( localCopyOfTargetDictionary == NULL ) 267 | { 268 | break; 269 | } 270 | 271 | // Get the size of our provider's dictionary so that we can check later whether it changed 272 | // 273 | targetSize = childTargetDictionary->getCapacity(); 274 | 275 | // Note that our targetDictionary *might* change 276 | // between the time we copied it and when we write it out again. If so, we will obviously overwrite anychanges 277 | // 278 | result = MergeDictionaryIntoDictionary(childSourceDictionary, localCopyOfTargetDictionary) ; 279 | if ( result ) 280 | { 281 | // Get the size of our provider's dictionary so to see if it's changed (Yes, the size could remain the same but the contents 282 | // could have changed, but this gives us a first approximation. We're not doing anything with this result, although we could 283 | // remerge 284 | // 285 | targetSizeAfterMerge = childTargetDictionary->getCapacity(); 286 | 287 | result = parentTargetDictionary->setObject(keyObject, localCopyOfTargetDictionary); 288 | if ( !result ) 289 | { 290 | break; 291 | } 292 | } 293 | else 294 | { 295 | // If we got an error merging dictionaries, then just bail out without doing anything 296 | // 297 | break; 298 | } 299 | } 300 | else 301 | { 302 | // We have a property that we need to merge into our parent dictionary. 303 | // 304 | result = parentTargetDictionary->setObject(keyObject, parentSourceDictionary->getObject(keyObject)) ; 305 | if ( !result ) 306 | { 307 | break; 308 | } 309 | } 310 | 311 | } 312 | 313 | srcIterator->release(); 314 | 315 | return (result); 316 | } 317 | -------------------------------------------------------------------------------- /DisplayMergeNub/DisplayMergeNub-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | DisplayMergeNub 9 | CFBundleGetInfoString 10 | Copright (C) 2013-2014 AnV Software 11 | CFBundleIdentifier 12 | com.AnV.Software.driver.AppleMonitor 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | Display Injector 17 | CFBundlePackageType 18 | KEXT 19 | CFBundleShortVersionString 20 | 9.9.9 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 9.9.9 25 | NSHumanReadableCopyright 26 | Copright (C) 2013-2014 AnV Software 27 | IOKitPersonalities 28 | 29 | Display Apple ID Injection 30 | 31 | CFBundleIdentifier 32 | com.AnV.Software.driver.AppleMonitor 33 | IOClass 34 | DisplayMergeNub 35 | IOProviderClass 36 | AppleDisplay 37 | IOProviderMergeProperties 38 | 39 | IOClass 40 | AppleBacklightDisplay 41 | AppleDisplayType 42 | 2 43 | AppleSense 44 | 1854 45 | DisplayProductID 46 | 40978 47 | DisplayVendorID 48 | 1552 49 | IODisplayCapabilityString 50 | bW9kZWwoaU1hYyBDZWxsbykgdmNwKDEwIDhEIEI2IEM4IEM5IERGKSB2ZXIoMi4yKQ== 51 | IODisplayConnectFlags 52 | hEkAAA== 53 | IODisplayControllerID 54 | AQAAAA== 55 | IODisplayEDID 56 | AP///////wAGEBKgAAAAABwWAQS1MBt4Im+xp1VMniUMUFQAAAABAQEBAQEBAQEBAQEBAQEBMCoACFLAKDBgcBMA4OYQAAAZZBkAQEEAJjAYiDYA4OYQAAAZAAAA/QAWUA5bEAAKICAgICAgAAAA/ABpTWFjCiAgICAgICAgAKU= 57 | IODisplayFirmwareLevel 58 | AQAAAA== 59 | IODisplayMCCSVersion 60 | AAICAA== 61 | IODisplayPrefsKey 62 | IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEGP@1/IOPCI2PCIBridge/GFX0@0/ATY,AMD,RadeonFramebuffer@1/ATIFramebufferNI/display0/AppleDisplay-610-a012 63 | IODisplayTechnologyType 64 | //8CAw== 65 | 66 | DisplayProductID 67 | 1815 68 | DisplayVendorID 69 | 1970170734 70 | IODisplayPrefsKey 71 | IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEGP@1/IOPCI2PCIBridge/GFX0@0/ATY,AMD,RadeonFramebuffer@1/ATIFramebufferNI/display0/AppleDisplay-756E6B6E-717 72 | IgnoreDisplayPrefs 73 | 74 | 75 | 76 | OSBundleCompatibleVersion 77 | 8.8.8 78 | OSBundleLibraries 79 | 80 | com.apple.kpi.libkern 81 | 8.0.0b1 82 | com.apple.kpi.iokit 83 | 8.0.0b1 84 | com.apple.kpi.bsd 85 | 8.0.0b1 86 | 87 | OSBundleRequired 88 | Root 89 | 90 | 91 | -------------------------------------------------------------------------------- /DisplayMergeNub/Headers/DisplayMergeNub.h: -------------------------------------------------------------------------------- 1 | #ifndef _IOKIT_DisplayMergeNub_H 2 | #define _IOKIT_DisplayMergeNub_H 3 | 4 | #include 5 | 6 | class DisplayMergeNub : public IOService 7 | { 8 | OSDeclareDefaultStructors(DisplayMergeNub) 9 | 10 | public: 11 | IOService * probe(IOService *provider, SInt32 *score); 12 | bool start(IOService *provider); 13 | virtual bool MergeDictionaryIntoProvider(IOService * provider, OSDictionary * mergeDict); 14 | virtual bool MergeDictionaryIntoDictionary(OSDictionary * sourceDictionary, OSDictionary * targetDictionary); 15 | 16 | }; 17 | 18 | #endif 19 | -------------------------------------------------------------------------------- /DisplayMergeNub/Headers/KextVer.h: -------------------------------------------------------------------------------- 1 | extern const unsigned char *DisplayMergeNubVersionString; 2 | extern const double DisplayMergeNubVersionNumber; 3 | -------------------------------------------------------------------------------- /DisplayMergeNub/Release 10.7 and +/DisplayMergeNub.kext/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | BuildMachineOSBuild 6 | 13C64 7 | CFBundleDevelopmentRegion 8 | English 9 | CFBundleExecutable 10 | DisplayMergeNub 11 | CFBundleGetInfoString 12 | Copright (C) 2013-2014 AnV Software 13 | CFBundleIdentifier 14 | com.AnV.Software.driver.AppleMonitor 15 | CFBundleInfoDictionaryVersion 16 | 6.0 17 | CFBundleName 18 | Display Injector 19 | CFBundlePackageType 20 | KEXT 21 | CFBundleShortVersionString 22 | 9.9.9 23 | CFBundleSignature 24 | ???? 25 | CFBundleVersion 26 | 9.9.9 27 | DTCompiler 28 | com.apple.compilers.llvm.clang.1_0 29 | DTPlatformBuild 30 | 5A2053 31 | DTPlatformVersion 32 | GM 33 | DTSDKBuild 34 | 11E52 35 | DTSDKName 36 | macosx10.7 37 | DTXcode 38 | 0501 39 | DTXcodeBuild 40 | 5A2053 41 | IOKitPersonalities 42 | 43 | Display Apple ID Injection 44 | 45 | CFBundleIdentifier 46 | com.AnV.Software.driver.AppleMonitor 47 | DisplayProductID 48 | 1815 49 | DisplayVendorID 50 | 1970170734 51 | IOClass 52 | DisplayMergeNub 53 | IODisplayPrefsKey 54 | IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEGP@1/IOPCI2PCIBridge/GFX0@0/ATY,AMD,RadeonFramebuffer@1/ATIFramebufferNI/display0/AppleDisplay-756E6B6E-717 55 | IOProviderClass 56 | AppleDisplay 57 | IOProviderMergeProperties 58 | 59 | AppleDisplayType 60 | 2 61 | AppleSense 62 | 1854 63 | DisplayProductID 64 | 40978 65 | DisplayVendorID 66 | 1552 67 | IOClass 68 | AppleBacklightDisplay 69 | IODisplayCapabilityString 70 | 71 | bW9kZWwoaU1hYyBDZWxsbykgdmNwKDEwIDhEIEI2IEM4 72 | IEM5IERGKSB2ZXIoMi4yKQ== 73 | 74 | IODisplayConnectFlags 75 | 76 | hEkAAA== 77 | 78 | IODisplayControllerID 79 | 80 | AQAAAA== 81 | 82 | IODisplayEDID 83 | 84 | AP///////wAGEBKgAAAAABwWAQS1MBt4Im+xp1VMniUM 85 | UFQAAAABAQEBAQEBAQEBAQEBAQEBMCoACFLAKDBgcBMA 86 | 4OYQAAAZZBkAQEEAJjAYiDYA4OYQAAAZAAAA/QAWUA5b 87 | EAAKICAgICAgAAAA/ABpTWFjCiAgICAgICAgAKU= 88 | 89 | IODisplayFirmwareLevel 90 | 91 | AQAAAA== 92 | 93 | IODisplayMCCSVersion 94 | 95 | AAICAA== 96 | 97 | IODisplayPrefsKey 98 | IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEGP@1/IOPCI2PCIBridge/GFX0@0/ATY,AMD,RadeonFramebuffer@1/ATIFramebufferNI/display0/AppleDisplay-610-a012 99 | IODisplayTechnologyType 100 | 101 | //8CAw== 102 | 103 | 104 | IgnoreDisplayPrefs 105 | 106 | 107 | 108 | NSHumanReadableCopyright 109 | Copright (C) 2013-2014 AnV Software 110 | OSBundleCompatibleVersion 111 | 8.8.8 112 | OSBundleLibraries 113 | 114 | com.apple.kpi.bsd 115 | 8.0.0b1 116 | com.apple.kpi.iokit 117 | 8.0.0b1 118 | com.apple.kpi.libkern 119 | 8.0.0b1 120 | 121 | OSBundleRequired 122 | Root 123 | 124 | 125 | -------------------------------------------------------------------------------- /DisplayMergeNub/Release 10.7 and +/DisplayMergeNub.kext/Contents/MacOS/DisplayMergeNub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andyvand/FixEDID/1019302f4ac8303bb627a81db8793b15e43d3727/DisplayMergeNub/Release 10.7 and +/DisplayMergeNub.kext/Contents/MacOS/DisplayMergeNub -------------------------------------------------------------------------------- /DisplayMergeNub/Release 10.7 and +/DisplayMergeNub.kext/Contents/_CodeSignature/CodeResources: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | files 6 | 7 | files2 8 | 9 | rules 10 | 11 | ^Resources/ 12 | 13 | ^Resources/.*\.lproj/ 14 | 15 | optional 16 | 17 | weight 18 | 1000 19 | 20 | ^Resources/.*\.lproj/locversion.plist$ 21 | 22 | omit 23 | 24 | weight 25 | 1100 26 | 27 | ^version.plist$ 28 | 29 | 30 | rules2 31 | 32 | .*\.dSYM($|/) 33 | 34 | weight 35 | 11 36 | 37 | ^(.*/)?\.DS_Store$ 38 | 39 | omit 40 | 41 | weight 42 | 2000 43 | 44 | ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ 45 | 46 | nested 47 | 48 | weight 49 | 10 50 | 51 | ^.* 52 | 53 | ^Info\.plist$ 54 | 55 | omit 56 | 57 | weight 58 | 20 59 | 60 | ^PkgInfo$ 61 | 62 | omit 63 | 64 | weight 65 | 20 66 | 67 | ^Resources/ 68 | 69 | weight 70 | 20 71 | 72 | ^Resources/.*\.lproj/ 73 | 74 | optional 75 | 76 | weight 77 | 1000 78 | 79 | ^Resources/.*\.lproj/locversion.plist$ 80 | 81 | omit 82 | 83 | weight 84 | 1100 85 | 86 | ^[^/]+$ 87 | 88 | nested 89 | 90 | weight 91 | 10 92 | 93 | ^embedded\.provisionprofile$ 94 | 95 | weight 96 | 20 97 | 98 | ^version\.plist$ 99 | 100 | weight 101 | 20 102 | 103 | 104 | 105 | 106 | -------------------------------------------------------------------------------- /FixEDID.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | AB0C36C518FC615200AC3C69 /* CodeResources in Copy Kext Signature */ = {isa = PBXBuildFile; fileRef = AB0C36C218FC610200AC3C69 /* CodeResources */; }; 11 | AB0E16D618FD4513006742D5 /* index.html in Copy Help Bundle */ = {isa = PBXBuildFile; fileRef = AB0E16D318FD446E006742D5 /* index.html */; }; 12 | AB19464D18BAA7B1009FE386 /* Vers.h in Headers */ = {isa = PBXBuildFile; fileRef = AB19464C18BAA7B1009FE386 /* Vers.h */; }; 13 | AB19464F18BAA9E7009FE386 /* KextVer.h in Headers */ = {isa = PBXBuildFile; fileRef = AB19464E18BAA9E7009FE386 /* KextVer.h */; }; 14 | AB2A7E2618FD4BEF0022A2FD /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = AB2A7E2518FD4BEF0022A2FD /* Credits.rtf */; }; 15 | AB5A20FE1777778900EEE2BB /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB5A20FD1777778900EEE2BB /* Cocoa.framework */; }; 16 | AB5A21081777778900EEE2BB /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = AB5A21061777778900EEE2BB /* InfoPlist.strings */; }; 17 | AB5A210A1777778900EEE2BB /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = AB5A21091777778900EEE2BB /* main.m */; }; 18 | AB5A21111777778900EEE2BB /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = AB5A21101777778900EEE2BB /* AppDelegate.m */; }; 19 | AB5A21141777778900EEE2BB /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = AB5A21121777778900EEE2BB /* MainMenu.xib */; }; 20 | AB9715D3177A184600C08469 /* DisplayMergeNub in Resources */ = {isa = PBXBuildFile; fileRef = AB9715D2177A184600C08469 /* DisplayMergeNub */; }; 21 | ABA0F448177D9D6600116CFE /* DisplayMergeNub.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABA0F42B177D9C9700116CFE /* DisplayMergeNub.cpp */; }; 22 | ABA0F449177D9D8500116CFE /* DisplayMergeNub.h in Headers */ = {isa = PBXBuildFile; fileRef = ABA0F42E177D9C9700116CFE /* DisplayMergeNub.h */; }; 23 | ABC3F51A177779520030D260 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABC3F519177779520030D260 /* Foundation.framework */; }; 24 | ABC3F51D177779570030D260 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABC3F51C177779570030D260 /* AppKit.framework */; }; 25 | ABF4E5FE177796D80082C3E4 /* FixEDID.icns in Resources */ = {isa = PBXBuildFile; fileRef = ABF4E5FD177796D80082C3E4 /* FixEDID.icns */; }; 26 | /* End PBXBuildFile section */ 27 | 28 | /* Begin PBXBuildRule section */ 29 | AB3A887F18BAA469002BC610 /* PBXBuildRule */ = { 30 | isa = PBXBuildRule; 31 | compilerSpec = com.apple.compilers.proxy.script; 32 | filePatterns = Vers.h; 33 | fileType = pattern.proxy; 34 | isEditable = 1; 35 | outputFiles = ( 36 | ); 37 | script = "#!/bin/sh\ncat $@\n"; 38 | }; 39 | /* End PBXBuildRule section */ 40 | 41 | /* Begin PBXCopyFilesBuildPhase section */ 42 | AB0C36C418FC614000AC3C69 /* Copy Kext Signature */ = { 43 | isa = PBXCopyFilesBuildPhase; 44 | buildActionMask = 2147483647; 45 | dstPath = _CodeSignature; 46 | dstSubfolderSpec = 7; 47 | files = ( 48 | AB0C36C518FC615200AC3C69 /* CodeResources in Copy Kext Signature */, 49 | ); 50 | name = "Copy Kext Signature"; 51 | runOnlyForDeploymentPostprocessing = 0; 52 | }; 53 | AB0E16D518FD4508006742D5 /* Copy Help Bundle */ = { 54 | isa = PBXCopyFilesBuildPhase; 55 | buildActionMask = 2147483647; 56 | dstPath = FixEDID.help; 57 | dstSubfolderSpec = 7; 58 | files = ( 59 | AB0E16D618FD4513006742D5 /* index.html in Copy Help Bundle */, 60 | ); 61 | name = "Copy Help Bundle"; 62 | runOnlyForDeploymentPostprocessing = 0; 63 | }; 64 | /* End PBXCopyFilesBuildPhase section */ 65 | 66 | /* Begin PBXFileReference section */ 67 | AB0C36C218FC610200AC3C69 /* CodeResources */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = CodeResources; sourceTree = ""; }; 68 | AB0E16D318FD446E006742D5 /* index.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = index.html; sourceTree = ""; }; 69 | AB19464C18BAA7B1009FE386 /* Vers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Vers.h; sourceTree = ""; }; 70 | AB19464E18BAA9E7009FE386 /* KextVer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = KextVer.h; path = Headers/KextVer.h; sourceTree = ""; }; 71 | AB2A7E2518FD4BEF0022A2FD /* Credits.rtf */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.rtf; path = Credits.rtf; sourceTree = ""; }; 72 | AB3A888218BAA65D002BC610 /* Vers.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Vers.c; path = ../../Intermediates/FixEDID.build/Release/FixEDID.build/DerivedSources/Vers.c; sourceTree = BUILT_PRODUCTS_DIR; }; 73 | AB5A20F91777778900EEE2BB /* FixEDID.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = FixEDID.app; sourceTree = BUILT_PRODUCTS_DIR; }; 74 | AB5A20FD1777778900EEE2BB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; 75 | AB5A21001777778900EEE2BB /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; }; 76 | AB5A21011777778900EEE2BB /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; }; 77 | AB5A21021777778900EEE2BB /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 78 | AB5A21051777778900EEE2BB /* FixEDID-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "FixEDID-Info.plist"; sourceTree = ""; }; 79 | AB5A21071777778900EEE2BB /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 80 | AB5A21091777778900EEE2BB /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 81 | AB5A210B1777778900EEE2BB /* FixEDID-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "FixEDID-Prefix.pch"; sourceTree = ""; }; 82 | AB5A210F1777778900EEE2BB /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 83 | AB5A21101777778900EEE2BB /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; 84 | AB5A21131777778900EEE2BB /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainMenu.xib; sourceTree = ""; }; 85 | AB9715D2177A184600C08469 /* DisplayMergeNub */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.objfile"; path = DisplayMergeNub; sourceTree = ""; }; 86 | ABA0F42B177D9C9700116CFE /* DisplayMergeNub.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = DisplayMergeNub.cpp; path = Classes/DisplayMergeNub.cpp; sourceTree = ""; }; 87 | ABA0F42C177D9C9700116CFE /* DisplayMergeNub-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "DisplayMergeNub-Info.plist"; sourceTree = ""; }; 88 | ABA0F42E177D9C9700116CFE /* DisplayMergeNub.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = DisplayMergeNub.h; path = Headers/DisplayMergeNub.h; sourceTree = ""; }; 89 | ABA0F439177D9D1F00116CFE /* DisplayMergeNub.kext */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DisplayMergeNub.kext; sourceTree = BUILT_PRODUCTS_DIR; }; 90 | ABA0F43A177D9D1F00116CFE /* Kernel.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Kernel.framework; path = System/Library/Frameworks/Kernel.framework; sourceTree = SDKROOT; }; 91 | ABC3F519177779520030D260 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; 92 | ABC3F51C177779570030D260 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/AppKit.framework; sourceTree = DEVELOPER_DIR; }; 93 | ABF4E5FD177796D80082C3E4 /* FixEDID.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = FixEDID.icns; sourceTree = ""; }; 94 | /* End PBXFileReference section */ 95 | 96 | /* Begin PBXFrameworksBuildPhase section */ 97 | AB5A20F61777778900EEE2BB /* Frameworks */ = { 98 | isa = PBXFrameworksBuildPhase; 99 | buildActionMask = 2147483647; 100 | files = ( 101 | ABC3F51D177779570030D260 /* AppKit.framework in Frameworks */, 102 | ABC3F51A177779520030D260 /* Foundation.framework in Frameworks */, 103 | AB5A20FE1777778900EEE2BB /* Cocoa.framework in Frameworks */, 104 | ); 105 | runOnlyForDeploymentPostprocessing = 0; 106 | }; 107 | ABA0F434177D9D1F00116CFE /* Frameworks */ = { 108 | isa = PBXFrameworksBuildPhase; 109 | buildActionMask = 2147483647; 110 | files = ( 111 | ); 112 | runOnlyForDeploymentPostprocessing = 0; 113 | }; 114 | /* End PBXFrameworksBuildPhase section */ 115 | 116 | /* Begin PBXGroup section */ 117 | AB0C36C118FC610200AC3C69 /* _CodeSignature */ = { 118 | isa = PBXGroup; 119 | children = ( 120 | AB0C36C218FC610200AC3C69 /* CodeResources */, 121 | ); 122 | path = _CodeSignature; 123 | sourceTree = ""; 124 | }; 125 | AB0E16D218FD446E006742D5 /* FixEDID.help */ = { 126 | isa = PBXGroup; 127 | children = ( 128 | AB0E16D318FD446E006742D5 /* index.html */, 129 | ); 130 | path = FixEDID.help; 131 | sourceTree = ""; 132 | }; 133 | AB5A20EE1777778900EEE2BB = { 134 | isa = PBXGroup; 135 | children = ( 136 | ABA0F429177D9C9700116CFE /* DisplayMergeNub */, 137 | AB5A21031777778900EEE2BB /* FixEDID */, 138 | AB5A20FC1777778900EEE2BB /* Frameworks */, 139 | AB5A20FA1777778900EEE2BB /* Products */, 140 | ); 141 | sourceTree = ""; 142 | }; 143 | AB5A20FA1777778900EEE2BB /* Products */ = { 144 | isa = PBXGroup; 145 | children = ( 146 | AB5A20F91777778900EEE2BB /* FixEDID.app */, 147 | ABA0F439177D9D1F00116CFE /* DisplayMergeNub.kext */, 148 | ); 149 | name = Products; 150 | sourceTree = ""; 151 | }; 152 | AB5A20FC1777778900EEE2BB /* Frameworks */ = { 153 | isa = PBXGroup; 154 | children = ( 155 | ABC3F519177779520030D260 /* Foundation.framework */, 156 | ABC3F51C177779570030D260 /* AppKit.framework */, 157 | AB5A20FD1777778900EEE2BB /* Cocoa.framework */, 158 | AB5A20FF1777778900EEE2BB /* Other Frameworks */, 159 | ); 160 | name = Frameworks; 161 | sourceTree = ""; 162 | }; 163 | AB5A20FF1777778900EEE2BB /* Other Frameworks */ = { 164 | isa = PBXGroup; 165 | children = ( 166 | AB5A21001777778900EEE2BB /* AppKit.framework */, 167 | AB5A21011777778900EEE2BB /* CoreData.framework */, 168 | AB5A21021777778900EEE2BB /* Foundation.framework */, 169 | ABA0F43A177D9D1F00116CFE /* Kernel.framework */, 170 | ); 171 | name = "Other Frameworks"; 172 | sourceTree = ""; 173 | }; 174 | AB5A21031777778900EEE2BB /* FixEDID */ = { 175 | isa = PBXGroup; 176 | children = ( 177 | AB5A210F1777778900EEE2BB /* AppDelegate.h */, 178 | AB5A21101777778900EEE2BB /* AppDelegate.m */, 179 | AB5A21121777778900EEE2BB /* MainMenu.xib */, 180 | AB5A21041777778900EEE2BB /* Supporting Files */, 181 | ); 182 | path = FixEDID; 183 | sourceTree = ""; 184 | }; 185 | AB5A21041777778900EEE2BB /* Supporting Files */ = { 186 | isa = PBXGroup; 187 | children = ( 188 | AB2A7E2518FD4BEF0022A2FD /* Credits.rtf */, 189 | AB0E16D218FD446E006742D5 /* FixEDID.help */, 190 | AB0C36C118FC610200AC3C69 /* _CodeSignature */, 191 | AB19464C18BAA7B1009FE386 /* Vers.h */, 192 | AB3A888218BAA65D002BC610 /* Vers.c */, 193 | ABF4E5FD177796D80082C3E4 /* FixEDID.icns */, 194 | AB5A21051777778900EEE2BB /* FixEDID-Info.plist */, 195 | AB5A21061777778900EEE2BB /* InfoPlist.strings */, 196 | AB5A21091777778900EEE2BB /* main.m */, 197 | AB5A210B1777778900EEE2BB /* FixEDID-Prefix.pch */, 198 | AB9715D2177A184600C08469 /* DisplayMergeNub */, 199 | ); 200 | name = "Supporting Files"; 201 | sourceTree = ""; 202 | }; 203 | ABA0F429177D9C9700116CFE /* DisplayMergeNub */ = { 204 | isa = PBXGroup; 205 | children = ( 206 | AB19464E18BAA9E7009FE386 /* KextVer.h */, 207 | ABA0F42E177D9C9700116CFE /* DisplayMergeNub.h */, 208 | ABA0F42B177D9C9700116CFE /* DisplayMergeNub.cpp */, 209 | ABA0F432177D9CDB00116CFE /* Supporting Files */, 210 | ); 211 | path = DisplayMergeNub; 212 | sourceTree = ""; 213 | }; 214 | ABA0F432177D9CDB00116CFE /* Supporting Files */ = { 215 | isa = PBXGroup; 216 | children = ( 217 | ABA0F42C177D9C9700116CFE /* DisplayMergeNub-Info.plist */, 218 | ); 219 | name = "Supporting Files"; 220 | sourceTree = ""; 221 | }; 222 | /* End PBXGroup section */ 223 | 224 | /* Begin PBXHeadersBuildPhase section */ 225 | AB3A887818BAA127002BC610 /* Headers */ = { 226 | isa = PBXHeadersBuildPhase; 227 | buildActionMask = 2147483647; 228 | files = ( 229 | AB19464D18BAA7B1009FE386 /* Vers.h in Headers */, 230 | ); 231 | runOnlyForDeploymentPostprocessing = 0; 232 | }; 233 | ABA0F435177D9D1F00116CFE /* Headers */ = { 234 | isa = PBXHeadersBuildPhase; 235 | buildActionMask = 2147483647; 236 | files = ( 237 | AB19464F18BAA9E7009FE386 /* KextVer.h in Headers */, 238 | ABA0F449177D9D8500116CFE /* DisplayMergeNub.h in Headers */, 239 | ); 240 | runOnlyForDeploymentPostprocessing = 0; 241 | }; 242 | /* End PBXHeadersBuildPhase section */ 243 | 244 | /* Begin PBXNativeTarget section */ 245 | AB5A20F81777778900EEE2BB /* FixEDID */ = { 246 | isa = PBXNativeTarget; 247 | buildConfigurationList = AB5A21171777778900EEE2BB /* Build configuration list for PBXNativeTarget "FixEDID" */; 248 | buildPhases = ( 249 | AB3A887818BAA127002BC610 /* Headers */, 250 | AB5A20F51777778900EEE2BB /* Sources */, 251 | AB5A20F61777778900EEE2BB /* Frameworks */, 252 | AB0E16D518FD4508006742D5 /* Copy Help Bundle */, 253 | AB5A20F71777778900EEE2BB /* Resources */, 254 | AB0C36C418FC614000AC3C69 /* Copy Kext Signature */, 255 | ); 256 | buildRules = ( 257 | AB3A887F18BAA469002BC610 /* PBXBuildRule */, 258 | ); 259 | dependencies = ( 260 | ); 261 | name = FixEDID; 262 | productName = FixEDID; 263 | productReference = AB5A20F91777778900EEE2BB /* FixEDID.app */; 264 | productType = "com.apple.product-type.application"; 265 | }; 266 | ABA0F438177D9D1F00116CFE /* DisplayMergeNub */ = { 267 | isa = PBXNativeTarget; 268 | buildConfigurationList = ABA0F445177D9D1F00116CFE /* Build configuration list for PBXNativeTarget "DisplayMergeNub" */; 269 | buildPhases = ( 270 | ABA0F435177D9D1F00116CFE /* Headers */, 271 | ABA0F433177D9D1F00116CFE /* Sources */, 272 | ABA0F434177D9D1F00116CFE /* Frameworks */, 273 | ABA0F436177D9D1F00116CFE /* Resources */, 274 | ); 275 | buildRules = ( 276 | ); 277 | dependencies = ( 278 | ); 279 | name = DisplayMergeNub; 280 | productName = AppleMonitor; 281 | productReference = ABA0F439177D9D1F00116CFE /* DisplayMergeNub.kext */; 282 | productType = "com.apple.product-type.kernel-extension"; 283 | }; 284 | /* End PBXNativeTarget section */ 285 | 286 | /* Begin PBXProject section */ 287 | AB5A20F01777778900EEE2BB /* Project object */ = { 288 | isa = PBXProject; 289 | attributes = { 290 | LastUpgradeCheck = 0500; 291 | ORGANIZATIONNAME = "Andy Vandijck"; 292 | TargetAttributes = { 293 | AB5A20F81777778900EEE2BB = { 294 | DevelopmentTeam = GSF3NR4NQ5; 295 | SystemCapabilities = { 296 | com.apple.Sandbox = { 297 | enabled = 0; 298 | }; 299 | }; 300 | }; 301 | }; 302 | }; 303 | buildConfigurationList = AB5A20F31777778900EEE2BB /* Build configuration list for PBXProject "FixEDID" */; 304 | compatibilityVersion = "Xcode 3.2"; 305 | developmentRegion = English; 306 | hasScannedForEncodings = 0; 307 | knownRegions = ( 308 | en, 309 | ); 310 | mainGroup = AB5A20EE1777778900EEE2BB; 311 | productRefGroup = AB5A20FA1777778900EEE2BB /* Products */; 312 | projectDirPath = ""; 313 | projectRoot = ""; 314 | targets = ( 315 | ABA0F438177D9D1F00116CFE /* DisplayMergeNub */, 316 | AB5A20F81777778900EEE2BB /* FixEDID */, 317 | ); 318 | }; 319 | /* End PBXProject section */ 320 | 321 | /* Begin PBXResourcesBuildPhase section */ 322 | AB5A20F71777778900EEE2BB /* Resources */ = { 323 | isa = PBXResourcesBuildPhase; 324 | buildActionMask = 2147483647; 325 | files = ( 326 | AB2A7E2618FD4BEF0022A2FD /* Credits.rtf in Resources */, 327 | AB5A21081777778900EEE2BB /* InfoPlist.strings in Resources */, 328 | AB5A21141777778900EEE2BB /* MainMenu.xib in Resources */, 329 | ABF4E5FE177796D80082C3E4 /* FixEDID.icns in Resources */, 330 | AB9715D3177A184600C08469 /* DisplayMergeNub in Resources */, 331 | ); 332 | runOnlyForDeploymentPostprocessing = 0; 333 | }; 334 | ABA0F436177D9D1F00116CFE /* Resources */ = { 335 | isa = PBXResourcesBuildPhase; 336 | buildActionMask = 2147483647; 337 | files = ( 338 | ); 339 | runOnlyForDeploymentPostprocessing = 0; 340 | }; 341 | /* End PBXResourcesBuildPhase section */ 342 | 343 | /* Begin PBXSourcesBuildPhase section */ 344 | AB5A20F51777778900EEE2BB /* Sources */ = { 345 | isa = PBXSourcesBuildPhase; 346 | buildActionMask = 2147483647; 347 | files = ( 348 | AB5A210A1777778900EEE2BB /* main.m in Sources */, 349 | AB5A21111777778900EEE2BB /* AppDelegate.m in Sources */, 350 | ); 351 | runOnlyForDeploymentPostprocessing = 0; 352 | }; 353 | ABA0F433177D9D1F00116CFE /* Sources */ = { 354 | isa = PBXSourcesBuildPhase; 355 | buildActionMask = 2147483647; 356 | files = ( 357 | ABA0F448177D9D6600116CFE /* DisplayMergeNub.cpp in Sources */, 358 | ); 359 | runOnlyForDeploymentPostprocessing = 0; 360 | }; 361 | /* End PBXSourcesBuildPhase section */ 362 | 363 | /* Begin PBXVariantGroup section */ 364 | AB5A21061777778900EEE2BB /* InfoPlist.strings */ = { 365 | isa = PBXVariantGroup; 366 | children = ( 367 | AB5A21071777778900EEE2BB /* en */, 368 | ); 369 | name = InfoPlist.strings; 370 | sourceTree = ""; 371 | }; 372 | AB5A21121777778900EEE2BB /* MainMenu.xib */ = { 373 | isa = PBXVariantGroup; 374 | children = ( 375 | AB5A21131777778900EEE2BB /* en */, 376 | ); 377 | name = MainMenu.xib; 378 | sourceTree = ""; 379 | }; 380 | /* End PBXVariantGroup section */ 381 | 382 | /* Begin XCBuildConfiguration section */ 383 | AB5A21151777778900EEE2BB /* Debug */ = { 384 | isa = XCBuildConfiguration; 385 | buildSettings = { 386 | ALWAYS_SEARCH_USER_PATHS = NO; 387 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 388 | CLANG_CXX_LIBRARY = "libc++"; 389 | CLANG_WARN_EMPTY_BODY = YES; 390 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 391 | CODE_SIGN_IDENTITY = "Mac Developer"; 392 | COPY_PHASE_STRIP = NO; 393 | CURRENT_PROJECT_VERSION = 2.0; 394 | DYLIB_COMPATIBILITY_VERSION = 1.0; 395 | DYLIB_CURRENT_VERSION = 2.0; 396 | GCC_C_LANGUAGE_STANDARD = gnu99; 397 | GCC_DYNAMIC_NO_PIC = NO; 398 | GCC_ENABLE_OBJC_EXCEPTIONS = YES; 399 | GCC_OPTIMIZATION_LEVEL = 0; 400 | GCC_PREPROCESSOR_DEFINITIONS = ( 401 | "DEBUG=1", 402 | "$(inherited)", 403 | ); 404 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 405 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 406 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 407 | GCC_WARN_UNINITIALIZED_AUTOS = YES; 408 | GCC_WARN_UNUSED_VARIABLE = YES; 409 | ONLY_ACTIVE_ARCH = YES; 410 | SDKROOT = macosx10.7; 411 | VERSIONING_SYSTEM = "apple-generic"; 412 | VERSION_INFO_BUILDER = "AnV Software"; 413 | VERSION_INFO_EXPORT_DECL = ""; 414 | VERSION_INFO_FILE = Vers.h; 415 | }; 416 | name = Debug; 417 | }; 418 | AB5A21161777778900EEE2BB /* Release */ = { 419 | isa = XCBuildConfiguration; 420 | buildSettings = { 421 | ALWAYS_SEARCH_USER_PATHS = NO; 422 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 423 | CLANG_CXX_LIBRARY = "libc++"; 424 | CLANG_WARN_EMPTY_BODY = YES; 425 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 426 | CODE_SIGN_IDENTITY = "Mac Developer"; 427 | COPY_PHASE_STRIP = YES; 428 | CURRENT_PROJECT_VERSION = 2.0; 429 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 430 | DYLIB_COMPATIBILITY_VERSION = 1.0; 431 | DYLIB_CURRENT_VERSION = 2.0; 432 | GCC_C_LANGUAGE_STANDARD = gnu99; 433 | GCC_ENABLE_OBJC_EXCEPTIONS = YES; 434 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 435 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 436 | GCC_WARN_UNINITIALIZED_AUTOS = YES; 437 | GCC_WARN_UNUSED_VARIABLE = YES; 438 | SDKROOT = macosx10.7; 439 | VERSIONING_SYSTEM = "apple-generic"; 440 | VERSION_INFO_BUILDER = "AnV Software"; 441 | VERSION_INFO_EXPORT_DECL = ""; 442 | VERSION_INFO_FILE = Vers.h; 443 | }; 444 | name = Release; 445 | }; 446 | AB5A21181777778900EEE2BB /* Debug */ = { 447 | isa = XCBuildConfiguration; 448 | buildSettings = { 449 | ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; 450 | CLANG_CXX_LANGUAGE_STANDARD = ""; 451 | CLANG_CXX_LIBRARY = ""; 452 | CLANG_WARN_EMPTY_BODY = ""; 453 | CLANG_WARN__DUPLICATE_METHOD_MATCH = ""; 454 | CODE_SIGN_IDENTITY = "Mac Developer"; 455 | COMBINE_HIDPI_IMAGES = YES; 456 | CURRENT_PROJECT_VERSION = 2.3.2; 457 | DYLIB_COMPATIBILITY_VERSION = 1.0; 458 | DYLIB_CURRENT_VERSION = 2.3.2; 459 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 460 | GCC_PREFIX_HEADER = "FixEDID/FixEDID-Prefix.pch"; 461 | INFOPLIST_FILE = "FixEDID/FixEDID-Info.plist"; 462 | PRODUCT_NAME = "$(TARGET_NAME)"; 463 | VERSION_INFO_FILE = Vers.c; 464 | WRAPPER_EXTENSION = app; 465 | }; 466 | name = Debug; 467 | }; 468 | AB5A21191777778900EEE2BB /* Release */ = { 469 | isa = XCBuildConfiguration; 470 | buildSettings = { 471 | ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; 472 | CLANG_CXX_LANGUAGE_STANDARD = ""; 473 | CLANG_CXX_LIBRARY = ""; 474 | CLANG_WARN_EMPTY_BODY = ""; 475 | CLANG_WARN__DUPLICATE_METHOD_MATCH = ""; 476 | CODE_SIGN_IDENTITY = "Mac Developer"; 477 | COMBINE_HIDPI_IMAGES = YES; 478 | COPY_PHASE_STRIP = NO; 479 | CURRENT_PROJECT_VERSION = 2.3.2; 480 | DYLIB_COMPATIBILITY_VERSION = 1.0; 481 | DYLIB_CURRENT_VERSION = 2.3.2; 482 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 483 | GCC_PREFIX_HEADER = "FixEDID/FixEDID-Prefix.pch"; 484 | INFOPLIST_FILE = "FixEDID/FixEDID-Info.plist"; 485 | PRODUCT_NAME = "$(TARGET_NAME)"; 486 | VERSION_INFO_FILE = Vers.c; 487 | WRAPPER_EXTENSION = app; 488 | }; 489 | name = Release; 490 | }; 491 | ABA0F446177D9D1F00116CFE /* Debug */ = { 492 | isa = XCBuildConfiguration; 493 | buildSettings = { 494 | COMBINE_HIDPI_IMAGES = YES; 495 | CURRENT_PROJECT_VERSION = 9.9.9; 496 | DYLIB_COMPATIBILITY_VERSION = 8.8.8; 497 | DYLIB_CURRENT_VERSION = 9.9.9; 498 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 499 | INFOPLIST_FILE = "DisplayMergeNub/DisplayMergeNub-Info.plist"; 500 | MODULE_NAME = com.AnV.Software.driver.AppleMonitor; 501 | MODULE_VERSION = 9.9.9; 502 | PRODUCT_NAME = "$(TARGET_NAME)"; 503 | VERSIONING_SYSTEM = "apple-generic"; 504 | VERSION_INFO_BUILDER = "AnV Software"; 505 | VERSION_INFO_FILE = KextVer.c; 506 | WRAPPER_EXTENSION = kext; 507 | }; 508 | name = Debug; 509 | }; 510 | ABA0F447177D9D1F00116CFE /* Release */ = { 511 | isa = XCBuildConfiguration; 512 | buildSettings = { 513 | COMBINE_HIDPI_IMAGES = YES; 514 | CURRENT_PROJECT_VERSION = 9.9.9; 515 | DYLIB_COMPATIBILITY_VERSION = 8.8.8; 516 | DYLIB_CURRENT_VERSION = 9.9.9; 517 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 518 | INFOPLIST_FILE = "DisplayMergeNub/DisplayMergeNub-Info.plist"; 519 | MODULE_NAME = com.AnV.Software.driver.AppleMonitor; 520 | MODULE_VERSION = 9.9.9; 521 | PRODUCT_NAME = "$(TARGET_NAME)"; 522 | VERSIONING_SYSTEM = "apple-generic"; 523 | VERSION_INFO_BUILDER = "AnV Software"; 524 | VERSION_INFO_FILE = KextVer.c; 525 | WRAPPER_EXTENSION = kext; 526 | }; 527 | name = Release; 528 | }; 529 | /* End XCBuildConfiguration section */ 530 | 531 | /* Begin XCConfigurationList section */ 532 | AB5A20F31777778900EEE2BB /* Build configuration list for PBXProject "FixEDID" */ = { 533 | isa = XCConfigurationList; 534 | buildConfigurations = ( 535 | AB5A21151777778900EEE2BB /* Debug */, 536 | AB5A21161777778900EEE2BB /* Release */, 537 | ); 538 | defaultConfigurationIsVisible = 0; 539 | defaultConfigurationName = Release; 540 | }; 541 | AB5A21171777778900EEE2BB /* Build configuration list for PBXNativeTarget "FixEDID" */ = { 542 | isa = XCConfigurationList; 543 | buildConfigurations = ( 544 | AB5A21181777778900EEE2BB /* Debug */, 545 | AB5A21191777778900EEE2BB /* Release */, 546 | ); 547 | defaultConfigurationIsVisible = 0; 548 | defaultConfigurationName = Release; 549 | }; 550 | ABA0F445177D9D1F00116CFE /* Build configuration list for PBXNativeTarget "DisplayMergeNub" */ = { 551 | isa = XCConfigurationList; 552 | buildConfigurations = ( 553 | ABA0F446177D9D1F00116CFE /* Debug */, 554 | ABA0F447177D9D1F00116CFE /* Release */, 555 | ); 556 | defaultConfigurationIsVisible = 0; 557 | defaultConfigurationName = Release; 558 | }; 559 | /* End XCConfigurationList section */ 560 | }; 561 | rootObject = AB5A20F01777778900EEE2BB /* Project object */; 562 | } 563 | -------------------------------------------------------------------------------- /FixEDID.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /FixEDID.xcodeproj/project.xcworkspace/xcuserdata/andyvand.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andyvand/FixEDID/1019302f4ac8303bb627a81db8793b15e43d3727/FixEDID.xcodeproj/project.xcworkspace/xcuserdata/andyvand.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /FixEDID.xcodeproj/project.xcworkspace/xcuserdata/andyvand.xcuserdatad/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | HasAskedToTakeAutomaticSnapshotBeforeSignificantChanges 6 | 7 | SnapshotAutomaticallyBeforeSignificantChanges 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /FixEDID.xcodeproj/xcuserdata/andyvand.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /FixEDID.xcodeproj/xcuserdata/andyvand.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /FixEDID.xcodeproj/xcuserdata/andyvand.xcuserdatad/xcschemes/DisplayMergeNub.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 42 | 43 | 44 | 45 | 51 | 52 | 54 | 55 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /FixEDID.xcodeproj/xcuserdata/andyvand.xcuserdatad/xcschemes/FixEDID.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 51 | 52 | 58 | 59 | 60 | 61 | 62 | 63 | 69 | 70 | 76 | 77 | 78 | 79 | 81 | 82 | 85 | 86 | 87 | -------------------------------------------------------------------------------- /FixEDID.xcodeproj/xcuserdata/andyvand.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | DisplayMergeNub.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | FixEDID.xcscheme 13 | 14 | orderHint 15 | 1 16 | 17 | 18 | SuppressBuildableAutocreation 19 | 20 | AB5A20F81777778900EEE2BB 21 | 22 | primary 23 | 24 | 25 | ABA0F438177D9D1F00116CFE 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /FixEDID/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // FixEDID 4 | // 5 | // Created by Andy Vandijck on 23/06/13. 6 | // Copyright (c) 2013 Andy Vandijck. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | #import 12 | 13 | int CalcGCD(int a, int b); 14 | 15 | typedef struct EDIDStruct { 16 | char Header[8]; 17 | char Serial[10]; 18 | char Version[2]; 19 | char BasicParams[5]; 20 | char Chroma[10]; 21 | char Established[3]; 22 | char Standard[16]; 23 | char Descriptor1[18]; 24 | char Descriptor2[18]; 25 | char Descriptor3[18]; 26 | char Descriptor4[18]; 27 | char Extensions; 28 | char Checksum; 29 | } EDIDStruct_t; 30 | 31 | @interface AppDelegate : NSObject 32 | { 33 | IBOutlet NSWindow *window; 34 | 35 | IBOutlet NSTextField *ScreenCount; 36 | IBOutlet NSTextField *VendorID; 37 | IBOutlet NSTextField *VendorDecID; 38 | IBOutlet NSTextField *DeviceID; 39 | IBOutlet NSTextField *DeviceDecID; 40 | IBOutlet NSTextField *EDIDPath; 41 | IBOutlet NSTextField *DisplayPrefsKey; 42 | IBOutlet NSTextField *VersionString; 43 | IBOutlet NSTextField *ResolutionCount; 44 | IBOutlet NSTextField *ResolutionHorizontal; 45 | IBOutlet NSTextField *ResolutionVertical; 46 | IBOutlet NSTextField *AspectRatio; 47 | 48 | IBOutlet NSButton *IgnoreDisplayPrefsButton; 49 | IBOutlet NSButton *FixMonitorRangesButton; 50 | 51 | IBOutlet NSPopUpButton *DisplayClassButton; 52 | IBOutlet NSPopUpButton *OverrideClassButton; 53 | IBOutlet NSPopUpButton *Displays; 54 | 55 | IBOutlet NSTableView *ResTable; 56 | 57 | IBOutlet NSArrayController *arrayController; 58 | 59 | NSOpenPanel *EDIDPanel; 60 | 61 | NSMutableArray *ResDataArray; 62 | 63 | BOOL EDIDFileOpened; 64 | BOOL IgnoreDisplayPrefs; 65 | 66 | char *EDIDRawData; 67 | char PanelSelected; 68 | 69 | unsigned char ResDataEntry[16]; 70 | 71 | EDIDStruct_t *EDIDStructure; 72 | 73 | int EDIDSize; 74 | int panelresult; 75 | int displayclass; 76 | int ResCnt; 77 | 78 | NSNumber *VendorNumber; 79 | NSNumber *DeviceNumber; 80 | 81 | NSInteger IgnoreDisplayPrefsInteger; 82 | NSInteger FixMonitorRangesInteger; 83 | 84 | NSData *EDIDData; 85 | 86 | NSString *DesktopPath; 87 | NSString *NewEDIDPath; 88 | NSString *NewDisplayOverridePath; 89 | NSString *NewDisplayDriverPath; 90 | NSString *DriverBinPath; 91 | NSString *DriverBinResPath; 92 | NSString *DriverBinCSPath; 93 | NSString *DriverBinCSTarget; 94 | NSString *TotalNumberDisplays; 95 | NSString *displayclassoverride; 96 | NSString *ScreenNrString; 97 | NSString* outStr; 98 | NSString *tmp; 99 | NSString *devId; 100 | NSString *venId; 101 | NSString *displayPref; 102 | NSString *devDecId; 103 | NSString *venDecId; 104 | 105 | NSDictionary *DriverDict; 106 | NSDictionary *IOProviderMergeProperties; 107 | NSDictionary *IOKitPersonalities; 108 | NSDictionary *MonInjection; 109 | NSDictionary *OSBundleLibraries; 110 | NSDictionary *EDIDOverride; 111 | 112 | NSMutableDictionary *displayInfo; 113 | 114 | NSMutableArray *displayArray; 115 | 116 | NSArray *temparray; 117 | 118 | NSTask *task; 119 | 120 | NSPipe *pipe; 121 | 122 | FILE *file; 123 | } 124 | 125 | -(IBAction)GetScreenVendorDevice:(id)sender; 126 | -(IBAction)OpenEDIDFile:(id)sender; 127 | -(IBAction)SelectDisplay:(id)sender; 128 | 129 | -(IBAction)SetRawEDID:(id)sender; 130 | -(IBAction)SetColorPatchedEDID:(id)sender; 131 | -(IBAction)SetiMac:(id)sender; 132 | -(IBAction)SetMacbookPro:(id)sender; 133 | -(IBAction)SetCinemaHD:(id)sender; 134 | -(IBAction)SetThunderbolt:(id)sender; 135 | -(IBAction)SetLEDCinema:(id)sender; 136 | -(IBAction)SetRetinaiMac:(id)sender; 137 | -(IBAction)SetMacbookAir:(id)sender; 138 | 139 | -(IBAction)SetAppleDisplay:(id)sender; 140 | -(IBAction)SetAppleBacklightDisplay:(id)sender; 141 | -(IBAction)SetOverrideAppleDisplay:(id)sender; 142 | -(IBAction)SetOverrideAppleBacklightDisplay:(id)sender; 143 | 144 | -(IBAction)AddResolution:(id)sender; 145 | -(IBAction)DelResolution:(id)sender; 146 | -(IBAction)showHelp:(id)sender; 147 | 148 | -(IBAction)MakeFiles:(id)sender; 149 | 150 | -(int)hex2int:(const char *)s; 151 | -(int)CalcGCD:(int)a vert:(int)b; 152 | 153 | -(void)FixRanges; 154 | -(void)DetermineAspectRatio; 155 | 156 | -(unsigned char)make_checksum:(unsigned char *)x; 157 | -(unsigned char)ScanForNameDescriptor:(unsigned char *)Descriptor; 158 | -(unsigned char)ScanForRangeDescriptor:(unsigned char *)Descriptor; 159 | -(unsigned char)ScanForSerialDescriptor:(unsigned char *)Descriptor; 160 | -(unsigned char)ScanForOtherDescriptor:(unsigned char *)Descriptor; 161 | -(unsigned char)ScanForDetailedDescriptor:(unsigned char *)Descriptor; 162 | @end 163 | -------------------------------------------------------------------------------- /FixEDID/Credits.rtf: -------------------------------------------------------------------------------- 1 | {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf190 2 | \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} 3 | {\colortbl;\red255\green255\blue255;} 4 | \vieww9000\viewh8400\viewkind0 5 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 6 | 7 | \f0\b\fs24 \cf0 Engineering: 8 | \b0 \ 9 | 10 | \fs22 Andy Vandijck (AnV Software) 11 | \fs24 \ 12 | 13 | \fs22 Marchrius 14 | \fs24 \ 15 | \ 16 | 17 | \b Human Interface Design: 18 | \b0 \ 19 | 20 | \fs22 Andy Vandijck (AnV Software) 21 | \fs24 \ 22 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 23 | 24 | \fs22 \cf0 Marchrius\ 25 | 26 | \fs24 \ 27 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 28 | 29 | \b \cf0 Testing: 30 | \b0 \ 31 | 32 | \fs22 Andy Vandijck (AnV Software) 33 | \fs24 \ 34 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 35 | 36 | \fs22 \cf0 Marchrius\ 37 | Many other people at InsanelyMac\ 38 | 39 | \fs24 \ 40 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 41 | 42 | \b \cf0 Documentation: 43 | \b0 \ 44 | 45 | \fs22 Andy Vandijck (AnV Software) 46 | \fs24 \ 47 | \ 48 | 49 | \b With special thanks to: 50 | \b0 \ 51 | 52 | \fs20 Marchrius for the extra updates 53 | \fs24 \ 54 | } -------------------------------------------------------------------------------- /FixEDID/DisplayMergeNub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andyvand/FixEDID/1019302f4ac8303bb627a81db8793b15e43d3727/FixEDID/DisplayMergeNub -------------------------------------------------------------------------------- /FixEDID/FixEDID-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIconFile 10 | FixEDID.icns 11 | CFBundleIdentifier 12 | com.AnV.Software.${PRODUCT_NAME:rfc1034identifier} 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | ${PRODUCT_NAME} 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 2.3.2 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 2.3.2 25 | CFBundleHelpBookName 26 | FixEDID Help 27 | CFBundleHelpBookFolder 28 | FixEDID.help 29 | LSApplicationCategoryType 30 | public.app-category.utilities 31 | LSMinimumSystemVersion 32 | ${MACOSX_DEPLOYMENT_TARGET} 33 | NSHumanReadableCopyright 34 | Copyright © 2013-2014 AnV Software. All rights reserved. 35 | CFBundleGetInfoString 36 | FixEDID V2.3.2, copyright © 2013-2014 AnV Software. All rights reserved. 37 | NSMainNibFile 38 | MainMenu 39 | NSPrincipalClass 40 | NSApplication 41 | 42 | 43 | -------------------------------------------------------------------------------- /FixEDID/FixEDID-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'FixEDID' target in the 'FixEDID' project 3 | // 4 | 5 | #ifdef __OBJC__ 6 | #import 7 | #endif 8 | -------------------------------------------------------------------------------- /FixEDID/FixEDID.help/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andyvand/FixEDID/1019302f4ac8303bb627a81db8793b15e43d3727/FixEDID/FixEDID.help/.DS_Store -------------------------------------------------------------------------------- /FixEDID/FixEDID.help/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | FixEDID Help 7 | 8 | 9 | 13 | 14 | 15 |

What is "FixEDID"?

16 |


17 |

With "FixEDID" you are able to apply EDID patches, display model overrides and add scaled resolutions.

18 |


19 |

How to use "FixEDID"

20 |


21 |

Using FixEDID is very simple!

22 |


23 |

1. Start "FixEDID".

24 |

2. Select display if needed.

25 |

3. Open the EDID binary file with the "Open EDID Binary File" button.

26 |

4. Select the display panel override

27 |

5. Optionally disable the IODisplayPrefs check so that it checks on which

28 |

    display adapter the monitor is connected

29 |

6. Optionally add / fix the monitor ranges (if your EDID doesn't have them or they are bad)

30 |

7. Optionally add scaled resolutions by entering the resolution and clicking add.

31 |

    For adding them to the list click the "Add Resolution" button.

32 |

    You can remove entered resolutions by the "Remove Resolution" button after selecting it.

33 |

8. Click the "Make" button and it generates the overrides on the desktop!

34 |


35 |

NOTE: You need to install either the display override in /System/Library/Displays/Overrides or install DisplayMergeNub.kext in /System/Library/Extensions. It will also generate an EDID binary for checking afterwards...

36 |


37 |

You can also enter parameters manually...

38 |

The app also has quick select buttons for displays (open display menu press 1 - 9, these are listed).

39 |

The app also determines aspect ratio based on the first detailed descriptor block in the EDID when you open the EDID.

40 |


41 |

Extra info

42 |


43 |

If you have a 16:10 display and want to do scaled resolutions you can use

44 |

- iMac Display

45 |

- MacBook Pro Display

46 |

- Cinema HD Display

47 |

- LED Cinema Display

48 |

- Only Patch Color Profile

49 |

- Only Inject EDD unpatched

50 |


51 |

For 16:9 displays and scaled resolutions you can use

52 |

- Apple Thunderbolt Display (NOT FOR BUILT-IN DISPLAY!)

53 |

- iMac Retina Display

54 |

- MacBook Air Display

55 |

- Only Patch Color Profile

56 |

- Only Inject EDD unpatched

57 | 58 | 59 | -------------------------------------------------------------------------------- /FixEDID/FixEDID.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andyvand/FixEDID/1019302f4ac8303bb627a81db8793b15e43d3727/FixEDID/FixEDID.icns -------------------------------------------------------------------------------- /FixEDID/Vers.h: -------------------------------------------------------------------------------- 1 | extern const unsigned char FixEDIDVersionString[]; 2 | extern const double FixEDIDVersionNumber; 3 | -------------------------------------------------------------------------------- /FixEDID/_CodeSignature/CodeResources: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | files 6 | 7 | files2 8 | 9 | rules 10 | 11 | ^Resources/ 12 | 13 | ^Resources/.*\.lproj/ 14 | 15 | optional 16 | 17 | weight 18 | 1000 19 | 20 | ^Resources/.*\.lproj/locversion.plist$ 21 | 22 | omit 23 | 24 | weight 25 | 1100 26 | 27 | ^version.plist$ 28 | 29 | 30 | rules2 31 | 32 | .*\.dSYM($|/) 33 | 34 | weight 35 | 11 36 | 37 | ^(.*/)?\.DS_Store$ 38 | 39 | omit 40 | 41 | weight 42 | 2000 43 | 44 | ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ 45 | 46 | nested 47 | 48 | weight 49 | 10 50 | 51 | ^.* 52 | 53 | ^Info\.plist$ 54 | 55 | omit 56 | 57 | weight 58 | 20 59 | 60 | ^PkgInfo$ 61 | 62 | omit 63 | 64 | weight 65 | 20 66 | 67 | ^Resources/ 68 | 69 | weight 70 | 20 71 | 72 | ^Resources/.*\.lproj/ 73 | 74 | optional 75 | 76 | weight 77 | 1000 78 | 79 | ^Resources/.*\.lproj/locversion.plist$ 80 | 81 | omit 82 | 83 | weight 84 | 1100 85 | 86 | ^[^/]+$ 87 | 88 | nested 89 | 90 | weight 91 | 10 92 | 93 | ^embedded\.provisionprofile$ 94 | 95 | weight 96 | 20 97 | 98 | ^version\.plist$ 99 | 100 | weight 101 | 20 102 | 103 | 104 | 105 | 106 | -------------------------------------------------------------------------------- /FixEDID/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /FixEDID/en.lproj/MainMenu.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 369 | 380 | 391 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 518 | 519 | 520 | 521 | 522 | 523 | 524 | 525 | 526 | 527 | 528 | 529 | 530 | 531 | 532 | 533 | 534 | 535 | 536 | 537 | 538 | 539 | 540 | 541 | 542 | 543 | 544 | 545 | 546 | 547 | 548 | 549 | 550 | 551 | 552 | 553 | 554 | 555 | 556 | 557 | 558 | 559 | 560 | 561 | 562 | 563 | 564 | 565 | 566 | 567 | 568 | 569 | 570 | 571 | 572 | 573 | 574 | 575 | 576 | 577 | 578 | 579 | 580 | 581 | 582 | 583 | 584 | 585 | 586 | 587 | 588 | 589 | 590 | 591 | 592 | 593 | 601 | 609 | 610 | 611 | 612 | 613 | 614 | 615 | 616 | 617 | 618 | 619 | 620 | 621 | 622 | 623 | 624 | 625 | 626 | 627 | 628 | 629 | 630 | 631 | 632 | 633 | 634 | 635 | 636 | 637 | 638 | 639 | 640 | 641 | 642 | 643 | 644 | 645 | 646 | 647 | 648 | 649 | 650 | 651 | 652 | 653 | 654 | 655 | 656 | 657 | 658 | 659 | 660 | 661 | 662 | 663 | 664 | 665 | 666 | 667 | 668 | 669 | 670 | 671 | 672 | 673 | 674 | 675 | 676 | 677 | 678 | 679 | 680 | 681 | 682 | 683 | 684 | 685 | 686 | 687 | 688 | 689 | 690 | 691 | 692 | 693 | 694 | 695 | 696 | 697 | 698 | 699 | 700 | 701 | 702 | 703 | 704 | 705 | 706 | 707 | 708 | 709 | 710 | 711 | 712 | 713 | 714 | 715 | 716 | 717 | 718 | 719 | 720 | 721 | 722 | 723 | 724 | 725 | 726 | 727 | 728 | 729 | 730 | 731 | 732 | 733 | 734 | 735 | 736 | 737 | 738 | 739 | 740 | 741 | 742 | 743 | 744 | 745 | 746 | 747 | 748 | 749 | 750 | 751 | 752 | 753 | 754 | 755 | 759 | 763 | 764 | 765 | 766 | 767 | 768 | 769 | 770 | 771 | 772 | 773 | 774 | 775 | 776 | 777 | 778 | 779 | 780 | 781 | 782 | 783 | 784 | 785 | 786 | 787 | 788 | 789 | 790 | 791 | 792 | 793 | 794 | 795 | 796 | 797 | 798 | 799 | 800 | 801 | 802 | 803 | 804 | 805 | 806 | 807 | 808 | 809 | 810 | 811 | 812 | 813 | 814 | 815 | 816 | 817 | 818 | 819 | 820 | 821 | -------------------------------------------------------------------------------- /FixEDID/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // FixEDID 4 | // 5 | // Created by Andy Vandijck on 23/06/13. 6 | // Copyright (c) 2013 Andy Vandijck. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | int main(int argc, char *argv[]) 12 | { 13 | return NSApplicationMain(argc, (const char **)argv); 14 | } 15 | -------------------------------------------------------------------------------- /Release_10.7 and +/FixEDID.app/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | BuildMachineOSBuild 6 | 13C64 7 | CFBundleDevelopmentRegion 8 | en 9 | CFBundleExecutable 10 | FixEDID 11 | CFBundleGetInfoString 12 | FixEDID V2.3.2, copyright © 2013-2014 AnV Software. All rights reserved. 13 | CFBundleHelpBookFolder 14 | FixEDID.help 15 | CFBundleHelpBookName 16 | FixEDID Help 17 | CFBundleIconFile 18 | FixEDID.icns 19 | CFBundleIdentifier 20 | com.AnV.Software.FixEDID 21 | CFBundleInfoDictionaryVersion 22 | 6.0 23 | CFBundleName 24 | FixEDID 25 | CFBundlePackageType 26 | APPL 27 | CFBundleShortVersionString 28 | 2.3.2 29 | CFBundleSignature 30 | ???? 31 | CFBundleVersion 32 | 2.3.2 33 | DTCompiler 34 | com.apple.compilers.llvm.clang.1_0 35 | DTPlatformBuild 36 | 5A2053 37 | DTPlatformVersion 38 | GM 39 | DTSDKBuild 40 | 11E52 41 | DTSDKName 42 | macosx10.7 43 | DTXcode 44 | 0501 45 | DTXcodeBuild 46 | 5A2053 47 | LSApplicationCategoryType 48 | public.app-category.utilities 49 | LSMinimumSystemVersion 50 | 10.7 51 | NSHumanReadableCopyright 52 | Copyright © 2013-2014 AnV Software. All rights reserved. 53 | NSMainNibFile 54 | MainMenu 55 | NSPrincipalClass 56 | NSApplication 57 | 58 | 59 | -------------------------------------------------------------------------------- /Release_10.7 and +/FixEDID.app/Contents/MacOS/FixEDID: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andyvand/FixEDID/1019302f4ac8303bb627a81db8793b15e43d3727/Release_10.7 and +/FixEDID.app/Contents/MacOS/FixEDID -------------------------------------------------------------------------------- /Release_10.7 and +/FixEDID.app/Contents/PkgInfo: -------------------------------------------------------------------------------- 1 | APPL???? -------------------------------------------------------------------------------- /Release_10.7 and +/FixEDID.app/Contents/Resources/Credits.rtf: -------------------------------------------------------------------------------- 1 | {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf190 2 | \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} 3 | {\colortbl;\red255\green255\blue255;} 4 | \vieww9000\viewh8400\viewkind0 5 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 6 | 7 | \f0\b\fs24 \cf0 Engineering: 8 | \b0 \ 9 | 10 | \fs22 Andy Vandijck (AnV Software) 11 | \fs24 \ 12 | 13 | \fs22 Marchrius 14 | \fs24 \ 15 | \ 16 | 17 | \b Human Interface Design: 18 | \b0 \ 19 | 20 | \fs22 Andy Vandijck (AnV Software) 21 | \fs24 \ 22 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 23 | 24 | \fs22 \cf0 Marchrius\ 25 | 26 | \fs24 \ 27 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 28 | 29 | \b \cf0 Testing: 30 | \b0 \ 31 | 32 | \fs22 Andy Vandijck (AnV Software) 33 | \fs24 \ 34 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 35 | 36 | \fs22 \cf0 Marchrius\ 37 | Many other people at InsanelyMac\ 38 | 39 | \fs24 \ 40 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 41 | 42 | \b \cf0 Documentation: 43 | \b0 \ 44 | 45 | \fs22 Andy Vandijck (AnV Software) 46 | \fs24 \ 47 | \ 48 | 49 | \b With special thanks to: 50 | \b0 \ 51 | 52 | \fs20 Marchrius for the extra updates 53 | \fs24 \ 54 | } -------------------------------------------------------------------------------- /Release_10.7 and +/FixEDID.app/Contents/Resources/DisplayMergeNub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andyvand/FixEDID/1019302f4ac8303bb627a81db8793b15e43d3727/Release_10.7 and +/FixEDID.app/Contents/Resources/DisplayMergeNub -------------------------------------------------------------------------------- /Release_10.7 and +/FixEDID.app/Contents/Resources/FixEDID.help/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | FixEDID Help 7 | 8 | 9 | 13 | 14 | 15 |

What is "FixEDID"?

16 |


17 |

With "FixEDID" you are able to apply EDID patches, display model overrides and add scaled resolutions.

18 |


19 |

How to use "FixEDID"

20 |


21 |

Using FixEDID is very simple!

22 |


23 |

1. Start "FixEDID".

24 |

2. Select display if needed.

25 |

3. Open the EDID binary file with the "Open EDID Binary File" button.

26 |

4. Select the display panel override

27 |

5. Optionally disable the IODisplayPrefs check so that it checks on which

28 |

    display adapter the monitor is connected

29 |

6. Optionally add / fix the monitor ranges (if your EDID doesn't have them or they are bad)

30 |

7. Optionally add scaled resolutions by entering the resolution and clicking add.

31 |

    For adding them to the list click the "Add Resolution" button.

32 |

    You can remove entered resolutions by the "Remove Resolution" button after selecting it.

33 |

8. Click the "Make" button and it generates the overrides on the desktop!

34 |


35 |

NOTE: You need to install either the display override in /System/Library/Displays/Overrides or install DisplayMergeNub.kext in /System/Library/Extensions. It will also generate an EDID binary for checking afterwards...

36 |


37 |

You can also enter parameters manually...

38 |

The app also has quick select buttons for displays (open display menu press 1 - 9, these are listed).

39 |

The app also determines aspect ratio based on the first detailed descriptor block in the EDID when you open the EDID.

40 |


41 |

Extra info

42 |


43 |

If you have a 16:10 display and want to do scaled resolutions you can use

44 |

- iMac Display

45 |

- MacBook Pro Display

46 |

- Cinema HD Display

47 |

- LED Cinema Display

48 |

- Only Patch Color Profile

49 |

- Only Inject EDD unpatched

50 |


51 |

For 16:9 displays and scaled resolutions you can use

52 |

- Apple Thunderbolt Display (NOT FOR BUILT-IN DISPLAY!)

53 |

- iMac Retina Display

54 |

- MacBook Air Display

55 |

- Only Patch Color Profile

56 |

- Only Inject EDD unpatched

57 | 58 | 59 | -------------------------------------------------------------------------------- /Release_10.7 and +/FixEDID.app/Contents/Resources/FixEDID.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andyvand/FixEDID/1019302f4ac8303bb627a81db8793b15e43d3727/Release_10.7 and +/FixEDID.app/Contents/Resources/FixEDID.icns -------------------------------------------------------------------------------- /Release_10.7 and +/FixEDID.app/Contents/Resources/_CodeSignature/CodeResources: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | files 6 | 7 | files2 8 | 9 | rules 10 | 11 | ^Resources/ 12 | 13 | ^Resources/.*\.lproj/ 14 | 15 | optional 16 | 17 | weight 18 | 1000 19 | 20 | ^Resources/.*\.lproj/locversion.plist$ 21 | 22 | omit 23 | 24 | weight 25 | 1100 26 | 27 | ^version.plist$ 28 | 29 | 30 | rules2 31 | 32 | .*\.dSYM($|/) 33 | 34 | weight 35 | 11 36 | 37 | ^(.*/)?\.DS_Store$ 38 | 39 | omit 40 | 41 | weight 42 | 2000 43 | 44 | ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ 45 | 46 | nested 47 | 48 | weight 49 | 10 50 | 51 | ^.* 52 | 53 | ^Info\.plist$ 54 | 55 | omit 56 | 57 | weight 58 | 20 59 | 60 | ^PkgInfo$ 61 | 62 | omit 63 | 64 | weight 65 | 20 66 | 67 | ^Resources/ 68 | 69 | weight 70 | 20 71 | 72 | ^Resources/.*\.lproj/ 73 | 74 | optional 75 | 76 | weight 77 | 1000 78 | 79 | ^Resources/.*\.lproj/locversion.plist$ 80 | 81 | omit 82 | 83 | weight 84 | 1100 85 | 86 | ^[^/]+$ 87 | 88 | nested 89 | 90 | weight 91 | 10 92 | 93 | ^embedded\.provisionprofile$ 94 | 95 | weight 96 | 20 97 | 98 | ^version\.plist$ 99 | 100 | weight 101 | 20 102 | 103 | 104 | 105 | 106 | -------------------------------------------------------------------------------- /Release_10.7 and +/FixEDID.app/Contents/Resources/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andyvand/FixEDID/1019302f4ac8303bb627a81db8793b15e43d3727/Release_10.7 and +/FixEDID.app/Contents/Resources/en.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /Release_10.7 and +/FixEDID.app/Contents/Resources/en.lproj/MainMenu.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andyvand/FixEDID/1019302f4ac8303bb627a81db8793b15e43d3727/Release_10.7 and +/FixEDID.app/Contents/Resources/en.lproj/MainMenu.nib -------------------------------------------------------------------------------- /Release_10.7 and +/FixEDID.app/Contents/_CodeSignature/CodeResources: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | files 6 | 7 | Resources/Credits.rtf 8 | 9 | chkN4I3H/o0/69sI/Sf4uy+RzWc= 10 | 11 | Resources/DisplayMergeNub 12 | 13 | 649NVxX6FlUwi+HNzi1EXBKKJ7w= 14 | 15 | Resources/FixEDID.help/index.html 16 | 17 | tYteCxFLxvzy5P8eI5O2nHl/bi4= 18 | 19 | Resources/FixEDID.icns 20 | 21 | Ga1y31wrrG2DmWnmYmMp6JWBoNA= 22 | 23 | Resources/_CodeSignature/CodeResources 24 | 25 | bBiUp/2tm0Ul1Q/3Gp0OAV8WgSk= 26 | 27 | Resources/en.lproj/InfoPlist.strings 28 | 29 | hash 30 | 31 | MiLKDDnrUKr4EmuvhS5VQwxHGK8= 32 | 33 | optional 34 | 35 | 36 | Resources/en.lproj/MainMenu.nib 37 | 38 | hash 39 | 40 | F8CIPlUo7+mJol1v1jdEGX1Ukms= 41 | 42 | optional 43 | 44 | 45 | 46 | files2 47 | 48 | Resources/Credits.rtf 49 | 50 | chkN4I3H/o0/69sI/Sf4uy+RzWc= 51 | 52 | Resources/DisplayMergeNub 53 | 54 | 649NVxX6FlUwi+HNzi1EXBKKJ7w= 55 | 56 | Resources/FixEDID.help/index.html 57 | 58 | tYteCxFLxvzy5P8eI5O2nHl/bi4= 59 | 60 | Resources/FixEDID.icns 61 | 62 | Ga1y31wrrG2DmWnmYmMp6JWBoNA= 63 | 64 | Resources/_CodeSignature/CodeResources 65 | 66 | bBiUp/2tm0Ul1Q/3Gp0OAV8WgSk= 67 | 68 | Resources/en.lproj/InfoPlist.strings 69 | 70 | hash 71 | 72 | MiLKDDnrUKr4EmuvhS5VQwxHGK8= 73 | 74 | optional 75 | 76 | 77 | Resources/en.lproj/MainMenu.nib 78 | 79 | hash 80 | 81 | F8CIPlUo7+mJol1v1jdEGX1Ukms= 82 | 83 | optional 84 | 85 | 86 | embedded.provisionprofile 87 | 88 | IGXiWm7fi9TRAxx7wB+QRIyCYHI= 89 | 90 | 91 | rules 92 | 93 | ^Resources/ 94 | 95 | ^Resources/.*\.lproj/ 96 | 97 | optional 98 | 99 | weight 100 | 1000 101 | 102 | ^Resources/.*\.lproj/locversion.plist$ 103 | 104 | omit 105 | 106 | weight 107 | 1100 108 | 109 | ^version.plist$ 110 | 111 | 112 | rules2 113 | 114 | .*\.dSYM($|/) 115 | 116 | weight 117 | 11 118 | 119 | ^(.*/)?\.DS_Store$ 120 | 121 | omit 122 | 123 | weight 124 | 2000 125 | 126 | ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ 127 | 128 | nested 129 | 130 | weight 131 | 10 132 | 133 | ^.* 134 | 135 | ^Info\.plist$ 136 | 137 | omit 138 | 139 | weight 140 | 20 141 | 142 | ^PkgInfo$ 143 | 144 | omit 145 | 146 | weight 147 | 20 148 | 149 | ^Resources/ 150 | 151 | weight 152 | 20 153 | 154 | ^Resources/.*\.lproj/ 155 | 156 | optional 157 | 158 | weight 159 | 1000 160 | 161 | ^Resources/.*\.lproj/locversion.plist$ 162 | 163 | omit 164 | 165 | weight 166 | 1100 167 | 168 | ^[^/]+$ 169 | 170 | nested 171 | 172 | weight 173 | 10 174 | 175 | ^embedded\.provisionprofile$ 176 | 177 | weight 178 | 20 179 | 180 | ^version\.plist$ 181 | 182 | weight 183 | 20 184 | 185 | 186 | 187 | 188 | -------------------------------------------------------------------------------- /Release_10.7 and +/FixEDID.app/Contents/embedded.provisionprofile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andyvand/FixEDID/1019302f4ac8303bb627a81db8793b15e43d3727/Release_10.7 and +/FixEDID.app/Contents/embedded.provisionprofile -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | * FixEDID - Monitor data patcher and injector for Mac OS X 2 | 3 | - Engineering: 4 | Andy Vandijck (AnV Software) 5 | Marchrius 6 | 7 | - Human Interface Design: 8 | Andy Vandijck (AnV Software) 9 | Marchrius 10 | 11 | - Testing: 12 | Andy Vandijck (AnV Software) 13 | Marchrius 14 | Many other people at InsanelyMac 15 | 16 | - Documentation: 17 | Andy Vandijck (AnV Software) 18 | 19 | - With special thanks to: 20 | Marchrius for the extra updates 21 | --------------------------------------------------------------------------------