目次

Big SurでAndroidテザリングをできるようにする(HoRNDIS利用)


以前に対応したはずが、いつの間にか利用できなくなっていたので、再度設定して、利用できるようにした

以前に、こちらで対応したはずの、OSX Big Sur 環境でのAndroid端末のテザリングができなくなってしまっていたので、再度設定をしてテザリングできるようにしました。

Big SurにアップデートしたHoRNDISを再インストールする

OSX Big Sur にアップデートしたところ、Android端末でテザリングができなくなってしまった。

いつから利用できなくなっていたのかはわかりませんが、今回の手順で問題なければ、おそらく今後のOSアップデートでも対応可能なのではないかなと思います。

注意
  • Mac端末でのAndroidデバイスを利用したテザリングは公式サポート外です。
  • 以下の作業は、ご自身の責任の元行ってください。

Android端末を利用してMac OSXでテザリングを行うためにHoRNDISをインストールする。

以前に試みた対応はこちらでしたが、いつの間にかこれではうまくいかなくなっていましたので、改めてGithubのIssuesを確認しているとまさに、というものが上がっていました。

macOS 11 Big Sur Support? · Issue #132 · jwise/HoRNDIS

I am hesitant of upgrading to macOS 11 Big Sur since they have deprecated certain functionalities that seem to be necessary fo HoRNDIS to work. Here is a list: https://developer.apple.com/support/k...

結論から言うと、このIssuesの中のこちらの内容でうまく行きましたが、そのままではうまくいかなかったので、まとめておきます。

HoRNDIS-9.2.pkg をダウンロードして、ハッシュ値を確認する

こちらからHoRNDIS-9.2.pkgをダウンロードして、ハッシュ値を確認します。

先程のIssuesではsha256sumコマンドを利用する事になっていましたが、私の環境にはなかったため、shasumコマンドを利用します。

1
2
shasum -a 256 HoRNDIS-9.2.pkg
#15f5c6cbe14e5c0f11bf27172dfbcdf3b753122d128807d6bad94c8f4c2b71e1

上記のように15f5c6cbe14e5c0f11bf27172dfbcdf3b753122d128807d6bad94c8f4c2b71e1が戻って来れば、改竄されてはいないかと思われます。

spctl コマンドを利用して、developer team IDを取得する。

Catalina以降のmacOSは、Appleが公認しているソフトウェア、開発者でないとアプリが起動できなくなっています。いわゆる野良アプリの起動に制限がかかっている状態です。HoRNDISは当然、認証を受けていないので、手動で登録してあげる必要があり、まずは開発者IDを調べる必要があります。

手順通りにダウンロードできていれば、54GTJ2AU36が開発者IDとなります。その確認方法は以下となります。

1
2
3
4
spctl -avvtinstall HoRNDIS-9.2.pkg
HoRNDIS-9.2.pkg: accepted
source=Notarized Developer ID
origin=Developer ID Installer: Joshua Wise (54GTJ2AU36)

spctlSecAssessment system policy securityコマンドのことで、オプション-avvtinstallは、正確には、-a -v -v -t installを繋げたものとなります。

詳細はman spctlで確認することが可能ですが、先程ダウンロードしたインストールパッケージがインストール時に必要としている情報を出力するコマンド(だと認識しています)

リカバリモードに入って、System Integrity Protection (SIP) を無効にする

El Capitan以降のmacOSは、SIP(System Integrity Protection)と呼ばれるシステムガードが導入されています。これにより、システム根幹のカスタマイズができない仕様となっています。一時的にこちらを無効にして、HoRNDISをインストールできるようにします。

Command+Rを押しながら再起動して、リカバリモードに入る。

端末を再起動します。再起動時に、ommand+Rを押したままにしていると、リカバリモード(復旧アシスタント)が起動します。

言語選択を行なった後、ユーザアカウントを確認されますので、普段利用しているアカウントを選択します。

選択後、表示される復旧のためのプロンプトには触らず、画面上部のメニューバーから「ユーティリティ」→「ターミナル」を起動します。

ターミナルではcsrutil disableを入力します。コマンドが間違ってなければSuccessfully・・・といったレスポンスがあるはずです。

再起動後、HoRNDIS-9.2.pkgをインストールする

端末を再起動し、HoRNDIS-9.2.pkgをインストールします。インストール途中で、システム環境設定を開き、許可する旨が表示されます。

システム環境設定で許可をした後、再起動せずに再度インストーラーを起動してインストールを試みます。

再び、Command+Rを押しながら再起動して、リカバリモードに入る

再度、端末を再起動します。再起動時に、ommand+Rを押したままにして、リカバリモード(復旧アシスタント)に入ります。

先ほどと同じように、ターミナルの起動まで進めます。

ターミナルを起動後、

1
2
/usr/sbin/spctl kext-consent add 54GTJ2AU36
csrutil enable

を実行して、先程調べたDeveloper IDを登録するとともに、SIPを有効化します。

再起動して、終了

端末を再起動した後は、Android11デバイスやAndroid12デバイスが認識できるようになっているはずです。これでテザリングが可能となりました。

Anker PowerCore Fusion 10000

余談:Android 12LをPixel3aにインストール

余談ではありますが、Pixel 3aにAndroid 12L(beta)をインストールしても継続してテザリングが可能でした。ただ、horndisの問題か、Mac側の問題か、認識されるデバイス名が Pixel 3a からPixel 4になり、ハードウェアが進化した模様です(笑