Skip to content

Commit 6b0471a

Browse files
committed
feat(olcrtc): add Android tunnel client
Add olcRTC profile import/export, settings, config generation, and sidecar launch support. Include URL-test readiness handling, sidecar CI wiring, and JVM coverage for sanitized diagnostics.
1 parent c2aa01b commit 6b0471a

37 files changed

Lines changed: 1703 additions & 19 deletions

File tree

.depot/workflows/android-instrumented.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ jobs:
8686
if: steps.libcore-cache.outputs.cache-hit != 'true'
8787
run: ./run lib core
8888

89+
8990
- name: Download assets
9091
run: ./run init action gradle
9192

.depot/workflows/build-apk.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ env:
1414
MDVPN_REF: android-vpnservice-protect-hook
1515
MDVPN_COMMIT: d481d72d4b86783a87d536c214d2c68cc4e9320e
1616
NAIVE_VERSION: v149.0.7827.114-1
17+
OLCRTC_COMMIT: 3e970ab8ed176a3bcc2ef0ba1d89d0b15775da23
1718
jobs:
1819
build-apk:
1920
name: Build OSS Debug APK
@@ -62,6 +63,9 @@ jobs:
6263
buildScript/lib/hysteria2.sh \
6364
buildScript/lib/masterdnsvpn.sh \
6465
buildScript/lib/naive.sh \
66+
buildScript/lib/olcrtc.sh \
67+
buildScript/lib/olcrtc-src/main.go \
68+
buildScript/lib/olcrtc-src/go.mod \
6569
buildScript/init/env.sh \
6670
buildScript/init/env_ndk.sh \
6771
| sha256sum \
@@ -72,7 +76,7 @@ jobs:
7276
uses: actions/cache@v4
7377
with:
7478
path: app/executableSo
75-
key: depot-sidecars-${{ env.GO_VERSION }}-${{ env.NDK_VERSION }}-${{ env.MIERU_VERSION }}-${{ env.HYSTERIA_VERSION }}-${{ env.MDVPN_COMMIT }}-${{ env.NAIVE_VERSION }}-${{ hashFiles('sidecars_status') }}
79+
key: depot-sidecars-${{ env.GO_VERSION }}-${{ env.NDK_VERSION }}-${{ env.MIERU_VERSION }}-${{ env.HYSTERIA_VERSION }}-${{ env.MDVPN_COMMIT }}-${{ env.NAIVE_VERSION }}-${{ env.OLCRTC_COMMIT }}-${{ hashFiles('sidecars_status') }}
7680

7781
- name: Install Go
7882
if: steps.libcore-cache.outputs.cache-hit != 'true' || steps.sidecars-cache.outputs.cache-hit != 'true'
@@ -84,18 +88,20 @@ jobs:
8488
if: steps.libcore-cache.outputs.cache-hit != 'true'
8589
run: ./run lib core
8690

91+
8792
- name: Build sidecars
8893
if: steps.sidecars-cache.outputs.cache-hit != 'true'
8994
run: |
9095
./run lib mieru
9196
./run lib hysteria2
9297
./run lib masterdnsvpn
9398
./run lib naive
99+
./run lib olcrtc
94100
95101
- name: Verify sidecar artifacts
96102
run: |
97103
for abi in arm64-v8a armeabi-v7a x86 x86_64; do
98-
for so in libmieru.so libhysteria2.so libmasterdnsvpn.so libnaive.so; do
104+
for so in libmieru.so libhysteria2.so libmasterdnsvpn.so libnaive.so libolcrtc.so; do
99105
if [ ! -f "app/executableSo/$abi/$so" ]; then
100106
echo "Error: missing app/executableSo/$abi/$so" >&2
101107
exit 1

.depot/workflows/lint.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ jobs:
6868
if: steps.libcore-cache.outputs.cache-hit != 'true'
6969
run: ./run lib core
7070

71+
7172
- name: Lint
7273
run: ./gradlew app:lintOssDebug
7374

