Submit Hint Search The Forums LinksStatsPollsHeadlinesRSS
14,000 hints and counting!

Install newer media keyboard on an older Macbook Pro Laptop Macs
If you are into hardware modifications, here's one: it's possible to have the media keys (e.g. iTunes controls, Dashboard, and Exposť) which came with the last pre-unibody MacBook Pro on your older MacBook Pro, either by changing keys only, or the keyboard assembly. Who needs a Num Lock key anyway?

This mod is quite simple on MacBooks, as the system will recognize the new (relatively cheap) top case and maps keys accordingly. On a MacBook Pro, however, unless you change the whole top case (preferable, but much more expensive, and possibly impossible with the oldest MacBook Pros, as they have Bluetooth inside the bottom case), the system gets the needed product ID from the top case. So a software mod is needed.

After some digging in the system, I found the file in question: /System » Library » Extensions » AppleUSBTopCase.kext » Contents » PlugIns » AppleUSBTCKeyEventDriver.kext » Contents » Info.plist. Don't forget to back it up first, and then modify it as super user.

Go to System Profiler and find the product ID; it's located Hardware » USB » Apple Internal Keyboard / Trackpad » Product ID. For example, on my European late 2006 MacBook Pro Core 2 Duo, it's 0x021b. Convert that value to decimal, using Calculator (View » Programmer first, then Hex). That's the Product ID of your top case (mine is 539).

Next, find a section in the file which belongs to the MacBook Pro (Early 2008). Simply search for 560 (US), 561 (Europe), or 562 (Japan), and copy the string belonging to a key FnFunctionUsageMap within the same dict (it comes about 15 lines before the ProductID). The string looks like this: 0x0007003a,0x00ff0005,0x0007003b etc. Note that this string even makes sense: every second value is a function, e.g 0x000C00CD means play/pause, and it is only in 560-2 sections, while 0x000C00E2 means mute and it's there more times, 20th (F10) in the same section but already 6th (F3) in section 539.

Then find a section which belongs to your MacBookPro (again, in my case, it was some lines before 539) and replace the FnFunctionUsageMap string with the string from step two. Finally, delete /System » Library » Extensions » Extensions.mkext, and restart your computer.

The keys should work now, even their alterations -- Command-Exposť or Control-Exposť, for example, or Alt and most keys to bring up their System Preferences panels. Please note that you're modifying system files and these can be also rewritten by future software updates. Happy modding!

