aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--app/CMakeLists.txt18
-rw-r--r--app/build.gradle18
-rw-r--r--app/proguard-rules.pro2
-rw-r--r--app/src/main/AndroidManifest.xml20
-rw-r--r--app/src/main/c/0001-tincctl-restrict-umask-argument-for-FORTIFY.patch31
-rw-r--r--app/src/main/java/org/pacien/tincapp/activities/configure/ToolsFragment.kt4
-rw-r--r--app/src/main/java/org/pacien/tincapp/activities/configure/tools/GenerateConfigToolDialogFragment.kt7
-rw-r--r--app/src/main/java/org/pacien/tincapp/activities/configure/tools/JoinNetworkToolDialogFragment.kt5
-rw-r--r--app/src/main/java/org/pacien/tincapp/activities/start/ErrorNotificationFragment.kt60
-rw-r--r--app/src/main/java/org/pacien/tincapp/activities/start/NetworkListFragment.kt10
-rw-r--r--app/src/main/java/org/pacien/tincapp/activities/start/StartActivity.kt9
-rw-r--r--app/src/main/java/org/pacien/tincapp/activities/status/nodes/NodeInfo.kt12
-rw-r--r--app/src/main/java/org/pacien/tincapp/activities/status/subnets/SubnetInfo.kt4
-rw-r--r--app/src/main/java/org/pacien/tincapp/context/App.kt9
-rw-r--r--app/src/main/java/org/pacien/tincapp/context/AppNotificationManager.kt80
-rw-r--r--app/src/main/java/org/pacien/tincapp/context/AppPaths.kt29
-rw-r--r--app/src/main/java/org/pacien/tincapp/context/StorageMigrator.kt71
-rw-r--r--app/src/main/java/org/pacien/tincapp/service/TincVpnService.kt8
-rw-r--r--app/src/main/java/org/pacien/tincapp/utils/Files.kt47
-rw-r--r--app/src/main/java/org/pacien/tincapp/utils/PendingIntentUtils.kt35
-rw-r--r--app/src/main/java/org/pacien/tincapp/utils/TincKeyring.kt10
-rw-r--r--app/src/main/play/listings/en-US/full-description.txt2
-rw-r--r--app/src/main/res/drawable/ic_baseline_folder_open_primary_24dp.xml29
-rw-r--r--app/src/main/res/layout/configure_activity.xml16
-rw-r--r--app/src/main/res/layout/configure_tools_path_info_fragment.xml2
-rw-r--r--app/src/main/res/layout/start_activity.xml29
-rw-r--r--app/src/main/res/layout/start_error_notification.xml69
-rw-r--r--app/src/main/res/layout/start_network_list.xml2
-rw-r--r--app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml1
-rw-r--r--app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml1
-rw-r--r--app/src/main/res/values-nb-rNO/strings.xml6
-rw-r--r--app/src/main/res/values-ru-rRU/strings.xml142
-rw-r--r--app/src/main/res/values-zh-rCN/strings.xml6
-rw-r--r--app/src/main/res/values-zh-rHK/strings.xml6
-rw-r--r--app/src/main/res/values-zh-rTW/strings.xml6
-rw-r--r--app/src/main/res/values/colors.xml3
-rw-r--r--app/src/main/res/values/strings.xml8
-rw-r--r--app/src/main/res/values/styles.xml6
-rw-r--r--app/src/main/res/xml/backup_rules.xml39
-rw-r--r--app/src/main/res/xml/data_extraction_rules.xml41
-rw-r--r--build.gradle8
-rw-r--r--changelog.md42
-rw-r--r--contributors.md1
-rw-r--r--gradle.properties3
-rw-r--r--gradle/wrapper/gradle-wrapper.properties4
-rw-r--r--readme.md21
47 files changed, 779 insertions, 204 deletions
diff --git a/.gitignore b/.gitignore
index d05f520..362490b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -25,3 +25,4 @@
25/app/release 25/app/release
26/app/.cxx 26/app/.cxx
27keystore.properties 27keystore.properties
28*.local
diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt
index 1962fbf..c983539 100644
--- a/app/CMakeLists.txt
+++ b/app/CMakeLists.txt
@@ -1,5 +1,5 @@
1# Tinc App, an Android binding and user interface for the tinc mesh VPN daemon 1# Tinc App, an Android binding and user interface for the tinc mesh VPN daemon
2# Copyright (C) 2017-2020 Pacien TRAN-GIRARD 2# Copyright (C) 2017-2022 Pacien TRAN-GIRARD
3# 3#
4# This program is free software: you can redistribute it and/or modify 4# This program is free software: you can redistribute it and/or modify
5# it under the terms of the GNU General Public License as published by 5# it under the terms of the GNU General Public License as published by
@@ -43,8 +43,8 @@ ExternalProject_Add(lzo
43) 43)
44 44
45ExternalProject_Add(libressl 45ExternalProject_Add(libressl
46 URL https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-3.1.4.tar.gz 46 URL https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-3.7.3.tar.gz
47 URL_HASH SHA256=414c149c9963983f805a081db5bd3aec146b5f82d529bb63875ac941b25dcbb6 47 URL_HASH SHA256=7948c856a90c825bd7268b6f85674a8dcd254bae42e221781b24e3f8dc335db3
48 CONFIGURE_COMMAND <SOURCE_DIR>/configure ${xCONFIG} --disable-shared 48 CONFIGURE_COMMAND <SOURCE_DIR>/configure ${xCONFIG} --disable-shared
49 BUILD_COMMAND make -j8 -C crypto 49 BUILD_COMMAND make -j8 -C crypto
50 INSTALL_COMMAND make -C crypto install DESTDIR=${CMAKE_CURRENT_BINARY_DIR} && 50 INSTALL_COMMAND make -C crypto install DESTDIR=${CMAKE_CURRENT_BINARY_DIR} &&
@@ -54,10 +54,8 @@ ExternalProject_Add(libressl
54 54
55ExternalProject_Add(tinc 55ExternalProject_Add(tinc
56 DEPENDS lzo libressl 56 DEPENDS lzo libressl
57 URL https://github.com/gsliepen/tinc/archive/f5223937e62e1cc5e9b3d322490dd3af8d666750.tar.gz 57 URL https://tinc-vpn.org/packages/tinc-1.1pre18.tar.gz
58 URL_HASH SHA256=3fe923e8fbb1e0192986039e91d6945ffbbe326ee8c2c0a13bacf80e87dad4a9 58 URL_HASH SHA256=2757ddc62cf64b411f569db2fa85c25ec846c0db110023f6befb33691f078986
59 # TODO: remove patch once merged in upstream (https://github.com/gsliepen/tinc/pull/251)
60 PATCH_COMMAND patch -p1 < ${PROJECT_SOURCE_DIR}/src/main/c/0001-tincctl-restrict-umask-argument-for-FORTIFY.patch
61 CONFIGURE_COMMAND autoreconf -fsi <SOURCE_DIR> && 59 CONFIGURE_COMMAND autoreconf -fsi <SOURCE_DIR> &&
62 <SOURCE_DIR>/configure ${xCONFIG} 60 <SOURCE_DIR>/configure ${xCONFIG}
63 --with-openssl=${CMAKE_CURRENT_BINARY_DIR}/usr/local 61 --with-openssl=${CMAKE_CURRENT_BINARY_DIR}/usr/local
@@ -67,9 +65,11 @@ ExternalProject_Add(tinc
67 BUILD_COMMAND make -j8 -C src 65 BUILD_COMMAND make -j8 -C src
68 INSTALL_COMMAND make -C src install DESTDIR=${CMAKE_CURRENT_BINARY_DIR} && 66 INSTALL_COMMAND make -C src install DESTDIR=${CMAKE_CURRENT_BINARY_DIR} &&
69 ${CMAKE_COMMAND} -E copy 67 ${CMAKE_COMMAND} -E copy
70 ${CMAKE_CURRENT_BINARY_DIR}/usr/local/sbin/tinc ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libtinc.so && 68 ${CMAKE_CURRENT_BINARY_DIR}/usr/local/sbin/tinc
69 ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libtinc.so &&
71 ${CMAKE_COMMAND} -E copy 70 ${CMAKE_COMMAND} -E copy
72 ${CMAKE_CURRENT_BINARY_DIR}/usr/local/sbin/tincd ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libtincd.so && 71 ${CMAKE_CURRENT_BINARY_DIR}/usr/local/sbin/tincd
72 ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libtincd.so &&
73 rm -r <BINARY_DIR> 73 rm -r <BINARY_DIR>
74) 74)
75 75
diff --git a/app/build.gradle b/app/build.gradle
index 7c428d9..03d5fc1 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,6 +1,6 @@
1/* 1/*
2 * Tinc App, an Android binding and user interface for the tinc mesh VPN daemon 2 * Tinc App, an Android binding and user interface for the tinc mesh VPN daemon
3 * Copyright (C) 2017-2020 Pacien TRAN-GIRARD 3 * Copyright (C) 2017-2024 Pacien TRAN-GIRARD
4 * 4 *
5 * This program is free software: you can redistribute it and/or modify 5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by 6 * it under the terms of the GNU General Public License as published by
@@ -30,15 +30,15 @@ def keystoreProperties = new Properties()
30if (keystoreAvailable) keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) 30if (keystoreAvailable) keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
31 31
32android { 32android {
33 compileSdkVersion 30 33 compileSdkVersion 33
34 34
35 defaultConfig { 35 defaultConfig {
36 applicationId 'org.pacien.tincapp' 36 applicationId 'org.pacien.tincapp'
37 minSdkVersion 21 37 minSdkVersion 21
38 targetSdkVersion 30 38 targetSdkVersion 33
39 multiDexEnabled true 39 multiDexEnabled true
40 versionCode 30 40 versionCode 39
41 versionName '0.30' 41 versionName '0.39'
42 ndk { 42 ndk {
43 abiFilters 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a' 43 abiFilters 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a'
44 } 44 }
@@ -67,9 +67,11 @@ android {
67 } 67 }
68 } 68 }
69 69
70 dataBinding { 70 buildFeatures {
71 enabled = true 71 dataBinding = true
72 } 72 }
73
74 namespace 'org.pacien.tincapp'
73} 75}
74 76
75dependencies { 77dependencies {
@@ -91,7 +93,7 @@ dependencies {
91} 93}
92 94
93repositories { 95repositories {
94 jcenter() 96 mavenCentral()
95 google() 97 google()
96} 98}
97 99
diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro
index 5100915..2bb4a71 100644
--- a/app/proguard-rules.pro
+++ b/app/proguard-rules.pro
@@ -1,5 +1,5 @@
1# Tinc App, an Android binding and user interface for the tinc mesh VPN daemon 1# Tinc App, an Android binding and user interface for the tinc mesh VPN daemon
2# Copyright (C) 2017-2019 Pacien TRAN-GIRARD 2# Copyright (C) 2017-2023 Pacien TRAN-GIRARD
3# 3#
4# This program is free software: you can redistribute it and/or modify 4# This program is free software: you can redistribute it and/or modify
5# it under the terms of the GNU General Public License as published by 5# it under the terms of the GNU General Public License as published by
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c86ec8f..a1183d5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -2,7 +2,7 @@
2 2
3<!-- 3<!--
4 * Tinc App, an Android binding and user interface for the tinc mesh VPN daemon 4 * Tinc App, an Android binding and user interface for the tinc mesh VPN daemon
5 * Copyright (C) 2017-2020 Pacien TRAN-GIRARD 5 * Copyright (C) 2017-2023 Pacien TRAN-GIRARD
6 * 6 *
7 * This program is free software: you can redistribute it and/or modify 7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by 8 * it under the terms of the GNU General Public License as published by
@@ -19,8 +19,7 @@
19--> 19-->
20 20
21<manifest xmlns:android="http://schemas.android.com/apk/res/android" 21<manifest xmlns:android="http://schemas.android.com/apk/res/android"
22 xmlns:tools="http://schemas.android.com/tools" 22 xmlns:tools="http://schemas.android.com/tools">
23 package="org.pacien.tincapp">
24 23
25 <uses-permission android:name="android.permission.INTERNET" /> 24 <uses-permission android:name="android.permission.INTERNET" />
26 25
@@ -29,12 +28,15 @@
29 28