Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

UncleSchnitty

macrumors 6502a
Original poster
Oct 26, 2007
851
14
There are a ton of threads about this and I just wanted to put all the findings in one place with the updated procedures since there have been a lot of modifications recently.

First you need to know what this does. This enables Handoff a feature of Continuity but they are not the same.

Continuity is in charge of Calls and Messages (both iMessage and Texts) being sent to your mac or other iDevice, and Airdrop(computer to computer). For continuity these steps are NOT required.

Handoff is in charge of opening an application on your iOS device then continuing it on another device (i.e. open an email and continue it on your mac) as well as instant hotspot and Airdrop (computer to iDevice). This guide will activate these features as long as you have Bluetooth 4.0 LE

Basically Handoff requires a built in* Bluetooth 4.0 LE card to work but Apple has blacklisted some of the models that came standard with BT4.0LE so a modified Kext is required. If your system does not have BT4.0LE you will need to replace the card (and possibly modify Kext) to get handoff to work.

Breakdown:

Macbook Air: Early 2008-2010 - Requires new bluetooth/wifi card and modified Kext.

Macbook Air: Mid 2011 - Requires modified kext only

Macbook Air: Mid 2012-2014 - Works OTB

cMacbookPros: Mid 2010 (15" only) - Requires new blutooth/wifi card and Modified Kext

cMacbookPros: Early or Late 2011(all models) - Requires new blutooth/wifi card and Modified Kext

cMacbookPros: Mid2012 - Works OTB

RetinaMacBook Pros: Works OTB.

cMacPros: Early 2008-2012 - Requires new bluetooth/Wifi and adapter

NMacPros: Works OTB .

MacMini: Early 2009-2010 - Requires new bluetooth/Wifi Card and modified Kext.

MacMini: Mid 2011 - Only requires Modified Kext

MacMini: Late 2012 - Works OTB

iMac: Mid 2007-2011 - Requires bluetooth/Wifi Card and adapter

iMac: Late 2012-2013 - Works OTB

I will also update the list above if someone lets me know that something is off. Since I don't have access to all these machines I cant try them all out to know 100%

Note: Earlier MacBookPros then listed and 13"+17"MBPs had the wifi adapter in the screen hinge so newer cards will not fit inside of them.
*A bluetooth dongle can be made with Apples bluetooth cards but this is in very early stages and complete compatibility/steps required is not well known or tested.

What cards to buy:
If it says you need to update your bluetooth/wificard here is a list of what card you should buy. While there may be other comparable cards these are the most up to date I have seen. Remember the only requirement is that your computer has Bluetooth4.0LE.

MacBook Pro/Mac Minis: Apple Broadcom BCM94331PCIEBT4CAX Gives BT4.0LE

MacBook Air: Apple Broadcom BCM94360CS2 This also gives older devices Wifi ac as well as BT4.0LE

cMacPro: Apple Broadcom BCM94360CD This also gives older devices Wifi ac as well as BT4.0LE you will also need an adapter as this card does not fit directly into the cMacPro

iMac: Apple Broadcom BCM94360CD This also gives older devices Wifi ac as well as BT4.0LE you will also need an adapter as this card does not fit directly into the iMac

Kext Mod Application!!!!
I am very excited to give you Dokterdok's Continuity-Activation-Tool. You no longer need to Modify the kexts on your own. This program automates everything for you. Please run as Admin! I will still leave the instructions for people who want to do it on their own.

If you have attempted the mod before please drop in your original kexts before running this application.
To go back to originals follow these steps:
1 sudo nvram boot-args="kext-dev-mode=1"
2 reboot
3 delete old kexts in /System/Library/Extensions/
4 sudo kextcache -system-prelinked-kernel
5 sudo kextcache -system-caches
6 repair permissions
7 reboot
8 used kext drop for the backed up ones
9 sudo kextcache -system-prelinked-kernel
10 sudo kextcache -system-caches
11 repair permissions
12 reboot

Kext Mod. TUTORIAL

Please backup your computer before starting!

1. Download and install 0xED in your Applications folder, you can get it from here:
http://www.suavetech.com/0xed/

2. Download and install KextDrop in your Applications folder, you can get it from here:
http://www.cindori.org/software/kextdrop/

3. Repair your disk permissions. Go-> Utilities-> Disk Utility, then First Aid, Repair Permissions.

Then open Terminal and type :
Code:
sudo nvram boot-args="kext-dev-mode=1"

4. Restart your machine.

5. Open Finder, type CMD+Shift+G and go to /System/Library/Extensions/

6. Copy the files below to your desktop and then delete the originals. Make an extra backup copy of the 2 files in a separate folder just in case something doesn't work.
Code:
IO80211Family.kext
IOBluetoothFamily.kext

7. Go to Terminal, and type:exactly as below:
Code:
sudo kextcache -system-prelinked-kernel
then
Code:
sudo kextcache -system-caches

8. Reboot (At this point your wifi will not be working)

9. Go to Terminal, and type: (exactly as below)
Code:
ioreg -l | grep "board-id" | awk -F\" '{print $4}'

10. Your result should look like : Mac-742912EFDBEE19B3, (yours might be different.). Copy it to your clipboard (Select and CMD+C). Don't close terminal yet.

11. On Desktop, Right click IO80211Family.kext and "show package contents" /Contents/Plugins/ Right click AirPortBrcm4360.kext and "show package contents" /Contents/MacOS

12. Right Click on AirPortBrcm4360, and choose OPEN WITH: OTHER: 0XED

13. In the upper right hand corner under “search text" search for "Mac-" (without the quotes).

14. Look at the first result, for example, it might be Mac-00BE6ED71E35EB86

15. Delete the numbers after Mac- and Manually type your Mac- numbers (from step 8 be very careful not to delete anything else just the numbers.

16. Press down arrow till you get to the last Mac- (should look like Mac-2E6FAB96566FE58C)

17.Delete the numbers after Mac- and Manually type your Mac- numbers (from step 8 be very careful not to delete anything else just the numbers.

18. Click Save (the red circle)

19. On Desktop: Right click IOBluetoothFamily.kext and "Show package contents /Contents /MacOS

20. Right Click on IOBluetoothFamily, and choose OPEN WITH: OTHER: 0XED.

21. In the SEARCH field (upper right corner) type:MacBookAir then enter.

22. You will find a block of text containing
Code:
'MacBookAir4,1''MacBookAir4,2''Macmini5,1''Macmini5,2''Macmini5,3'
Manually replace the numbers with ones only so they all look like:
Code:
'MacBookAir1,1''MacBookAir1,1''Macmini1,1''Macmini1,1''Macmini1,1'
Important: Be careful not to add any character while doing the replacement.

23. Click SAVE (the red circle button) and quit 0xED.

24. Open KextDrop, and Drag and drop the IO80211Family.kext that you modified into the window.

25. Click INSTALL.

26. Repeat steps 24 and 25 but for your modified IOBluetoothFamily.kext

27. Go Back to Terminal, and type the following commands. Wait for each one to finish.


Code:
sudo kextcache -system-prelinked-kernel
You should see:
kext-dev-mode allowing invalid signature -67061 0xFFFFFFFFFFFEFA0B for kext IOBluetoothFamily.kext

kext-dev-mode allowing invalid signature -67061 0xFFFFFFFFFFFEFA0B for kext AirPortBrcm4360.kext

Code:
sudo kextcache -system-caches
Nothing should show here.
Finally
Code:
nvram -p | grep "kext-dev-mode" | awk -F'=' '{print $2}'
If printout says "1" then you are in kext dev mode and your new kexts will be allowed to run.


28. Reboot. Make sure you have an Internet connection for the next steps.

29. Go to > SYSTEM PREFERENCES> GENERAL, at the bottom click ENABLE HANDOFF.
(if this is not available then something went wrong and you have to use KextDrop to put your old kexts back in then run
Code:
sudo kextcache -system-prelinked-kernel
Code:
sudo kextcache -system-caches
again, repair your permissions and start over)

30. Go to > SYSTEM PREFERENCES> ICLOUD, click on SIGN OUT.

31. On your iOS Device, go to SETTINGS> ICLOUD and SIGN OUT.

32. Restart your Mac and iOS device.

33. Go to > SYSTEM PREFERENCES> ICLOUD, and enter your credentials to sign in. (make sure keychain is active)

34. On your iOS Device, go to SETTINGS> ICLOUD and SIGN IN.(make sure keychain is active)

35. Repair your disk permissions. Go-> Utilities-> Disk Utility, then First Aid, Repair Permissions.



Troubleshooting:

1:Log out of iCloud on all devices, reboot and log back in starting with the computer.

2:Make sure your keychain is enabled under Preferences-> iCloud on both devices.

3:Make sure you iDevices have a charge over 25% (sometimes it turns handoff off if battery is too low)

4:Make sure Handoff is enabled under Settings-> General-> Handoff on iDevices

5:Make sure they are on the same wifi network and bluetooth is on on all devices.

6:Make sure you aren't pairing your devices under bluetooth.

7: If an OS X update modifies the kexts involved in this then just run the program/redo the kext edit and it should work again. If any new steps are needed I will update accordingly. This does not mean every update will knock this off just ones that modify the IOBluetooth and IO80211Family kexts.


Hopefully this can be one place to get all the facts strait.
Goodluck!
Tutorial was modified off DokterDoks original instructions.
Thanks to: DokterDok, Lem3ssie, Skvo, TealShark, Manic Harmonic, rob3r7o, mikecwest, MacVidCards, brucerb and anyone else I forgot...
 
Last edited:
Alright, reposting from the other thread:

I got through step 6, but when I tried step 7 the terminal didn't show anything.

History of what I did:

After following step 3 I got a message about the danger of improper use of the sudo command and that I should enter my password to continue. Did that.

After restarting my computer the terminal showed a grey line saying [Restored]. Followed by "Last Login: Fri Oct 17 13:36:28 on console"

Tried to enter code from step 7 but the next line in terminal was blank.

Status:

It was saying no hardware installed for wi-fi. Reading a previous post in that thread from someone with a similar problem I added the original kext files back in with kext drop and rebooted computer. Wi-fi works again.

So should I try and restart the process from step 1? And if so is there some clearing of a cache or something I need to do first?
 
Alright, reposting from the other thread:

I got through step 6, but when I tried step 7 the terminal didn't show anything.

History of what I did:

After following step 3 I got a message about the danger of improper use of the sudo command and that I should enter my password to continue. Did that.

After restarting my computer the terminal showed a grey line saying [Restored]. Followed by "Last Login: Fri Oct 17 13:36:28 on console"

Tried to enter code from step 7 but the next line in terminal was blank.

Status:

It was saying no hardware installed for wi-fi. Reading a previous post in that thread from someone with a similar problem I added the original kext files back in with kext drop and rebooted computer. Wi-fi works again.

So should I try and restart the process from step 1? And if so is there some clearing of a cache or something I need to do first?
Drop your original Kexts back in and use in terminal:
Code:
sudo kextcache -system-prelinked-kernel
Code:
sudo kextcache -system-caches
Then restart your computer and start over. Use the instructions above
 
Very nice of you to take the time to detail this out...

It's also a bit scary for me since I'm not in anyway sure of what the terminal commands do or how to get back to plain vanilla if things go badly.

If you don't mind...a couple requests:

1) What does this command do and do I need to do a "...mode=0" at the end of the process
sudo nvram boot-args="kext-dev-mode=1"

2) What does this command do?
ioreg -l | grep "board-id" | awk -F\" '{print $4}'

3) We are only replacing the numbers from "Mac-XXX" on the first and last, nothing in between...correct?

