Replies: 7 comments 3 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.
-
Beta Was this translation helpful? Give feedback.


Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
pixel 8今天更新到A15 QPR2,内核6.1.99。默认编译参数还是缺少
CONFIG_BPF_STREAM_PARSER=y,似乎dae后面的改动比较多,目前会出下图的错误,需要熟悉android开发的佬看看如何解决。-----------分割线-----------

现版本dae需要kernel大于5.17才能支持bpf_loop,安卓主线是5.10、5.15、6.1,6.1内核目前只在pixel 9系列上搭载,pixel 8大概需要等到A15 QPR2,所以目前手头的机器没办法继续测试。国产品牌机器内核版本不太清楚,不知道是否有6.1的机器。(开放内核源码和可以root的机器大概只有小米和oneplus?)
-----------分割线-----------
由于系统和内核差别很大,我碰到的坑你不一定会碰到,或者你会有新的坑。
编译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