作为一台笔电,Macbook 至少是个端得上台面,性能也有一定等级的笔电,当你拥有一台 Macbook,出门有时需要靠手机分享网络时,只要拿的是 iPhone ,一般来说没有什么问题,同样是 Apple 自家产品,搭配上自然是天衣无缝。但如果是拿着 Android 要分享网络,虽然用热点一样可以分享,但为了让手机省点电力,用 USB 对接分享网络会是个更好的方案,但 Mac 好像跟 Android 上辈子以来就不熟似的,怎么插都没有反应?这时候笔者通常会用一个第三方的驱动程式 HoRNDIS ,搞定从 Android 透过 USB 分享网络给 Mac 的困扰:
▲HoRNDIS 其实就是一个补足 Mac 原生不支援 RNDIS 网络协定的驱动程式,这个网络协定在 Linux 跟 Windows 上完全不需要另外安装,但 Apple 因为规格就是跟别人不同,以至于 Linux 跟 Windows 都支援 Android 手机透过 USB 分享网络,但 Mac 不支援 RNDIS 这个协定,自然原生不支援 Android 以 USB 分享网络。
Macbook 很久以前就抛弃了实体网络孔,要连上有线网络,你得准备一个适用 Mac 平台的 USB 网络卡,但如果是带到星巴克去上网,除了店内自己的网络以外,最能相信的就是自己的移动网络,iPhone 跟 Android 手机都可以透过热点分享无线网络给 Mac 使用,但这个方案不适合长时间使用,因为手机的电池会随着分享热点的时间而慢慢耗尽。有 iPhone 的人这时候就会懂得拿出传输线往 Macbook 上一接,直接透过 USB 分享无线网络,这个方案能拥有不错的速度,而且手机吃着笔电的电池,因此在笔电电池耗尽前,手机能够透过传输线充饱电。
但 Android 很不幸的没有这种待遇,虽然 Android 用 USB 接 Windows 笔电也可以分享网络,但到了 Macbook 上肯定碰壁。因为 Macbook 本来就不“认得”Android 手机的传输模式,一种叫做 RNDIS 的传输协定,就算插上 USB 也只是拿 Mac 的电池充饱 Android 手机,那么,我们需要一个“媒人”把 Android 手机的 传输协定 介绍给 Macbook 认识,这个“媒人”就是这次要介绍的HoRNDIS。
HoRNDIS是一个让 Mac 能认得 Android USB 网络分享模式的驱动程式,他的开发者是 Joshua Wise ,一位利用闲暇之余开发这个驱动程式分享给大家用的好心工程师。根据他的自述,从 2011 年起他就在 NVIDIA 任职,而他一直在找一个可以接手开发HoRNDIS 的志愿者,至少笔者截稿前是这么写着的。
显然 Joshua Wise 大大可能太忙了,这支驱动程式从 2012 年 11 月发表,而这个让无数 Android 手机与 Macbook 使用者不由得五体投地,只差没大喊“感恩 Joshua,赞叹 Joshua”的超好用驱动程式,也随着 macOS 的改版而跟着更新,不过目前看来,这个程式暂停了有点久的时间,上次更新的时间是 2016 年 10 月 16 日,距离今天差不多有 11 个月又三个礼拜的时间未见任何更新。因此笔者认为对 macOS 10.12 的电脑来说,这支驱动程式是可用的,而 mac 10.13 的部分个人认为可用,但未必适用每个人的情况。文末我也会教大家怎么把驱动程式从 Mac 上移除掉。
首先我们到HoRNDIS 的 Github 网页来下载:
这个档案的副档名是 .pkg ,在 Mac 电脑内可以直接双击档案开启安装程式:
一般来说,打开时多半会看到这个画面,如果不会就不用管它,会出现这个画面的话,其实解法很简单:
只要到“系统偏好设定”内的“安全性与隐私权”画面中,就会看到一行“因为它不是来自已识别的开发者”,通常只要按下“强制打开”的按钮就可以继续,如果不行,就要采取其他方案:
前面的方法不可行时,就打开终端机,输入“sudo spctl –master-disable”,然后按下 enter ,再输入管理者密码,这样一来程式就可以继续安装,而这段指令的目的是将“安全性与隐私权”的限制项目通通取消,不管是不是已识别的开发者通通可以执行,如果要取消这个效果,就要到“安全性与隐私权”画面中解开左下角锁头,将选项改为“App Store”或“App Store 和已识别的开发者”即可:
接着回到安装程式,虽然中间一堆英文,但这些只是告诉你这个第三方驱动程式的作用跟适用操作系统版本,按“继续”进行下一动:
看到这个画面不用多说,直接安装就好:
完成安装时又会看到一堆英文,其实是在告诉你怎么让 Android 分享网络给 Mac 的过程,可以按“关闭”结束安装程式:
有些系统在结束安装程式时会看到这个画面,这里随个人喜好,笔者自己的习惯是保留下来塞进外接硬盘或云端空间,以免哪天需要的时候,这个计划也解散了:
安装完以后,笔者还是会预防万一一下,再去看看“系统偏好设定”内的“安全性与隐私权”有没有被档权限的讯息,有时后东西弄了半天,结果是卡在这边没过的时候,心情会有一瞬间觉得赌博般的蓝色。而果不其然,笔者自己的电脑竟在安装结束后又被挡到一次。幸好这次不用强制开启:
然后自己手动重开机,Mac 的关机、重开机等指令都在苹果按钮选单内,记得还在编辑的文件、报表、简报要记得存档。重开机之后,进入系统,按一下左上角的黑色苹果按钮,选择第二项“系统偏好设定”点进去:
开启系统偏好设定的视窗后,点一下“网络”的图示进入设定区块:
里面已经可以看到“Android Phone”的连线选项了,只是我们还没把手机插上去,如果没看到,可能是因为安全性问题被拦截下来,我们只要解除这个拦截就可以继续使用:
将手机透过传输线连接到 Mac 上,手机通常会跳出 USB 连线选单,选择“USB 网络共用”,通常只需要十秒左右的时间,手机就会设定成透过 USB 分享网络的模式:
然后回到 Mac 上,到“系统偏好设定”内的“网络”确认是否连线,如果跟画面中一样看到 Android Phone 的连线变成绿灯,就代表网络分享成功:
分享成功后,只要手机还连在 Mac 上,并且维持分享网络的状态,Mac 这边就可以透过手机上网,除此之外,Mac 也会供电给手机,让手机能够缓慢恢复电量。至于速度表现如何,笔者将撰文前测试网络速度的数据让大家参考,当时笔者人在台北市复兴北路附近,手机显示 4G+ 网络,代表笔者所在的位置能收得到复数频道的电波,因而有载波聚合的效果。网络速度也比 4G 快一些:
▲手机上测得下载 4,132.2 kB/s ,上载 961 kB/s 的速度
▲电脑端测得下载 3,995.8 kB/s,上载 949.1 kB/s ,数据上看来相当接近,但速度比手机上的测试的速度略慢
到这里我们已经成功安装了 HoRNDIS 到 Mac 系统中,笔者自己的笔电已经更新到 macOS 10.13 ,但这个小小的驱动程式仍然让我的笔电可以透过 Android 手机分享网络。只是这个驱动程式已经是一年前的东西,新版本不见别的开发者接手继续开发,或是可能还没完成,截稿前只能抓到旧版本的驱动,虽然在 macOS High Sierra 环境下仍可使用,但过去安装时通常会自动提示重新开机跟解除安全权限,在新系统上几乎都看不到。
而如果有一天遇到了系统问题,想要试着解除安装驱动程式的时候,你可以照着下列步骤来删除驱动程式。
首先要先把手机的连结断开,接着我们打开 Finder 视窗:
看到 Finder 视窗后,按下热键 Command + Shift + G ,会看到有条“前往档案夹”的下拉画面显示出来:
接着在框框内输入 /System/Library/Extensions ,输入完毕按下“前往”:
你会在画面中看到一大堆白色乐高积木,那些大多数是驱动程式:
接着我们在 Finder 视窗左上角的“搜寻”框框中输入HoRNDIS.kext,然后点一下 Extensions ,很快就搜寻到一个同名的白色乐高积木:
把白色乐高积木拖进垃圾桶,中间可能会要求输入管理密码,就照实输入就行:
接着再次按下热键 Command + Shift + G ,在框框内输入 /Library/Extensions :
一样在“搜寻”框框中输入HoRNDIS.kext,寻找出这个档案,然后丢进垃圾桶:
到这里,你已经几乎完成你所有的解除安装过程,最后的步骤,就是重新开机:
等到开机进入系统,你就完成了 HoRNDIS 驱动程式的解除安装,虽然在“系统偏好设定”内的“网络”中,仍可以看到 Android Phone 的连线选项,但驱动已经移除,就算 Android 手机设定分享模式,也无法再分享网络给 Mac 了。
其实 HoRNDIS 称不上完美无缺,他不是商业软件,没有整个团队的开发者来维护这个驱动程式,但也因为不是商业软件,只要有心大家都可以看他的源代码,甚至接手继续修改。软件本身也基本上都是免费,除了更新基本上已经半停止以外,在 macOS High Sierra 系统下已经是个相当棒的 RNDIS 驱动程式。后续的维护可能有开发者愿意接手,或许就这么放下了,但对同时使用 Android 手机跟 Macbook 电脑的使用者来说,Joshua Wise 所做的贡献何其伟大。也希望这个软件能有机会继续维护下去,让更多人使用到这个体积不大,却让 Mac 使用者多了一个使用 Android 分享网络的方式。