专栏首页云深之无迹通过USB连接方式共享安卓的网络连接

通过USB连接方式共享安卓的网络连接

通过USB Tethering方式共享Android的Internet连接

现代的手机都支持Wi-Fi tethering,也就是通过Wi-Fi让手机的数据网络连接共享给电脑使用,也称为”无线热点”(HotSpot)。此外,你在使用iPhone的时候,会发现一个非常有用的功能,就是通过USB连线来共享数据网络的Internet连接,而且对于苹果手机和苹果电脑是即插即用的。

实际上,Android也支持通过USB连接共享网络,这种技术称为 USB Tethering ,设置方法: Settings => Network & internet => Hotspot & tethering => USB tethering

但是,很不幸,此时将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。

安装

从源/二进制

  • 获取安装软件包(自己下载或构建安装软件包)
  • 运行安装包

从自制

brew cask install horndis
sudo kextload /Library/Extensions/HoRNDIS.kext

组态

  • 假设安装过程没有错误,请在安装完成后通过USB将手机连接到Mac。
  • 进入手机上的设置菜单。
  • 在“连接”部分的Wi-Fi和蓝牙下方:
    • 选择“更多...”
    • 选择“网络共享和便携式热点”
  • 选中“ USB绑定”框。它应该闪烁一次,然后进行稳定检查。

解除安装

  • 删除HoRNDIS.kext下面/System/Library/Extensions/Library/Extensions文件夹
  • 重启你的电脑

建立源

  • git clone 仓库
  • 只需在checkout目录中运行xcodebuild就足以构建kext。
  • 如果您希望将其打包,则可以运行make将其打包到build /目录中

调试和开发说明

本节包含有关开发和调试驱动程序的提示和技巧。

USB设备信息

Mac OS系统菜单 -> 关于本机 -> 系统报告 -> 硬件 / USB 列出OS可以识别的所有USB设备。不幸的是,它没有提供USB描述符。

lsusb -v 它打印USB配置,例如接口和端点描述符。您可以为所有设备打印它,或将输出限制为特定的设备。为了运行此命令,您需要安装usbutils

  • Homebrew用户:brew install mikhailai/misc/usbutils不要安装Homebrew Core的lsusb软件包,这是同名的另一个实用程序。
  • Macports用户: sudo port install 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 OS El Capitan(10.11)和更早版本上,日志消息进入/var/log/system.log。从Sierra(10.12)开始,这些消息将不再被写入system.log,而可以通过以下方式查看:

  • GUI,使用控制台应用程序,位于Utilities文件夹中。您需要process:kernel在搜索框中输入以过滤相关消息。
  • 命令行,使用log命令。例如: log show --predicate process==\"kernel\" --start "2018-12-11 22:54:00" 起始值必须是过去的几分钟,因此它不会淹没控制台。这是一个方便的命令,可打印过去3分钟的消息: log show --predicate process==\"kernel\" --start "$(date -v-3M +'%F %T')"

我观察到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)上无法直接安装,因为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,重启以后,将启用了 USB tethering 设置的Android手机通过USB数据线连接到Mac电脑上,此时在Mac的 Networks 设置中会看到一个 Etnernet Adaptor :

此时,如果你的Android能够通过Wi-Fi上网或者移动数据网络上网,则你的Mac电脑也能够通过USB数据线共享网络上网了。

注解

启用了 USB tethering 之后,虽然电脑能够通过共享Internet上网,但是,对于 手机的VPN连接是无法直接共享给电脑使用的。此时,你需要使用root过的Android手机,并结合 VPN Hotspot 才能完美使用VPN共享。

注解

Linux内核需要编译 USB Network Adapters 驱动支持,启用 Host for RNDIS and ActiveSync devices 才可以使用Android USB Tethering。请参考: Gentoo linux - Android USB Tethering

参考

  • How To Configure Android USB Tethering on Mac OS X
  • How to Tether Your Android Phone and Share Its Internet Connection with Other Devices
  • Gentoo linux - Android USB Tethering

本文分享自微信公众号 - 云深之无迹(TT1827652464),作者:小怼怼

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 在浏览器上访问USB设备

    这些非标准USB设备要求硬件供应商编写本机驱动程序和SDK,以便您(开发人员)能够利用它们。遗憾的是,此本地代码历来阻止了Web使用这些设备。这就是创建WebU...

    云深无际
  • AndroidStdio1_2

    Android库在结构上与Android应用模块相同。它可以提供构建应用所需的一切内容,包括源代码、资源文件和Android清单。不过,Android库将编译到...

    云深无际
  • Tiny85哒哒哒哒

    Digispark USB Development Board是一块基于ATTiny85微控制器的开发板。2012年底主创团队在kickstar上发起了众筹,并...

    云深无际
  • 解密BadUSB:世界上最邪恶的USB外设

    作者 Rabbit_Run 概述‍‍ 在2014年美国黑帽大会上,柏林SRLabs的安全研究人员JakobLell和独立安全研究人员Karsten Nohl展示...

    FB客服
  • 这年头真的还有USB设备是安全的吗?

    * FreeBuf专题报道,作者/欧阳洋葱,未经许可禁止转载 在正式开谈USB安全之前,还是照例来分享一个很有意思的案例:2014年年末,来自Reddit的报道...

    FB客服
  • 别让 USB 传输速度影响 Android 开发效率

    迭代速度是构建高质量 Android 应用的关键要素。处理的速度越快,应用程序的体验就越顺畅。这篇文章将和大家聊聊如何优化部署时间。

    Android 开发者
  • USB 4产品将于2020年末上市 提供40Gbps速率与100瓦供电

    根据此前的消息,基于Thunderbolt 3(雷电3)技术的USB 4接口与此前的USB 3.2相比带宽提升了一倍,能够提供40Gbps的带宽与100W的供电...

    Debian社区
  • Win7_装机记录

    windows usb installation tool 官方版 下载-解压-管理员运行

    歪先生
  • 研究人员演示:用USB设备能够秘密窃取临近USB接口的数据

    只需要用一个稍作伪装过的USB设备,插到电脑的USB口中,它就能监听临近USB接口泄露出出来的电信号,如果临近USB口接了键盘的话,那么通过对其进行分析就能获取...

    FB客服
  • USB Killer 2.0:新版本摧毁计算机更轻松

    各位是否还记得USBKill吗? 今年3月份,俄罗斯安全研究员Hephaestos(id:h3phaestos)设计了一个奇特的U盘,当把U盘插入计算机时它可以...

    FB客服

扫码关注云+社区

领取腾讯云代金券