Skip to content

Commit 91301bb

Browse files
authored
Merge pull request #3 from ivpn/develop
Develop
2 parents 494f307 + b87a9b3 commit 91301bb

410 files changed

Lines changed: 101380 additions & 505 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,7 @@
1111
keystore.properties
1212
/keystore.properties
1313
/app/storeProduction
14-
/app/siteProduction
14+
/app/siteProduction
15+
/.idea/
16+
/app/.cxx/
17+
/.idea/

.gitmodules

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
[submodule "wireguard-tools"]
2+
path = app/tools/wireguard-tools
3+
url = https://git.zx2c4.com/wireguard-tools
4+
[submodule "app/src/main/cpp/openvpn"]
5+
path = app/src/main/cpp/openvpn
6+
url = https://github.com/schwabe/openvpn
7+
[submodule "app/src/main/cpp/openssl"]
8+
path = app/src/main/cpp/openssl
9+
url = https://github.com/schwabe/platform_external_openssl
10+
[submodule "app/src/main/cpp/mbedtls"]
11+
path = app/src/main/cpp/mbedtls
12+
url = https://github.com/ARMmbed/mbedtls.git
13+
[submodule "app/src/main/cpp/openvpn3"]
14+
path = app/src/main/cpp/openvpn3
15+
url = https://github.com/schwabe/openvpn3.git
16+
[submodule "app/src/main/cpp/asio"]
17+
path = app/src/main/cpp/asio
18+
url = https://github.com/chriskohlhoff/asio/
19+
[submodule "app/src/main/cpp/lz4"]
20+
path = app/src/main/cpp/lz4
21+
url = https://github.com/lz4/lz4.git

app/CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
cmake_minimum_required (VERSION 3.4.1)
2+
project(IVPN)
3+
4+
add_subdirectory(tools)
5+
add_subdirectory(src/main/cpp)

app/build.gradle

Lines changed: 64 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,26 @@ android {
2424
applicationId "net.ivpn.client"
2525
minSdkVersion 21
2626
targetSdkVersion 28
27-
versionCode 75
28-
versionName "1.65"
27+
versionCode 79
28+
versionName "1.67"
2929

3030
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
3131
testInstrumentationRunnerArguments clearPackageData: 'true'
3232
vectorDrawables.useSupportLibrary = true
3333

3434
manifestPlaceholders = [ SENTRY_DSN:keystoreProperties['sentry.dsn']]
3535
buildConfigField "String", "BILLING_PUBLIC_KEY", keystoreProperties['billing.public.key']
36+
buildConfigField 'boolean', 'openvpn3', 'false'
37+
externalNativeBuild {
38+
cmake {
39+
arguments '-DANDROID_TOOLCHAIN=clang',
40+
'-DANDROID_STL=c++_static'
41+
}
42+
43+
ndk {
44+
abiFilters 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a'
45+
}
46+
}
3647
}
3748

3849
flavorDimensions "spread", "api"
@@ -47,6 +58,11 @@ android {
4758
buildConfigField "String", "BUILD_VARIANT", "\"site\""
4859
}
4960

