2011年中MacBookAir和MacMini开启Handoff教程

好久没写教程了,最近10.10刚发布,于是大家都升级上去了,咱当然不会落后啦虽然已经用了快大半年的beta。
ok废话不多说,简单说下咱的状况,咱的两台Mac mini都是2011年中款的(虽然是2012年中才买的谁知买完没几个月就升级了,坑爹),虽然支持10.10而且内置也有蓝牙4.0,但是Apple官方却屏蔽了Hand off功能,导致就连和iOS的AirDrop都无法使用。
于是网上查了下资料,似乎可以通过一些方法进行破解,当然了,由于属于比较复杂的操作,虽然难度并不大,但是如果操作失误会导致无法正常开机等问题,虽然作为专业人士自有应对方法(在文章的最后会给出一些操作失误之后的解决方法),不过还是建议各位自己小心谨慎为好。不过如果你对unix基础知识都没有的话,建议还是不要冒险为好(比如那些连终端是什么都不知道的人)。
同样悲惨的还有2011年中的MacbookAir,虽然我没这设备,不过方法都是一样的。至于其他更旧的设备那我也没办法了,如果你觉得你自己可以更换蓝牙模块然后打算手动修改文件尝试的话也行反正后果自负吧。

哦对了红色字体标出⚠注意的,都是及其需要谨慎的地方,这些地方没有按照步骤来做错了,轻则hand off无法正常开启,重的话会导致系统无法正常开启。所以要特别小心。

 

先简单说一下,其实要破解hand off就是修改两个文件,类似于win下的驱动那样的东西,把不兼容的设备型号写到认可的型号就是。
开始之前先要准备两个软件,分别是0xEDKextDrop。0xED本身是个Hex编辑器,如果你已经有类似软件又不想下载这个的话可以用你自己的,前提是你会用的话。
上面两个网站在墙内比较难访问,于是我专门丢到我自己的服务器方便大家下载了:戳我下载

接着打开终端,执行以下命令:
sudo nvram boot-args="kext-dev-mode=1"
完了之后重启你的电脑,这个命令时为了开启kext的开发调试模式。

接着到/System/Library/Extensions/里,找到这两个文件:
IO80211Family.kext
IOBluetoothFamily.kext
拷贝到桌面上,然后删除原来的文件。⚠注意拷贝出来是为了方便编辑(不用老重复输入写入密码)而不是为了备份,建议单独拷贝到别的地方备份,当然如果你忘记备份了我后面也会有我自己的备份文件。

接下来继续在终端中执行:
ioreg -l | grep "board-id" | awk -F\" '{print $4}'
这时候会得到你的board-id,应该是主板编号?是一串“Mac-”开头的东西,比如Mac-7BA5B2794B2CDB12,当然这个每台机器都不一样。
把这个记下来,一会会用到(不要关掉终端窗口就是了)。

接着打开到~/Desktop/IO80211Family.kext/Contents/Plugins/AirPortBrcm4360.kext/Contents/MacOS/,然后用0xED打开AirPortBrcm4360文件。
然后cmd+f或者直接在右上角的text搜索中输入”Mac-“(无引号)然后只按一次回车!
スクリーンショット 2014-10-18 3.16.13
这是搜索到的第一个结果,比如Mac-C3EC7CD22292981F(如上图红框内第一行开始的那里,字符不一定对得上但是基本类似),接着把刚才在终端中获取的那串board-id比如Mac-742912EFDBEE19B3覆盖过去。⚠注意由于修改这类文件不能多一个字符也不能少一个字符,比较保险的方法就是再用cmd+f调出搜索面板,然后上面输入搜索到的结果比如Mac-C3EC7CD22292981F,下面输入覆盖上去的内容比如Mac-7BA5B2794B2CDB12,接着按“REPLACE”覆盖按钮。