[robg adds: Proceed at your own risk with this one, clearly! It's a nifty modification, but definitely not for casual users.]
    •    
  • Currently 2.38 / 5
  You rated: 1 / 5 (13 votes cast)
 
[13,400 views]  

Install newer media keyboard on an older Macbook Pro | 15 comments | Create New Account
Click here to return to the 'Install newer media keyboard on an older Macbook Pro' hint
The following comments are owned by whoever posted them. This site is not responsible for what they say.
Install newer media keyboard on an older Macbook Pro
Authored by: limbikity on May 07, '09 09:27:21AM

sweet, i've been thinking about doing this for a long time now! so if i understand this correctly, all i have to do is buy a working keyboard from a penryn macbook pro, just plug it into my santa rosa, and everything should work? no system mods needed? or do i have to buy the whole top case (obviously much more expensive)?



[ Reply to This | # ]
Install newer media keyboard on an older Macbook Pro
Authored by: zpjet on May 09, '09 06:19:28AM

with macbook, top cases are quite compatible (tried only once tho but my colleague tried more) and a usb chip is inside them so it will get recognised by the system correctly.

macbook pro has quite expensive top case and some models are not compatible at all (the oldest mbp had bluetooth inside the case, not on the top case as newer models). so there would be two ways:

replace only the keyboard. i tried and thought i will be happy with it but then i found out this key "]" works as caps lock. there should be again sw way to fix it but i got tired, installed the original keyboard and tried another way, which i would recommend to all, not only because the new keyboard has a few tabs on sides which doesn't exactly fit:

find on ebay a damaged keyboard and carefully replace only the media keys, then apply this sw mod.



[ Reply to This | # ]
Install newer media keyboard on an older Macbook Pro
Authored by: limbikity on May 17, '10 08:36:06PM

well after reading this post, i went on ebay and (VERY luckily) purchased a Penryn top case for only $50. a search for the same item now can be found upwards of $150.

i only just recently got around to installing the top case, mostly because i didn't want to void my warranty. but today i installed it anyways, mainly because i trust my technical skills enough to replace it with the old one again should anything need to be repaired in the future. it should be noted that i did have move the bluetooth radio module from the old top case to the new one, but no further modification was necessary -- the radio module fit right in on the new top case.

followed the instructions to replace it (found on iFixIt) and turned the MBP on. keyboard and top case were immediately recognized, and media keys (and other function keys on the top row) all functioned as expected. marvelous. however while using the system over the next few hours, i noticed that i all of a sudden had pinch and zoom functionality on the new trackpad! a quick trip to the trackpad preference pane confirmed this, showing all of the multitouch gestures and their options!

whoopee! this is fantastic news, unexpected and welcomed!



[ Reply to This | # ]
Install newer media keyboard on an older Macbook Pro
Authored by: afb on May 07, '09 10:56:21AM
Can't you achieve this by simply changing the keyboard shortcuts for Expose and such, and using something like Synergy to control iTunes with function keys?

[ Reply to This | # ]
Install newer media keyboard on an older Macbook Pro
Authored by: limbikity on May 07, '09 11:08:19AM

yea but this hint is actually talking about replacing the entire top case (macbooks) or keyboard (macbook pro) and hacking the system to recognize it.

i think.



[ Reply to This | # ]
Install newer media keyboard on an older Macbook Pro
Authored by: Anonymous on May 09, '09 07:14:56PM

I can do this software mod without doing the hardward mod, correct? I tried doing the software mod, but after the restart, the fn keys did not change. I noticed that extensions.mkext is not in the extensions folder, but is simply just in Library. Any help would be helpful.



[ Reply to This | # ]
Install newer media keyboard on an older Macbook Pro
Authored by: Anonymous on May 10, '09 10:26:58AM

So after a few more restarts, something clearly had changed with my function keys. They no longer did anything.... so I restored my original plist files and now am back to normal.



[ Reply to This | # ]
Install newer media keyboard on an older Macbook Pro
Authored by: tzolop on May 17, '09 10:48:29PM

Hi,
It seems that the file is not taken into account. I tried with 10.5.7 and not effect has been observed. I even deleted the Info.plist, deleted the Externsions.mkext and restart, the file is not rebuilt.
So please advise, as I just changed the keyboard with my old topcase. This would be great to have it working as you described.
Otherwise, I would have to buy a brand new topcase with the keyboard to get it working ok.
Regards.



[ Reply to This | # ]
Install newer media keyboard on an older Macbook Pro
Authored by: emdls on Jul 29, '10 12:42:05AM

This hint was a lifesaver! I needed to replace a d^&* British keyboard on a Macbook pro I bought - both because I hated the key layout, and because I spilled liquid on it. After three weeks of waiting for a -free shipping- new mac US keyboard to arrive, I installed it... Only to discover the mac didn't auto recognized it.

Turns out, it's because it's the case top that has the ID, not the keyboard - as this hint mentions. And nothing I tried was fixing the problem of tons of keys being mapped improperly, especially the special function keys - until I followed this hint.

So, if you too have "switched" or reinstalled a different ANZI/ASCII Euro or US keyboard on your Mac Laptop, and you're running into keyboard mapping problems - follow this hint - worked like charm!



[ Reply to This | # ]
Install newer media keyboard on an older Macbook Pro
Authored by: bebuki on Aug 20, '10 06:54:48AM

My product id is 560 and I can find that section in the file but what section do I replace with the string from the 560 section?

I have an older macbook pro that I replaced the top case from a newer model but used the old keyboard. Now the function keys are mapped to the newer keyboard mappings which don't match what the function keys say.

Please help!

Thanks!



[ Reply to This | # ]
Install newer media keyboard on an older Macbook Pro
Authored by: agentx on Nov 01, '10 09:57:33AM

I would get yourself a free trial copy of BBedit and use search function to find 560.
The hint explains that you change the FnFunctionUsageMap "string" about 14 lines up from the Product ID.

Here is the string from 0x021b = 539 which is UK keyboard.
[code]
<key>FnFunctionUsageMap</key>
<string>0x0007003a,0x00ff0005,0x0007003b,0x00ff0004,0x0007003c,0x000c00e2,0x0007003d,0x000c00ea,0x0007003e,0x000c00e9,0x0007003f,0x00070083,0x00070040,0x00ff0006,0x00070041,0x00ff0007,0x00070042,0x00ff0009,0x00070043,0x00ff0008</string>
[/code]



[ Reply to This | # ]
Install newer media keyboard on an older Macbook Pro
Authored by: agentx on Oct 29, '10 03:21:45AM

Going to try this one out as my sister just had a replacement for her International (US) to a British keyboard and all Fn keys are messed up. Will report back if i get to work but very useful information.



[ Reply to This | # ]
Install newer media keyboard on an older Macbook Pro
Authored by: agentx on Nov 01, '10 09:52:02AM

Ok did the re-mapping with this hint and all has worked fine....a bit pissed with Apple that they replaced a US/International keyboard with a UK one leaving the user with all over the place key mapping !

Also here is some info on commands that i found on FunctionFlip source page (great tool) if anyone wants to do funky things with their keys in the future.
[code]

// usage IDs from the hid
#define FF_F1_KEYID @"0x0007003a"
#define FF_F2_KEYID @"0x0007003b"
#define FF_F3_KEYID @"0x0007003c"
#define FF_F4_KEYID @"0x0007003d"
#define FF_F5_KEYID @"0x0007003e"
#define FF_F6_KEYID @"0x0007003f"
#define FF_F7_KEYID @"0x00070040"
#define FF_F8_KEYID @"0x00070041"
#define FF_F9_KEYID @"0x00070042"
#define FF_F10_KEYID @"0x00070043"
#define FF_F11_KEYID @"0x00070044"
#define FF_F12_KEYID @"0x00070045"

// usage IDs from the hid
#define FF_BRIGHTNESS_DOWN_ID_LAPTOP @"0x00ff0005" // for laptops
#define FF_BRIGHTNESS_UP_ID_LAPTOP @"0x00ff0004" // for laptops
#define FF_BRIGHTNESS_DOWN_ID_EXTERNAL @"0xff010021" // for external keyboards
#define FF_BRIGHTNESS_UP_ID_EXTERNAL @"0xff010020" // for external keyboards
#define FF_EXPOSE_ID @"0xff010010"
#define FF_DASHBOARD_ID @"0xff010002"
#define FF_ILLUMINATION_TOGGLE_ID @"0x00ff0007"
#define FF_ILLUMINATION_DOWN_ID @"0x00ff0009"
#define FF_ILLUMINATION_UP_ID @"0x00ff0008"
#define FF_VIDEO_MIRROR_ID @"0x00ff0006"
#define FF_REWIND_ID @"0x000C00B4"
#define FF_PLAYPAUSE_ID @"0x000C00CD"
#define FF_FASTFORWARD_ID @"0x000C00B3"
#define FF_MUTE_ID @"0x000C00E2"
#define FF_VOLUME_DOWN_ID @"0x000C00EA"
#define FF_VOLUME_UP_ID @"0x000C00E9"
[/code]



[ Reply to This | # ]
Install newer media keyboard on an older Macbook Pro
Authored by: PolDee on Jun 27, '12 02:45:57PM

I've changed the 'Info.plist', but cannot find the 'Extensions.mkext' in order to erase it. I have looked manually and searched for the file but it's nowhere to be found.
Is there anything I might be missing? Anyone any ideas?

I have no experience with this sort of thing, I may add.

Any comments/help appreciated.



[ Reply to This | # ]
Install newer media keyboard on an older Macbook Pro
Authored by: PolDee on Jun 27, '12 02:51:35PM

I've changed the 'Info.plist' but cannot seem to locate 'Extensions.mkext' in order to erase it.

I have looked manually and searched for the file but to no avail, anyone any ideas?

After restarting, the fn keys seem to be unchanged.

I have no experience with this sort of thing, I may add.

Any help, much appreciated.

(2006 Macbook Pro 15" - OS X 10.6.8)



[ Reply to This | # ]