61+
fdroid {
62+
dimension "spread"
63+
buildConfigField "String", "BUILD_VARIANT", "\"fdroid\""
64+
}
65+
5066
production {
5167
dimension "api"
5268
buildConfigField "String", "BASE_URL", "\"api.ivpn.net\""
@@ -75,6 +91,7 @@ android {
7591
sourceSets {
7692
main {
7793
jniLibs.srcDir 'src/main/libs'
94+
assets.srcDirs = ["src/main/assets", "build/ovpnassets"]
7895
}
7996
}
8097

@@ -89,7 +106,50 @@ android {
89106
execution 'ANDROIDX_TEST_ORCHESTRATOR'
90107
unitTests.returnDefaultValues = true
91108
}
109+
externalNativeBuild {
110+
cmake {
111+
path 'CMakeLists.txt'
112+
}
113+
}
114+
115+
splits {
116+
abi {
117+
reset()
118+
include "x86", "x86_64", "armeabi-v7a", "arm64-v8a"
119+
universalApk true
120+
}
121+
}
92122
}
123+
124+
def File registerGenTask(variantName, variantDirName) {
125+
def baseDir = new File(buildDir, "generated/source/ovpn3swig/${variantDirName}")
126+
def genDir = new File(baseDir, "net/openvpn/ovpn3")
127+
task("generateOpenVPN3Swig${variantName}",type:Exec) {
128+
129+
def swigcmd = "swig"
130+
if (file("/usr/local/bin/swig").exists())
131+
swigcmd = "/usr/local/bin/swig"
132+
133+
doFirst {
134+
mkdir genDir
135+
}
136+
137+
commandLine swigcmd, "-outdir", genDir, "-outcurrentdir", "-c++", "-java", "-package", "net.openvpn.ovpn3",
138+
"-Isrc/main/cpp/openvpn3/client", "-Isrc/main/cpp/openvpn3/",
139+
"-o", "${genDir}/ovpncli_wrap.cxx", "-oh", "${genDir}/ovpncli_wrap.h",
140+
"src/main/cpp/openvpn3/javacli/ovpncli.i"
141+
}
142+
143+
return baseDir
144+
}
145+
146+
android.applicationVariants.all { variant ->
147+
def sourceDir = registerGenTask(variant.name, variant.baseName.replace("-", "/"))
148+
def task = tasks.named("generateOpenVPN3Swig${variant.name}").get()
149+
150+
variant.registerJavaGeneratingTask(task, sourceDir)
151+
}
152+
93153
ext {
94154
supportLibsVersion = '28.0.0'
95155
streamsupportVersion = '1.7.1'
@@ -144,8 +204,8 @@ dependencies {
144204
androidTestUtil 'androidx.test:orchestrator:1.2.0'
145205

146206
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
147-
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.2.1'
148-
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.2.1'
207+
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.3'
208+
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.3'
149209
}
150210

151211
repositories {

app/src/main/AndroidManifest.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@
3232
android:name="io.sentry.auto-init"
3333
android:value="false" />
3434

35+
<meta-data
36+
android:name="io.sentry.anr.enable"
37+
android:value="false" />
38+
3539
<activity
3640
android:name=".ui.tutorial.TutorialActivity"
3741
android:screenOrientation="portrait"

app/src/main/assets/config.ovpn

Lines changed: 36 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ persist-key
1111
persist-remote-ip
1212

1313
cipher AES-256-CBC
14-
tls-cipher TLS-DHE-RSA-WITH-AES-256-CBC-SHA:TLS-DHE-DSS-WITH-AES-256-CBC-SHA:TLS-RSA-WITH-AES-256-CBC-SHA
1514
--remote-cert-tls server
1615
verify-x509-name de name-prefix
1716
key-direction 1
@@ -21,30 +20,42 @@ verb 4
2120
;ca ca.crt
2221
<ca>
2322
-----BEGIN CERTIFICATE-----
24-
MIIETjCCAzagAwIBAgIJANeN9f9F53lmMA0GCSqGSIb3DQEBBQUAMHcxCzAJBgNV
25-
BAYTAk1UMQ4wDAYDVQQIEwVNYWx0YTEOMAwGA1UEBxMFTWFsdGExETAPBgNVBAoT
26-
CElWUE4ubmV0MRQwEgYDVQQDEwtJVlBOLm5ldCBDQTEfMB0GCSqGSIb3DQEJARYQ
27-
c3VwcG9ydEBpdnBuLm5ldDAeFw0xMDA3MjQxNzQxMjBaFw0yMDA3MjExNzQxMjBa
28-
MHcxCzAJBgNVBAYTAk1UMQ4wDAYDVQQIEwVNYWx0YTEOMAwGA1UEBxMFTWFsdGEx
29-
ETAPBgNVBAoTCElWUE4ubmV0MRQwEgYDVQQDEwtJVlBOLm5ldCBDQTEfMB0GCSqG
30-
SIb3DQEJARYQc3VwcG9ydEBpdnBuLm5ldDCCASIwDQYJKoZIhvcNAQEBBQADggEP
31-
ADCCAQoCggEBANb0cvGYrnHwXm9vZiHGIlvKDo342dE8XyyA4iIyjeSDTnC2XTdu
32-
E/NPxQ2hc5Pi8DKFqzrmJ8qxmLRv3n+NGQsHiP+rKE2Wi6wQYzg12fgxmeLYenbH
33-
J8UzzVCg2YFe97LGs8cBZeirYKHyErP+Od7rYot6VyUKkb5FB+Tjql6GiyiWmxIv
34-
T9PKoFkXSI3riCiLIP1LwzLVcn0nhZvnXFk2EvVmhmjzdJWLNjqe3Zj78mQLzMdc
35-
XFBO28kaEaydvh2k/Beu17YUqGQDt2w4sbL+DPyjD+k/NusVzV4HggISfJAKfHZz
36-
G1cBFA3Hiu+jSkKOMJ4gC3f+WG4Hpj1XS7cCAwEAAaOB3DCB2TAdBgNVHQ4EFgQU
37-
vCA6yNJ+VUdFGuKo/EnEQZUz874wgakGA1UdIwSBoTCBnoAUvCA6yNJ+VUdFGuKo
38-
/EnEQZUz876he6R5MHcxCzAJBgNVBAYTAk1UMQ4wDAYDVQQIEwVNYWx0YTEOMAwG
39-
A1UEBxMFTWFsdGExETAPBgNVBAoTCElWUE4ubmV0MRQwEgYDVQQDEwtJVlBOLm5l
40-
dCBDQTEfMB0GCSqGSIb3DQEJARYQc3VwcG9ydEBpdnBuLm5ldIIJANeN9f9F53lm
41-
MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAFhU6MPf42dp5U0yPE0c
42-
ZS3g/pqd4GV4eBe7wYydv88FCScV8o2XGi3VruHKLbyGNxiD3OWwV81NNpLA8rFi
43-
vFgaKU+meWjCRQmptKWmoFpzPtCxB59D9zqYB0TaAuGOh084ioM+qC+MMXJzYY7c
44-
aXvOZ02b1lu44Z1GDIDxy1ONhajoRS59QmNpeoD3jtrVfGPmMwcR26TBj2nMudZK
45-
YMjYmbORgXu/0a/4jZ43B0mvRXCX64xOmwFZHioONhrxdtGA0pNwCXYWKyJ2pnLA
46-
6VBoEr0Hku56c0ZIDVdi3EUmO/K/XmOmmp6htKELdvjR3goiS/fC/2XTSkIJe3Va
47-
15U=
23+
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
58+
sWGIGABGAHwXEAoDiZ/jjFrEZT0=
4859
-----END CERTIFICATE-----
4960
</ca>
5061
<tls-auth>
-7.46 KB
Binary file not shown.
-6.49 KB
Binary file not shown.
-6.46 KB
Binary file not shown.
-7.2 KB
Binary file not shown.

0 commit comments

Comments
 (0)