通过USB Tethering方式共享Android的Internet连接
现代的手机都支持Wi-Fi tethering,也就是通过Wi-Fi让手机的数据网络连接共享给电脑使用,也称为”无线热点”(HotSpot)。此外,你在使用iPhone的时候,会发现一个非常有用的功能,就是通过USB连线来共享数据网络的Internet连接,而且对于苹果手机和苹果电脑是即插即用的。
实际上,Android也支持通过USB连接共享网络,这种技术称为USBTethering,设置方法:Settings=>Network&internet=>Hotspot&tethering=>USBtethering。
但是,很不幸,此时将Android手机通过USB数据线连接到Mac电脑上没有任何反应,完全不像iPhone开启”个人热点”的USB共享后连接到Mac电脑上即插即用。这是因为macOS没有内置HoRNDIS(the USB tethering driver for Mac OS X)。
HoRNDIS(用于Mac OS X的USB网络共享驱动程序)
HoRNDIS(发音为“horrendous”)是Mac OS X的驱动程序,它使您可以使用Android手机的本机USB捆绑模式来访问Internet。
娜娜项目网每日更新创业和副业项目
网址:nanaxm.cn 点击前往娜娜项目网
站 长 微 信: nanadh666
安装从源/二进制从自制
brew cask install horndis
sudo kextload /Library/Extensions/HoRNDIS.kext
组态
选中“ USB绑定”框。它应该闪烁一次,然后进行稳定检查。
解除安装建立源调试和开发说明
本节包含有关开发和调试驱动程序的提示和技巧。
USB设备信息
Mac OS系统菜单->关于本机->系统报告->硬件/USB
列出OS可以识别的所有USB设备。不幸的是usb共享网络,它没有提供USB描述符。
lsusb -v
它打印USB配置,例如接口和端点描述符。您可以为所有设备打印它,或将输出限制为特定的设备。为了运行此命令,您需要安装usbutils。
IO注册表
ioreg -l -r -c IOUSBHostDevice
该命令列出了所有USB设备下的所有Mac OS IO注册表信息。与lsusb不同,ioreg讲述了Mac OS如何识别USB设备和接口,以及如何将驱动程序与这些接口进行匹配。在-r -c IOUSBHostDevice限制输出到USB设备;要获取完整的操作系统注册表,请运行ioreg -l。
操作系统日志
LOG(….)遍布HoRNDIS代码的语句调用IOLog函数。在Mac OSEl Capitan(10.11)和更早版本上,日志消息进入/var/log/system.log。从Sierra(10.12)开始,这些消息将不再被写入system.log,而可以通过以下方式查看:
我观察到Mac OS日志记录不可靠(尤其是在Sierra中)。在某些情况下,消息可能会出现乱码(看起来像不良的多线程代码)。在其他情况下,GUI或命令行可能丢失所发出的消息。有时,重新加载驱动程序可能会解决此问题。
https://github.com/jwise/horndis
注解
HoRNDIS is a kernel extension (“kext”) that makes it possible to use your Android phone’s built-in USB tethering support on your Mac OS X system.
由于HoRNDIS是内核扩展,所以在Catalina (macOS 10.15)上无法直接安装usb共享网络,因为kext开发需要通过Apple认证。解决方法是使用unable to install on macOS Catalina #102中提供的下载包HoRNDIS-9.2-catalina_install.pkg.zip。
https://github.com/jwise/HoRNDIS/files/3719733/HoRNDIS-9.2-catalina_install.pkg.zip
安装完 HoRNDIS 驱动以后,需要重启一次macOS,重启以后,将启用了USBtethering设置的Android手机通过USB数据线连接到Mac电脑上,此时在Mac的Networks设置中会看到一个EtnernetAdaptor:
此时,如果你的Android能够通过Wi-Fi上网或者移动数据网络上网,则你的Mac电脑也能够通过USB数据线共享网络上网了。
注解
启用了USBtethering之后,虽然电脑能够通过共享Internet上网,但是,对于 手机的VPN连接是无法直接共享给电脑使用的。此时,你需要使用root过的Android手机,并结合VPN Hotspot才能完美使用VPN共享。
注解
Linux内核需要编译USBNetworkAdapters驱动支持,启用HostforRNDISandActiveSyncdevices才可以使用Android USB Tethering。请参考:Gentoo linux – Android USB Tethering
参考
娜娜项目网每日更新创业和副业项目
网址:nanaxm.cn 点击前往娜娜项目网
站 长 微 信: nanadh666