4) Finally...if everything goes casters up...what do we do to get back to start?

Again...much help with this...
 
What about a Mid 2010 White Macbook, can I upgrade that?

Will ANY features of handoff continuity work without Bluetooth LE 4.0?
 
Very nice of you to take the time to detail this out...

It's also a bit scary for me since I'm not in anyway sure of what the terminal commands do or how to get back to plain vanilla if things go badly.

If you don't mind...a couple requests:

1) What does this command do and do I need to do a "...mode=0" at the end of the process
sudo nvram boot-args="kext-dev-mode=1"

2) What does this command do?
ioreg -l | grep "board-id" | awk -F\" '{print $4}'

3) We are only replacing the numbers from "Mac-XXX" on the first and last, nothing in between...correct?

4) Finally...if everything goes casters up...what do we do to get back to start?

Again...much help with this...

1) It basically makes it so you can use unsigned kexts without it rejecting them. because you modify them they are then "Unsigned"
2) That command just shows your board id it doesn't modify anything.
3) In the example "Mac-XXXXXXX" only replace the "XXXXXXX" part, NOTHING ELSE.(accidentally modifying , . ' has caused corruption issues)
4) if everything goes wrong take the original Kexts you backed up in step 6 and KextDrop them back in then run the
Code:
 sudo kextcache -system-prelinked-kernel
