作為一台筆電,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 分享的網路
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 驅動程式
到這裡我們已經成功安裝了 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 分享網路的方式。