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

发布于

众所周知之前的 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** | ✅ 本项目选择 |

项目地址:[GitHub - TetherKit](https://github.com/XiaoMiku01/TetherKit)

---

原文链接:[点击查看](https://www.v2ex.com/t/1229902)

评论

暂无评论。