and
Code:
 sudo kextcache -system-caches
reboot and you are back to stock.
 
One minor addition, I've seen OSX bouncing kexts installed by kext drop occasionally. This was fixed through repairing volume permissions after the kexts have been installed.


Cheers
 
One minor addition, I've seen OSX bouncing kexts installed by kext drop occasionally. This was fixed through repairing volume permissions after the kexts have been installed.


Cheers
That does happen occasionally. Ill run some tests and see where that helps most (i.e. beginning or the end)

For what it's worth, I have a 2012 Macbook Air and it works out of the box. I didn't have do to any kext hacks.
Thank you ill update!!
 
it is working so far on my MBA mid 2011

Its working so far handoff is now saying its supported. I will have to wait until Monday when Apply releases the 8.1 for the Iphone so i can connect my calls and text. I followed the steps and they were really easy!!

Thanks!

There are a ton of threads about this and I just wanted to put all the findings in one place with the updated procedures since there have been a lot of modifications recently.

Basically Handoff requires a built in Bluetooth 4.0 LE card to work but Apple has blacklisted some of the models that came standard with BT4.0LE so a modified Kext is required. If your system does not have BT4.0LE you will need to replace the card (and possibly modify Kext) to get handoff to work.

Breakdown:

Macbook Air:Early 2008-2010: Requires new bluetooth/wifi card and modified Kext.

