loveava
V2EX  ›  macOS

用 Opus5 实现了 macOS 用户态 RNDIS 驱动

  •  
  •   loveava · 1 day ago · 1348 views

    众所周知之前的 macOS 需要用 RNDIS 驱动就得用 jwise/HoRNDIS 需要关闭 SIP ,还是很麻烦的。 但是实际上在用户态可以直接用 libusb 在用户态实现。

    把实现目标说清楚直接交给 Opus5,一共用了两小时全部完成了。

    用了一个 vivo 手机(USB 共享网络)测试和一个开发板( USB gadget )测试都是成功的

    方案 能否纯用户态 门槛 语义层级 结论
    kext / NKE Apple 授予的 kext 签名 entitlement 或关 SIP L2 Apple Silicon 上实质不可行
    NEPacketTunnelProvider 付费开发者账号 + entitlement + App bundle L3 要自己实现 ARP/ND/DHCP
    utun root L3 同上,且要自己拆装以太头
    feth + BPF root L2 ✅ 本项目选择

    项目地址: https://github.com/XiaoMiku01/TetherKit

    3 replies    2026-07-27 16:04:32 +08:00
    SimonOne
        1
    SimonOne  
       1 day ago
    和 surge (开着增强模式和系统代理)冲突对吧,因为增强模式也是模拟网卡。
    我试了下不开 surge ,关掉 wifi ,手机 usb 共享时,可以打开百度,开了 surge 就不行了,且`ipconfig getifaddr feth0` ip 也没了
    slowman
        2
    slowman  
       23h 52m ago
    架构 ascii diagram 是用什么字体在本地预览的
    我试了几个字体都不能对齐
    Lutto
        3
    Lutto  
       1h 37m ago
    既然都 Root 了,为什么不直接用 NCM 模式呢? NCM 在 Pixel 上我记得 Pixel 7 开始就默认打开了,可以给 Mac 共享网卡使用。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5224 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 09:42 · PVG 17:42 · LAX 02:42 · JFK 05:42
    ♥ Do have faith in what you're doing.