fix(android/kernel): gomobile 改用 SagerNet fork v0.1.12 + 补 linkname tags

原 pin golang.org/x/mobile@v0.0.0-20240604...70c4c5da7d30 是失效 revision;

对照 sing-box v1.13.12 go.mod 与 cmd/internal/build_libbox,官方用

github.com/sagernet/gomobile@v0.1.12;补 badlinkname,tfogo_checklinkname0

以适配 Go 1.24 的 //go:linkname 限制。Task 2 blocker 修复。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
wangjia
2026-06-22 18:48:58 +08:00
parent 82741ce0c4
commit f298b207fe
2 changed files with 15 additions and 8 deletions
+8 -5
View File
@@ -46,7 +46,10 @@ OUT_AAR="${DIST_DIR}/libbox.aar"
BUILD_SRC="${SCRIPT_DIR}/.build/singbox"
# ── Build tags ────────────────────────────────────────────────────────────────
BUILD_TAGS="with_quic,with_utls,with_clash_api,with_gvisor"
# 功能 tags(最小集:REALITY/VLESS + Hysteria2(quic) + uTLS + Clash API + gVisor)。
# badlinkname,tfogo_checklinkname0 = Go 1.23+ 的 //go:linkname 限制放行
# (对齐 sing-box cmd/internal/build_libbox 的 sharedTags,缺则 Go 1.24 编译失败)。
BUILD_TAGS="with_quic,with_utls,with_clash_api,with_gvisor,badlinkname,tfogo_checklinkname0"
# 取消注释以增加功能(会增大 .so 体积):
# BUILD_TAGS="${BUILD_TAGS},with_grpc"
# BUILD_TAGS="${BUILD_TAGS},with_ech"
@@ -81,10 +84,10 @@ else
printf '⚠ 未设置 ANDROID_NDK_HOME / ANDROID_HOMEgomobile init 可能失败\n' >&2
fi
# ── 安装 gomobile ─────────────────────────────────────────────────────────────
printf '==> 安装 gomobile@%s…\n' "${GOMOBILE_VERSION}"
go install "golang.org/x/mobile/cmd/gomobile@${GOMOBILE_VERSION}"
go install "golang.org/x/mobile/cmd/gobind@${GOMOBILE_VERSION}"
# ── 安装 gomobileSagerNet fork,见 VERSION 注释)────────────────────────────
printf '==> 安装 %s/cmd/gomobile@%s…\n' "${GOMOBILE_MODULE}" "${GOMOBILE_VERSION}"
go install "${GOMOBILE_MODULE}/cmd/gomobile@${GOMOBILE_VERSION}"
go install "${GOMOBILE_MODULE}/cmd/gobind@${GOMOBILE_VERSION}"
printf '==> gomobile init…\n'
gomobile init