Screen resolution messed up when upgrading to latest Macbook Air
Very weird and unusual problem, I solved it this way.

Open a terminal. Fin your DisplayPrefsKey

ioreg -l -x -w0 | grep IODisplayPrefsKey


Came out this:

"IODisplayPrefsKey" ="IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IGPU@2/AppleIntelFramebuffer@1/display0/AppleDisplay-756e6b6e-717"


The important part is the last, AppleDisplay-756e6b6e-717.

Inside /System/Library/Displays/Overrides/ there is a folder  DisplayVendorID-756e6b6e. Now it's vim time:

vim DisplayProductID-717


Inside there is an XML file with values in Hexadecimal. If you edit it correctly, restart, OS X will do exactly what you told it to. If you get it wrong, you could fry your screen (maybe, didn't want to test that part).

So how do you get the values right? Look at other config files and find a suitable resolution that would work for your screen. In my case, I was lucky that my other MacBook Air from 2013 had the screen working properly. I copied the configuration, replaced the file (which had a different name), and voilà!

Small issue, if you're not perfectly comfortable editing file in hex, you have two options:


Use PlistEdit Pro for Mac (now free and part of XCode)
Use SwitchResX (~$20) to copy the config from one computer and port it on the other.


Hope this saves the 7 hours of work I put in yesterday to whomever is reading this :)

Useful resources:


http://www.insanelymac.com/forum/topic/274957-guide-how-to-fix-spdisplays-display-in-about-this-mac-window-20120820-update-tiny-app-added/
http://hints.macworld.com/article.php?story=20030212065523164
http://embdev.net/topic/284710