更新於 2024/10/16閱讀時間約 4 分鐘

在 M1 Mac 上連接 Android 手機進行USB tethering 網路分享

對數位遊牧的人來說網路分享的能源消耗在移動過程中是個需要留意的問題,自從換了 M1 的 Mac 之後,雖然電腦的續航力大增,但是因為沒辦法再使用 Android 手機進行網路分享,反而讓手機電力變成瓶頸,而且 wifi 基地台分享的方式產生的熱相當高,對手機也會有比較大的傷害,前陣子長時間這樣子使用經常導致手機過熱而被迫中斷網路導致會議斷掉或是必須暫時停工,於是今天決定卯起來研究到底要怎麼搞才可以在 M1 上面使用 HoRNDIS 進行 USB tethering,還好努力了一個早上總算是成功了🤘🤘🤘
以下的方式是可以透過自己把 package 編譯出來安裝的方式,比較不會有下載不明來源檔案的風險,如果懶得自己編譯可以跳到最下面的參考資料
M1 解決了電腦續航力的需求,但網路續航力反而變成瓶頸 🤣

警告:接下來的步驟會降低系統的安全性限制,且需要基本程度的開發能力,至少對終端機與輸入指令必須不感到排斥

步驟一、調整安全性設定

  1. 關閉 mac
  2. 輕按電源鍵打開 mac,再按住電源鍵不放,會進入 system recovery 模式,如果沒有成功進入可能是沒有按好,可重開再嘗試看看
  3. 選擇「Options」並繼續
  4. 選擇「Utilities」然後按「Startup Security Utility」
  5. 登入帳號
  6. 選項當中,選擇「Reduced Security」並勾選其他兩個項目,按下OK
這個步驟會讓有簽署的系統軟體可以使用 kernel extension,第二個選項有可能可以不用勾選,需要再測試看看
7. 從選單按下 「Quit Startup Security」 離開畫面,並打開「terminal」 8. 變更 SIP (System Integrity Protection) 的設定
csrutil enable --without kext
按下 y 然後 enter 9. 關閉 terminal 並重開 mac

步驟二、安裝 HoRNDIS

1. 下載 thpryrchn 所調整的 HoRNDIS
> git clone https://github.com/thpryrchn/HoRNDIS.git -b BigSur
2. 如果已經有安裝 xcode,直接 build,沒有的話請去下載安裝
> cd HoRNDIS 
> make
成功的話應該會看到一大串字包含,如果失敗的話可以留言或是在參考資料 [2] 的 github issue 裡面回報
...
** BUILD SUCCEEDED **
...
3. 移動到 HoRNDIS/build/pkg,並打開 HoRNDIS-kext.pkg 4. 安裝並透過 security preference 授予權限 5. 重新開機 6. 檢查是否正常運作,連接 android 手機打開 usb tethering
> kextstat | grep 
HoRNDIS Executing: /usr/bin/kmutil showloaded No variant specified, falling back to release > ping google.com 64 bytes from xx.xx.xx.xx: icmp_seq=0 ttl=54 time=21.439 ms 64 bytes from xx.xx.xx.xx: icmp_seq=1 ttl=54 time=46.620 ms

參考資料

[1] 如果不擔心裝到奇怪的東西可以用這個網站提供的 kext file https://elitemacx86.com/threads/how-to-use-android-usb-tethering-on-m1-macs.747/
[2] 如果是可以使用 terminal 且有裝 xcode 的朋友可以走跟我一樣的這條路徑 https://github.com/jwise/HoRNDIS/issues/135


分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.