Replies: 6 comments 2 replies
-
报错点是为了支持 pname,注释: Lines 214 to 216 in 7ef8205 再重新编译看看! |
Beta Was this translation helpful? Give feedback.
-
目前使用fix_android分支dae可以正常运行,测试绑定wlan0接口,似乎dns或者udp连通性有问题,折中方案是配置文件里面用domain++,routing加一条l4proto(udp) && dport(53) -> must_direct,节点需要使用tcp节点非纯udp节点,分流和解析都正常,体验上基本上和电脑无差。 |
Beta Was this translation helpful? Give feedback.
-
新一轮测试,fix_android分支,绑定wlan0端口,纯udp节点也可使用,分流、日志正常,domain模式,routing加一句l4proto(udp) -> must_direct即可。 配置文件如下:
日志如下:
|
Beta Was this translation helpful? Give feedback.
-
目前看关键在于udp -> must_direct,dial_mode=ip拿不到dns,domain系列都可以,没有前面那个routing就像mzz佬说的udp不通,tcpdump -i wlan0 udp没有任何输出,加上那一句则输出正常。 测试下来目前基本可用,电脑配置拿来加一句routing即可。 netstat -lpn:
iptables -nvL:
|
Beta Was this translation helpful? Give feedback.
-
iptables -nvL -t mangle:
iptables -nvL -t nat:
iptables -nvL -t raw
|
Beta Was this translation helpful? Give feedback.
-
如果是 |
Beta Was this translation helpful? Give feedback.
-
由于系统和内核差别很大,我碰到的坑你不一定会碰到,或者你会有新的坑。
编译dae需要下载android-ndk,编译时指定
CGO_ENABLED=1 GOOS=android GOARCH=arm64 CC=/path/to/android-ndk-xxx/path/to/aarch64-linux-androidXX-clang
吃鹅需要满足文档中的内核要求,且要绑定接口需要内核版本大于5.8,安卓默认内核似乎都不满足条件,所以需要自行编译,且编译时可以顺便把KernelSU一起弄进去,大于5.8的安卓内核有5.10、5.15及6.1几个分支,意味着你的设备是GKI 2.0,我测试的有两个,出厂内核分别是android12-5.10(Zenfone9)、android13-5.10(Pixel 7a)(和你现在的系统无关,出厂内核KMI一般不变,具体参照KernelSU文档)。
common-android12-5.10分支及zf9自带内核默认开启了大部分需要的内核参数,但是缺少
BPF_STREAM_PARSER=y
和DEBUG_INFO_BTF=y
,android13-5.10默认编译DEBUG_INFO_BTF=y
,建议直接拿新设备尝试。编译GKI内核主要参照官方文档 Building Kernels ,开启
DEBUG_INFO_BTF=y
编译common-android12-5.10分支内核可以参照 安卓通用内核编译零碎记录,博文中的坑我都碰到了,在打上 [bpf-next] libbpf: stop using feature-detection Makefiles 中提到的patch后可以顺利编译到最后一步,具体参见博文,博文中最后成功编译可以出Image改boot.img刷入,但是我这里尝试各种改动都无法成功,会卡在最后一步生成vmlinux.btf,错误出在pahole,即使编译环境中link-vmlinux.sh里面已经有额外的${PAHOLE_FLAGS},依旧会出错,自行加入参数会提示option unrecognized
然后编译失败。如果是按照 BTFHubForAndroid 的步骤只会生成带btf的vmlinux。
如果是common-android13-5.10分支,只用默认内核缺少
BPF_STREAM_PARSER=y
在android上运行dae会提示FATA[00001 load eBPF objects: field TproxyLanIngress: program tproxy_lan_ingress: map listen_socket_map: map create: invalid argument (without BTF k/v)
,具体编译参照官方编译文档或者Building Pixel 7 AOSP and Android Kernel,基本就是KernelSU部署+make menuconfig后编译内核,android13内核用bazel编译或者pixel设备用build.sh编译会默认生成boot.img,关于如何生成boot.img在google的官网文档有说明。现在你有了一个符合条件的带KernelSU的内核,dae终于可以成功运行,下图的config.dae是最小配置:
为了代理本机所以需要绑定wan接口,主要是数据接口rmnetX以及无线网接口wlanX,
wan_interface: auto
不会报错但是日志无任何流量信息,wan_interface
写定上述任一接口会出现如下错误:目前进展就到这里。
Beta Was this translation helpful? Give feedback.
All reactions