Skip to content

Commit 0abf05d

Browse files
committed
build: use modern ndk instead of ndk-bundle, pin gomobile version for Android
1 parent e4254cb commit 0abf05d

7 files changed

Lines changed: 61 additions & 54 deletions

File tree

.github/workflows/build-manual.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,16 +56,16 @@ jobs:
5656
flutter-version: '3.38.x'
5757
channel: 'stable'
5858
- run: flutter --version
59-
- name: Install ndk-bundle
59+
- name: Install ndk
6060
run: |
6161
echo "ls $ANDROID_HOME/"
6262
ls -lah $ANDROID_HOME/ || true
6363
echo "ls $ANDROID_HOME/tools/bin/"
6464
ls -lah $ANDROID_HOME/tools/bin/ || true
6565
echo "ls $ANDROID_HOME/cmdline-tools/latest/bin/"
6666
ls -lah $ANDROID_HOME/cmdline-tools/latest/bin/ || true
67-
echo "install ndk-bundle"
68-
$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --install "ndk-bundle"
67+
echo "install ndk"
68+
$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --install "ndk;27.0.12077973"
6969
- name: List available space
7070
run: |
7171
df -h
@@ -89,8 +89,8 @@ jobs:
8989
export ANDROID_NDK_ROOT=$ANDROID_HOME/ndk-bundle
9090
unset ANDROID_NDK_HOME
9191
cd awl
92-
go install golang.org/x/mobile/cmd/gomobile@latest
93-
go get golang.org/x/mobile/cmd/gomobile
92+
GOMOBILE_VERSION=$(go list -m -f '{{.Version}}' golang.org/x/mobile)
93+
go install golang.org/x/mobile/cmd/gomobile@$GOMOBILE_VERSION
9494
gomobile init
9595
go mod tidy -compat=1.26
9696
cd cmd/awl-tray && go mod tidy -compat=1.26 && cd ../..

