Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,10 @@ Design and the JNI contract are documented in the core repo:

- JDK 17, Android SDK with platform 37 and build-tools 37 (the Gradle wrapper
brings Gradle itself; AGP 9 with built-in Kotlin).
- An Android 10+ (`minSdk` 29) arm64 device (the app is arm64-v8a only, per
- An Android 10+ (`minSdk` 29) 64-bit device: arm64-v8a or x86_64 (32-bit is
not supported, per
[Play's 64-bit requirement](https://developer.android.com/google/play/requirements/64-bit)). Development is done against an
adb-connected device — a phone, or an arm64 Android VM/emulator bridged onto
adb-connected device — a phone, or an Android VM/emulator bridged onto
the LAN like a phone (`adb connect <host>`) — since a `VpnService` cannot be
exercised on the JVM. The Android Studio emulator is NATed twice by default
and only ever gets relay paths; see [Emulator networking](#emulator-networking-bridged-wi-fi-for-direct-paths)
Expand Down
9 changes: 5 additions & 4 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -93,10 +93,11 @@ android {
versionCode = providers.gradleProperty("ezvpn.versionCode").get().toInt()
versionName = providers.gradleProperty("ezvpn.versionName").get()

// arm64 only (Google Play's 64-bit requirement; 32-bit devices are not
// supported). Only lib/arm64-v8a/libezvpn.so from the core zip is
// packaged, so the APK refuses to install on any other ABI.
ndk { abiFilters.add("arm64-v8a") }
// 64-bit only (Google Play's 64-bit requirement; 32-bit devices are
// not supported): arm64-v8a for phones plus x86_64 for VMs/emulators.
// Only these ABIs' libezvpn.so from the core zip are packaged, so the
// APK refuses to install anywhere else.
ndk { abiFilters.addAll(listOf("arm64-v8a", "x86_64")) }
}

// Release signing comes from the environment (scripts/build-release-apk.sh
Expand Down
Loading