.depot/workflows/unit-tests.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,5 +70,6 @@ jobs:
7070
if: steps.libcore-cache.outputs.cache-hit != 'true'
7171
run: ./run lib core
7272

73+
7374
- name: Unit Tests
7475
run: ./gradlew app:testOssDebugUnitTest

.github/workflows/ci.yml

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ env:
77
MDVPN_REF: android-vpnservice-protect-hook
88
MDVPN_COMMIT: d481d72d4b86783a87d536c214d2c68cc4e9320e
99
NAIVE_VERSION: v149.0.7827.114-1
10+
OLCRTC_COMMIT: 3e970ab8ed176a3bcc2ef0ba1d89d0b15775da23
1011
permissions:
1112
contents: read
1213
jobs:
@@ -124,14 +125,25 @@ jobs:
124125
- name: Checkout
125126
uses: actions/checkout@v5
126127
- name: Sidecars Status
127-
run: cat buildScript/lib/mieru.sh buildScript/lib/hysteria2.sh buildScript/lib/masterdnsvpn.sh buildScript/lib/naive.sh buildScript/init/env.sh buildScript/init/env_ndk.sh | sha1sum > sidecars_status
128+
run: |
129+
git ls-files -s -- \
130+
buildScript/lib/mieru.sh \
131+
buildScript/lib/hysteria2.sh \
132+
buildScript/lib/masterdnsvpn.sh \
133+
buildScript/lib/naive.sh \
134+
buildScript/lib/olcrtc.sh \
135+
buildScript/lib/olcrtc-src/main.go \
136+
buildScript/lib/olcrtc-src/go.mod \
137+
buildScript/init/env.sh \
138+
buildScript/init/env_ndk.sh \
139+
| sha1sum > sidecars_status
128140
- name: Sidecars Cache
129141
id: cache
130142
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
131143
with:
132144
path: |
133145
app/executableSo
134-
key: ${{ hashFiles('.github/workflows/*', 'sidecars_status') }}-${{ env.MIERU_VERSION }}-${{ env.HYSTERIA_VERSION }}-${{ env.MDVPN_COMMIT }}-${{ env.NAIVE_VERSION }}-sidecars-ci
146+
key: ${{ hashFiles('.github/workflows/*', 'sidecars_status') }}-${{ env.MIERU_VERSION }}-${{ env.HYSTERIA_VERSION }}-${{ env.MDVPN_COMMIT }}-${{ env.NAIVE_VERSION }}-${{ env.OLCRTC_COMMIT }}-sidecars-ci
135147
- name: Install Golang
136148
if: steps.cache.outputs.cache-hit != 'true'
137149
uses: actions/setup-go@v6
@@ -149,6 +161,9 @@ jobs:
149161
- name: Naive Download
150162
if: steps.cache.outputs.cache-hit != 'true'
151163
run: ./run lib naive
164+
- name: olcRTC Build
165+
if: steps.cache.outputs.cache-hit != 'true'
166+
run: ./run lib olcrtc
152167
- name: Upload Sidecars
153168
uses: namespace-actions/upload-artifact@v1
154169
with:
@@ -183,7 +198,7 @@ jobs:
183198
- name: Verify Sidecar Artifacts
184199
run: |
185200
for abi in arm64-v8a armeabi-v7a x86 x86_64; do
186-
for so in libmieru.so libhysteria2.so libmasterdnsvpn.so libnaive.so; do
201+
for so in libmieru.so libhysteria2.so libmasterdnsvpn.so libnaive.so libolcrtc.so; do
187202
if [ ! -f "app/executableSo/$abi/$so" ]; then
188203
echo "Error: missing app/executableSo/$abi/$so (sidecar artifact missing)" >&2
189204
exit 1

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ jniLibs/
2828
/libcore/.build/
2929
/libcore/version_gen.go
3030
/.masterdnsvpn-build/
31+
/.olcrtc-build/
32+
/.olcrtc-gomobile/
33+
/.olcrtc-wrapper/
3134

3235
# Local config / generated app artifacts
3336
local.properties

0 commit comments

Comments
 (0)