查看: 2|回复: 2

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

[复制链接]

2

主题

1

回帖

8

积分

新手上路

积分
8
发表于 昨天 15:23 | 显示全部楼层 |阅读模式
众所周知之前的 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
回复

使用道具 举报

0

主题

3

回帖

6

积分

新手上路

积分
6
发表于 昨天 17:03 | 显示全部楼层
和 surge (开着增强模式和系统代理)冲突对吧,因为增强模式也是模拟网卡。
我试了下不开 surge ,关掉 wifi ,手机 usb 共享时,可以打开百度,开了 surge 就不行了,且`ipconfig getifaddr feth0` ip 也没了
回复

使用道具 举报

0

主题

3

回帖

6

积分

新手上路

积分
6
发表于 昨天 17:49 | 显示全部楼层
架构 ascii diagram 是用什么字体在本地预览的
我试了几个字体都不能对齐
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖
返回顶部