Skip to content

Latest commit

 

History

History
89 lines (61 loc) · 1.64 KB

README.md

File metadata and controls

89 lines (61 loc) · 1.64 KB

NymVPN Android

The Android client application for NymVPN.

Building

These are primarily directions for macOS, but the same tooling can be installed
similarly for other operating systems.

Install Rustup

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Add android targets to Rust

rustup target add \
            aarch64-linux-android \
            armv7-linux-androideabi \
            x86_64-linux-android \
            i686-linux-android

Install cargo dependencies

cargo install cargo-ndk cargo-license

Install Go

brew install go

Install JDK 17

brew install openjdk@17

Install protobuf

brew install protobuf

Install Android SDK and/or Android Studio with NDK

There are many ways to go about this, but using JetBrains Toolbox is a convenient way.

Preferred NDK version is r25c.

Clone

git clone https://github.com/nymtech/nym-vpn-client

Update uniffi bindings for nym-vpn-lib

cd nym-vpn-client/nym-vpn-core
cargo ndk -t armeabi-v7a build -p nym-vpn-lib --release
make generate-uniffi-android
cp crates/nym-vpn-lib/uniffi/nym_vpn_lib.kt ../nym-vpn-android/core/src/main/java/net/nymtech/vpn/nym_vpn_lib 

Build

Change directory to nym-vpn-android:

cd nym-vpn-client/nym-vpn-android

To create a build with native core build if not already present:

./gradlew assembleFdroidDebug

To create a debug build with fresh native core build (useful for when there are core changes):

./gradlew clean
./gradlew assembleFdroidDebug