diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5ec2caee..e644dd9a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -43,19 +43,19 @@ jobs: uses: actions/cache/restore@v4 with: path: ${{ github.workspace }}/libs - key: libtun2socks-${{ runner.os }}-${{ env.NDK_HOME }}-${{ hashFiles('.git/modules/hev-socks5-tunnel/HEAD') }}-${{ hashFiles('.git/modules/badvpn/HEAD') }}-${{ hashFiles('.git/modules/libancillary/HEAD') }} + key: libtun2socks-${{ runner.os }}-${{ env.NDK_HOME }}-${{ hashFiles('.git/modules/hev-socks5-tunnel/HEAD') }}-${{ hashFiles('.git/modules/badvpn/HEAD') }}-${{ hashFiles('.git/modules/libancillary/HEAD') }}-${{ hashFiles('compile-tun2socks.sh') }}--${{ hashFiles('compile-hevtun.sh') }} - name: Build libtun2socks if: steps.cache-libtun2socks-restore.outputs.cache-hit != 'true' run: | - bash compile-tun2socks.sh + bash compile-tun2socks.sh && bash compile-hevtun.sh - name: Save libtun2socks if: steps.cache-libtun2socks-restore.outputs.cache-hit != 'true' uses: actions/cache/save@v4 with: path: ${{ github.workspace }}/libs - key: libtun2socks-${{ runner.os }}-${{ env.NDK_HOME }}-${{ hashFiles('.git/modules/hev-socks5-tunnel/HEAD') }}-${{ hashFiles('.git/modules/badvpn/HEAD') }}-${{ hashFiles('.git/modules/libancillary/HEAD') }} + key: libtun2socks-${{ runner.os }}-${{ env.NDK_HOME }}-${{ hashFiles('.git/modules/hev-socks5-tunnel/HEAD') }}-${{ hashFiles('.git/modules/badvpn/HEAD') }}-${{ hashFiles('.git/modules/libancillary/HEAD') }}-${{ hashFiles('compile-tun2socks.sh') }}--${{ hashFiles('compile-hevtun.sh') }} - name: Copy libtun2socks run: | diff --git a/compile-hevtun.sh b/compile-hevtun.sh new file mode 100644 index 00000000..a3775538 --- /dev/null +++ b/compile-hevtun.sh @@ -0,0 +1,40 @@ +#!/bin/bash +set -o errexit +set -o pipefail +set -o nounset +# Set magic variables for current file & dir +__dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +__file="${__dir}/$(basename "${BASH_SOURCE[0]}")" +__base="$(basename ${__file} .sh)" +if [[ ! -d $NDK_HOME ]]; then + echo "Android NDK: NDK_HOME not found. please set env \$NDK_HOME" + exit 1 +fi +TMPDIR=$(mktemp -d) +clear_tmp () { + rm -rf $TMPDIR +} +trap 'echo -e "Aborted, error $? in command: $BASH_COMMAND"; trap ERR; clear_tmp; exit 1' ERR INT + +#build hev-socks5-tunnel +mkdir -p "$TMPDIR/jni" +pushd "$TMPDIR" + +echo 'include $(call all-subdir-makefiles)' > jni/Android.mk + +ln -s "$__dir/hev-socks5-tunnel" jni/hev-socks5-tunnel + +"$NDK_HOME/ndk-build" \ + NDK_PROJECT_PATH=. \ + APP_BUILD_SCRIPT=jni/Android.mk \ + "APP_ABI=armeabi-v7a arm64-v8a x86 x86_64" \ + APP_PLATFORM=android-21 \ + NDK_LIBS_OUT="$TMPDIR/libs" \ + NDK_OUT="$TMPDIR/obj" \ + "APP_CFLAGS=-O3 -DPKGNAME=com/v2ray/ang/service" \ + "APP_LDFLAGS=-Wl,--build-id=none -Wl,--hash-style=gnu" \ + +cp -r "$TMPDIR/libs/"* "$__dir/libs/" + +popd +rm -rf $TMPDIR diff --git a/compile-tun2socks.sh b/compile-tun2socks.sh index 95cbaa89..c0db6218 100644 --- a/compile-tun2socks.sh +++ b/compile-tun2socks.sh @@ -30,29 +30,3 @@ $NDK_HOME/ndk-build \ cp -r $TMPDIR/libs $__dir/ popd rm -rf $TMPDIR - -#build hev-socks5-tunnel -HEVTUN_TMP=$(mktemp -d) -trap 'rm -rf "$HEVTUN_TMP"' EXIT - -mkdir -p "$HEVTUN_TMP/jni" -pushd "$HEVTUN_TMP" - -echo 'include $(call all-subdir-makefiles)' > jni/Android.mk - -ln -s "$__dir/hev-socks5-tunnel" jni/hev-socks5-tunnel - -"$NDK_HOME/ndk-build" \ - NDK_PROJECT_PATH=. \ - APP_BUILD_SCRIPT=jni/Android.mk \ - "APP_ABI=armeabi-v7a arm64-v8a x86 x86_64" \ - APP_PLATFORM=android-21 \ - NDK_LIBS_OUT="$HEVTUN_TMP/libs" \ - NDK_OUT="$HEVTUN_TMP/obj" \ - "APP_CFLAGS=-O3 -DPKGNAME=com/v2ray/ang/service" \ - "APP_LDFLAGS=-WI,--build-id=none -WI,--hash-style=gnu" \ - -cp -r "$HEVTUN_TMP/libs/"* "$__dir/libs/" -popd - -rm -rf "$HEVTUN_TMP"