Macbook Air:Mid 2011-2014: Requires modified kext only

cMacbookPros:Mid 2009-Mid2012 requires new bluetooth/Wifi card and Modified Kext.

RetinaMacBook Pros: Works OTB.

cMacPros:Early2008-2013 requires new bluetooth/Wifi

NMacPros:Works OTB .

MacMini:Early 2009-2010 requires new bluetooth/Wifi Card and modified Kext.

MacMini:Mid 2011-2012 Only requires Modified Kext

iMacs: Will update when I do more research.

I will also update the list above if someone lets me know that something is off. Since I don't have access to all these machines I cant try them all out to know 100%


Kext Mod. TUTORIAL
Modified from Dokterdok’s original

1. Download and install 0xED in your Applications folder, you can get it from here:
http://www.suavetech.com/0xed/

2. Download and install KextDrop in your Applications folder, you can get it from here:
http://www.cindori.org/software/kextdrop/

3. Open Terminal and type :
Code:
sudo nvram boot-args="kext-dev-mode=1"
4. Restart your machine.

5. Open Finder, type CMD+Shift+G and go to /System/Library/Extensions/

6. Copy the files below to your desktop and then delete the originals. Make an extra backup copy of the 2 files in a separate folder just in case.
Code:
IO80211Family.kext
IOBluetoothFamily.kext
7. Go to Terminal, and type: (exactly as below)
Code:
ioreg -l | grep "board-id" | awk -F\" '{print $4}'
8. Your result should look like : Mac-742912EFDBEE19B3, (yours might be different.). Copy it to your clipboard (Select and CMD+C). Don't close terminal yet.

9. Open Finder and hit CMD+Shift+G, go to ~/Desktop/IO80211Family.kext/Contents/Plugins/AirPortBrcm4360.kext/Contents/MacOS
Note: if you have a different OS language, you might need to replace "Desktop" in the path with your local translation.

10. Right Click on AirPortBrcm4360, and choose OPEN WITH: OTHER: 0XED