接下来还没完!继续搜索”Mac-“(无引号),找到最后一个结果(如上图红框内结尾那里,基本上包含”Mac-“的内容就那几行),然后同样的方法替换成你的board-id比如Mac-7BA5B2794B2CDB12。

完成之后点击左上角红色圆圈的SAVE保存下文件。

接着转到~/Desktop/IOBluetoothFamily.kext/Contents/MacOS/里,同样用0xED打开IOBluetoothFamily文件。
搜索MacBookAir
然后会得到这样的结果:
スクリーンショット 2014-10-18 3.16.30
'MacBookAir4,1''MacBookAir4,2''Macmini5,1''Macmini5,2''Macmini5,3'
这里要手动改成:
'MacBookAir1,1''MacBookAir1,1''Macmini1,1''Macmini1,1''Macmini1,1'
⚠注意!同样由于这类文件不能多一个字符也不能少一个字符,所以及其建议手动修改,既用鼠标选中单个数字之后手动修改那个数字,不要直接复制整个粘贴上去会导致文件错误的。

然后同样的左上角SAVE保存文件。然后0xED就可以关掉了。

接着打开KextDrop,将桌面上的IO80211Family.kext拖入,点击install按钮安装,绿色字提示安装成功后再拖入IOBluetoothFamily.kext文件安装。
⚠注意!不能同时拖入两个文件,会导致无法正常识别和安装从而无法正常开启Handoff功能!

最后回到命令行,执行:
sudo kextcache -system-prelinked-kernel
需要等得久一点,要等一大串东西出现:
スクリーンショット 2014-10-18 2.49.57
然后继续输入:
sudo kextcache -system-caches
这个执行倒是挺快的。

然后重启你的电脑。

这个时候应该可以在系统偏好设置面板的通用里最底下看到Hand off的开启选项了:
スクリーンショット 2014-10-18 3.08.46
这个时候AirDrop已经可以和iOS正常链接了:
スクリーンショット 2014-10-18 3.12.05
到了这步,Hand off已经完成了80%了,但是部分重点的功能比如网络共享和app同步等等还是没办法正常使用,,接下来需要做的是:

系统偏好设置里的iCloud,注销。
iOS上的iCloud,注销。
重启Mac和iOS设备。
Mac的系统偏好设置里的iCloud,登录。
iOS的iCloud,登录。

此时Hand off就应该能正常工作了的。

疑难解答:
如果修改文件出错了导致无法开机了怎么办:
你要知道这次只修改了2个kext驱动文件,所以出现任何问题只需要替换回原来的两个文件即可。
方法一:有多台Mac的话,使用雷电活着火线进入目标磁盘模式,挂载到另一台Mac上替换回原来的kext文件即可。
方法二:还有一台Mac的话,首先先把原来的kext文件存到U盘里(可以用其他电脑,或者手机),接着进入恢复模式(shift+cmd+r启动),打开命令行,cd+ls查看并引导进入到U盘里,用cp命令拷贝文件到对应路径。
方法三:实在没辙的情况下进入恢复模式或者网络恢复模式重装系统吧。

附原始kext下载:戳我

附两张开启Hand off之前和之后的对比图:
スクリーンショット 2014-10-17 22.50.11
スクリーンショット 2014-10-18 3.08.41

另外证明下我的Mac mini是2011 mid的:
スクリーンショット 2014-10-18 3.08.48

基本就是这样,有什么问题再说吧。

最后参考资料(原始来源):http://forums.macrumors.com/showpost.php?p=20015070&postcount=609

5 thoughts on “2011年中MacBookAir和MacMini开启Handoff教程

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*

:b1 :b2 :b3 :b4 :b5 :b6 more »

Note: Commenter is allowed to use '@User+blank' to automatically notify your reply to other commenter. e.g, if ABC is one of commenter of this post, then write '@ABC '(exclude ') will automatically send your comment to ABC. Using '@all ' to notify all previous commenters. Be sure that the value of User should exactly match with commenter's name (case sensitive).