build.sh

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -135,11 +135,10 @@ build-web() {
135135
# build android library
136136
build-android-lib() {
137137
cd "$awldir/cmd/gomobile-lib"
138-
go get golang.org/x/mobile/cmd/gomobile
139138
# about `-checklinkname=0` https://github.com/wlynxg/anet#how-to-build-with-go-1230-or-later
140-
gomobile bind -trimpath -ldflags "-s -w -checklinkname=0 -X github.com/anywherelan/awl/config.Version=${VERSION}" -o anywherelan.aar -target=android .
141-
go mod edit -droprequire=golang.org/x/mobile
142-
go mod tidy -compat=1.26
139+
gomobile bind -androidapi 24 -trimpath \
140+
-ldflags "-linkmode=external -extldflags=-Wl,-z,max-page-size=16384 -s -w -checklinkname=0 -X github.com/anywherelan/awl/config.Version=${VERSION}" \
141+
-o anywherelan.aar -target=android . || { echo "gomobile bind failed"; exit 1; }
143142
mkdir -p "$awlflutterdir/android/app/src/main/libs"
144143
mv anywherelan.aar "$awlflutterdir/android/app/src/main/libs/"
145144
}

cmd/awl-tray/go.mod

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -158,18 +158,18 @@ require (
158158
go.yaml.in/yaml/v2 v2.4.4 // indirect
159159
go4.org/mem v0.0.0-20220726221520-4f986261bf13 // indirect
160160
go4.org/netipx v0.0.0-20231129151722-fdeea329fbba // indirect
161-
golang.org/x/crypto v0.49.0 // indirect
161+
golang.org/x/crypto v0.50.0 // indirect
162162
golang.org/x/exp v0.0.0-20260312153236-7ab1446f8b90 // indirect
163-
golang.org/x/image v0.25.0 // indirect
164-
golang.org/x/mod v0.34.0 // indirect
165-
golang.org/x/net v0.52.0 // indirect
163+
golang.org/x/image v0.39.0 // indirect
164+
golang.org/x/mod v0.35.0 // indirect
165+
golang.org/x/net v0.53.0 // indirect
166166
golang.org/x/sync v0.20.0 // indirect
167167
golang.org/x/sys v0.43.0 // indirect
168-
golang.org/x/telemetry v0.0.0-20260311193753-579e4da9a98c // indirect
169-
golang.org/x/term v0.41.0 // indirect
170-
golang.org/x/text v0.35.0 // indirect
168+
golang.org/x/telemetry v0.0.0-20260409153401-be6f6cb8b1fa // indirect
169+
golang.org/x/term v0.42.0 // indirect
170+
golang.org/x/text v0.36.0 // indirect
171171
golang.org/x/time v0.14.0 // indirect
172-
golang.org/x/tools v0.43.0 // indirect
172+
golang.org/x/tools v0.44.0 // indirect
173173
golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2 // indirect
174174
golang.zx2c4.com/wireguard v0.0.0-20250521234502-f333402bd9cb // indirect
175175
golang.zx2c4.com/wireguard/windows v0.5.3 // indirect

cmd/awl-tray/go.sum

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -608,8 +608,8 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh
608608
golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
609609
golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
610610
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
611-
golang.org/x/crypto v0.49.0 h1:+Ng2ULVvLHnJ/ZFEq4KdcDd/cfjrrjjNSXNzxg0Y4U4=
612-
golang.org/x/crypto v0.49.0/go.mod h1:ErX4dUh2UM+CFYiXZRTcMpEcN8b/1gxEuv3nODoYtCA=
611+
golang.org/x/crypto v0.50.0 h1:zO47/JPrL6vsNkINmLoo/PH1gcxpls50DNogFvB5ZGI=
612+
golang.org/x/crypto v0.50.0/go.mod h1:3muZ7vA7PBCE6xgPX7nkzzjiUq87kRItoJQM1Yo8S+Q=
613613
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
614614
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
615615
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -624,8 +624,8 @@ golang.org/x/exp v0.0.0-20260312153236-7ab1446f8b90 h1:jiDhWWeC7jfWqR9c/uplMOqJ0
624624
golang.org/x/exp v0.0.0-20260312153236-7ab1446f8b90/go.mod h1:xE1HEv6b+1SCZ5/uscMRjUBKtIxworgEcEi+/n9NQDQ=
625625
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
626626
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
627-
golang.org/x/image v0.25.0 h1:Y6uW6rH1y5y/LK1J8BPWZtr6yZ7hrsy6hFrXjgsc2fQ=
628-
golang.org/x/image v0.25.0/go.mod h1:tCAmOEGthTtkalusGp1g3xa2gke8J6c2N565dTyl9Rs=
627+
golang.org/x/image v0.39.0 h1:skVYidAEVKgn8lZ602XO75asgXBgLj9G/FE3RbuPFww=
628+
golang.org/x/image v0.39.0/go.mod h1:sIbmppfU+xFLPIG0FoVUTvyBMmgng1/XAMhQ2ft0hpA=
629629
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
630630
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
631631
golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
@@ -652,8 +652,8 @@ golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
652652
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
653653
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
654654
golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
655-
golang.org/x/mod v0.34.0 h1:xIHgNUUnW6sYkcM5Jleh05DvLOtwc6RitGHbDk4akRI=
656-
golang.org/x/mod v0.34.0/go.mod h1:ykgH52iCZe79kzLLMhyCUzhMci+nQj+0XkbXpNYtVjY=
655+
golang.org/x/mod v0.35.0 h1:Ww1D637e6Pg+Zb2KrWfHQUnH2dQRLBQyAtpr/haaJeM=
656+
golang.org/x/mod v0.35.0/go.mod h1:+GwiRhIInF8wPm+4AoT6L0FA1QWAad3OMdTRx4tFYlU=
657657
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
658658
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
659659
golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -693,8 +693,8 @@ golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96b
693693
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
694694
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
695695
golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
696-
golang.org/x/net v0.52.0 h1:He/TN1l0e4mmR3QqHMT2Xab3Aj3L9qjbhRm78/6jrW0=
697-
golang.org/x/net v0.52.0/go.mod h1:R1MAz7uMZxVMualyPXb+VaqGSa3LIaUqk0eEt3w36Sw=
696+
golang.org/x/net v0.53.0 h1:d+qAbo5L0orcWAr0a9JweQpjXF19LMXJE8Ey7hwOdUA=
697+
golang.org/x/net v0.53.0/go.mod h1:JvMuJH7rrdiCfbeHoo3fCQU24Lf5JJwT9W3sJFulfgs=
698698
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
699699
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
700700
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -775,14 +775,14 @@ golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
775775
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
776776
golang.org/x/sys v0.43.0 h1:Rlag2XtaFTxp19wS8MXlJwTvoh8ArU6ezoyFsMyCTNI=
777777
golang.org/x/sys v0.43.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
778-
golang.org/x/telemetry v0.0.0-20260311193753-579e4da9a98c h1:6a8FdnNk6bTXBjR4AGKFgUKuo+7GnR3FX5L7CbveeZc=
779-
golang.org/x/telemetry v0.0.0-20260311193753-579e4da9a98c/go.mod h1:TpUTTEp9frx7rTdLpC9gFG9kdI7zVLFTFFlqaH2Cncw=
778+
golang.org/x/telemetry v0.0.0-20260409153401-be6f6cb8b1fa h1:efT73AJZfAAUV7SOip6pWGkwJDzIGiKBZGVzHYa+ve4=
779+
golang.org/x/telemetry v0.0.0-20260409153401-be6f6cb8b1fa/go.mod h1:kHjTxDEnAu6/Nl9lDkzjWpR+bmKfxeiRuSDlsMb70gE=
780780
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
781781
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
782782
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
783783
golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
784-
golang.org/x/term v0.41.0 h1:QCgPso/Q3RTJx2Th4bDLqML4W6iJiaXFq2/ftQF13YU=
785-
golang.org/x/term v0.41.0/go.mod h1:3pfBgksrReYfZ5lvYM0kSO0LIkAl4Yl2bXOkKP7Ec2A=
784+
golang.org/x/term v0.42.0 h1:UiKe+zDFmJobeJ5ggPwOshJIVt6/Ft0rcfrXZDLWAWY=
785+
golang.org/x/term v0.42.0/go.mod h1:Dq/D+snpsbazcBG5+F9Q1n2rXV8Ma+71xEjTRufARgY=
786786
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
787787
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
788788
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -793,8 +793,8 @@ golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
793793
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
794794
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
795795
golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
796-
golang.org/x/text v0.35.0 h1:JOVx6vVDFokkpaq1AEptVzLTpDe9KGpj5tR4/X+ybL8=
797-
golang.org/x/text v0.35.0/go.mod h1:khi/HExzZJ2pGnjenulevKNX1W67CUy0AsXcNubPGCA=
796+
golang.org/x/text v0.36.0 h1:JfKh3XmcRPqZPKevfXVpI1wXPTqbkE5f7JA92a55Yxg=
797+
golang.org/x/text v0.36.0/go.mod h1:NIdBknypM8iqVmPiuco0Dh6P5Jcdk8lJL0CUebqK164=
798798
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
799799
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
800800
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
@@ -855,8 +855,8 @@ golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
855855
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
856856
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
857857
golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s=
858-
golang.org/x/tools v0.43.0 h1:12BdW9CeB3Z+J/I/wj34VMl8X+fEXBxVR90JeMX5E7s=
859-
golang.org/x/tools v0.43.0/go.mod h1:uHkMso649BX2cZK6+RpuIPXS3ho2hZo4FVwfoy1vIk0=
858+
golang.org/x/tools v0.44.0 h1:UP4ajHPIcuMjT1GqzDWRlalUEoY+uzoZKnhOjbIPD2c=
859+
golang.org/x/tools v0.44.0/go.mod h1:KA0AfVErSdxRZIsOVipbv3rQhVXTnlU6UhKxHd1seDI=
860860
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
861861
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
862862
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=

cmd/gomobile-lib/tools.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
//go:build tools
2+
3+
package anywherelan
4+
5+
import _ "golang.org/x/mobile/bind"

go.mod

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ require (
3535
go.uber.org/goleak v1.3.0
3636
go.uber.org/multierr v1.11.0
3737
go.uber.org/zap v1.27.1
38-
golang.org/x/net v0.52.0
38+
golang.org/x/mobile v0.0.0-20260410095206-2cfb76559b7b
39+
golang.org/x/net v0.53.0
3940
golang.org/x/sys v0.43.0
4041
golang.zx2c4.com/wireguard v0.0.0-20250521234502-f333402bd9cb
4142
golang.zx2c4.com/wireguard/windows v0.5.3
@@ -147,15 +148,15 @@ require (
147148
go.yaml.in/yaml/v2 v2.4.4 // indirect
148149
go4.org/mem v0.0.0-20220726221520-4f986261bf13 // indirect
149150
go4.org/netipx v0.0.0-20231129151722-fdeea329fbba // indirect
150-
golang.org/x/crypto v0.49.0 // indirect
151+
golang.org/x/crypto v0.50.0 // indirect
151152
golang.org/x/exp v0.0.0-20260312153236-7ab1446f8b90 // indirect
152-
golang.org/x/mod v0.34.0 // indirect
153+
golang.org/x/mod v0.35.0 // indirect
153154
golang.org/x/sync v0.20.0 // indirect
154-
golang.org/x/telemetry v0.0.0-20260311193753-579e4da9a98c // indirect
155-
golang.org/x/term v0.41.0 // indirect
156-
golang.org/x/text v0.35.0 // indirect
155+
golang.org/x/telemetry v0.0.0-20260409153401-be6f6cb8b1fa // indirect
156+
golang.org/x/term v0.42.0 // indirect
157+
golang.org/x/text v0.36.0 // indirect
157158
golang.org/x/time v0.14.0 // indirect
158-
golang.org/x/tools v0.43.0 // indirect
159+
golang.org/x/tools v0.44.0 // indirect
159160
golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2 // indirect
160161
gonum.org/v1/gonum v0.17.0 // indirect
161162
google.golang.org/protobuf v1.36.11 // indirect

0 commit comments

Comments
 (0)