I have a MacPro5,1 on Sierra with a upgraded Apple BT/WiFi card that won't support continuity though everything in System Report is fine - Bluetooth reports "Yes" for BTLE, Handoff, and Instant HS; WiFi reports "Supported" for AirDrop and Auto Unlock. System Preferences "General" has the checkbox for Allow Handoff ... Running CAT diagnostics shows "OS X reports Continuity as active". When I run a version of cloudpaird from El Capitan it does report "DEBUG cloudpaird: system does not support Continuity"
The only "issue" I see is that my board ID - Mac-F221BEC8 in IOBluetooth.framework shows "No" for "ContinuitySupport". Am I correct in thinking this is all I need to patch - change it to "Yes"? And does patching this require that I remove SIP? If so, can I restore SIP after patching or does it have to remain off? Or am I missing something else?
Regards
I have a similar setup in that my MBP 17" 4,1 has a replacement BT/WIFI. The two bits I needed to change for everything to work were the IOBluetooth.framework and whitelisting in the IO80211Family.kext for my board ID.
(CAT also says they were whitelisting in IOBluetoothfamily.kext, but I haven't been able to find where they were doing that).
You have to disable SIP to do the edits. Pretty sure you can re-enable SIP once you've completed them.
Not sure if you need the specifics, but I'll put them here in case others do.
🙂
For the SystemParameters.plist, you need to copy it somewhere else (make a backup of the original) - if you look at the file, you'll see the sections for the systems that DO support Continuity don't even have a "ContinuitySupport" section - so, just delete those bits for your card.
e.g.
<key>Mac-F221BEC8</key>
<dict>
<key>ContinuitySupport</key>
<false/>
<key>DID ProductCode</key>
<integer>18954</integer>
</dict>
becomes:
<key>Mac-F221BEC8</key>
<dict>
<key>DID ProductCode</key>
<integer>18954</integer>
</dict>
You need to be navigated to the path
(/System/Library/Frameworks/IOBluetooth.framework/Versions/A/Resources)
in terminal as well - so you can fix the ownership and permissions on the file:
sudo chown root:wheel SystemParameters.plist
sudo chmod 644 SystemParameters.plist
Presuming you have a Broadcom card for this next bit.
For the IO80211Family.kext, the whitelisting is in the /Contents/PlugIns/AirPortBrcm4360.kext/Contents/MacOS/AirPortBrcm4360 module. That's the file you need to hex edit and look for
mac- (board ID's) and change one of the existing values in each section to your board ID (zero filled with 0's to the right - so it would look like Mac-F221BEC800000000
There's actually two sections that your board-id must be in.
Once you search all the way down to "mac-phi-state", you're done. Save it.
(again, make a backup of the original, copy the IO80211Family.kext to your desktop, do the edits there and copy it back to S/L/E) - again, you need to be in terminal to repair the permissions to the file, then rebuild your kext cache (or use kext utility to do this work for you)
🙂
sudo chmod 755 IO80211Family.kext
sudo chown root:wheel IO80211Family.kext
sudo kextcache -system-prelinked-kernel
sudo kextcache -system-caches
Then reboot.
You can then re-enable sip, after the reboot (I'd make sure everything's working the way you want first)
🙂