AndroidでUSBテザリング on MacOS11(Big Sur)

通話も出来て、高速大容量データ通信利用できるモバイルキャリアも増えてきて、ネット中継だけじゃなく、スタッフコミュニケーションを無線代わりにメッセンジャーアプリ使ったり、突然アプリ通話に着信あったり、都度Wi-Fiルータをオンにして接続設定したりするより、スマートフォンやテザリング機能使った方がとってもスマート

テザリング方式

スマートフォンだけで完結できれば良いが、ZoomやSlackなど大画面で全機能が利用できるPC利用が優れてるのは当然の事
そこで必要なのはテザリング
スマートフォンには主に次の3種類のテザリング方式が備わってる

・Wi-Fiテザリング
もっとも一般的なテザリングでSSIDとパスワード設定してどんなOSでもすぐにネットに繋げられる

・Bluetoothテザリング
ペアリングする段取りは必要だけどこれもBluetoothオンすればヘッドフォンと同じ要領で使える

・USBテザリング
今回採用のするのはこの方式
次項詳しく考察してみる

USBテザリング

今や小学生でも知ってるWi-Fiじゃなく、なぜUSBなのか

当たり前になったWi-Fiが世の中に飛びまくってて電波干渉が起きてる
実際Wi-Fiアナライザ的アプリでサーチみれば一目瞭然
今や人がどこにいるかまで分かってしまう技術もあるけど、
ウイルスを可視化するのはまだまだ先かな

そして速度

Bluetooth5.0 : 48Mbps
Wifi802.11n : 600Mbps
USB3.0 : 5,000Mbps

圧倒的数値
規格はアップデートしていくけど、
他とは変わりようのないのは線が有ると言う事

パケットロスが大量に発生する無線ではなく、
しかも充電もされ続ける

まあケーブルを持ち歩いて、利用時には繋げたままにする煩わしさがあるのだけど、忘れちゃった時は仕方なくWi-Fiテザリングすればよし

さらにはセキュリティ
Wi-FiもBluetoothもオンにすると、ここにいるよ!と周囲にアピールしてしまう
パスワードこそあるけど、何度間違えてもロックされないから攻撃されなくはない
たまに本名?かは定かではないが「佐藤花子のiPhone」とかアピってしまってる人もいる
見られる事を逆手に商品PR目的、それに詐欺や罠で利用する方法もある
ステルスにして見られなく出来るテザリング端末も出てきたけど、ステルスが安全と言うのは過去の話
USBならこんな不安はなくなる

一方、USBテザリングに必要になるのはドライバ
パソコンOSに事前に入れておくソフトウェア
これが今回のテーマ

ドライバインストール

Apple製品のMacOSとiPhone/iPad、
もしくはWindowsOSとAndroidであればドライバはOS内蔵なので我々利用者の準備は不要
WindowsOSとiPhone/iPadでもだいたい入ってるiTunes(いや、入れてないかな)があれば準備不要
問題はMacOSとAndroidによるUSBテザリング

さらに問題なのはMacOS11.0 Big Surだ

MacOSのAndroid用USBテザリングドライバはこの方が開発してくれてる
https://joshuawise.com/horndis

しかし2018年を最後に更新は止まってる
でもUSBテザリングの仕組みはこの数年で大きく変わらない

さらに少し新しい2019年更新版を見つけたのでこちらをインストール!
https://github.com/jwise/HoRNDIS/files/3719733/HoRNDIS-9.2-catalina_install.pkg.zip

メッセージ通り進めて問題なく完了
OS再起動して、AndroidとUSB接続!

あれ、ネットワーク設定にAndroidが出てこない、、

手動で読み込んでみる

% sudo kextload /Library/Extensions/HoRNDIS.kext
Password:
Executing: /usr/bin/kmutil load -p /Library/Extensions/HoRNDIS.kext
Error Domain=KMErrorDomain Code=71 "Unsupported Error: one or more extensions are unsupported to load Kext com.joshuawise.kexts.HoRNDIS v9.2 in executable kext bundle com.joshuawise.kexts.HoRNDIS at /Library/StagedExtensions/Library/Extensions/HoRNDIS.kext" UserInfo={NSLocalizedDescription=Unsupported Error: one or more extensions are unsupported to load Kext com.joshuawise.kexts.HoRNDIS v9.2 in executable kext bundle com.joshuawise.kexts.HoRNDIS at /Library/StagedExtensions/Library/Extensions/HoRNDIS.kext}

サポートされないとエラー
この情報によるとSIPをいぢるといいらしい
https://github.com/jwise/HoRNDIS/issues/132

今の状態は?

% csrutil status
System Integrity Protection status: eabled.

なるほど、では無効化を

% csrutil disable
csrutil: This tool needs to be executed from Recovery OS.

復旧OSから実行するとな
ではOSシャットダウンしてそれを起動
手順はこちら
https://support.apple.com/ja-jp/HT201314

復旧OSからのターミナルで改めて実行

% csrutil disable
Successfully disabled System Integrity Protection. Please restart the machine for the changes to take effect.
% csrutil status
System Integrity Protection status: disabled.

変更されたから再起動だな

% reboot

OS起動後に再びAndroidとUSB接続してAndroidのUSBモードをUSBテザリングへ変更すると
をを!Macのネットワーク設定にアイコンが現れた
そして、ネット接続、行けた!

試しにドライバをロードしてみても

% sudo kextload /Library/Extensions/HoRNDIS.kext
Password:
Executing: /usr/bin/kmutil load -p /Library/Extensions/HoRNDIS.kext
%

エラーなし
これで電池や電波干渉、それに他人にSSID見られちゃう心配もなくネット中継からオンライン会議もどこでもできちゃう!

しかし、ここからが課題
SIPの無効化設定を戻してOSとしても安全化を図ろうと、復旧OSから有効化するとまたUSBが認識しなくなる
せめて部分無効化をするのにオンオフチューニング
パラメタは次の6つ
kext
fs
debug
internal
dtrace
nvram

RecoveryOS
# csrutil enable --without kext --without fs
csrutil: requesting an unsupported configuration. This is likely to break in the future and leave your machine in an unknown state.
System Integrity protection in on.
Restart the machine for the changes to take effect.
# reboot

NormalOS
%  csrutil status
System Integrity Protection status: unknown (Custom Configuration).

Configuration:
 Apple Internal: disabled
 Kext Signing: disabled
 Filesystem Protections: disabled
 Debugging Restrictions: enabled
 DTrace Restrictions: enabled
 NVRAM Protections: enabled
 BaseSystem Verification: enabled

This is an unsupported configuration, likely to break in the future and leave your machine in an unknown state.

% sudo kextload /Library/Extensions/HoRNDIS.kext
Password:
Executing: /usr/bin/kmutil load -p /Library/Extensions/HoRNDIS.kext
%

よし、ここまでの絞り込みで安定運用に!

カテゴリーtech

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です