11. In the upper right hand corner under “search text" search for "Mac-" (without the quotes).

12. Look at the first result, for example, it might be Mac-00BE6ED71E35EB86

13. Delete the numbers after Mac- and Manually type your Mac- numbers (from step 8 be very careful not to delete anything else just the numbers.

14. Press down arrow till you get to the last Mac- (should look like Mac-2E6FAB96566FE58C)

15.Delete the numbers after Mac- and Manually type your Mac- numbers (from step 8 be very careful not to delete anything else just the numbers.

16. Click Save (the red circle)

17. Open Finder and hit CMD+Shift+G to open the "Go to" popup, and go to ~/Desktop/IOBluetoothFamily.kext/Contents/MacOS

18. Right Click on IOBluetoothFamily, and choose OPEN WITH: OTHER: 0XED.

19. In the SEARCH field (upper right corner) type:MacBookAir then enter.

20. You will find a block of text containing
Code:
'MacBookAir4,1''MacBookAir4,2''Macmini5,1''Macmini5,2''Macmini5,3'
Manually replace the numbers with ones only so they all look like:
Code:
'MacBookAir1,1''MacBookAir1,1''Macmini1,1''Macmini1,1''Macmini1,1'
Important: Be careful not to add any character while doing the replacement.

21. Click SAVE (the red circle button) and quit 0xED.

22. Open KextDrop, and Drag and drop the IO80211Family.kext that you modified into the window.

23. Click INSTALL.

24. Repeat steps 23 and 24 but for your modified IOBluetoothFamily.kext

25. Go Back to Terminal, and type the following commands. Wait for each one to finish.


Code:
sudo kextcache -system-prelinked-kernel

Code:
sudo kextcache -system-caches
26. Reboot. Make sure you have an Internet connection for the next steps.

27. Go to > SYSTEM PREFERENCES> GENERAL, at the bottom click ENABLE HANDOFF.

28. Go to > SYSTEM PREFERENCES> ICLOUD, click on SIGN OUT.

29. On your iOS Device, go to SETTINGS> ICLOUD and SIGN OUT.

30. Restart your Mac and iOS device.

31. Go to > SYSTEM PREFERENCES> ICLOUD, and enter your credentials to sign in.

32. On your iOS Device, go to SETTINGS> ICLOUD and SIGN IN.


Hopefully this can be one place to get all the facts strait.
Goodluck!
 
Its working so far handoff is now saying its supported. I will have to wait until Monday when Apply releases the 8.1 for the Iphone so i can connect my calls and text. I followed the steps and they were really easy!!

Thanks!
Glad This helped!
 
When I entered the first command of #25 I got this:

kext file:///System/Library/Extensions/NoSleep.kext/ is in hash exception list, allowing to load
kext file:///System/Library/Extensions/JMicronATA.kext/ is in hash exception list, allowing to load
kext-dev-mode allowing invalid signature -67061 0xFFFFFFFFFFFEFA0B for kext IOBluetoothFamily.kext
AirPortBrcm4360.kext is not valid; omitting.

Does that look right or did I mess something up? Holding on the second command till I hear.
 
Anyone have any idea if un-supporting 2011 Macs was on purpose, and what the reason would be other than enticing people to upgrade? (As if I needed any further enticing.)

I'll try the workaround when I get home... I could have sworn Apple specifically listed the 2011 Macs as supporting handoff. I can't seem to find that on their website now, and I can't remember if that's even where I saw it. Maybe during the keynote?

Thanks for the work in posting the guide, it seems easy to follow. Still unfortunate (and baffling) that we have to do it.
 
When I entered the first command of #25 I got this:

kext file:///System/Library/Extensions/NoSleep.kext/ is in hash exception list, allowing to load
kext file:///System/Library/Extensions/JMicronATA.kext/ is in hash exception list, allowing to load
kext-dev-mode allowing invalid signature -67061 0xFFFFFFFFFFFEFA0B for kext IOBluetoothFamily.kext
AirPortBrcm4360.kext is not valid; omitting.

Does that look right or did I mess something up? Holding on the second command till I hear.
I think your good, give it a shot. I helped another user last night and he got that and it worked. It looks like its just saying dev mode is allowing the modified kext (thats what we want)
 
Alright, reposting from the other thread:

I got through step 6, but when I tried step 7 the terminal didn't show anything.

History of what I did:

After following step 3 I got a message about the danger of improper use of the sudo command and that I should enter my password to continue. Did that.

After restarting my computer the terminal showed a grey line saying [Restored]. Followed by "Last Login: Fri Oct 17 13:36:28 on console"

Tried to enter code from step 7 but the next line in terminal was blank.

Status:

It was saying no hardware installed for wi-fi. Reading a previous post in that thread from someone with a similar problem I added the original kext files back in with kext drop and rebooted computer. Wi-fi works again.

So should I try and restart the process from step 1? And if so is there some clearing of a cache or something I need to do first?



Same exact thing happened to me -- I got nothing back from step 7.

When I tried to put the kext files back - it said they were invalid. Now I've got no wifi or bluetooth.
 
Anyone have any idea if un-supporting 2011 Macs was on purpose, and what the reason would be other than enticing people to upgrade? (As if I needed any further enticing.)

I'll try the workaround when I get home... I could have sworn Apple specifically listed the 2011 Macs as supporting handoff. I can't seem to find that on their website now, and I can't remember if that's even where I saw it. Maybe during the keynote?

Thanks for the work in posting the guide, it seems easy to follow. Still unfortunate (and baffling) that we have to do it.
It was very much on purpose(hence the blacklisting). Basically in 2011 they were using updated cards in the mini and air, these cards had bt4.0le. However the MacPro and Macbook air at that point did not. So that people who spent $3,000 on a computer wouldn't have less features than a person who spent $400 they blacklisted the Minis and Airs.

It may not sound fair but at the same time I see why they did it.
 
I think your good, give it a shot. I helped another user last night and he got that and it worked. It looks like its just saying dev mode is allowing the modified kext (thats what we want)

:( Just restarted and enable handoff wasn't in System Preferences. I wonder if it is related to the line that it was omitting AirPortBrcm.

Any thoughts on what to do next?

----------

Same exact thing happened to me -- I got nothing back from step 7.

When I tried to put the kext files back - it said they were invalid. Now I've got no wifi or bluetooth.

Look at post 4 in this thread. That should work. Make sure you use kext drop to put the backups back in.
 
The document AirPortBrcm4360 could not be saved. Input/output error

On step 16, I'm unable to save the file when editing the copy that I put on my desktop. Do I need to modify permissions?

0xED message: The document AirPortBrcm4360 could not be saved. Input/output error
 
:( Just restarted and enable handoff wasn't in System Preferences. I wonder if it is related to the line that it was omitting AirPortBrcm.

Any thoughts on what to do next?

----------



Look at post 4 in this thread. That should work. Make sure you use kext drop to put the backups back in.




Ahh-- I didn't use kextdrop. that would probably explain it.
 
Same exact thing happened to me -- I got nothing back from step 7.

When I tried to put the kext files back - it said they were invalid. Now I've got no wifi or bluetooth.
What do you mean you got nothing back from step 7? all it should do is show your Mac- Id number. If you don't have that then you can't proceed with the rest of the tutorial.
 
What do you mean you got nothing back from step 7? all it should do is show your Mac- Id number. If you don't have that then you can't proceed with the rest of the tutorial.

It weirdly happened to me too. But after restoring those kext files and entering the commands from your post 4 and restarting the process I was able to get it to work.
 
On step 16, I'm unable to save the file when editing the copy that I put on my desktop. Do I need to modify permissions?

0xED message: The document AirPortBrcm4360 could not be saved. Input/output error

Go to disk utility and repair your permissions. That should fix that issue
 
Handoff not supported

For your research, I got an iMac (27-inch, Mid 2010) and Handoff is not supported. I have a question, do I have to have Handoff supported in order to make phone calls from my iMac?
 
What do you mean you got nothing back from step 7? all it should do is show your Mac- Id number. If you don't have that then you can't proceed with the rest of the tutorial.


I mean just that - I typed in the code- and nothing came back. Blank. Nothing at all.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.