aboutsummaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/CMakeLists.txt12
-rw-r--r--app/build.gradle19
-rw-r--r--app/proguard-rules.pro4
-rw-r--r--app/src/main/AndroidManifest.xml27
-rw-r--r--app/src/main/java/org/pacien/tincapp/activities/configure/ConfigurationAccessServerFragment.kt77
-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/StartActivity.kt9
-rw-r--r--app/src/main/java/org/pacien/tincapp/context/App.kt2
-rw-r--r--app/src/main/java/org/pacien/tincapp/context/AppNotificationManager.kt97
-rw-r--r--app/src/main/java/org/pacien/tincapp/context/AppPaths.kt15
-rw-r--r--app/src/main/java/org/pacien/tincapp/context/StorageMigrator.kt (renamed from app/src/main/java/org/pacien/tincapp/context/ConfigurationDirectoryMigrator.kt)17
-rw-r--r--app/src/main/java/org/pacien/tincapp/service/ConfigurationAccessService.kt204
-rw-r--r--app/src/main/java/org/pacien/tincapp/service/TincVpnService.kt5
-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.kt8
-rw-r--r--app/src/main/play/listings/en-US/full-description.txt2
-rw-r--r--app/src/main/res/layout/configure_activity.xml14
-rw-r--r--app/src/main/res/layout/configure_tools_configuration_access_fragment.xml86
-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.xml4
-rw-r--r--app/src/main/res/values-ru-rRU/strings.xml142
-rw-r--r--app/src/main/res/values-zh-rCN/strings.xml4
-rw-r--r--app/src/main/res/values-zh-rHK/strings.xml4
-rw-r--r--app/src/main/res/values-zh-rTW/strings.xml4
-rw-r--r--app/src/main/res/values/colors.xml3
-rw-r--r--app/src/main/res/values/strings.xml15
-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
37 files changed, 585 insertions, 535 deletions
diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt
index 181a27a..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-2021 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.3.3.tar.gz 46 URL https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-3.7.3.tar.gz
47 URL_HASH SHA256=a471565b36ccd1a70d0bd7d37c6e95c43a26a62829b487d9d2cdebfe58be3066 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} &&
@@ -65,9 +65,11 @@ ExternalProject_Add(tinc
65 BUILD_COMMAND make -j8 -C src 65 BUILD_COMMAND make -j8 -C src
66 INSTALL_COMMAND make -C src install DESTDIR=${CMAKE_CURRENT_BINARY_DIR} && 66 INSTALL_COMMAND make -C src install DESTDIR=${CMAKE_CURRENT_BINARY_DIR} &&
67 ${CMAKE_COMMAND} -E copy 67 ${CMAKE_COMMAND} -E copy
68 ${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 &&
69 ${CMAKE_COMMAND} -E copy 70 ${CMAKE_COMMAND} -E copy
70 ${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 &&
71 rm -r <BINARY_DIR> 73 rm -r <BINARY_DIR>
72) 74)
73 75
diff --git a/app/build.gradle b/app/build.gradle
index d38b0ac..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-2021 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 32 40 versionCode 39
41 versionName '0.32' 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 }
@@ -71,13 +71,7 @@ android {
71 dataBinding = true 71 dataBinding = true
72 } 72 }
73 73
74 packagingOptions { 74 namespace 'org.pacien.tincapp'
75 // clashing in dependencies (Apache Mina FtpServer)
76 exclude 'META-INF/DEPENDENCIES'
77 exclude 'META-INF/spring.schemas'
78 exclude 'META-INF/spring.handlers'
79 exclude 'META-INF/license.txt'
80 }
81} 75}
82 76
83dependencies { 77dependencies {
@@ -96,7 +90,6 @@ dependencies {
96 implementation('org.apache.commons:commons-configuration2:2.3') { exclude group: 'commons-logging', module: 'commons-logging' } 90 implementation('org.apache.commons:commons-configuration2:2.3') { exclude group: 'commons-logging', module: 'commons-logging' }
97 implementation('commons-beanutils:commons-beanutils:1.9.3') { exclude group: 'commons-logging', module: 'commons-logging' } 91 implementation('commons-beanutils:commons-beanutils:1.9.3') { exclude group: 'commons-logging', module: 'commons-logging' }
98 implementation('commons-io:commons-io:2.6') { exclude group: 'commons-logging', module: 'commons-logging' } 92 implementation('commons-io:commons-io:2.6') { exclude group: 'commons-logging', module: 'commons-logging' }
99 implementation('org.apache.ftpserver:ftpserver:1.1.1') { exclude group: 'org.slf4j', module: 'slf4j-log4j12' }
100} 93}
101 94
102repositories { 95repositories {
diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro
index ffbb3e3..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-2020 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
@@ -15,8 +15,6 @@
15# along with this program. If not, see <https://www.gnu.org/licenses/>. 15# along with this program. If not, see <https://www.gnu.org/licenses/>.
16 16
17-keep class org.apache.commons.** { *; } 17-keep class org.apache.commons.** { *; }
18-keep class org.apache.mina.** { *; }
19-keep class org.apache.ftpserver.** { *; }
20-keep class org.bouncycastle.** 18-keep class org.bouncycastle.**
21-keep class ch.qos.** { *; } 19-keep class ch.qos.** { *; }
22-keep class org.slf4j.** { *; } 20-keep class org.slf4j.** { *; }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c98555f..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,25 +19,24 @@
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
27 <!-- needed for the configuration FTP server -->
28 <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
29
30 <!-- workaround for broken file permissions on some Android ROMs --> 26 <!-- workaround for broken file permissions on some Android ROMs -->
31 <uses-permission-sdk-23 android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 27 <uses-permission-sdk-23 android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
32 28
33 <application 29 <application
34 android:name="org.pacien.tincapp.context.App" 30 android:name="org.pacien.tincapp.context.App"
35 android:allowBackup="false" 31 android:allowBackup="true"
32 android:dataExtractionRules="@xml/data_extraction_rules"
33 android:fullBackupContent="@xml/backup_rules"
36 android:icon="@mipmap/ic_launcher" 34 android:icon="@mipmap/ic_launcher"
37 android:label="@string/app_name" 35 android:label="@string/app_name"
38 android:supportsRtl="true" 36 android:supportsRtl="true"
39 android:theme="@style/AppTheme" 37 android:theme="@style/AppTheme"
40 tools:ignore="GoogleAppIndexingWarning"> 38 tools:ignore="GoogleAppIndexingWarning"
39 tools:targetApi="s">
41 40</