From 328ea1b130a3b6064280f6bdc37b6f5f00e881ea Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Fri, 12 Aug 2022 14:41:22 +0200 Subject: Mark all methods in profile manager synchronized to avoid race conditions --- main/src/main/java/de/blinkt/openvpn/core/ProfileManager.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/main/src/main/java/de/blinkt/openvpn/core/ProfileManager.java b/main/src/main/java/de/blinkt/openvpn/core/ProfileManager.java index b46a8f10..9f5c3ab5 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/ProfileManager.java +++ b/main/src/main/java/de/blinkt/openvpn/core/ProfileManager.java @@ -250,7 +250,7 @@ public class ProfileManager { editor.apply(); } - public void addProfile(VpnProfile profile) { + public synchronized void addProfile(VpnProfile profile) { profiles.put(profile.getUUID().toString(), profile); } @@ -259,7 +259,7 @@ public class ProfileManager { * profiles * @param context */ - public void refreshVPNList(Context context) + public synchronized void refreshVPNList(Context context) { SharedPreferences listpref = Preferences.getSharedPreferencesMulti(PREFS_NAME, context); Set vlist = listpref.getStringSet("vpnlist", null); @@ -283,7 +283,7 @@ public class ProfileManager { } } - private void loadVPNList(Context context) { + private synchronized void loadVPNList(Context context) { profiles = new HashMap<>(); SharedPreferences listpref = Preferences.getSharedPreferencesMulti(PREFS_NAME, context); Set vlist = listpref.getStringSet("vpnlist", null); @@ -298,7 +298,7 @@ public class ProfileManager { } } - private void loadVpnEntry(Context context, String vpnentry) { + private synchronized void loadVpnEntry(Context context, String vpnentry) { ObjectInputStream vpnfile = null; try { FileInputStream vpInput; @@ -339,7 +339,7 @@ public class ProfileManager { } } - public void removeProfile(Context context, VpnProfile profile) { + public synchronized void removeProfile(Context context, VpnProfile profile) { String vpnentry = profile.getUUID().toString(); profiles.remove(vpnentry); saveProfileList(context); -- cgit v1.2.3 From 62a4c42f42abcc202f6ccba2e5b2a2a05a259068 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Fri, 12 Aug 2022 15:56:41 +0200 Subject: Try to fix/workaround problems reported by Google Play console --- main/src/main/java/de/blinkt/openvpn/core/LogItem.java | 5 +++-- main/src/main/java/de/blinkt/openvpn/core/NetworkUtils.java | 4 ++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/main/src/main/java/de/blinkt/openvpn/core/LogItem.java b/main/src/main/java/de/blinkt/openvpn/core/LogItem.java index c61cbc44..144ae7c4 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/LogItem.java +++ b/main/src/main/java/de/blinkt/openvpn/core/LogItem.java @@ -18,6 +18,7 @@ import java.io.ByteArrayInputStream; import java.io.UnsupportedEncodingException; import java.nio.BufferOverflowException; import java.nio.ByteBuffer; +import java.nio.charset.StandardCharsets; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.security.cert.CertificateException; @@ -195,7 +196,7 @@ public class LogItem implements Parcelable { } private void marschalString(String str, ByteBuffer bb) throws UnsupportedEncodingException { - byte[] utf8bytes = str.getBytes("UTF-8"); + byte[] utf8bytes = str.getBytes(StandardCharsets.UTF_8); bb.putInt(utf8bytes.length); bb.put(utf8bytes); } @@ -204,7 +205,7 @@ public class LogItem implements Parcelable { int len = bb.getInt(); byte[] utf8bytes = new byte[len]; bb.get(utf8bytes); - return new String(utf8bytes, "UTF-8"); + return new String(utf8bytes, StandardCharsets.UTF_8); } diff --git a/main/src/main/java/de/blinkt/openvpn/core/NetworkUtils.java b/main/src/main/java/de/blinkt/openvpn/core/NetworkUtils.java index 00f45ed4..8b2a1b1c 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/NetworkUtils.java +++ b/main/src/main/java/de/blinkt/openvpn/core/NetworkUtils.java @@ -29,6 +29,10 @@ public class NetworkUtils { NetworkCapabilities nc = conn.getNetworkCapabilities(network); + // Ignore network if it has no capabilities + if (nc == null) + continue; + // Skip VPN networks like ourselves if (nc.hasTransport(NetworkCapabilities.TRANSPORT_VPN)) continue; -- cgit v1.2.3 From c51decadcb8e9d925196c52ba670a170d69feff8 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Fri, 12 Aug 2022 16:29:20 +0200 Subject: Version 0.7.39 --- main/build.gradle.kts | 4 ++-- main/src/main/cpp/CMakeLists.txt | 1 + main/src/main/cpp/openvpn | 2 +- main/src/main/cpp/openvpn3 | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/main/build.gradle.kts b/main/build.gradle.kts index ac2eeae0..b6163ec4 100644 --- a/main/build.gradle.kts +++ b/main/build.gradle.kts @@ -20,8 +20,8 @@ android { defaultConfig { minSdk = 21 targetSdk = 33 - versionCode = 193 - versionName = "0.7.38" + versionCode = 194 + versionName = "0.7.39" externalNativeBuild { cmake { } diff --git a/main/src/main/cpp/CMakeLists.txt b/main/src/main/cpp/CMakeLists.txt index c0222151..37c5bd82 100644 --- a/main/src/main/cpp/CMakeLists.txt +++ b/main/src/main/cpp/CMakeLists.txt @@ -166,6 +166,7 @@ set(openvpn_srcs src/openvpn/occ.c src/openvpn/openvpn.c src/openvpn/options.c + src/openvpn/options_util.c src/openvpn/otime.c src/openvpn/packet_id.c src/openvpn/perf.c diff --git a/main/src/main/cpp/openvpn b/main/src/main/cpp/openvpn index 7e5f4107..b1ae5974 160000 --- a/main/src/main/cpp/openvpn +++ b/main/src/main/cpp/openvpn @@ -1 +1 @@ -Subproject commit 7e5f410745eeda7d08d83445429ecd70035b730b +Subproject commit b1ae59746c150da85aa93c8e0ac1e8a0e670d6ef diff --git a/main/src/main/cpp/openvpn3 b/main/src/main/cpp/openvpn3 index a6296185..2288b479 160000 --- a/main/src/main/cpp/openvpn3 +++ b/main/src/main/cpp/openvpn3 @@ -1 +1 @@ -Subproject commit a6296185ec5d6f604ed2c66a3e1c81ff99e387f9 +Subproject commit 2288b479e90adc972e2d0069394eb36e8ec3f14c -- cgit v1.2.3 From e544282169db8b8e90867bbb087133621bde35ca Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Sun, 21 Aug 2022 17:21:46 +0200 Subject: Log exit reason on start in log This should help finding out why the process suddenly dies. --- .../blinkt/openvpn/core/ICSOpenVPNApplication.java | 1 - .../main/java/de/blinkt/openvpn/core/LogItem.java | 15 ++++++- .../de/blinkt/openvpn/core/StatusListener.java | 42 ++++++++++++++++++- .../java/de/blinkt/openvpn/core/VpnStatus.java | 49 ++++++++++++++++++---- .../de/blinkt/openvpn/core/TestLogFileHandler.java | 22 +++++++++- .../blinkt/openvpn/fragments/SendDumpFragment.java | 1 + 6 files changed, 117 insertions(+), 13 deletions(-) diff --git a/main/src/main/java/de/blinkt/openvpn/core/ICSOpenVPNApplication.java b/main/src/main/java/de/blinkt/openvpn/core/ICSOpenVPNApplication.java index 1df46525..271ec139 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/ICSOpenVPNApplication.java +++ b/main/src/main/java/de/blinkt/openvpn/core/ICSOpenVPNApplication.java @@ -128,5 +128,4 @@ public class ICSOpenVPNApplication extends Application { mChannel.setLightColor(Color.CYAN); mNotificationManager.createNotificationChannel(mChannel); } - } diff --git a/main/src/main/java/de/blinkt/openvpn/core/LogItem.java b/main/src/main/java/de/blinkt/openvpn/core/LogItem.java index 144ae7c4..74601349 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/LogItem.java +++ b/main/src/main/java/de/blinkt/openvpn/core/LogItem.java @@ -48,6 +48,14 @@ public class LogItem implements Parcelable { mArgs = args; } + public LogItem(VpnStatus.LogLevel level, int verblevel, String message, long eventLogTime) { + mMessage = message; + mLevel = level; + mVerbosityLevel = verblevel; + logtime = eventLogTime; + } + + public LogItem(VpnStatus.LogLevel level, int verblevel, String message) { mMessage = message; mLevel = level; @@ -85,8 +93,6 @@ public class LogItem implements Parcelable { other.mLevel.equals(mLevel)) && mVerbosityLevel == other.mVerbosityLevel && logtime == other.logtime; - - } public byte[] getMarschaledBytes() throws UnsupportedEncodingException, BufferOverflowException { @@ -241,6 +247,11 @@ public class LogItem implements Parcelable { mMessage = msg; } + public LogItem(VpnStatus.LogLevel loglevel, String msg, long logEventTime) { + mLevel = loglevel; + mMessage = msg; + logtime = logEventTime; + } public LogItem(VpnStatus.LogLevel loglevel, int ressourceId) { mRessourceId = ressourceId; diff --git a/main/src/main/java/de/blinkt/openvpn/core/StatusListener.java b/main/src/main/java/de/blinkt/openvpn/core/StatusListener.java index 13a88974..500cc5e7 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/StatusListener.java +++ b/main/src/main/java/de/blinkt/openvpn/core/StatusListener.java @@ -5,29 +5,36 @@ package de.blinkt.openvpn.core; +import static android.app.ApplicationExitInfo.REASON_CRASH_NATIVE; + +import android.app.ActivityManager; +import android.app.ApplicationExitInfo; import android.app.PendingIntent; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.ServiceConnection; +import android.os.Build; import android.os.IBinder; import android.os.ParcelFileDescriptor; import android.os.RemoteException; import android.util.Log; + +import androidx.annotation.RequiresApi; + import de.blinkt.openvpn.BuildConfig; import de.blinkt.openvpn.core.VpnStatus.LogLevel; import java.io.DataInputStream; import java.io.File; import java.io.IOException; +import java.util.List; /** * Created by arne on 09.11.16. */ public class StatusListener implements VpnStatus.LogListener { - private File mCacheDir; - private Context mContext; private final IStatusCallbacks mCallback = new IStatusCallbacks.Stub() { @Override public void newLogItem(LogItem item) throws RemoteException { @@ -50,6 +57,7 @@ public class StatusListener implements VpnStatus.LogListener { VpnStatus.setConnectedVPNProfile(uuid); } }; + private File mCacheDir; private final ServiceConnection mConnection = new ServiceConnection() { @@ -102,6 +110,7 @@ public class StatusListener implements VpnStatus.LogListener { } }; + private Context mContext; void init(Context c) { @@ -112,6 +121,35 @@ public class StatusListener implements VpnStatus.LogListener { c.bindService(intent, mConnection, Context.BIND_AUTO_CREATE); this.mContext = c; + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) + logLatestExitReasons(c); + } + + @RequiresApi(Build.VERSION_CODES.R) + private void logLatestExitReasons(Context c) { + ActivityManager activityManager = (ActivityManager) c.getSystemService(Context.ACTIVITY_SERVICE); + List exitReasons = activityManager.getHistoricalProcessExitReasons(null, 0, 5); + ApplicationExitInfo lastguiexit = null; + ApplicationExitInfo lastserviceexit = null; + for (ApplicationExitInfo aei : exitReasons) { + if (aei.getProcessName().endsWith(":openvpn")) { + if (lastserviceexit == null || aei.getTimestamp() > lastserviceexit.getTimestamp()) + lastserviceexit = aei; + } else { + if (lastguiexit == null || aei.getTimestamp() > lastguiexit.getTimestamp()) + lastguiexit = aei; + } + } + logExitNotification(lastserviceexit, "Last exit reason reported by Android for Service Process: "); + logExitNotification(lastguiexit, "Last exit reason reported by Android for UI Process: "); + + } + + private void logExitNotification(ApplicationExitInfo aei, String s) { + if (aei != null) { + LogItem li = new LogItem(LogLevel.DEBUG, s + aei, aei.getTimestamp()); + VpnStatus.newLogItemIfUnique(li); + } } @Override diff --git a/main/src/main/java/de/blinkt/openvpn/core/VpnStatus.java b/main/src/main/java/de/blinkt/openvpn/core/VpnStatus.java index c8e69414..8130faef 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/VpnStatus.java +++ b/main/src/main/java/de/blinkt/openvpn/core/VpnStatus.java @@ -14,15 +14,15 @@ import android.os.Message; import java.io.File; import java.io.PrintWriter; import java.io.StringWriter; +import java.util.Iterator; import java.util.LinkedList; +import java.util.ListIterator; import java.util.Locale; import java.util.Vector; import de.blinkt.openvpn.R; public class VpnStatus { - - private static final LinkedList logbuffer; private static Vector logListener; @@ -150,7 +150,6 @@ public class VpnStatus { VpnStatus.trafficHistory = trafficHistory; } - public enum LogLevel { INFO(2), ERROR(-2), @@ -240,7 +239,7 @@ public class VpnStatus { String nativeAPI; try { nativeAPI = NativeUtils.getNativeAPI(); - } catch (UnsatisfiedLinkError ignore) { + } catch (UnsatisfiedLinkError|NoClassDefFoundError ignore) { nativeAPI = "error"; } @@ -418,15 +417,23 @@ public class VpnStatus { } static void newLogItem(LogItem logItem) { - newLogItem(logItem, false); + newLogItem(logItem, false, false); + } + + public static void newLogItemIfUnique(LogItem li) { + newLogItem(li, false, true); } + public static void newLogItem(LogItem logItem, boolean cachedLine) + { + newLogItem(logItem, cachedLine, false); + } - synchronized static void newLogItem(LogItem logItem, boolean cachedLine) { + synchronized static void newLogItem(LogItem logItem, boolean cachedLine, boolean enforceUnique) { if (cachedLine) { logbuffer.addFirst(logItem); } else { - logbuffer.addLast(logItem); + insertLogItemByLogTime(logItem, enforceUnique); if (mLogFileHandler != null) { Message m = mLogFileHandler.obtainMessage(LogFileHandler.LOG_MESSAGE, logItem); mLogFileHandler.sendMessage(m); @@ -445,6 +452,34 @@ public class VpnStatus { } } + private static void insertLogItemByLogTime(LogItem logItem, boolean enforceUnique) { + /* Shortcut for the shortcut that it should be added at the + * end to avoid traversing the list + */ + if (!logbuffer.isEmpty() && logbuffer.getLast().getLogtime() <= logItem.getLogtime()) + { + logbuffer.addLast(logItem); + return; + } + + ListIterator itr = logbuffer.listIterator(); + long newItemLogTime = logItem.getLogtime(); + while(itr.hasNext()) { + LogItem laterLogItem = itr.next(); + if (enforceUnique && laterLogItem.equals(logItem)) + /* Identical object found, ignore new item */ + return; + + if (laterLogItem.getLogtime() > newItemLogTime) { + itr.previous(); + itr.add(logItem); + return; + } + } + /* no hasNext, add at the end */ + itr.add(logItem); + } + public static void logError(String msg) { newLogItem(new LogItem(LogLevel.ERROR, msg)); diff --git a/main/src/test/java/de/blinkt/openvpn/core/TestLogFileHandler.java b/main/src/test/java/de/blinkt/openvpn/core/TestLogFileHandler.java index b32e5efa..e024bf90 100644 --- a/main/src/test/java/de/blinkt/openvpn/core/TestLogFileHandler.java +++ b/main/src/test/java/de/blinkt/openvpn/core/TestLogFileHandler.java @@ -80,6 +80,27 @@ public class TestLogFileHandler { Assert.assertEquals(li, li2); } + @Test + public void testLogInsertByTime() + { + VpnStatus vpnStatus = new VpnStatus(); + /* Add the generic information message */ + VpnStatus.clearLog(); + + long[] testTimes = {1000, 20000, 1500, 500, 6000, 70000, System.currentTimeMillis()+5000}; + for (long time: testTimes) { + LogItem li = new LogItem(VpnStatus.LogLevel.INFO, "unit test", time); + VpnStatus.newLogItemIfUnique(li); + } + + long lastlogTime = 0; + for(LogItem li:VpnStatus.getlogbuffer()) + { + org.junit.Assert.assertTrue(li.getLogtime() >= lastlogTime); + lastlogTime = li.getLogtime(); + } + } + private void testEquals(LogItem li, LogItem li2) { Assert.assertEquals(li.getLogLevel(), li2.getLogLevel()); @@ -120,5 +141,4 @@ public class TestLogFileHandler { } } - } \ No newline at end of file diff --git a/main/src/ui/java/de/blinkt/openvpn/fragments/SendDumpFragment.java b/main/src/ui/java/de/blinkt/openvpn/fragments/SendDumpFragment.java index 5bc0bbb1..6d4d2968 100644 --- a/main/src/ui/java/de/blinkt/openvpn/fragments/SendDumpFragment.java +++ b/main/src/ui/java/de/blinkt/openvpn/fragments/SendDumpFragment.java @@ -104,6 +104,7 @@ public class SendDumpFragment extends Fragment { Pair ldump = getLastestDump(getActivity()); if (ldump == null) { VpnStatus.logError("No Minidump found!"); + return; } uris.add(Uri.parse("content://de.blinkt.openvpn.FileProvider/" + ldump.first.getName())); -- cgit v1.2.3 From 017b3f39c2368a41012c0c6a1f000858b305b1d3 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Sun, 21 Aug 2022 20:08:44 +0200 Subject: Implement querying for notification permission (API 33) --- main/src/main/AndroidManifest.xml | 1 + .../blinkt/openvpn/fragments/VPNProfileList.java | 22 +++++ main/src/ui/res/drawable/notifications.xml | 10 +++ main/src/ui/res/layout/vpn_profile_list.xml | 97 ++++++++++++---------- 4 files changed, 87 insertions(+), 43 deletions(-) create mode 100644 main/src/ui/res/drawable/notifications.xml diff --git a/main/src/main/AndroidManifest.xml b/main/src/main/AndroidManifest.xml index 61d96c4b..eb0c0d4f 100644 --- a/main/src/main/AndroidManifest.xml +++ b/main/src/main/AndroidManifest.xml @@ -8,6 +8,7 @@ + diff --git a/main/src/ui/java/de/blinkt/openvpn/fragments/VPNProfileList.java b/main/src/ui/java/de/blinkt/openvpn/fragments/VPNProfileList.java index c7ee5df1..e833e81f 100644 --- a/main/src/ui/java/de/blinkt/openvpn/fragments/VPNProfileList.java +++ b/main/src/ui/java/de/blinkt/openvpn/fragments/VPNProfileList.java @@ -5,12 +5,14 @@ package de.blinkt.openvpn.fragments; +import android.Manifest; import android.annotation.TargetApi; import android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; +import android.content.pm.PackageManager; import android.content.pm.ShortcutInfo; import android.content.pm.ShortcutManager; import android.graphics.drawable.Drawable; @@ -20,6 +22,7 @@ import android.os.Build; import android.os.Bundle; import android.os.PersistableBundle; +import androidx.activity.result.contract.ActivityResultContracts; import androidx.annotation.NonNull; import androidx.annotation.RequiresApi; import androidx.fragment.app.ListFragment; @@ -76,6 +79,7 @@ public class VPNProfileList extends ListFragment implements OnClickListener, Vpn private static final int SELECT_PROFILE = 43; private static final int IMPORT_PROFILE = 231; private static final int FILE_PICKER_RESULT_KITKAT = 392; + private static final int RESULT_PERMISSION = 395; private static final int MENU_IMPORT_PROFILE = Menu.FIRST + 1; private static final int MENU_CHANGE_SORTING = Menu.FIRST + 2; private static final int MENU_IMPORT_AS = Menu.FIRST + 3; @@ -85,6 +89,7 @@ public class VPNProfileList extends ListFragment implements OnClickListener, Vpn private ArrayAdapter mArrayadapter; private Intent mLastIntent; private VpnProfile defaultVPN; + private View mPermissionView; @Override public void updateState(String state, String logmessage, final int localizedResId, ConnectionStatus level, Intent intent) { @@ -278,10 +283,24 @@ public class VPNProfileList extends ListFragment implements OnClickListener, Vpn if (fab_import != null) fab_import.setOnClickListener(this); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) + checkForNotificationPermission(v); + + return v; } + private void checkForNotificationPermission(View v) { + mPermissionView = v.findViewById(R.id.notification_permission); + boolean permissionGranted = (requireActivity().checkSelfPermission(Manifest.permission.POST_NOTIFICATIONS) == PackageManager.PERMISSION_GRANTED); + mPermissionView.setVisibility(permissionGranted ? View.GONE : View.VISIBLE); + + mPermissionView.setOnClickListener((view) -> { + requireActivity().requestPermissions(new String[]{Manifest.permission.POST_NOTIFICATIONS}, RESULT_PERMISSION); + }); + } + private void setListAdapter() { if (mArrayadapter == null) { mArrayadapter = new VPNArrayAdapter(getActivity(), R.layout.vpn_list_item, R.id.vpn_item_title); @@ -483,9 +502,12 @@ public class VPNProfileList extends ListFragment implements OnClickListener, Vpn VpnProfile profile = ProfileManager.get(getActivity(), profileUUID); if (profile != null) onAddOrDuplicateProfile(profile); + } else if (resultCode == RESULT_PERMISSION) { + checkForNotificationPermission(requireView()); } + if (resultCode != Activity.RESULT_OK) return; diff --git a/main/src/ui/res/drawable/notifications.xml b/main/src/ui/res/drawable/notifications.xml new file mode 100644 index 00000000..b9d27eb7 --- /dev/null +++ b/main/src/ui/res/drawable/notifications.xml @@ -0,0 +1,10 @@ + + + diff --git a/main/src/ui/res/layout/vpn_profile_list.xml b/main/src/ui/res/layout/vpn_profile_list.xml index f85222b6..7dd2eb36 100644 --- a/main/src/ui/res/layout/vpn_profile_list.xml +++ b/main/src/ui/res/layout/vpn_profile_list.xml @@ -3,77 +3,88 @@ ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt --> + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent"> + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical" + android:paddingLeft="@dimen/stdpadding" + android:paddingRight="@dimen/stdpadding"> + + + android:id="@android:id/list" + android:layout_width="fill_parent" + android:layout_height="fill_parent" + android:descendantFocusability="afterDescendants" /> + android:id="@android:id/empty" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:gravity="center" + android:orientation="vertical"> + android:layout_width="fill_parent" + android:layout_height="wrap_content" + android:text="@string/no_vpn_profiles_defined" + android:textAppearance="?android:attr/textAppearanceLarge" /> + android:layout_width="match_parent" + android:layout_height="12sp" /> + android:layout_width="fill_parent" + android:layout_height="wrap_content" + android:autoLink="web" + android:text="@string/openvpn_is_no_free_vpn" /> + android:layout_width="match_parent" + android:layout_height="12sp" /> + android:id="@+id/add_new_vpn_hint" + android:layout_width="fill_parent" + android:layout_height="wrap_content" + tools:ignore="SelectableText" /> + android:id="@+id/import_vpn_hint" + android:layout_width="fill_parent" + android:layout_height="wrap_content" + tools:ignore="SelectableText" /> + android:layout_width="match_parent" + android:layout_height="12sp" /> + android:layout_width="fill_parent" + android:layout_height="wrap_content" + android:text="@string/faq_hint" /> - + -- cgit v1.2.3 From ffa1cca8544a224eef7fb89dc8dd3bef9ecc8e5c Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Sun, 21 Aug 2022 20:49:07 +0200 Subject: Replace system standard bitmap drawables with vector drawables --- .../src/main/res/drawable-hdpi/ic_menu_archive.png | Bin 1094 -> 0 bytes .../res/drawable-hdpi/ic_menu_copy_holo_light.png | Bin 199 -> 0 bytes main/src/main/res/drawable-hdpi/ic_menu_log.png | Bin 2891 -> 0 bytes .../main/res/drawable-hdpi/vpn_item_settings.png | Bin 773 -> 0 bytes .../src/main/res/drawable-mdpi/ic_menu_archive.png | Bin 831 -> 0 bytes .../res/drawable-mdpi/ic_menu_copy_holo_light.png | Bin 161 -> 0 bytes main/src/main/res/drawable-mdpi/ic_menu_log.png | Bin 2860 -> 0 bytes .../main/res/drawable-mdpi/vpn_item_settings.png | Bin 653 -> 0 bytes .../main/res/drawable-xhdpi/ic_menu_archive.png | Bin 1398 -> 0 bytes .../res/drawable-xhdpi/ic_menu_copy_holo_light.png | Bin 252 -> 0 bytes main/src/main/res/drawable-xhdpi/ic_menu_log.png | Bin 2927 -> 0 bytes .../main/res/drawable-xhdpi/vpn_item_settings.png | Bin 956 -> 0 bytes .../drawable-xxhdpi/ic_menu_copy_holo_light.png | Bin 1279 -> 0 bytes main/src/main/res/drawable-xxhdpi/ic_menu_log.png | Bin 3069 -> 0 bytes .../drawable/ic_baseline_add_circle_outline_24.xml | 10 ++++++++ .../main/res/drawable/ic_baseline_archive_24.xml | 10 ++++++++ .../src/main/res/drawable/ic_baseline_check_24.xml | 10 ++++++++ .../src/main/res/drawable/ic_baseline_close_24.xml | 10 ++++++++ .../main/res/drawable/ic_baseline_delete_24.xml | 15 +++++++++++ .../res/drawable/ic_baseline_delete_outline_24.xml | 10 ++++++++ main/src/main/res/drawable/ic_baseline_edit_24.xml | 5 ++++ .../main/res/drawable/ic_baseline_file_copy_24.xml | 10 ++++++++ .../res/drawable/ic_baseline_file_present_24.xml | 10 ++++++++ .../res/drawable/ic_baseline_filter_list_24.xml | 10 ++++++++ .../main/res/drawable/ic_baseline_folder_24.xml | 10 ++++++++ .../src/main/res/drawable/ic_baseline_pause_24.xml | 10 ++++++++ .../res/drawable/ic_baseline_play_arrow_24.xml | 10 ++++++++ .../res/drawable/ic_baseline_receipt_long_24.xml | 14 +++++++++++ .../main/res/drawable/ic_baseline_search_24.xml | 10 ++++++++ .../src/main/res/drawable/ic_baseline_share_24.xml | 15 +++++++++++ main/src/main/res/drawable/ic_baseline_sort_24.xml | 10 ++++++++ .../main/res/drawable/ic_baseline_warning_24.xml | 10 ++++++++ main/src/main/res/drawable/ic_edit.xml | 10 ++++++++ main/src/main/res/values/attrs.xml | 3 ++- main/src/main/res/values/refs.xml | 27 ++++++++++++++++++++ main/src/skeleton/res/values/attrs.xml | 5 ++++ main/src/skeleton/res/values/refs.xml | 27 -------------------- main/src/skeleton/res/values/styles.xml | 1 - .../openvpn/fragments/FileSelectionFragment.java | 8 +++--- .../ic_add_circle_outline_grey600_24dp.png | Bin 624 -> 0 bytes .../ic_add_circle_outline_white_24dp.png | Bin 606 -> 0 bytes .../res/drawable-hdpi/ic_archive_grey600_24dp.png | Bin 353 -> 0 bytes .../ui/res/drawable-hdpi/ic_archive_white_24dp.png | Bin 347 -> 0 bytes .../ui/res/drawable-hdpi/ic_check_white_24dp.png | Bin 309 -> 0 bytes .../ui/res/drawable-hdpi/ic_close_white_24dp.png | Bin 221 -> 0 bytes .../drawable-hdpi/ic_content_copy_white_24dp.png | Bin 287 -> 0 bytes .../res/drawable-hdpi/ic_delete_grey600_24dp.png | Bin 248 -> 0 bytes .../ui/res/drawable-hdpi/ic_delete_white_24dp.png | Bin 246 -> 0 bytes .../src/ui/res/drawable-hdpi/ic_doc_generic_am.png | Bin 694 -> 0 bytes .../ui/res/drawable-hdpi/ic_edit_grey600_24dp.png | Bin 341 -> 0 bytes .../ui/res/drawable-hdpi/ic_edit_white_24dp.png | Bin 339 -> 0 bytes .../drawable-hdpi/ic_filter_list_white_24dp.png | Bin 206 -> 0 bytes .../res/drawable-hdpi/ic_menu_copy_holo_dark.png | Bin 186 -> 0 bytes .../ui/res/drawable-hdpi/ic_pause_white_24dp.png | Bin 105 -> 0 bytes .../res/drawable-hdpi/ic_play_arrow_white_24dp.png | Bin 195 -> 0 bytes .../ui/res/drawable-hdpi/ic_receipt_white_24dp.png | Bin 261 -> 0 bytes .../src/ui/res/drawable-hdpi/ic_root_folder_am.png | Bin 508 -> 0 bytes .../ui/res/drawable-hdpi/ic_search_white_24dp.png | Bin 396 -> 0 bytes .../ui/res/drawable-hdpi/ic_share_white_24dp.png | Bin 506 -> 0 bytes .../ui/res/drawable-hdpi/ic_sort_white_24dp.png | Bin 115 -> 0 bytes .../ui/res/drawable-hdpi/ic_warning_black_36dp.png | Bin 549 -> 0 bytes .../ic_add_circle_outline_grey600_24dp.png | Bin 427 -> 0 bytes .../ic_add_circle_outline_white_24dp.png | Bin 409 -> 0 bytes .../res/drawable-mdpi/ic_archive_grey600_24dp.png | Bin 266 -> 0 bytes .../ui/res/drawable-mdpi/ic_archive_white_24dp.png | Bin 264 -> 0 bytes .../ui/res/drawable-mdpi/ic_check_white_24dp.png | Bin 243 -> 0 bytes .../ui/res/drawable-mdpi/ic_close_white_24dp.png | Bin 175 -> 0 bytes .../drawable-mdpi/ic_content_copy_white_24dp.png | Bin 216 -> 0 bytes .../res/drawable-mdpi/ic_delete_grey600_24dp.png | Bin 199 -> 0 bytes .../ui/res/drawable-mdpi/ic_delete_white_24dp.png | Bin 197 -> 0 bytes .../src/ui/res/drawable-mdpi/ic_doc_generic_am.png | Bin 561 -> 0 bytes .../ui/res/drawable-mdpi/ic_edit_grey600_24dp.png | Bin 276 -> 0 bytes .../ui/res/drawable-mdpi/ic_edit_white_24dp.png | Bin 272 -> 0 bytes .../drawable-mdpi/ic_filter_list_white_24dp.png | Bin 181 -> 0 bytes .../res/drawable-mdpi/ic_menu_copy_holo_dark.png | Bin 162 -> 0 bytes .../ui/res/drawable-mdpi/ic_pause_white_24dp.png | Bin 83 -> 0 bytes .../res/drawable-mdpi/ic_play_arrow_white_24dp.png | Bin 157 -> 0 bytes .../ui/res/drawable-mdpi/ic_receipt_white_24dp.png | Bin 194 -> 0 bytes .../src/ui/res/drawable-mdpi/ic_root_folder_am.png | Bin 442 -> 0 bytes .../ui/res/drawable-mdpi/ic_search_white_24dp.png | Bin 247 -> 0 bytes .../ui/res/drawable-mdpi/ic_share_white_24dp.png | Bin 361 -> 0 bytes .../ui/res/drawable-mdpi/ic_sort_white_24dp.png | Bin 90 -> 0 bytes .../ui/res/drawable-mdpi/ic_warning_black_36dp.png | Bin 432 -> 0 bytes .../ic_add_circle_outline_grey600_24dp.png | Bin 781 -> 0 bytes .../ic_add_circle_outline_white_24dp.png | Bin 775 -> 0 bytes .../res/drawable-xhdpi/ic_archive_grey600_24dp.png | Bin 372 -> 0 bytes .../res/drawable-xhdpi/ic_archive_white_24dp.png | Bin 362 -> 0 bytes .../ui/res/drawable-xhdpi/ic_check_white_24dp.png | Bin 363 -> 0 bytes .../ui/res/drawable-xhdpi/ic_close_white_24dp.png | Bin 257 -> 0 bytes .../drawable-xhdpi/ic_content_copy_white_24dp.png | Bin 330 -> 0 bytes .../res/drawable-xhdpi/ic_delete_grey600_24dp.png | Bin 271 -> 0 bytes .../ui/res/drawable-xhdpi/ic_delete_white_24dp.png | Bin 270 -> 0 bytes .../ui/res/drawable-xhdpi/ic_doc_generic_am.png | Bin 831 -> 0 bytes .../ui/res/drawable-xhdpi/ic_edit_grey600_24dp.png | Bin 379 -> 0 bytes .../ui/res/drawable-xhdpi/ic_edit_white_24dp.png | Bin 378 -> 0 bytes .../drawable-xhdpi/ic_filter_list_white_24dp.png | Bin 200 -> 0 bytes .../res/drawable-xhdpi/ic_menu_copy_holo_dark.png | Bin 261 -> 0 bytes .../ui/res/drawable-xhdpi/ic_pause_white_24dp.png | Bin 90 -> 0 bytes .../drawable-xhdpi/ic_play_arrow_white_24dp.png | Bin 220 -> 0 bytes .../res/drawable-xhdpi/ic_receipt_white_24dp.png | Bin 240 -> 0 bytes .../ui/res/drawable-xhdpi/ic_root_folder_am.png | Bin 582 -> 0 bytes .../ui/res/drawable-xhdpi/ic_search_white_24dp.png | Bin 465 -> 0 bytes .../ui/res/drawable-xhdpi/ic_share_white_24dp.png | Bin 625 -> 0 bytes .../ui/res/drawable-xhdpi/ic_sort_white_24dp.png | Bin 101 -> 0 bytes .../res/drawable-xhdpi/ic_warning_black_36dp.png | Bin 655 -> 0 bytes .../ic_add_circle_outline_grey600_24dp.png | Bin 1106 -> 0 bytes .../ic_add_circle_outline_white_24dp.png | Bin 1097 -> 0 bytes .../drawable-xxhdpi/ic_archive_grey600_24dp.png | Bin 529 -> 0 bytes .../res/drawable-xxhdpi/ic_archive_white_24dp.png | Bin 520 -> 0 bytes .../ui/res/drawable-xxhdpi/ic_check_white_24dp.png | Bin 460 -> 0 bytes .../ui/res/drawable-xxhdpi/ic_close_white_24dp.png | Bin 347 -> 0 bytes .../drawable-xxhdpi/ic_content_copy_white_24dp.png | Bin 436 -> 0 bytes .../res/drawable-xxhdpi/ic_delete_grey600_24dp.png | Bin 341 -> 0 bytes .../res/drawable-xxhdpi/ic_delete_white_24dp.png | Bin 338 -> 0 bytes .../ui/res/drawable-xxhdpi/ic_doc_generic_am.png | Bin 585 -> 0 bytes .../res/drawable-xxhdpi/ic_edit_grey600_24dp.png | Bin 493 -> 0 bytes .../ui/res/drawable-xxhdpi/ic_edit_white_24dp.png | Bin 490 -> 0 bytes .../drawable-xxhdpi/ic_filter_list_white_24dp.png | Bin 223 -> 0 bytes .../res/drawable-xxhdpi/ic_menu_copy_holo_dark.png | Bin 1272 -> 0 bytes .../ui/res/drawable-xxhdpi/ic_pause_white_24dp.png | Bin 92 -> 0 bytes .../drawable-xxhdpi/ic_play_arrow_white_24dp.png | Bin 283 -> 0 bytes .../res/drawable-xxhdpi/ic_receipt_white_24dp.png | Bin 292 -> 0 bytes .../ui/res/drawable-xxhdpi/ic_root_folder_am.png | Bin 1263 -> 0 bytes .../res/drawable-xxhdpi/ic_search_white_24dp.png | Bin 728 -> 0 bytes .../ui/res/drawable-xxhdpi/ic_share_white_24dp.png | Bin 857 -> 0 bytes .../ui/res/drawable-xxhdpi/ic_sort_white_24dp.png | Bin 103 -> 0 bytes .../res/drawable-xxhdpi/ic_warning_black_36dp.png | Bin 873 -> 0 bytes .../ic_add_circle_outline_grey600_24dp.png | Bin 1508 -> 0 bytes .../ic_add_circle_outline_white_24dp.png | Bin 1634 -> 0 bytes .../drawable-xxxhdpi/ic_archive_grey600_24dp.png | Bin 773 -> 0 bytes .../res/drawable-xxxhdpi/ic_archive_white_24dp.png | Bin 763 -> 0 bytes .../res/drawable-xxxhdpi/ic_check_white_24dp.png | Bin 587 -> 0 bytes .../res/drawable-xxxhdpi/ic_close_white_24dp.png | Bin 436 -> 0 bytes .../ic_content_copy_white_24dp.png | Bin 522 -> 0 bytes .../drawable-xxxhdpi/ic_delete_grey600_24dp.png | Bin 402 -> 0 bytes .../res/drawable-xxxhdpi/ic_delete_white_24dp.png | Bin 397 -> 0 bytes .../res/drawable-xxxhdpi/ic_edit_grey600_24dp.png | Bin 639 -> 0 bytes .../ui/res/drawable-xxxhdpi/ic_edit_white_24dp.png | Bin 632 -> 0 bytes .../drawable-xxxhdpi/ic_filter_list_white_24dp.png | Bin 254 -> 0 bytes .../res/drawable-xxxhdpi/ic_pause_white_24dp.png | Bin 94 -> 0 bytes .../drawable-xxxhdpi/ic_play_arrow_white_24dp.png | Bin 343 -> 0 bytes .../res/drawable-xxxhdpi/ic_receipt_white_24dp.png | Bin 334 -> 0 bytes .../res/drawable-xxxhdpi/ic_search_white_24dp.png | Bin 915 -> 0 bytes .../res/drawable-xxxhdpi/ic_share_white_24dp.png | Bin 1115 -> 0 bytes .../ui/res/drawable-xxxhdpi/ic_sort_white_24dp.png | Bin 107 -> 0 bytes .../res/drawable-xxxhdpi/ic_warning_black_36dp.png | Bin 1033 -> 0 bytes main/src/ui/res/drawable/ic_warning.xml | 28 +++++++++++++++++++++ main/src/ui/res/layout-v21/profile_list_fabs.xml | 2 +- main/src/ui/res/layout/vpn_list_item.xml | 2 +- main/src/ui/res/menu/allowed_apps.xml | 2 +- main/src/ui/res/values/refs.xml | 27 -------------------- 151 files changed, 268 insertions(+), 63 deletions(-) delete mode 100644 main/src/main/res/drawable-hdpi/ic_menu_archive.png delete mode 100644 main/src/main/res/drawable-hdpi/ic_menu_copy_holo_light.png delete mode 100644 main/src/main/res/drawable-hdpi/ic_menu_log.png delete mode 100644 main/src/main/res/drawable-hdpi/vpn_item_settings.png delete mode 100644 main/src/main/res/drawable-mdpi/ic_menu_archive.png delete mode 100644 main/src/main/res/drawable-mdpi/ic_menu_copy_holo_light.png delete mode 100644 main/src/main/res/drawable-mdpi/ic_menu_log.png delete mode 100644 main/src/main/res/drawable-mdpi/vpn_item_settings.png delete mode 100644 main/src/main/res/drawable-xhdpi/ic_menu_archive.png delete mode 100644 main/src/main/res/drawable-xhdpi/ic_menu_copy_holo_light.png delete mode 100644 main/src/main/res/drawable-xhdpi/ic_menu_log.png delete mode 100644 main/src/main/res/drawable-xhdpi/vpn_item_settings.png delete mode 100644 main/src/main/res/drawable-xxhdpi/ic_menu_copy_holo_light.png delete mode 100644 main/src/main/res/drawable-xxhdpi/ic_menu_log.png create mode 100644 main/src/main/res/drawable/ic_baseline_add_circle_outline_24.xml create mode 100644 main/src/main/res/drawable/ic_baseline_archive_24.xml create mode 100644 main/src/main/res/drawable/ic_baseline_check_24.xml create mode 100644 main/src/main/res/drawable/ic_baseline_close_24.xml create mode 100644 main/src/main/res/drawable/ic_baseline_delete_24.xml create mode 100644 main/src/main/res/drawable/ic_baseline_delete_outline_24.xml create mode 100644 main/src/main/res/drawable/ic_baseline_edit_24.xml create mode 100644 main/src/main/res/drawable/ic_baseline_file_copy_24.xml create mode 100644 main/src/main/res/drawable/ic_baseline_file_present_24.xml create mode 100644 main/src/main/res/drawable/ic_baseline_filter_list_24.xml create mode 100644 main/src/main/res/drawable/ic_baseline_folder_24.xml create mode 100644 main/src/main/res/drawable/ic_baseline_pause_24.xml create mode 100644 main/src/main/res/drawable/ic_baseline_play_arrow_24.xml create mode 100644 main/src/main/res/drawable/ic_baseline_receipt_long_24.xml create mode 100644 main/src/main/res/drawable/ic_baseline_search_24.xml create mode 100644 main/src/main/res/drawable/ic_baseline_share_24.xml create mode 100644 main/src/main/res/drawable/ic_baseline_sort_24.xml create mode 100644 main/src/main/res/drawable/ic_baseline_warning_24.xml create mode 100644 main/src/main/res/drawable/ic_edit.xml create mode 100644 main/src/main/res/values/refs.xml create mode 100644 main/src/skeleton/res/values/attrs.xml delete mode 100644 main/src/skeleton/res/values/refs.xml delete mode 100644 main/src/ui/res/drawable-hdpi/ic_add_circle_outline_grey600_24dp.png delete mode 100644 main/src/ui/res/drawable-hdpi/ic_add_circle_outline_white_24dp.png delete mode 100644 main/src/ui/res/drawable-hdpi/ic_archive_grey600_24dp.png delete mode 100644 main/src/ui/res/drawable-hdpi/ic_archive_white_24dp.png delete mode 100644 main/src/ui/res/drawable-hdpi/ic_check_white_24dp.png delete mode 100644 main/src/ui/res/drawable-hdpi/ic_close_white_24dp.png delete mode 100644 main/src/ui/res/drawable-hdpi/ic_content_copy_white_24dp.png delete mode 100644 main/src/ui/res/drawable-hdpi/ic_delete_grey600_24dp.png delete mode 100644 main/src/ui/res/drawable-hdpi/ic_delete_white_24dp.png delete mode 100644 main/src/ui/res/drawable-hdpi/ic_doc_generic_am.png delete mode 100644 main/src/ui/res/drawable-hdpi/ic_edit_grey600_24dp.png delete mode 100644 main/src/ui/res/drawable-hdpi/ic_edit_white_24dp.png delete mode 100644 main/src/ui/res/drawable-hdpi/ic_filter_list_white_24dp.png delete mode 100644 main/src/ui/res/drawable-hdpi/ic_menu_copy_holo_dark.png delete mode 100644 main/src/ui/res/drawable-hdpi/ic_pause_white_24dp.png delete mode 100644 main/src/ui/res/drawable-hdpi/ic_play_arrow_white_24dp.png delete mode 100644 main/src/ui/res/drawable-hdpi/ic_receipt_white_24dp.png delete mode 100644 main/src/ui/res/drawable-hdpi/ic_root_folder_am.png delete mode 100755 main/src/ui/res/drawable-hdpi/ic_search_white_24dp.png delete mode 100644 main/src/ui/res/drawable-hdpi/ic_share_white_24dp.png delete mode 100644 main/src/ui/res/drawable-hdpi/ic_sort_white_24dp.png delete mode 100644 main/src/ui/res/drawable-hdpi/ic_warning_black_36dp.png delete mode 100644 main/src/ui/res/drawable-mdpi/ic_add_circle_outline_grey600_24dp.png delete mode 100644 main/src/ui/res/drawable-mdpi/ic_add_circle_outline_white_24dp.png delete mode 100644 main/src/ui/res/drawable-mdpi/ic_archive_grey600_24dp.png delete mode 100644 main/src/ui/res/drawable-mdpi/ic_archive_white_24dp.png delete mode 100644 main/src/ui/res/drawable-mdpi/ic_check_white_24dp.png delete mode 100644 main/src/ui/res/drawable-mdpi/ic_close_white_24dp.png delete mode 100644 main/src/ui/res/drawable-mdpi/ic_content_copy_white_24dp.png delete mode 100644 main/src/ui/res/drawable-mdpi/ic_delete_grey600_24dp.png delete mode 100644 main/src/ui/res/drawable-mdpi/ic_delete_white_24dp.png delete mode 100644 main/src/ui/res/drawable-mdpi/ic_doc_generic_am.png delete mode 100644 main/src/ui/res/drawable-mdpi/ic_edit_grey600_24dp.png delete mode 100644 main/src/ui/res/drawable-mdpi/ic_edit_white_24dp.png delete mode 100644 main/src/ui/res/drawable-mdpi/ic_filter_list_white_24dp.png delete mode 100644 main/src/ui/res/drawable-mdpi/ic_menu_copy_holo_dark.png delete mode 100644 main/src/ui/res/drawable-mdpi/ic_pause_white_24dp.png delete mode 100644 main/src/ui/res/drawable-mdpi/ic_play_arrow_white_24dp.png delete mode 100644 main/src/ui/res/drawable-mdpi/ic_receipt_white_24dp.png delete mode 100644 main/src/ui/res/drawable-mdpi/ic_root_folder_am.png delete mode 100755 main/src/ui/res/drawable-mdpi/ic_search_white_24dp.png delete mode 100644 main/src/ui/res/drawable-mdpi/ic_share_white_24dp.png delete mode 100644 main/src/ui/res/drawable-mdpi/ic_sort_white_24dp.png delete mode 100644 main/src/ui/res/drawable-mdpi/ic_warning_black_36dp.png delete mode 100644 main/src/ui/res/drawable-xhdpi/ic_add_circle_outline_grey600_24dp.png delete mode 100644 main/src/ui/res/drawable-xhdpi/ic_add_circle_outline_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xhdpi/ic_archive_grey600_24dp.png delete mode 100644 main/src/ui/res/drawable-xhdpi/ic_archive_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xhdpi/ic_check_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xhdpi/ic_close_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xhdpi/ic_content_copy_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xhdpi/ic_delete_grey600_24dp.png delete mode 100644 main/src/ui/res/drawable-xhdpi/ic_delete_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xhdpi/ic_doc_generic_am.png delete mode 100644 main/src/ui/res/drawable-xhdpi/ic_edit_grey600_24dp.png delete mode 100644 main/src/ui/res/drawable-xhdpi/ic_edit_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xhdpi/ic_filter_list_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xhdpi/ic_menu_copy_holo_dark.png delete mode 100644 main/src/ui/res/drawable-xhdpi/ic_pause_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xhdpi/ic_play_arrow_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xhdpi/ic_receipt_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xhdpi/ic_root_folder_am.png delete mode 100755 main/src/ui/res/drawable-xhdpi/ic_search_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xhdpi/ic_share_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xhdpi/ic_sort_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xhdpi/ic_warning_black_36dp.png delete mode 100644 main/src/ui/res/drawable-xxhdpi/ic_add_circle_outline_grey600_24dp.png delete mode 100644 main/src/ui/res/drawable-xxhdpi/ic_add_circle_outline_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xxhdpi/ic_archive_grey600_24dp.png delete mode 100644 main/src/ui/res/drawable-xxhdpi/ic_archive_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xxhdpi/ic_check_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xxhdpi/ic_close_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xxhdpi/ic_content_copy_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xxhdpi/ic_delete_grey600_24dp.png delete mode 100644 main/src/ui/res/drawable-xxhdpi/ic_delete_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xxhdpi/ic_doc_generic_am.png delete mode 100644 main/src/ui/res/drawable-xxhdpi/ic_edit_grey600_24dp.png delete mode 100644 main/src/ui/res/drawable-xxhdpi/ic_edit_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xxhdpi/ic_filter_list_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xxhdpi/ic_menu_copy_holo_dark.png delete mode 100644 main/src/ui/res/drawable-xxhdpi/ic_pause_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xxhdpi/ic_play_arrow_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xxhdpi/ic_receipt_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xxhdpi/ic_root_folder_am.png delete mode 100755 main/src/ui/res/drawable-xxhdpi/ic_search_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xxhdpi/ic_share_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xxhdpi/ic_sort_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xxhdpi/ic_warning_black_36dp.png delete mode 100644 main/src/ui/res/drawable-xxxhdpi/ic_add_circle_outline_grey600_24dp.png delete mode 100644 main/src/ui/res/drawable-xxxhdpi/ic_add_circle_outline_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xxxhdpi/ic_archive_grey600_24dp.png delete mode 100644 main/src/ui/res/drawable-xxxhdpi/ic_archive_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xxxhdpi/ic_check_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xxxhdpi/ic_close_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xxxhdpi/ic_content_copy_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xxxhdpi/ic_delete_grey600_24dp.png delete mode 100644 main/src/ui/res/drawable-xxxhdpi/ic_delete_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xxxhdpi/ic_edit_grey600_24dp.png delete mode 100644 main/src/ui/res/drawable-xxxhdpi/ic_edit_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xxxhdpi/ic_filter_list_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xxxhdpi/ic_pause_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xxxhdpi/ic_play_arrow_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xxxhdpi/ic_receipt_white_24dp.png delete mode 100755 main/src/ui/res/drawable-xxxhdpi/ic_search_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xxxhdpi/ic_share_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xxxhdpi/ic_sort_white_24dp.png delete mode 100644 main/src/ui/res/drawable-xxxhdpi/ic_warning_black_36dp.png create mode 100644 main/src/ui/res/drawable/ic_warning.xml delete mode 100644 main/src/ui/res/values/refs.xml diff --git a/main/src/main/res/drawable-hdpi/ic_menu_archive.png b/main/src/main/res/drawable-hdpi/ic_menu_archive.png deleted file mode 100644 index e2d9bc1a..00000000 Binary files a/main/src/main/res/drawable-hdpi/ic_menu_archive.png and /dev/null differ diff --git a/main/src/main/res/drawable-hdpi/ic_menu_copy_holo_light.png b/main/src/main/res/drawable-hdpi/ic_menu_copy_holo_light.png deleted file mode 100644 index 0dd8865f..00000000 Binary files a/main/src/main/res/drawable-hdpi/ic_menu_copy_holo_light.png and /dev/null differ diff --git a/main/src/main/res/drawable-hdpi/ic_menu_log.png b/main/src/main/res/drawable-hdpi/ic_menu_log.png deleted file mode 100644 index 474ec16e..00000000 Binary files a/main/src/main/res/drawable-hdpi/ic_menu_log.png and /dev/null differ diff --git a/main/src/main/res/drawable-hdpi/vpn_item_settings.png b/main/src/main/res/drawable-hdpi/vpn_item_settings.png deleted file mode 100644 index 47b4ba23..00000000 Binary files a/main/src/main/res/drawable-hdpi/vpn_item_settings.png and /dev/null differ diff --git a/main/src/main/res/drawable-mdpi/ic_menu_archive.png b/main/src/main/res/drawable-mdpi/ic_menu_archive.png deleted file mode 100644 index 49ac569d..00000000 Binary files a/main/src/main/res/drawable-mdpi/ic_menu_archive.png and /dev/null differ diff --git a/main/src/main/res/drawable-mdpi/ic_menu_copy_holo_light.png b/main/src/main/res/drawable-mdpi/ic_menu_copy_holo_light.png deleted file mode 100644 index 74cb920f..00000000 Binary files a/main/src/main/res/drawable-mdpi/ic_menu_copy_holo_light.png and /dev/null differ diff --git a/main/src/main/res/drawable-mdpi/ic_menu_log.png b/main/src/main/res/drawable-mdpi/ic_menu_log.png deleted file mode 100644 index c8d60977..00000000 Binary files a/main/src/main/res/drawable-mdpi/ic_menu_log.png and /dev/null differ diff --git a/main/src/main/res/drawable-mdpi/vpn_item_settings.png b/main/src/main/res/drawable-mdpi/vpn_item_settings.png deleted file mode 100644 index 79281042..00000000 Binary files a/main/src/main/res/drawable-mdpi/vpn_item_settings.png and /dev/null differ diff --git a/main/src/main/res/drawable-xhdpi/ic_menu_archive.png b/main/src/main/res/drawable-xhdpi/ic_menu_archive.png deleted file mode 100644 index b1be9d5b..00000000 Binary files a/main/src/main/res/drawable-xhdpi/ic_menu_archive.png and /dev/null differ diff --git a/main/src/main/res/drawable-xhdpi/ic_menu_copy_holo_light.png b/main/src/main/res/drawable-xhdpi/ic_menu_copy_holo_light.png deleted file mode 100644 index 364b1692..00000000 Binary files a/main/src/main/res/drawable-xhdpi/ic_menu_copy_holo_light.png and /dev/null differ diff --git a/main/src/main/res/drawable-xhdpi/ic_menu_log.png b/main/src/main/res/drawable-xhdpi/ic_menu_log.png deleted file mode 100644 index 29c1faed..00000000 Binary files a/main/src/main/res/drawable-xhdpi/ic_menu_log.png and /dev/null differ diff --git a/main/src/main/res/drawable-xhdpi/vpn_item_settings.png b/main/src/main/res/drawable-xhdpi/vpn_item_settings.png deleted file mode 100644 index a057db8b..00000000 Binary files a/main/src/main/res/drawable-xhdpi/vpn_item_settings.png and /dev/null differ diff --git a/main/src/main/res/drawable-xxhdpi/ic_menu_copy_holo_light.png b/main/src/main/res/drawable-xxhdpi/ic_menu_copy_holo_light.png deleted file mode 100644 index 91043c9d..00000000 Binary files a/main/src/main/res/drawable-xxhdpi/ic_menu_copy_holo_light.png and /dev/null differ diff --git a/main/src/main/res/drawable-xxhdpi/ic_menu_log.png b/main/src/main/res/drawable-xxhdpi/ic_menu_log.png deleted file mode 100644 index d91c632b..00000000 Binary files a/main/src/main/res/drawable-xxhdpi/ic_menu_log.png and /dev/null differ diff --git a/main/src/main/res/drawable/ic_baseline_add_circle_outline_24.xml b/main/src/main/res/drawable/ic_baseline_add_circle_outline_24.xml new file mode 100644 index 00000000..d243c2f3 --- /dev/null +++ b/main/src/main/res/drawable/ic_baseline_add_circle_outline_24.xml @@ -0,0 +1,10 @@ + + + + + diff --git a/main/src/main/res/drawable/ic_baseline_archive_24.xml b/main/src/main/res/drawable/ic_baseline_archive_24.xml new file mode 100644 index 00000000..3e7b6df1 --- /dev/null +++ b/main/src/main/res/drawable/ic_baseline_archive_24.xml @@ -0,0 +1,10 @@ + + + + + diff --git a/main/src/main/res/drawable/ic_baseline_check_24.xml b/main/src/main/res/drawable/ic_baseline_check_24.xml new file mode 100644 index 00000000..0a3aedb6 --- /dev/null +++ b/main/src/main/res/drawable/ic_baseline_check_24.xml @@ -0,0 +1,10 @@ + + + + + diff --git a/main/src/main/res/drawable/ic_baseline_close_24.xml b/main/src/main/res/drawable/ic_baseline_close_24.xml new file mode 100644 index 00000000..57cc2c2a --- /dev/null +++ b/main/src/main/res/drawable/ic_baseline_close_24.xml @@ -0,0 +1,10 @@ + + + + + diff --git a/main/src/main/res/drawable/ic_baseline_delete_24.xml b/main/src/main/res/drawable/ic_baseline_delete_24.xml new file mode 100644 index 00000000..0e28eccf --- /dev/null +++ b/main/src/main/res/drawable/ic_baseline_delete_24.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/main/src/main/res/drawable/ic_baseline_delete_outline_24.xml b/main/src/main/res/drawable/ic_baseline_delete_outline_24.xml new file mode 100644 index 00000000..3486e426 --- /dev/null +++ b/main/src/main/res/drawable/ic_baseline_delete_outline_24.xml @@ -0,0 +1,10 @@ + + + + + diff --git a/main/src/main/res/drawable/ic_baseline_edit_24.xml b/main/src/main/res/drawable/ic_baseline_edit_24.xml new file mode 100644 index 00000000..ef50295e --- /dev/null +++ b/main/src/main/res/drawable/ic_baseline_edit_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/main/src/main/res/drawable/ic_baseline_file_copy_24.xml b/main/src/main/res/drawable/ic_baseline_file_copy_24.xml new file mode 100644 index 00000000..ecd94523 --- /dev/null +++ b/main/src/main/res/drawable/ic_baseline_file_copy_24.xml @@ -0,0 +1,10 @@ + + + + + diff --git a/main/src/main/res/drawable/ic_baseline_file_present_24.xml b/main/src/main/res/drawable/ic_baseline_file_present_24.xml new file mode 100644 index 00000000..7ecee740 --- /dev/null +++ b/main/src/main/res/drawable/ic_baseline_file_present_24.xml @@ -0,0 +1,10 @@ + + + + + diff --git a/main/src/main/res/drawable/ic_baseline_filter_list_24.xml b/main/src/main/res/drawable/ic_baseline_filter_list_24.xml new file mode 100644 index 00000000..3775d893 --- /dev/null +++ b/main/src/main/res/drawable/ic_baseline_filter_list_24.xml @@ -0,0 +1,10 @@ + + + + + diff --git a/main/src/main/res/drawable/ic_baseline_folder_24.xml b/main/src/main/res/drawable/ic_baseline_folder_24.xml new file mode 100644 index 00000000..ddb19f72 --- /dev/null +++ b/main/src/main/res/drawable/ic_baseline_folder_24.xml @@ -0,0 +1,10 @@ + + + + + diff --git a/main/src/main/res/drawable/ic_baseline_pause_24.xml b/main/src/main/res/drawable/ic_baseline_pause_24.xml new file mode 100644 index 00000000..ddf43821 --- /dev/null +++ b/main/src/main/res/drawable/ic_baseline_pause_24.xml @@ -0,0 +1,10 @@ + + + + + diff --git a/main/src/main/res/drawable/ic_baseline_play_arrow_24.xml b/main/src/main/res/drawable/ic_baseline_play_arrow_24.xml new file mode 100644 index 00000000..bc2dc1f2 --- /dev/null +++ b/main/src/main/res/drawable/ic_baseline_play_arrow_24.xml @@ -0,0 +1,10 @@ + + + + + diff --git a/main/src/main/res/drawable/ic_baseline_receipt_long_24.xml b/main/src/main/res/drawable/ic_baseline_receipt_long_24.xml new file mode 100644 index 00000000..0880a35b --- /dev/null +++ b/main/src/main/res/drawable/ic_baseline_receipt_long_24.xml @@ -0,0 +1,14 @@ + + + + + + + + + diff --git a/main/src/main/res/drawable/ic_baseline_search_24.xml b/main/src/main/res/drawable/ic_baseline_search_24.xml new file mode 100644 index 00000000..8a14314b --- /dev/null +++ b/main/src/main/res/drawable/ic_baseline_search_24.xml @@ -0,0 +1,10 @@ + + + + + diff --git a/main/src/main/res/drawable/ic_baseline_share_24.xml b/main/src/main/res/drawable/ic_baseline_share_24.xml new file mode 100644 index 00000000..36f1711a --- /dev/null +++ b/main/src/main/res/drawable/ic_baseline_share_24.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/main/src/main/res/drawable/ic_baseline_sort_24.xml b/main/src/main/res/drawable/ic_baseline_sort_24.xml new file mode 100644 index 00000000..332d4031 --- /dev/null +++ b/main/src/main/res/drawable/ic_baseline_sort_24.xml @@ -0,0 +1,10 @@ + + + + + diff --git a/main/src/main/res/drawable/ic_baseline_warning_24.xml b/main/src/main/res/drawable/ic_baseline_warning_24.xml new file mode 100644 index 00000000..6a3283fe --- /dev/null +++ b/main/src/main/res/drawable/ic_baseline_warning_24.xml @@ -0,0 +1,10 @@ + + + + + diff --git a/main/src/main/res/drawable/ic_edit.xml b/main/src/main/res/drawable/ic_edit.xml new file mode 100644 index 00000000..98b15783 --- /dev/null +++ b/main/src/main/res/drawable/ic_edit.xml @@ -0,0 +1,10 @@ + + + diff --git a/main/src/main/res/values/attrs.xml b/main/src/main/res/values/attrs.xml index 502a691b..06caf3f0 100644 --- a/main/src/main/res/values/attrs.xml +++ b/main/src/main/res/values/attrs.xml @@ -6,7 +6,8 @@ --> - + + diff --git a/main/src/main/res/values/refs.xml b/main/src/main/res/values/refs.xml new file mode 100644 index 00000000..ebed84fa --- /dev/null +++ b/main/src/main/res/values/refs.xml @@ -0,0 +1,27 @@ + + + + @drawable/ic_baseline_close_24 + @drawable/ic_baseline_play_arrow_24 + @drawable/ic_baseline_pause_24 + @drawable/ic_baseline_share_24 + @drawable/ic_baseline_check_24 + @drawable/ic_baseline_filter_list_24 + @drawable/ic_baseline_delete_outline_24 + @drawable/ic_baseline_file_copy_24 + @drawable/ic_baseline_delete_outline_24 + @drawable/ic_baseline_search_24 + + @drawable/ic_edit + @drawable/ic_baseline_archive_24 + @drawable/ic_baseline_add_circle_outline_24 + @drawable/ic_baseline_warning_24 + @drawable/ic_baseline_add_circle_outline_24 + @drawable/ic_baseline_archive_24 + @drawable/ic_baseline_receipt_long_24 + @drawable/ic_baseline_sort_24 + + \ No newline at end of file diff --git a/main/src/skeleton/res/values/attrs.xml b/main/src/skeleton/res/values/attrs.xml new file mode 100644 index 00000000..051e23d0 --- /dev/null +++ b/main/src/skeleton/res/values/attrs.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/main/src/skeleton/res/values/refs.xml b/main/src/skeleton/res/values/refs.xml deleted file mode 100644 index a5105456..00000000 --- a/main/src/skeleton/res/values/refs.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - @android:drawable/ic_menu_close_clear_cancel - @android:drawable/ic_media_play - @android:drawable/ic_media_pause - @android:drawable/ic_menu_share - @android:drawable/ic_menu_save - @android:drawable/ic_menu_view - @android:drawable/ic_menu_delete - @android:drawable/ic_menu_edit - @drawable/ic_menu_archive - @drawable/vpn_item_settings - @android:drawable/ic_menu_add - @android:drawable/ic_dialog_alert - @android:drawable/ic_menu_add - @drawable/ic_menu_archive - @android:drawable/ic_menu_delete - @drawable/ic_menu_copy_holo_light - @drawable/ic_menu_log - @android:drawable/ic_menu_sort_by_size - - \ No newline at end of file diff --git a/main/src/skeleton/res/values/styles.xml b/main/src/skeleton/res/values/styles.xml index dbe2d1e4..9a6ca1e8 100644 --- a/main/src/skeleton/res/values/styles.xml +++ b/main/src/skeleton/res/values/styles.xml @@ -14,5 +14,4 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/misc/logo_bunt.svg b/misc/logo_bunt.svg new file mode 100644 index 00000000..6d0d57bf --- /dev/null +++ b/misc/logo_bunt.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/misc/logo_sw.svg b/misc/logo_sw.svg new file mode 100644 index 00000000..421c9561 --- /dev/null +++ b/misc/logo_sw.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file -- cgit v1.2.3 From fba254e72516aec398c3f5a95ba8c43e91dc9c90 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Sun, 4 Sep 2022 19:05:04 +0200 Subject: Version 0.7.41 --- main/build.gradle.kts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/main/build.gradle.kts b/main/build.gradle.kts index 591f36e7..044794e7 100644 --- a/main/build.gradle.kts +++ b/main/build.gradle.kts @@ -15,13 +15,13 @@ plugins { android { compileSdk = 33 - ndkVersion = "24.0.8215888" + ndkVersion = "25.1.8937393" defaultConfig { minSdk = 21 targetSdk = 33 - versionCode = 195 - versionName = "0.7.40" + versionCode = 196 + versionName = "0.7.41" externalNativeBuild { cmake { } -- cgit v1.2.3 From 8142b5d5ed0a73d37e397a0b553571a3236d60a1 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Sat, 10 Sep 2022 18:47:09 +0200 Subject: Try to improve reliability of the Onbootreceiver --- main/src/main/java/de/blinkt/openvpn/OnBootReceiver.java | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/main/src/main/java/de/blinkt/openvpn/OnBootReceiver.java b/main/src/main/java/de/blinkt/openvpn/OnBootReceiver.java index ebfab5b2..3facacc5 100644 --- a/main/src/main/java/de/blinkt/openvpn/OnBootReceiver.java +++ b/main/src/main/java/de/blinkt/openvpn/OnBootReceiver.java @@ -12,12 +12,10 @@ import android.content.SharedPreferences; import de.blinkt.openvpn.core.Preferences; import de.blinkt.openvpn.core.ProfileManager; +import de.blinkt.openvpn.core.VPNLaunchHelper; public class OnBootReceiver extends BroadcastReceiver { - - - // Debug: am broadcast -a android.intent.action.BOOT_COMPLETED @Override public void onReceive(Context context, Intent intent) { @@ -38,12 +36,6 @@ public class OnBootReceiver extends BroadcastReceiver { } void launchVPN(VpnProfile profile, Context context) { - Intent startVpnIntent = new Intent(Intent.ACTION_MAIN); - startVpnIntent.setClass(context, LaunchVPN.class); - startVpnIntent.putExtra(LaunchVPN.EXTRA_KEY,profile.getUUIDString()); - startVpnIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - startVpnIntent.putExtra(LaunchVPN.EXTRA_HIDELOG, true); - - context.startActivity(startVpnIntent); + VPNLaunchHelper.startOpenVpn(profile, context.getApplicationContext()); } } -- cgit v1.2.3 From 3127f73508d50cb85ab6789ad521accefe71ad33 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Sat, 10 Sep 2022 19:17:35 +0200 Subject: Implement setting on pause on idle via app restrictions --- .../main/java/de/blinkt/openvpn/api/AppRestrictions.java | 16 +++++++++++++--- main/src/main/res/values/untranslatable.xml | 1 + main/src/main/res/xml/app_restrictions.xml | 5 +++++ 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/main/src/main/java/de/blinkt/openvpn/api/AppRestrictions.java b/main/src/main/java/de/blinkt/openvpn/api/AppRestrictions.java index 175ecb70..c06b01b3 100644 --- a/main/src/main/java/de/blinkt/openvpn/api/AppRestrictions.java +++ b/main/src/main/java/de/blinkt/openvpn/api/AppRestrictions.java @@ -155,20 +155,30 @@ public class AppRestrictions { pm.removeProfile(c, vp); } + SharedPreferences defaultPrefs = Preferences.getDefaultSharedPreferences(c); + if (!TextUtils.isEmpty(defaultprofile)) { if (!defaultprofileProvisioned) { VpnStatus.logError("App restrictions: Setting a default profile UUID without providing a profile with that UUID"); } else { - SharedPreferences prefs = Preferences.getDefaultSharedPreferences(c); - String uuid = prefs.getString("alwaysOnVpn", null); + String uuid = defaultPrefs.getString("alwaysOnVpn", null); if (!defaultprofile.equals(uuid)) { - SharedPreferences.Editor editor = prefs.edit(); + SharedPreferences.Editor editor = defaultPrefs.edit(); editor.putString("alwaysOnVpn", defaultprofile); editor.apply(); + } } } + + if(restrictions.containsKey("screenoffpausevpn")) + { + boolean pauseVPN = restrictions.getBoolean("screenoffpausevpn"); + SharedPreferences.Editor editor = defaultPrefs.edit(); + editor.putBoolean("screenoff", pauseVPN); + editor.apply(); + } } private String prepare(String config) { diff --git a/main/src/main/res/values/untranslatable.xml b/main/src/main/res/values/untranslatable.xml index 0260de8d..cde0d8a5 100644 --- a/main/src/main/res/values/untranslatable.xml +++ b/main/src/main/res/values/untranslatable.xml @@ -82,6 +82,7 @@ Preferred native ABI precedence of this device (%1$s) and ABI reported by native libraries (%2$s) mismatch Failed to negotiate cipher with server URL + Pause VPN when screen is off and less than 64 kB transferred data in 60s insecure diff --git a/main/src/main/res/xml/app_restrictions.xml b/main/src/main/res/xml/app_restrictions.xml index 813e9bd3..167e48e8 100644 --- a/main/src/main/res/xml/app_restrictions.xml +++ b/main/src/main/res/xml/app_restrictions.xml @@ -66,4 +66,9 @@ android:restrictionType="string" android:defaultValue="" /> + \ No newline at end of file -- cgit v1.2.3 From 3647868bb0f7a94531155e12f366967382efb10c Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Sun, 11 Sep 2022 16:30:27 +0200 Subject: Replace system/notification icon with vector graphics --- main/src/main/res/drawable-hdpi/ic_quick.png | Bin 1236 -> 0 bytes main/src/main/res/drawable-hdpi/ic_stat_vpn.png | Bin 3799 -> 0 bytes .../res/drawable-hdpi/ic_stat_vpn_empty_halo.png | Bin 4124 -> 0 bytes .../main/res/drawable-hdpi/ic_stat_vpn_offline.png | Bin 4182 -> 0 bytes .../main/res/drawable-hdpi/ic_stat_vpn_outline.png | Bin 4250 -> 0 bytes main/src/main/res/drawable-mdpi/ic_quick.png | Bin 973 -> 0 bytes main/src/main/res/drawable-mdpi/ic_stat_vpn.png | Bin 3436 -> 0 bytes .../res/drawable-mdpi/ic_stat_vpn_empty_halo.png | Bin 3579 -> 0 bytes .../main/res/drawable-mdpi/ic_stat_vpn_offline.png | Bin 3585 -> 0 bytes .../main/res/drawable-mdpi/ic_stat_vpn_outline.png | Bin 3627 -> 0 bytes main/src/main/res/drawable-xhdpi/ic_quick.png | Bin 1671 -> 0 bytes main/src/main/res/drawable-xhdpi/ic_stat_vpn.png | Bin 4136 -> 0 bytes .../res/drawable-xhdpi/ic_stat_vpn_empty_halo.png | Bin 4753 -> 0 bytes .../res/drawable-xhdpi/ic_stat_vpn_offline.png | Bin 4810 -> 0 bytes .../res/drawable-xhdpi/ic_stat_vpn_outline.png | Bin 4961 -> 0 bytes main/src/main/res/drawable-xxhdpi/ic_quick.png | Bin 2375 -> 0 bytes main/src/main/res/drawable-xxhdpi/ic_stat_vpn.png | Bin 3987 -> 0 bytes .../res/drawable-xxhdpi/ic_stat_vpn_empty_halo.png | Bin 4463 -> 0 bytes .../res/drawable-xxhdpi/ic_stat_vpn_offline.png | Bin 4534 -> 0 bytes .../res/drawable-xxhdpi/ic_stat_vpn_outline.png | Bin 4674 -> 0 bytes main/src/main/res/drawable/ic_icon_system.xml | 19 ++++++++++ .../main/res/drawable/ic_stat_vpn_empty_halo.xml | 30 ++++++++++++++++ main/src/main/res/drawable/ic_stat_vpn_offline.xml | 39 +++++++++++++++++++++ main/src/main/res/drawable/ic_stat_vpn_outline.xml | 32 +++++++++++++++++ main/src/main/res/values/refs.xml | 2 ++ 25 files changed, 122 insertions(+) delete mode 100644 main/src/main/res/drawable-hdpi/ic_quick.png delete mode 100644 main/src/main/res/drawable-hdpi/ic_stat_vpn.png delete mode 100644 main/src/main/res/drawable-hdpi/ic_stat_vpn_empty_halo.png delete mode 100644 main/src/main/res/drawable-hdpi/ic_stat_vpn_offline.png delete mode 100644 main/src/main/res/drawable-hdpi/ic_stat_vpn_outline.png delete mode 100644 main/src/main/res/drawable-mdpi/ic_quick.png delete mode 100644 main/src/main/res/drawable-mdpi/ic_stat_vpn.png delete mode 100644 main/src/main/res/drawable-mdpi/ic_stat_vpn_empty_halo.png delete mode 100644 main/src/main/res/drawable-mdpi/ic_stat_vpn_offline.png delete mode 100644 main/src/main/res/drawable-mdpi/ic_stat_vpn_outline.png delete mode 100644 main/src/main/res/drawable-xhdpi/ic_quick.png delete mode 100644 main/src/main/res/drawable-xhdpi/ic_stat_vpn.png delete mode 100644 main/src/main/res/drawable-xhdpi/ic_stat_vpn_empty_halo.png delete mode 100644 main/src/main/res/drawable-xhdpi/ic_stat_vpn_offline.png delete mode 100644 main/src/main/res/drawable-xhdpi/ic_stat_vpn_outline.png delete mode 100644 main/src/main/res/drawable-xxhdpi/ic_quick.png delete mode 100644 main/src/main/res/drawable-xxhdpi/ic_stat_vpn.png delete mode 100644 main/src/main/res/drawable-xxhdpi/ic_stat_vpn_empty_halo.png delete mode 100644 main/src/main/res/drawable-xxhdpi/ic_stat_vpn_offline.png delete mode 100644 main/src/main/res/drawable-xxhdpi/ic_stat_vpn_outline.png create mode 100644 main/src/main/res/drawable/ic_icon_system.xml create mode 100644 main/src/main/res/drawable/ic_stat_vpn_empty_halo.xml create mode 100644 main/src/main/res/drawable/ic_stat_vpn_offline.xml create mode 100644 main/src/main/res/drawable/ic_stat_vpn_outline.xml diff --git a/main/src/main/res/drawable-hdpi/ic_quick.png b/main/src/main/res/drawable-hdpi/ic_quick.png deleted file mode 100644 index 343d6c5a..00000000 Binary files a/main/src/main/res/drawable-hdpi/ic_quick.png and /dev/null differ diff --git a/main/src/main/res/drawable-hdpi/ic_stat_vpn.png b/main/src/main/res/drawable-hdpi/ic_stat_vpn.png deleted file mode 100644 index a2a7cfd0..00000000 Binary files a/main/src/main/res/drawable-hdpi/ic_stat_vpn.png and /dev/null differ diff --git a/main/src/main/res/drawable-hdpi/ic_stat_vpn_empty_halo.png b/main/src/main/res/drawable-hdpi/ic_stat_vpn_empty_halo.png deleted file mode 100644 index 41f41ed8..00000000 Binary files a/main/src/main/res/drawable-hdpi/ic_stat_vpn_empty_halo.png and /dev/null differ diff --git a/main/src/main/res/drawable-hdpi/ic_stat_vpn_offline.png b/main/src/main/res/drawable-hdpi/ic_stat_vpn_offline.png deleted file mode 100644 index 32b6bb58..00000000 Binary files a/main/src/main/res/drawable-hdpi/ic_stat_vpn_offline.png and /dev/null differ diff --git a/main/src/main/res/drawable-hdpi/ic_stat_vpn_outline.png b/main/src/main/res/drawable-hdpi/ic_stat_vpn_outline.png deleted file mode 100644 index 876e260d..00000000 Binary files a/main/src/main/res/drawable-hdpi/ic_stat_vpn_outline.png and /dev/null differ diff --git a/main/src/main/res/drawable-mdpi/ic_quick.png b/main/src/main/res/drawable-mdpi/ic_quick.png deleted file mode 100644 index 83285eeb..00000000 Binary files a/main/src/main/res/drawable-mdpi/ic_quick.png and /dev/null differ diff --git a/main/src/main/res/drawable-mdpi/ic_stat_vpn.png b/main/src/main/res/drawable-mdpi/ic_stat_vpn.png deleted file mode 100644 index 08944e20..00000000 Binary files a/main/src/main/res/drawable-mdpi/ic_stat_vpn.png and /dev/null differ diff --git a/main/src/main/res/drawable-mdpi/ic_stat_vpn_empty_halo.png b/main/src/main/res/drawable-mdpi/ic_stat_vpn_empty_halo.png deleted file mode 100644 index 57a88729..00000000 Binary files a/main/src/main/res/drawable-mdpi/ic_stat_vpn_empty_halo.png and /dev/null differ diff --git a/main/src/main/res/drawable-mdpi/ic_stat_vpn_offline.png b/main/src/main/res/drawable-mdpi/ic_stat_vpn_offline.png deleted file mode 100644 index 8760fede..00000000 Binary files a/main/src/main/res/drawable-mdpi/ic_stat_vpn_offline.png and /dev/null differ diff --git a/main/src/main/res/drawable-mdpi/ic_stat_vpn_outline.png b/main/src/main/res/drawable-mdpi/ic_stat_vpn_outline.png deleted file mode 100644 index 1338f1e3..00000000 Binary files a/main/src/main/res/drawable-mdpi/ic_stat_vpn_outline.png and /dev/null differ diff --git a/main/src/main/res/drawable-xhdpi/ic_quick.png b/main/src/main/res/drawable-xhdpi/ic_quick.png deleted file mode 100644 index 70dc3593..00000000 Binary files a/main/src/main/res/drawable-xhdpi/ic_quick.png and /dev/null differ diff --git a/main/src/main/res/drawable-xhdpi/ic_stat_vpn.png b/main/src/main/res/drawable-xhdpi/ic_stat_vpn.png deleted file mode 100644 index 2725bc13..00000000 Binary files a/main/src/main/res/drawable-xhdpi/ic_stat_vpn.png and /dev/null differ diff --git a/main/src/main/res/drawable-xhdpi/ic_stat_vpn_empty_halo.png b/main/src/main/res/drawable-xhdpi/ic_stat_vpn_empty_halo.png deleted file mode 100644 index 052e7254..00000000 Binary files a/main/src/main/res/drawable-xhdpi/ic_stat_vpn_empty_halo.png and /dev/null differ diff --git a/main/src/main/res/drawable-xhdpi/ic_stat_vpn_offline.png b/main/src/main/res/drawable-xhdpi/ic_stat_vpn_offline.png deleted file mode 100644 index 90598708..00000000 Binary files a/main/src/main/res/drawable-xhdpi/ic_stat_vpn_offline.png and /dev/null differ diff --git a/main/src/main/res/drawable-xhdpi/ic_stat_vpn_outline.png b/main/src/main/res/drawable-xhdpi/ic_stat_vpn_outline.png deleted file mode 100644 index 52bc417a..00000000 Binary files a/main/src/main/res/drawable-xhdpi/ic_stat_vpn_outline.png and /dev/null differ diff --git a/main/src/main/res/drawable-xxhdpi/ic_quick.png b/main/src/main/res/drawable-xxhdpi/ic_quick.png deleted file mode 100644 index 5adc85c1..00000000 Binary files a/main/src/main/res/drawable-xxhdpi/ic_quick.png and /dev/null differ diff --git a/main/src/main/res/drawable-xxhdpi/ic_stat_vpn.png b/main/src/main/res/drawable-xxhdpi/ic_stat_vpn.png deleted file mode 100644 index 6290290b..00000000 Binary files a/main/src/main/res/drawable-xxhdpi/ic_stat_vpn.png and /dev/null differ diff --git a/main/src/main/res/drawable-xxhdpi/ic_stat_vpn_empty_halo.png b/main/src/main/res/drawable-xxhdpi/ic_stat_vpn_empty_halo.png deleted file mode 100644 index 8587f499..00000000 Binary files a/main/src/main/res/drawable-xxhdpi/ic_stat_vpn_empty_halo.png and /dev/null differ diff --git a/main/src/main/res/drawable-xxhdpi/ic_stat_vpn_offline.png b/main/src/main/res/drawable-xxhdpi/ic_stat_vpn_offline.png deleted file mode 100644 index 5d19172f..00000000 Binary files a/main/src/main/res/drawable-xxhdpi/ic_stat_vpn_offline.png and /dev/null differ diff --git a/main/src/main/res/drawable-xxhdpi/ic_stat_vpn_outline.png b/main/src/main/res/drawable-xxhdpi/ic_stat_vpn_outline.png deleted file mode 100644 index 18204bd7..00000000 Binary files a/main/src/main/res/drawable-xxhdpi/ic_stat_vpn_outline.png and /dev/null differ diff --git a/main/src/main/res/drawable/ic_icon_system.xml b/main/src/main/res/drawable/ic_icon_system.xml new file mode 100644 index 00000000..f74006d8 --- /dev/null +++ b/main/src/main/res/drawable/ic_icon_system.xml @@ -0,0 +1,19 @@ + + + + + + diff --git a/main/src/main/res/drawable/ic_stat_vpn_empty_halo.xml b/main/src/main/res/drawable/ic_stat_vpn_empty_halo.xml new file mode 100644 index 00000000..eb53e20d --- /dev/null +++ b/main/src/main/res/drawable/ic_stat_vpn_empty_halo.xml @@ -0,0 +1,30 @@ + + + + + + + + diff --git a/main/src/main/res/drawable/ic_stat_vpn_offline.xml b/main/src/main/res/drawable/ic_stat_vpn_offline.xml new file mode 100644 index 00000000..57d8a2d0 --- /dev/null +++ b/main/src/main/res/drawable/ic_stat_vpn_offline.xml @@ -0,0 +1,39 @@ + + + + + + + + + diff --git a/main/src/main/res/drawable/ic_stat_vpn_outline.xml b/main/src/main/res/drawable/ic_stat_vpn_outline.xml new file mode 100644 index 00000000..446bee2e --- /dev/null +++ b/main/src/main/res/drawable/ic_stat_vpn_outline.xml @@ -0,0 +1,32 @@ + + + + + + + + diff --git a/main/src/main/res/values/refs.xml b/main/src/main/res/values/refs.xml index ebed84fa..e426a19e 100644 --- a/main/src/main/res/values/refs.xml +++ b/main/src/main/res/values/refs.xml @@ -14,6 +14,8 @@ @drawable/ic_baseline_file_copy_24 @drawable/ic_baseline_delete_outline_24 @drawable/ic_baseline_search_24 + @drawable/ic_icon_system + @drawable/ic_icon_system @drawable/ic_edit @drawable/ic_baseline_archive_24 -- cgit v1.2.3 From d22a65811c0a68f62a44af11611ec39210eb64f4 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Fri, 23 Sep 2022 11:09:24 +0200 Subject: Make excluded network canonical for OpenVPN 3 core --- .../java/de/blinkt/openvpn/core/NetworkUtils.java | 22 +++++++++++++++++++--- .../de/blinkt/openvpn/core/OpenVPNService.java | 3 --- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/main/src/main/java/de/blinkt/openvpn/core/NetworkUtils.java b/main/src/main/java/de/blinkt/openvpn/core/NetworkUtils.java index 8b2a1b1c..67cdb243 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/NetworkUtils.java +++ b/main/src/main/java/de/blinkt/openvpn/core/NetworkUtils.java @@ -14,14 +14,18 @@ import android.text.TextUtils; import java.net.Inet4Address; import java.net.Inet6Address; +import java.net.InetAddress; +import java.net.UnknownHostException; import java.util.Vector; +import de.blinkt.openvpn.R; + public class NetworkUtils { public static Vector getLocalNetworks(Context c, boolean ipv6) { - Vector nets = new Vector<>(); ConnectivityManager conn = (ConnectivityManager) c.getSystemService(Context.CONNECTIVITY_SERVICE); + Vector nets = new Vector<>(); Network[] networks = conn.getAllNetworks(); for (Network network : networks) { NetworkInfo ni = conn.getNetworkInfo(network); @@ -44,8 +48,20 @@ public class NetworkUtils { for (LinkAddress la : li.getLinkAddresses()) { if ((la.getAddress() instanceof Inet4Address && !ipv6) || - (la.getAddress() instanceof Inet6Address && ipv6)) - nets.add(la.toString()); + (la.getAddress() instanceof Inet6Address && ipv6)) { + //nets.add(la.toString()); + NetworkSpace.IpAddress ipaddress; + if (la.getAddress() instanceof Inet6Address) + ipaddress = new NetworkSpace.IpAddress((Inet6Address) la.getAddress(), la.getPrefixLength(), true); + else + ipaddress = new NetworkSpace.IpAddress(new CIDRIP(la.getAddress().getHostAddress(), la.getPrefixLength()), true); + + try { + nets.add(ipaddress.getPrefix().toString()); + } catch (UnknownHostException ia) { + VpnStatus.logError("getLocalNetworks error: " + ipaddress + " " + ia.getLocalizedMessage()); + } + } } } diff --git a/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java b/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java index d3de35f9..910dc43e 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java +++ b/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java @@ -994,15 +994,12 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac mRoutes.addIP(new CIDRIP(ipAddr, netMask), false); } - // IPv6 is Lollipop+ only so we can skip the lower than KITKAT case if (mProfile.mAllowLocalLAN) { for (String net : NetworkUtils.getLocalNetworks(this, true)) { addRoutev6(net, false); ; } } - - } private void setAllowedVpnPackages(Builder builder) { -- cgit v1.2.3 From 3200ed9b790b058e0a145028a0ae6cd7ca0d3c74 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Fri, 23 Sep 2022 11:31:59 +0200 Subject: Update gradle --- build.gradle.kts | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- misc/logo_arne3.svg | 49 ++++++++++++++++---------------- 3 files changed, 26 insertions(+), 27 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 2e04fda7..3ac14289 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -15,7 +15,7 @@ buildscript { mavenCentral() } dependencies { - classpath("com.android.tools.build:gradle:7.2.2") + classpath("com.android.tools.build:gradle:7.3.0") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version") } } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index b6d47fa7..007be88c 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip diff --git a/misc/logo_arne3.svg b/misc/logo_arne3.svg index 916728f6..e201ef71 100644 --- a/misc/logo_arne3.svg +++ b/misc/logo_arne3.svg @@ -1,10 +1,10 @@ - - - + - + - + + c2.2-1,4.5-1.5,6.9-1.2c2.7,0.3,5.2,1.3,7.3,3.1c2.6,2,4.3,4.6,5.6,7.5c0.8,1.8,1.3,3.7,1.7,5.7l0,0l0,0c-0.1,0-0.3-0.1-0.4-0.1 + c-2.3,0-4.6,0-6.9,0l0,0c0,0,0-0.1-0.1-0.1c-0.5-1.6-1.1-3.2-2.1-4.7s-2.1-2.9-3.8-3.7c-1.5-0.7-3-0.6-4.5,0 + c-1.7,0.8-2.8,2.2-3.8,3.7s-1.5,3.1-2.1,4.7c-2.5,0-5,0-7.5,0C14.9,30.5,14.7,30.5,14.4,30.5L14.4,30.5L14.4,30.5z"/> - + - - - + + - - - + @@ -88,13 +87,13 @@ - - + + @@ -105,7 +104,7 @@ -- cgit v1.2.3 From 2243146d87311aa75c9c6d3fe120f393db0d75fa Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Fri, 7 Oct 2022 15:20:03 +0200 Subject: Update runcoverity script to work under Linux --- main/build.gradle.kts | 1 + runcoverity.sh | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/main/build.gradle.kts b/main/build.gradle.kts index 044794e7..315546c5 100644 --- a/main/build.gradle.kts +++ b/main/build.gradle.kts @@ -15,6 +15,7 @@ plugins { android { compileSdk = 33 + // Also update runcoverity.sh ndkVersion = "25.1.8937393" defaultConfig { diff --git a/runcoverity.sh b/runcoverity.sh index f6622155..0fd22617 100755 --- a/runcoverity.sh +++ b/runcoverity.sh @@ -14,6 +14,7 @@ cov-configure --config .coverity/cfg.xml --java ./gradlew -b build.gradle.kts --no-daemon clean cov-build --dir .coverity/idir --config .coverity/cfg.xml ./gradlew -b build.gradle.kts --no-daemon assembleUiRelease -cov-analyze --dir .coverity/idir --all --strip-path ${PWD}/main/src/main/cpp --strip-path ${PWD}/main/src --strip-path ${PWD} --strip-path /Users/arne/oss/android-sdk-macosx/ndk/21.1.6352462/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/ +NDK_VER=${NDK_VER:-25.1.8937393} +cov-analyze --dir .coverity/idir --all --strip-path ${PWD}/main/src/main/cpp --strip-path ${PWD}/main/src --strip-path ${PWD} --strip-path ${ANDROID_HOME}/ndk/${NDK_VER}/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/ --strip-path ${ANDROID_HOME}/ndk/${NDK_VER}/toolchains/llvm/prebuilt/linux-x86_64/sysroot cov-commit-defects --dir .coverity/idir --ssl -host ${COVERITY_CONNECT_HOST} --stream icsopenvpn-styx-master --auth-key-file ~/.coverity/auth-key.txt -- cgit v1.2.3 From b109f9f25a9ffbf98cff2a7c1662e5b4fe2c4164 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Tue, 1 Nov 2022 14:21:12 +0100 Subject: Avoid warning about passing intent between processes --- .../java/de/blinkt/openvpn/core/StatusListener.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/main/src/main/java/de/blinkt/openvpn/core/StatusListener.java b/main/src/main/java/de/blinkt/openvpn/core/StatusListener.java index 500cc5e7..293a6fd4 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/StatusListener.java +++ b/main/src/main/java/de/blinkt/openvpn/core/StatusListener.java @@ -5,11 +5,8 @@ package de.blinkt.openvpn.core; -import static android.app.ApplicationExitInfo.REASON_CRASH_NATIVE; - import android.app.ActivityManager; import android.app.ApplicationExitInfo; -import android.app.PendingIntent; import android.content.ComponentName; import android.content.Context; import android.content.Intent; @@ -44,7 +41,19 @@ public class StatusListener implements VpnStatus.LogListener { @Override public void updateStateString(String state, String msg, int resid, ConnectionStatus level, Intent intent) throws RemoteException { - VpnStatus.updateStateString(state, msg, resid, level, intent); + Intent newIntent = reCreateIntent(intent); + VpnStatus.updateStateString(state, msg, resid, level, newIntent); + } + + private Intent reCreateIntent(Intent intent) { + /* To avoid UnsafeIntentLaunchViolation we recreate the intent that we passed + * to ourselves via the AIDL interface */ + if (intent == null) + return null; + Intent newIntent = new Intent(intent.getAction(), intent.getData()); + if (intent.getExtras() != null) + newIntent.putExtras(intent.getExtras()); + return newIntent; } @Override -- cgit v1.2.3 From bba787b67f28892475ec83b5ab679c61d834b9c2 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Tue, 1 Nov 2022 16:07:34 +0100 Subject: Update translation and add a few languages that are close to completely translated --- main/misc/fetchtranslations.sh | 9 +- .../java/de/blinkt/openvpn/core/LocaleHelper.java | 18 +- main/src/ui/res/values-ar/arrays.xml | 43 ++ main/src/ui/res/values-ar/plurals.xml | 35 ++ main/src/ui/res/values-ar/strings.xml | 511 +++++++++++++++++++++ main/src/ui/res/values-be/arrays.xml | 12 + main/src/ui/res/values-be/strings.xml | 2 - main/src/ui/res/values-cs/strings.xml | 2 - main/src/ui/res/values-da/arrays.xml | 12 + main/src/ui/res/values-da/strings.xml | 35 +- main/src/ui/res/values-de/strings.xml | 18 +- main/src/ui/res/values-el/arrays.xml | 37 ++ main/src/ui/res/values-el/plurals.xml | 19 + main/src/ui/res/values-el/strings.xml | 473 +++++++++++++++++++ main/src/ui/res/values-es/arrays.xml | 12 + main/src/ui/res/values-es/strings.xml | 36 +- main/src/ui/res/values-et/arrays.xml | 12 + main/src/ui/res/values-et/strings.xml | 2 - main/src/ui/res/values-fa/arrays.xml | 43 ++ main/src/ui/res/values-fa/plurals.xml | 19 + main/src/ui/res/values-fa/strings.xml | 508 ++++++++++++++++++++ main/src/ui/res/values-fr/arrays.xml | 12 + main/src/ui/res/values-fr/strings.xml | 102 ++-- main/src/ui/res/values-he/arrays.xml | 43 ++ main/src/ui/res/values-he/plurals.xml | 27 ++ main/src/ui/res/values-he/strings.xml | 508 ++++++++++++++++++++ main/src/ui/res/values-hu/arrays.xml | 2 +- main/src/ui/res/values-hu/strings.xml | 2 - main/src/ui/res/values-in/arrays.xml | 17 +- main/src/ui/res/values-in/plurals.xml | 7 +- main/src/ui/res/values-in/strings.xml | 12 +- main/src/ui/res/values-it/arrays.xml | 12 + main/src/ui/res/values-it/strings.xml | 11 +- main/src/ui/res/values-ja/arrays.xml | 12 + main/src/ui/res/values-ja/strings.xml | 3 +- main/src/ui/res/values-ko/arrays.xml | 12 + main/src/ui/res/values-ko/strings.xml | 5 +- main/src/ui/res/values-nl/arrays.xml | 6 + main/src/ui/res/values-nl/strings.xml | 2 - main/src/ui/res/values-pl/arrays.xml | 12 + main/src/ui/res/values-pl/strings.xml | 28 +- main/src/ui/res/values-pt-rBR/arrays.xml | 43 ++ main/src/ui/res/values-pt-rBR/plurals.xml | 19 + main/src/ui/res/values-pt-rBR/strings.xml | 493 ++++++++++++++++++++ main/src/ui/res/values-ro/strings.xml | 7 +- main/src/ui/res/values-ru/arrays.xml | 14 +- main/src/ui/res/values-ru/strings.xml | 372 ++++++++------- main/src/ui/res/values-si/arrays.xml | 43 ++ main/src/ui/res/values-si/plurals.xml | 19 + main/src/ui/res/values-si/strings.xml | 503 ++++++++++++++++++++ main/src/ui/res/values-sk/arrays.xml | 31 ++ main/src/ui/res/values-sk/plurals.xml | 27 ++ main/src/ui/res/values-sk/strings.xml | 474 +++++++++++++++++++ main/src/ui/res/values-sl/strings.xml | 2 - main/src/ui/res/values-sr-rSP/arrays.xml | 31 ++ main/src/ui/res/values-sr-rSP/plurals.xml | 23 + main/src/ui/res/values-sr-rSP/strings.xml | 474 +++++++++++++++++++ main/src/ui/res/values-sv/strings.xml | 2 - main/src/ui/res/values-tr/arrays.xml | 12 + main/src/ui/res/values-tr/strings.xml | 37 +- main/src/ui/res/values-uk/arrays.xml | 20 +- main/src/ui/res/values-uk/plurals.xml | 14 +- main/src/ui/res/values-uk/strings.xml | 53 ++- main/src/ui/res/values-vi/arrays.xml | 12 + main/src/ui/res/values-vi/strings.xml | 37 +- main/src/ui/res/values-zh-rCN/arrays.xml | 12 + main/src/ui/res/values-zh-rCN/strings.xml | 11 +- main/src/ui/res/values-zh-rTW/arrays.xml | 12 + main/src/ui/res/values-zh-rTW/strings.xml | 4 +- 69 files changed, 5200 insertions(+), 294 deletions(-) create mode 100644 main/src/ui/res/values-ar/arrays.xml create mode 100644 main/src/ui/res/values-ar/plurals.xml create mode 100644 main/src/ui/res/values-ar/strings.xml create mode 100644 main/src/ui/res/values-el/arrays.xml create mode 100644 main/src/ui/res/values-el/plurals.xml create mode 100644 main/src/ui/res/values-el/strings.xml create mode 100644 main/src/ui/res/values-fa/arrays.xml create mode 100644 main/src/ui/res/values-fa/plurals.xml create mode 100644 main/src/ui/res/values-fa/strings.xml create mode 100644 main/src/ui/res/values-he/arrays.xml create mode 100644 main/src/ui/res/values-he/plurals.xml create mode 100644 main/src/ui/res/values-he/strings.xml create mode 100644 main/src/ui/res/values-pt-rBR/arrays.xml create mode 100644 main/src/ui/res/values-pt-rBR/plurals.xml create mode 100644 main/src/ui/res/values-pt-rBR/strings.xml create mode 100644 main/src/ui/res/values-si/arrays.xml create mode 100644 main/src/ui/res/values-si/plurals.xml create mode 100644 main/src/ui/res/values-si/strings.xml create mode 100644 main/src/ui/res/values-sk/arrays.xml create mode 100644 main/src/ui/res/values-sk/plurals.xml create mode 100644 main/src/ui/res/values-sk/strings.xml create mode 100644 main/src/ui/res/values-sr-rSP/arrays.xml create mode 100644 main/src/ui/res/values-sr-rSP/plurals.xml create mode 100644 main/src/ui/res/values-sr-rSP/strings.xml diff --git a/main/misc/fetchtranslations.sh b/main/misc/fetchtranslations.sh index 6e3d24e4..e76ac36c 100755 --- a/main/misc/fetchtranslations.sh +++ b/main/misc/fetchtranslations.sh @@ -15,7 +15,10 @@ wget -nv https://crowdin.com/backend/download/project/ics-openvpn.zip # Chinese language require zh-CN and zh-TW typeset -A langhash -langhash=(zh-CN zh-rCN zh-TW zh-rTW id-ID in ca-ES ca cs-CZ cs et-EE et ja-JP ja ko-KR ko sv-SE sv uk-UA uk vi-VN vi sl-SI sl da-DK da be-BY be) +langhash=(zh-CN zh-rCN zh-TW zh-rTW id-ID in ca-ES ca cs-CZ cs et-EE et + ja-JP ja ko-KR ko sv-SE sv uk-UA uk vi-VN vi sl-SI sl da-DK + da be-BY be he-IL he ar-SA ar fa-IR fa si-LK si pt-BR pt-rBR + sr-SP sr-rSP el-GR el sk-SK sk) langtoinclude="de es fr hu it no nl pl pt ro ru tr" @@ -34,4 +37,6 @@ do tar -xv -C src/ui/res/values-$rlang/ --strip-components 2 -f ics-openvpn.zip res/values-$alang/ done -rm ics-openvpn.zip +if [ "$NODELETE" = "" ]; then + rm ics-openvpn.zip +fi \ No newline at end of file diff --git a/main/src/main/java/de/blinkt/openvpn/core/LocaleHelper.java b/main/src/main/java/de/blinkt/openvpn/core/LocaleHelper.java index 516e025d..ea9bf9e3 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/LocaleHelper.java +++ b/main/src/main/java/de/blinkt/openvpn/core/LocaleHelper.java @@ -15,11 +15,23 @@ import java.util.Locale; public class LocaleHelper { static private Locale desiredLocale = null; - public static void setDesiredLocale(Context c) - { + public static void setDesiredLocale(Context c) { Locale current = Locale.getDefault(); boolean defForce = true; - if (current.getLanguage().equals(new Locale("de").getLanguage())) + + /* Languages that have proofreaders */ + String[] whitelisted = {new Locale("de").getLanguage(), new Locale("ja").getLanguage(), + new Locale("tr").getLanguage(), new Locale("zh-TW").getLanguage()}; + + String currentLanguage = current.getLanguage(); + for (String lang : whitelisted) { + if (lang.equals(currentLanguage)) { + defForce = false; + break; + } + } + + if (current.toLanguageTag().startsWith("zh-Hant")) defForce = false; boolean allow_translation = Preferences.getDefaultSharedPreferences(c).getBoolean("allow_translation", defForce); diff --git a/main/src/ui/res/values-ar/arrays.xml b/main/src/ui/res/values-ar/arrays.xml new file mode 100644 index 00000000..61cd521d --- /dev/null +++ b/main/src/ui/res/values-ar/arrays.xml @@ -0,0 +1,43 @@ + + + + + + شهادات + PKCS12 File + شهادة أندرويد + اسم المستخدم/كلمة المرور + مفاتيح ثابتة + المستخدم/كلمة السر + شهادات + المستخدم/كلمة السر + PKCS12 + User/PW + Android AHMAD + مزود المصادقة الخارجية + + + 0 + 1 + غير محدد + التشفير (tls-سرداب)https://crowdin.com/translate/ics-openvpn/1395/en-ar#2618757 + TLS تشفير V2.0 + + + قطع الاتصال، والاحتفاظ بكلمة المرور + قطع الاتصال، والاحتفاظ بكلمة المرور + تجاهل، وإعادة المحاولة + + + الافتراضات الحديثة العربيه + أقران OpenVPN 2.5.x + أقران OpenVPN 2.4.x + OpenVPN 2.3.x والأقران الأكبر سنًا + + + غير آمن (غير موصى به ، يسمح بتشفير غير آمن) + legacy (default) + مفضل (موصى به لكن قابلية محدودة) + مجموعة B (المنحنيات البيضاوية المعتمدة من NIST فقط) + + diff --git a/main/src/ui/res/values-ar/plurals.xml b/main/src/ui/res/values-ar/plurals.xml new file mode 100644 index 00000000..8bdb3d29 --- /dev/null +++ b/main/src/ui/res/values-ar/plurals.xml @@ -0,0 +1,35 @@ + + + + %d + شهر واحد متبقي + متبقي شهرين + %d شهر متبقي + %d شهر متبقي + %d شهر متبقي + + + %d days lef + بقي يوم واحد + بقي يومان + %d أيام متبقية + %d يوم متبقي + %d يوم متبقي + + + لا ساعات متبقية + ساعة واحدة متبقية + متبقي ساعتان + %d ساعات متبقية + %d ساعات متبقية + %d ساعات متبقية + + + 100000 + دقيقة واحدة متبقية + متبقي دقيقتان + %d دقيقة متبقية + %d دقيقة متبقية + %d دقيقة متبقية + + diff --git a/main/src/ui/res/values-ar/strings.xml b/main/src/ui/res/values-ar/strings.xml new file mode 100644 index 00000000..65bba1ff --- /dev/null +++ b/main/src/ui/res/values-ar/strings.xml @@ -0,0 +1,511 @@ + + + + OpenVPN للأندرويد + الخادم العنوان: + Server Port: + الموقع + تعذرت قراءة المجلد + إختر + إلغاء + لا توجد بيانات + ضغط LZO + لا توجد شهادة + شهادة العميل + مفتاح شهادة العميل + ملف PKCS12 + سلطة الشهادات للشهادة + يجب اختيار شهادة + شفرة المصدر ومتعقب العلل متوفرين على https://github.com/schwabe/ics-openvpn/ + يستخدم هذا البرنامج العناصر التالية؛ إطّلع على الشفرة المصدرية للحصول على التفاصيل الكاملة بشأن التراخيص + عن التطبيق + بيانات المستخدم + النوع + الكلمة السرية لـ PKCS12 + إختر… + يجب تحديد ملف + استخدام مصادقة TLS + إتجاه الـ TLS + أدخل عنوان IPv6/قناع الشبكة في شكل نظام CIDR (مثلاً 2000:dd::23/64) + أدخل عنوان IPv4/قناع الشبكة في شكل نظام CIDR (مثلاً 1.2.3.4/24) + عنوان IPv4 + عنوان IPv6 + أدخل خيارات مخصصة المسنجر. استخدام بحذر. نلاحظ أيضا أن العديد من الإعدادات المسنجر تون ذات الصلة لا يمكن أن تكون معتمدة من قبل تصميم VPNSettings. إذا كنت تعتقد خيارا هاما مفقود الاتصال المؤلف + Hassan + كلمه السر + لكي تكون التهيئة ثابتة سوف تستخدم مفاتيح مصادقة TLS كمفاتيح ثابتة + تهيئة الشبكة الإفتراضية الخاصة + إضافة ملف شخصي + أدخل اسما لتحديد هوية الملف الجديد + الرجاء إدخال إسم ملف تعريف فريد من نوعه + اسم الملف الشخصي + يجب تحديد شهادة المستخدم + يجب عليك تحديد شهادة CA أو تمكين فحص بصمة النظير + لم نصادف أي خطأ + خطأ في التهيئة + خطأ أثناء تحليل عنوان IPv4 + حدث خطأ أثناء تحليل المسارات المخصصة + (اتركه فارغا للاستعلام عن الطلب) + اختصار OpenVPN + جارٍ الاتصال بالشبكة الإفتراضية الخاصة… + لم يتم العثور على اختصار الملف الشخصي المحدد + بادئة مضيف عشوائية + إضافة 6 أحرف عشوائية أمام اسم المضيف + تمكين الخيارات المخصصة + إدخال خيارات مخصصة. استخدمه بحذر! + تم رفض المسار من مِن طرف الأندرويد + قطع الاتصال + قطع الإتصال بالشبكة الإفتراضية الخاصة + مسح السجل + إلغاء التأكيد + هل تريد قطع اتصال الشبكة الإفتراضية المتصلة حاليا أو إلغاء محاولة الاتصال؟ + حذف الشبكة الإفتراضية الخاصة + اختبار ما إذا كان الملقم يستخدم شهادة مع ملحقات خادم TLS (خادم --remote سيرت-TLS) + توقُّع شهادة خادم TLS + تحقق من شهادة الملقم البعيد DN + التحقق من شهادة اسم المضيف + تحديد الاختيار المستخدمة للتحقق من صحة الشهادة البعيدة DN (مثل C = دي، ل Paderborn، OU = = \"إنفلونزا الطيور الملكية الفكرية الناقلين\"، CN=openvpn.blinkt.de)\n\nSpecify DN الكامل أو RDN (openvpn.blinkt.de في المثال) أو بادئة RDN ليطابق verification.\n\nWhen RDN البادئة \"الملقم\" باستخدام \"خادم-1\" وسوف تحقق \n\nLeaving \"خادم-2\" إفراغ الحقل النص RDN ضد hostname.\n\nFor الخادم مزيد من التفاصيل، انظر استخدام 2.3.1+ المسنجر تحت — اسم x509 التحقق من + موضوع الشهادة البعيدة + يُفعّل مفتاح TLS للمصادقة + ملف المصادقة عبر TLS + تُطلب عناوين IP والمسارات وخيارات التوقيت من الخادم. + لا توجد معلومات مطلوبة من الخادم. يجب تحديد الإعدادات أدناه. + إعدادات السحب + DNS + تجاوز إعدادات DNS من قبل خادم + استخدم خوادم DNS الخاصة بك + نطاق البحث + خادم الـ DNS الذي سيتم استخدامه. + خادم أسماء النطاقات + خادم DNS الثانوي سيُستخدَم إذا تعذر الإتصال بخادم DNS العادي. + الخادم الإحتياطي لنظام أسماء النطاقات + تجاهل المسارات المدفوعة + Ignore routed pushed by the server.تجاهل توجيه دفعت من قبل الخدمة. + إعادة توجيه كافة البيانات عبر الشبكة الإفتراضية الخاصة + إستخدم المسار الإفتراضي + Enter custom routes. Only enter destination in CIDR format. \"10.0.0.0/8 2002::/16\" would direct the networks 10.0.0.0/8 and 2002::/16 over the VPN. + المسارات التي يجب عدم توجيهها عبر الشبكة الإفتراضية الخاصة. استخدم نفس البنية كما في المسارات المضمنة. + مسارات مخصصة + الشبكات المُقصاة + مستوى سجل الإسهاب + يسمح الحُزم المصادق عليها مِن أي عنوان إيبي + اسمح للخادم العائم + خيارات مخصصة + تعديل إعدادات الشبكة الخاصة الإفتراضية + إزالة الملف التعريفي للشبكة الإفتراضية الخاصة \'%s\'؟ + السماح للإذن لبعض الصور المخصصة التي قد تكون خاطئة، أو قد تكون الوحدة النمطية مفقودة تماما. بالنسبة للصور CM9 حاول الخيار إصلاح الملكية ضمن إعدادات عامة + فشل في فتح واجهة tun + "خطأ: " + إزالة + فتح واجهة tun: + عنوان IPv4 المحلي: %1$s/%2$d IPv6: %3$s MTU: %4$d + خادم أسماء النطاقات: %1$s، النطاق: %2$s + المسارات: %1$s %2$s + المسارات المُقصاة: %1$s %2$s + VpnService routes installed: %1$s %2$s + Got interface information %1$s and %2$s, assuming second address is peer address of remote. Using /32 netmask for local IP. Mode given by OpenVPN is \"%3$s\". + Cannot make sense of %1$s and %2$s as IP route with CIDR netmask, using /32 as netmask. + تصحيح مسار %1$s/%2$s إلى %3$s/%2$s + لا يمكن الوصول إلى \"شهادات المفاتيح الروبوت\". يمكن أن يحدث هذا بترقية البرامج الثابتة أو باستعادة نسخة احتياطية من إعدادات التطبيق/التطبيق. الرجاء تحرير VPN وإعادة تحديد الشهادة تحت الإعدادات الأساسية لإعادة الإذن للحصول على الشهادة. + %1$s %2$s + إرسال ملف السجل + إرسال + ICS OpenVPN log file + + Tap Mode + وضع برنامج المساعدة التقنية غير ممكن مع الجذر غير VPN API. ولذلك لا يمكن توفير هذا التطبيق دعم برنامج المساعدة التقنية + مرة أخرى؟ هل أنت تمزح؟ لا، برنامج المساعدة التقنية لوضع حقاً غير معتمد وإرسال مزيد من البريد يسأل إذا كان سيتم دعم لن يساعد. + للمرة الثالثة؟ في الواقع، يمكن أن يكتب أحد تلقي جهاز المضاهاة صنبور على تون إضافة معلومات الطبقة 2 في إرسال وقطاع معلومات الطبقة 2 على أساس. ولكن هذا المحاكي الصنبور سيتعين أيضا تنفيذ ARP، وربما عميل DHCP. أنا لست على علم بأي شخص القيام بأي عمل في هذا الاتجاه. الاتصال بي إذا كنت ترغب في بدء تشغيل التعليمات البرمجية في هذا. + الأسئلة المتداولة + نسخ إدخالات السجل + لنسخ سجل واحد الدخول اضغط واستمر في إدخال السجل. لنسخ/إرسال السجل كله استخدم خيار \"إرسال سجل\". استخدام زر القائمة الأجهزة، إذا كان الزر غير مرئية في واجهة المستخدم الرسومية. + اختصار للبدء + يمكنك وضع اختصار لتشغيل أوبن فيبي آن على سطح المكتب الخاص بك. اعتماداً على برنامج الشاشة الرئيسية الخاصة بك سيكون لديك لإضافة اختصار أو القطعة. + للاسف صورتك لا تدعم VPNService API + التشفير + أدخل طريقة التشفير + أدخل خوارزميات تشفير البيانات المستخدمة من قبل OpenVPN مفصولة بـ: (-شفرات البيانات). اتركه فارغًا لاستخدام الإعداد الافتراضي AES-256-GCM: AES-128-GCM: CHACHA20-POLY1305. + أدخل خلاصة المصادقة التي تستخدم الشبكة الإفتراضية. أتركه فارغاً لاستخدام خلاصة الافتراضي. + المصادقة/التشفير + مستكشف الملفات + ملف مضمن + خطأ في استيراد الملف + 無法從檔案系統中匯入檔案 + [[بيانات الملف المضمن]] + رفض فتح جهاز tun الذي لا يحتوي على معلومات عن الإيبي + استيراد الملف الشخصي من ملف ovpn + استيراد + تعذرت قراءة الملف الشخصي قصد استيراده + حدث خطأ أثناء قراءة ملف الإعداد + إضافة ملف تعريف + تعذر العثور على الملف %1$s المذكور في ملف الإعداد المستورد + استيراد ملف إعداد من المصدر %1$s + وكان التكوين الخاص بك بضعة خيارات التكوين التي لم يتم تعيينها إلى تكوينات واجهة المستخدم. وأضيفت هذه الخيارات كخيارات تكوين مخصص. يتم عرض تكوين مخصص أدناه: + تم قراءة ملف الإعدادات. + لا تربط إلى العنوان والمنفذ المحليَين + دون ربط محلي + استيراد ملف الإعدادات + اعتبارات الأمان + "Vấn đề bảo mật OpenVPN trong một số trường hợp là nhạy cảm. Tất cả dữ liệu trên thẻ nhớ vốn không an toàn. Các ứng dụng khác có thể đọc được nó (ví dụ như chương trình này không bắt buộc các quyền đặc biệt từ thẻ nhớ). Dữ liệu của ứng dụng này chỉ có thể đọc bởi chính nó. Mặc dù có thể sử dụng tùy chọn nhập vào để truy cập/xem/khóa ứng dụng bên trong dữ liệu hội thoại lưu trữ trong hồ sơ VPN. Nhưng hồ sơ VPN chỉ có thể truy cập bởi chính ứng dụng này. (Đừng quên xóa các bản sao trên thẻ nhớ sau đó). Dù có thể chỉ truy cập bằng ứng dụng này nhưng dữ liệu vẫn không được mã hóa. Việc root điện thoại hoặc khai thác các vấn đề khác có thể lấy cắp được dữ liệu. Lưu trữ mật khẩu lại trong văn bản là tốt nhất. Tập tin pkcs12 là lời khuyên tốt nhất để bạn có thể nhập chúng vào Khóa lưu trữ Android." + استيراد + حدث خطأ أثناء عرض تحديد الشهادة + یک استثنا برای نشان دادن گزینه انتخاب گواهینامه Android 4.0+ به دست آمده است. این هرگز نباید به عنوان یک ویژگی استاندارد از Android 4.0+ اتفاق بیفتد. شاید پشتیبانی از ROM Android شما برای ذخیره سازی گواهی خراب است + IPv4 + IPv6 + في انتظار رسالة الحالة… + الملف الشخصي المستورد + الملف الشخصي المستورد %d + صور مكسورة + <p>Official HTC images are known to have a strange routing problem causing traffic not to flow through the tunnel (See also <a href=\"https://github.com/schwabe/ics-openvpn/issues/18\">Issue 18</a> in the bug tracker.)</p><p>Older official SONY images from Xperia Arc S and Xperia Ray have been reported to be missing the VPNService completely from the image. (See also <a href=\"https://github.com/schwabe/ics-openvpn/issues/29\">Issue 29</a> in the bug tracker.)</p><p>On custom build images the tun module might be missing or the rights of /dev/tun might be wrong. Some CM9 images need the \"Fix ownership\" option under \"Device specific hacks\" enabled.</p><p>Most importantly: If your device has a broken Android image, report it to your vendor. The more people who report an issue to the vendor, the more likely they are to fix it.</p> + PKCS12 مفتاح التشفير للملف + كلمة مرور المفتاح الخاص + كلمة السر + أيقونة الملف + المصادقة/التشفير عبر TLS + الإعدادات التي تم توليدها + الإعدادات + Tenta d\'afitar al sistema como\'l dueñu de /dev/tun. Delles imáxenes de CM9 precisen esto pa facer que\'l serviciu API de VPNService funcione. Rique root. + إصلاح ملكية/dev/tun + emad + تعديل \"%s\" + جار إنشاء الإعدادات… + سيؤدي تشغيل هذا الخيار إلى إعادة الاتصال في حالة تغيير حالة الشبكة (مثل WiFi من / إلى الهاتف المحمول) + إعادة الاتصال عند تبديل الشبكة + حالة الشبكة: %s + عادةً ما يتم إرجاع شهادة المرجع المصدق (CA) من لوحة مفاتيح Android. حدد شهادة منفصلة إذا حصلت على أخطاء التحقق من الشهادة. + اختر + لم يتم إرجاع شهادة CA أثناء القراءة من keystore Android. ربما ستفشل المصادقة. + Shows the log window on connect. The log window can always be accessed from the notification status. + إظهار نافذة سجل + %10$s %9$s running on %3$s %1$s (%2$s), Android %6$s (%7$s) API %4$d, ABI %5$s, (%8$s) + خطأ في التوقيع باستخدام مفتاح keystore في Android %1$s: %2$s + خطأ في التوقيع مع تطبيق الموثق الخارجي (%3$s): %1$s: %2$s + تحذير من اتصال VPN يخبرك بأن هذا التطبيق يمكنه اعتراض كل حركة المرور التي يفرضها النظام لمنع إساءة استخدام VPNService API.\nيفرض نظام Android أيضًا إشعار اتصال VPN (رمز المفتاح) للإشارة إلى اتصال VPN مستمر. في بعض الصور ، يلعب هذا الإشعار صوتًا.\nقدم Android مربعات حوار النظام هذه من أجل سلامتك وتأكد من عدم التحايل عليها. (في بعض الصور ، يتضمن هذا للأسف صوت إشعار) + تحذير الاتصال وصوت الإخطار + الترجمة الإنجليزية بفضل Arne Schwabe<arne@rfc2549.org> + الإيبي ونظام أسماء النطاقات + الأساسية + التوجيه + إعدادات OpenVPN الغامضة. عادة لا حاجة لها. + متقدمة + ICS Openvpn إعدادات + لا تستخدم ملقمات DNS. قد لا يعمل تحليل الاسم. النظر في تعيين ملقمات DNS مخصص. كما يرجى ملاحظة أن الروبوت سوف يبقى باستخدام إعدادات الوكيل المحدد للاتصال اللاسلكي النقالة/عندما يتم تعيين أية ملقمات DNS. + تعذر إضافة ملقم DNS \"%1$s\"، رفض من قبل النظام: %2$s + تعذر تكوين عنوان IP \"%1$s\"، رفض من قبل النظام: %2$s + < p > الحصول على ملف config عامل (اختبار على الكمبيوتر الخاص بك أو تحميل من منظمتكم الموفر) </p >< p > إذا كان ملف واحد مع لا إضافي بيم/pkcs12 الملفات التي يمكن أن أرسل الملف لنفسك وفتح المرفق. إذا كان لديك عدة ملفات وضعها على الخاص بك sd بطاقة </p >< p > انقر على المرفق البريد الإلكتروني/الاستخدام رمز المجلد في قائمة vpn لاستيراد ملف التكوين </p >< p > إذا كانت هناك أخطاء حول فقدان الملفات وضع الملفات المفقودة في الخاص بك sd بطاقة </p >< p > انقر فوق الحفظ رمز لإضافة VPN المستوردة إلى قائمة VPN </p >< p > الاتصال VPN بالنقر فوق اسم الشبكة الافتراضية </p >< p > إذا كان هناك خطأ أو تحذير في السجل في محاولة لفهم التحذيرات/الخطأ ومحاولة إصلاحها </p > + بداية سريعة + حاول تحميل الوحدة النمطية tun.ko kernel قبل محاولة الاتصال. يحتاج عمل رووت للأجهزة. + تحميل وحدة tun + استيراد PKCS12 من الإعدادات إلى Android Keystore + خطأ في الحصول على إعدادات البروكسي: %s + استخدام الخادم الوكيل البروكسي %1$s %2$s + استخدام بروكسي النظام + استخدام تكوين النظام على نطاق واسع لوكلاء HTTP/HTTPS للاتصال. + سيقوم OpenVPN بتوصيل VPN المحدد إذا كان نشطًا في تمهيد النظام. يرجى قراءة الأسئلة الشائعة الخاصة بتحذير الاتصال قبل استخدام هذا الخيار على Android < 5.0. + الاتصال عند تشغيل الجهاز + تجاهل + إعادة التشغيل + يتم تطبيق تغييرات التكوين بعد إعادة تشغيل VPN. (إعادة) بدء VPN الآن؟ + تم تغيير الإعدادات + تعذر تحديد آخر ملف شخصي متصل للتعديل + إشعارات مكررة + إذا كان Android تحت ضغط ذاكرة النظام (RAM) ، فسيتم إزالة التطبيقات والخدمات غير الضرورية في الوقت الحالي من الذاكرة النشطة. هذا ينهي اتصال VPN المستمر. لضمان بقاء الاتصال / OpenVPN ، يتم تشغيل الخدمة بأولوية أعلى. للتشغيل بأولوية أعلى ، يجب أن يعرض التطبيق إشعارًا. يفرض النظام رمز الإخطار بالمفتاح كما هو موضح في إدخال الأسئلة الشائعة السابق. لا يتم اعتباره إخطارًا للتطبيق بغرض التشغيل بأولوية أعلى. + لم يتم التعرف على الشبكة الإفتراضية. + استخدم الرمز <img src=\"ic_menu_add\"/> لإضافة VPN جديد + استخدم الرمز <img src=\"ic_menu_archive\"/> لاستيراد ملف تعريف موجود (.ovpn أو .conf) من sdcard الخاص بك. + تأكد من مراجعة الأسئلة الشائعة أيضًا. هناك دليل البدء السريع. + التوجيه/إعداد الواجهة + The Routing and interface configuration is not done via traditional ifconfig/route commands but by using the VPNService API. This results in a different routing configuration than on other OSes. \nThe configuration of the VPN tunnel consists of the IP address and the networks that should be routed over this interface. Especially, no peer partner address or gateway address is needed or required. Special routes to reach the VPN Server (for example added when using redirect-gateway) are not needed either. The application will consequently ignore these settings when importing a configuration. The app ensures with the VPNService API that the connection to the server is not routed through the VPN tunnel.\nThe VPNService API does not allow specifying networks that should not be routed via the VPN. As a workaround the app tries to detect networks that should not be routed over tunnel (e.g. route x.x.x.x y.y.y.y net_gateway) and calculates a set of routes that excludes this routes to emulate the behaviour of other platforms. The log windows shows the configuration of the VPNService upon establishing a connection.\nBehind the scenes: Android 4.4+ does use policy routing. Using route/ifconfig will not show the installed routes. Instead use ip rule, iptables -t mangle -L + لا تتراجع إلى عدم وجود اتصال VPN عند إعادة اتصال OpenVPN. + ضبط مستمر + سِجلّ أوبن فيبي آن + إستيراد إعدادات لأوبن فيبي آن + استهلاك البطارية + In my personal tests the main reason for high battery consumption of OpenVPN are the keepalive packets. Most OpenVPN servers have a configuration directive like \'keepalive 10 60\' which causes the client and server to exchange keepalive packets every ten seconds. <p> While these packets are small and do not use much traffic, they keep the mobile radio network busy and increase the energy consumption. (See also <a href=\"http://developer.android.com/training/efficient-downloads/efficient-network-access.html#RadioStateMachine\">The Radio State Machine | Android Developers</a>) <p> This keepalive setting cannot be changed on the client. Only the system administrator of the OpenVPN can change the setting. <p> Unfortunately using a keepalive larger than 60 seconds with UDP can cause some NAT gateways to drop the connection due to an inactivity timeout. Using TCP with a long keep alive timeout works, but tunneling TCP over TCP performs extremely poorly on connections with high packet loss. (See <a href=\"http://sites.inka.de/bigred/devel/tcp-tcp.html\">Why TCP Over TCP Is A Bad Idea</a>) + The Android Tethering feature (over WiFi, USB or Bluetooth) and the VPNService API (used by this program) do not work together. For more details see the <a href=\"https://github.com/schwabe/ics-openvpn/issues/34\">issue #34</a> + الشبكة الإفتراضية الخاصة والربط + إعادات محاولة الاتصال + إعدادات إعادة الاتصال + عدد الثواني التي يجب فيها الإنتظار بين محاولات الاتصال. + الثواني بين الاتصالات + تحطم أوبن فيبي آن بشكل غير متوقع. يرجى النظر في استخدام الخيار تفريغ مصغر إرسال في القائمة الرئيسية + إرسال تقرير للمطور + يرسل معلومات التصحيح حول آخر أخطاء للمطور + OpenVPN - %s + %1$s - %2$s + %1$s - %3$s, %2$s + توصيل + في انتظار رد الخادم + مصادقة + جارٍ الحصول على إعدادات العميل + تعيين عناوين IP + إضافة المسارات + مُتّصِل + قطع الاتصال + إعادة الاتصال + الخروج + لا يعمل + حل أسماء الأجهزة المضيفة + الاتصال (TCP) + فشلت المصادقة + في انتظار شبكة قابلة للاستخدام + في انتظار بدء تشغيل أوربوت + ↓%2$s %1$s - ↑%4$s %3$s + غير متصل + الإتصال بالشبكة الإفتراضية %s + الإتصال بالشبكة الإفتراضية %s + بعض الإصدارات من 4.1 الروبوت لديك مشاكل إذا كان اسم الشهادة كيستوري يحتوي على الأحرف غير الأبجدية الرقمية (مثل المسافات أو شرطات سفلية أو شرطات). يرجى محاولة استيراد الشهادة دون أحرف خاصة + خوارزمية التشفير + حزمة المصادقة + أدخل طريقة مصادقة الحزمة + طوره %s + بناء التصحيح + البنية الرسمية + نسخ إلى الملف الشخصي + اصلاح العطل + إضافة + إرسال ملف الإعداد + الاسم الكامل المميز DN + استخدم التكوين الذي تم استيراده خيار tls-remote القديم DEPRECATED والذي يستخدم تنسيق DN مختلف. + RDN (الاسم الشائع) + بادئة RDN + tls-جهاز التحكم عن بعد (تم تجاهله) + بإمكانكم المساعدة في الترجمة بزيارة http://crowdin.net/project/ics-openvpn/invite + %1$s محاولات للسيطرة %2$s + من خلال المتابعة ، فإنك تمنح التطبيق إذنًا بالتحكم الكامل في OpenVPN لنظام Android واعتراض جميع حركات مرور الشبكة.لا تقبل إلا إذا كنت تثق في التطبيق. وإلا فإنك تخاطر بتعرض بياناتك للاختراق بواسطة برامج ضارة. \" + أنا أثق في هذا التطبيق. + No app allowed to use external API + التطبيقات المسموح بها: %s + Clear list of allowed external apps?\nCurrent list of allowed apps:\n\n%s + أوقف VPN مؤقتًا عند إيقاف تشغيل الشاشة ونقل بيانات أقل من 64 كيلو بايت في 60 ثانية. عند تمكين خيار \"ضبط مستمر\" ، فإن الإيقاف المؤقت للشبكة الافتراضية الخاصة (VPN) سيترك جهازك بدون اتصال بالشبكة. بدون خيار \"ضبط مستمر\" ، لن يكون للجهاز اتصال / حماية VPN. + تعليق اتصال الشبكة الإفتراضية الخاصة عند إطفاء الشاشة + إيقاف الاتصال مؤقتا في حالة إيقاف الشاشة: أقل من %1$s في %2$ss + تحذير: لم يتم تمكين تون المستمر لهذه الشبكة الإفتراضية. ستستخدم حركة المرور اتصال الإنترنت العادي عند إيقاف تشغيل الشاشة. + حفظ كلمة المرور + تعليق الشبكة الافتراضية الخاصة مؤقتا + استئناف تشغيل الشبكة الإفتراضية الخاصة + توقيف مؤقت للشبكة الافتراضية الخاصة مِن طلب مِن المستخدِم + الشبكة الإفتراضية موقفة - الشاشة مطفأة + Device specifics Hacks + لا يمكن عرض معلومات الشهادة + سلوك التطبيق + سلوك الشبكة الإفتراضية الخاصة + السماح بالتغييرات على ملفات تعريف الشبكة الإفتراضية الخاصة + Hardware Keystore: + أيقونة التطبيق الذي يحاول إستخدام أوبن في بي آن لأندرويد + "بدءًا من Android 4.3 ، يتم حماية تأكيد VPN من\" التطبيقات المتراكبة \". يؤدي هذا إلى عدم استجابة مربع الحوار لإدخال اللمس. إذا كان لديك تطبيق يستخدم التراكبات ، فقد يتسبب ذلك في هذا السلوك. إذا وجدت تطبيقًا مسيئًا ، فاتصل بالمؤلف من التطبيق. تؤثر هذه المشكلة على جميع تطبيقات VPN على Android 4.3 والإصدارات الأحدث. راجع أيضًا <a href=\"https://github.com/schwabe/ics-openvpn/issues/185\">الإصدار 185<a> للحصول على تفاصيل إضافية " + مربع حوار تأكيد الشبكة الإفتراضية الخاصة + يمكنكم أيضا أن ترسلوا لنا تبرعاتكم على متجر بلاي: + شكرا للتبرع ب %s! + مُسِح السجل. + إظهار كلمة السر + خطأ في الوصول إلى المفاتيح: %s + قصيرة + ISO + الطوابع الزمنية + لا شيء + رفع + تنزيل + حالة الشبكة الإفتراضية الخاصة + عرض الخيارات + غير معالج الاستثناء: %1$s\n\n%2$s + %3$s: %1$s\n\n%2$s + إذا قمت بتجذير جهاز Android الخاص بك ، فيمكنك تثبيت <a href=\"http://xposed.info/\">Xposed framework</a> و <a href=\"http://repo.xposed.info/module/de.blinkt.vpndialogxposed\">VPN Dialog تأكيد الوحدة</a> على مسؤوليتك الخاصة \" + التراخيص الكاملة + لن يتم توجيه الشبكات المتصلة مباشرة بالواجهات المحلية عبر VPN. سيؤدي إلغاء تحديد هذا الخيار إلى إعادة توجيه كل حركة المرور المخصصة للشبكات المحلية إلى VPN. + تجاوَز الشبكة الإفتراضية الخاصة للشبكات المحلية + اسم المستخدم/ملف المرور + [تم الاستيراد من: %s] + تعذر العثور على بعض الملفات. الرجاء تحديد الملفات لاستيراد الملف الشخصي: + لاستخدام هذا التطبيق ، تحتاج إلى مزود VPN / بوابة VPN تدعم OpenVPN (غالبًا ما يوفره صاحب العمل). راجع http://community.openvpn.net/ لمزيد من المعلومات حول OpenVPN وكيفية إعداد خادم OpenVPN الخاص بك. + سجل الاستيراد: + تم تحديد طوبولوجيا Vpn \"%3$s\" ولكن ifconfig %1$s %2$s يشبه إلى حد كبير عنوان IP مع قناع الشبكة. بافتراض طوبولوجيا \"الشبكة الفرعية\". + يجب أن تكون قيمة تجاوز MSS عددًا صحيحًا بين 0 و 9000 + يجب أن تكون قيمة تجاوز MSS عددًا صحيحًا بين 64 و 9000 + أعلن لجلسات TCP التي تعمل عبر النفق أنه يجب عليهم تحديد أحجام حزم الإرسال الخاصة بهم بحيث بعد أن يقوم OpenVPN بتغليفها ، لن يتجاوز حجم حزمة UDP الناتجة التي يرسلها OpenVPN إلى نظيرها هذا العدد من البايتات. (الافتراضي هو 1450) + تجاوز قيمة MSS لحمولة TCP + قم بتعيين MSS لحمولة TCP + سلوك العميل + محو التطبيقات الخارجية المسموح بها + جار التحميل… + التطبيقات المسموح بها: %s + تطبيقات الشبكة الإفتراضية الغير المسموح بها: %1$s + الحزمة %s لم تعد مثبتة ، إزالتها من قائمة السماح / عدم السماح للتطبيق + يتم استخدام الشبكة الإفتراضية لجميع تطبيقات لكن الاستثناءات المحددة + يتم استخدام الشبكة الإفتراضية للتطبيقات المختارة + اسمح للتطبيقات بتجاوز VPN + إزالة إدخال الملقم البعيد؟ + احتفظ + حذف + إضافة جهاز جديد + استخدام اتصال الإدخالات في ترتيب عشوائي في الاتصال + تحتاج إلى تعريف وتمكين الملقم البعيد واحد على الأقل. + قائمة السيرفر + التطبيقات المسموح بها + الإعدادات المتقدمة + خيارات الحمولة + إعدادات طبقة النقل الآمنة TLS + لم يتم تعريفها عن بعد + ملف تعريف الشبكة الإفتراضية الخاصة + جار تكرار الملف الشخصي: %s + إظهار السجل + يوجد العديد من عملاء OpenVPN لنظام Android. أكثرها شيوعًا هي OpenVPN لنظام Android (هذا العميل) و OpenVPN Connect وإعدادات OpenVPN.<p>يمكن تقسيم العملاء إلى مجموعتين: المسنجر لالروبوت والمسنجر الاتصال استخدام VPNService API الرسمي (الروبوت 4.0+) ولا تحتاج إلى الجذر وإعدادات المسنجر الذي يستخدم الجذر.<p>OpenVPN for Android هو عميل مفتوح المصدر تم تطويره بواسطة Arne Schwabe. يستهدف المستخدمين الأكثر تقدمًا ويوفر العديد من الإعدادات والقدرة على استيراد ملفات التعريف من الملفات وتكوين / تغيير ملفات التعريف داخل التطبيق. يعتمد العميل على إصدار المجتمع من OpenVPN. يعتمد على كود مصدر OpenVPN 2.x. يمكن اعتبار هذا العميل العميل شبه الرسمي للمجتمع. <p>OpenVPN Connect هو عميل غير مفتوح المصدر تم تطويره بواسطة OpenVPN Technologies، Inc. تم وضع مسافة بادئة للعميل ليكون عميلًا للاستخدام العام وأكثر استهدافًا للمستخدم العادي ويسمح باستيراد ملفات تعريف OpenVPN. يعتمد هذا العميل على إعادة تطبيق OpenVPN C ++ لبروتوكول OpenVPN (كان هذا مطلوبًا للسماح لـ OpenVPN Technologies، Inc بنشر تطبيق iOS OpenVPN). هذا العميل هو العميل الرسمي لتقنيات OpenVPN. <p> إعدادات OpenVPN هي أقدم العملاء وأيضًا واجهة مستخدم لـ OpenVPN مفتوح المصدر. على عكس OpenVPN لنظام Android ، فإنه يتطلب جذرًا ولا يستخدم واجهة برمجة تطبيقات VPNService. لا يعتمد على Android 4.0+ + الفرق بين التطبيقات المختلفة لـ OpenVPN على نظام الأندرويد + تجاهل التوجيه الإرسال المتعدد: %s + يدعم Android فقط مسارات CIDR إلى VPN. نظرًا لأنه لا يتم استخدام المسارات بخلاف CIDR تقريبًا ، فإن OpenVPN لنظام Android سيستخدم / 32 للطرق التي ليست CIDR ويصدر تحذيرًا. + يعمل الربط أثناء تنشيط VPN. لن يستخدم الاتصال المقيد VPN. + عيّن إصدار KitKat المبكر قيمة MSS الخاطئة على اتصالات TCP (# 61948). حاول تمكين خيار mssfix لحل هذا الخطأ. + سيستمر Android في استخدام إعدادات الوكيل المحددة لاتصال المحمول / Wi-Fi عند عدم تعيين خوادم DNS. سوف يحذرك OpenVPN لنظام Android من هذا في السجل.

عند تعيين VPN لخادم DNS ، لن يستخدم Android وكيلًا. لا توجد واجهة برمجة تطبيقات لتعيين وكيل لاتصال VPN.

+ لا يتم توجيه عنوان IP للعميل الذي تم تكوينه وعناوين IP الموجودة في قناع الشبكة الخاص به إلى VPN. يعمل OpenVPN على حل هذا الخطأ عن طريق إضافة مسار يفسد بشكل صريح إلى عنوان IP للعميل وقناع الشبكة الخاص به + فتح اكثر من جهاز tun في نفس الوقت يمكن ان يؤدي الي فشل عملية VPNServices علي الجهاز و يحتاج الجهاز الي اعادة تشغيل لحل المشكله. +اندرويد OpenVPN for Android يحاول عدم تشغيل اكثر من جهاز tun في نفس الوقت و ايقاف الجهاز الاول قبل تشغيل جهاز جديد لتفادي هذه المشكله +وهذا قد يؤدي لان يتم ارسال بعض البيانات لمده قصيره خارج اتصال الفي بي ان +لكن رغم هذه الحل في بعض الاحيان تفشل VPNServices و تحتاج الي اعادة تشغيل الجهاز. + لا تعمل الشبكة الافتراضية الخاصة بتاتا لدى المستخدمين الثانويين. + "يبلغ العديد من المستخدمين عن أن اتصال بيانات الجوال / اتصال الهاتف المحمول يتم إسقاطه بشكل متكرر أثناء استخدام تطبيق VPN. يبدو أن السلوك يؤثر على بعض مزودي خدمة / مجموعة الأجهزة المحمولة ، وحتى الآن لم يتم تحديد سبب / حل بديل لهذا الخطأ." + يمكن الوصول إلى الوجهة فقط عبر VPN التي يمكن الوصول إليها دون VPN. لا تعمل VPN IPv6 على الإطلاق. + CIDR رواتر معطل + سلوك الوكيل للشبكات الخاصة الافتراضية + %s وما قبلها + نسخة من %s + التوجيه إلى عنوان الـ IP الذي تم إعداده + قيمة MSS خاطئة لاتصال الشبكة الإفتراضية الخاصة + مستخدمي الكمبيوتر اللوحي الثانوي + حدد خيارات اتصال مخصصة. استخدام مع الرعاية + الخيارات المخصصة + إزالة إدخال الاتصال + قطع عشوائي من شبكة للهاتف المحمول + لا يمكن الوصول إلى الشبكات البعيدة + استمرار وضع تون + %s وما بعدها + فشل الاتصالات مع SSL23_GET_SERVER_HELLO: فشل مصافحة تنبيه sslv3 + تستخدم إصدارات OpenVPN الأحدث لنظام Android (0.6.29 / مارس 2015) افتراضيًا أكثر أمانًا لمجموعات التشفير المسموح بها (tls-cipher \"DEFAULT:! EXP:! PSK:! SRP:! kRSA\"). لسوء الحظ ، فإن حذف مجموعات التشفير الأقل أمانًا ومجموعات التشفير ، لا سيما حذف مجموعات التشفير التي لا تدعم Perfect Forward Secrecy (Diffie-Hellman) يسبب بعض المشكلات. يحدث هذا عادةً بسبب محاولة حسنة النية ولكنها سيئة التنفيذ لتعزيز أمان TLS من خلال تعيين tls-cipher على الخادم أو بعض أنظمة التشغيل المدمجة مع SSL (مثل MikroTik).\nلحل هذه المشكلة ، قم بتعيين إعدادات tls-cipher على الخادم على افتراض افتراضي مثل tls-cipher \"DEFAULT:! EXP:! PSK:! SRP:! kRSA\". لحل المشكلة على العميل ، قم بإضافة الخيار الافتراضي tls-cipher DEFAULT على عميل Android. + تمت إضافة هذا الملف من تطبيق خارجي (%s) وتم وضع علامة على أنه غير قابل للتعديل بواسطة المستخدم. + قائمة إبطال الشهادات + إعادة تشغيل خدمة OpenVPN (فشل التطبيق على الأرجح أو تم ايقافه بسبب انخفاض الذاكرة) + يؤدي استيراد التهيئة إلى حدوث خطأ، ولا يمكن حفظه + بحث + (التفريغ الأخير هو %1$d:%2$dساعة من العمر (%3$s)) + مسح السجل عند إقامة اتصال جديد + مهلة الاتصال + لم تتم إضافة التطبيق الي قائمةالتطبيقات المسموح به. إضافة أنفسنا (%s) إلى تطبيق واحد على الأقل في قائمة التطبيقات المسموح بها لعدم السماح لجميع التطبيقات + يمكن لـ OpenVPN لنظام Android محاولة اكتشاف الملفات (الملفات) المفقودة على بطاقة sdcard تلقائيًا. اضغط على هذه الرسالة بدء طلب الإذن. + بروتوكول + تمكين + تم إلغاء إذن VPN بواسطة نظام التشغيل (على سبيل المثال بدأ برنامج VPN آخر) ، وإيقاف VPN + دفع معلومات الأقران + إرسال معلومات إضافية إلى الملقم، مثل إصدار SSL وإصدار نظام التشغيل + حاجة %1$s + الرجاء إدخال كلمة المرور الخاصة بالملف الشخصي %1$s + استخدام البيانات المضمنة + تصدير ملف الإعداد + ملف tls-auth مفقود + شهادة المستخدم مفقود أو ملف المفتاح المستخدم الموثوقة + قائمة إبطال الشهادات (اختياري) + إعادة قراءة عناصر السجل (%d) من ملف ذاكرة التخزين المؤقت للسجل + على الرغم من أن هواتف Samsung من بين أكثر هواتف Android مبيعًا ، إلا أن البرامج الثابتة من Samsung تعد أيضًا من بين أكثر برامج Android الثابتة التي تجرها الدواب. لا تقتصر الأخطاء على تشغيل VPN على هذه الأجهزة ولكن يمكن حل الكثير منها. فيما يلي وصف لبعض هذه الأخطاء.\n\nلا يعمل DNS إلا إذا كان خادم DNS في نطاق VPN.\n\nفي العديد من أجهزة Samsung 5.x لا تعمل ميزة التطبيقات المسموح بها / غير المسموح بها.\nعلى Samsung 6.x VPN ، تم الإبلاغ عن عدم عمل ما لم يتم إعفاء تطبيق VPN من ميزات Powersave. + هواتف سامسونج + لم يتم تحديد شبكة إفتراضية. + الـ VPN الافتراضي + تُستخدم VPN في الأماكن التي تتطلب شبكة افتراضية خاصة افتراضية. هذه قيد التشغيل حاليًا ، من أجل Always-On و Quick Settings Tile. + الشبكة الإفتراضية الخاصة المُختارة: \'%s\' + إعادة الاتصال + تبديل VPN + الاتصال بـ %s + قطع الاتصال بـ %s + أدخل الحد الأقصى للوقت بين محاولات الاتصال. سيرفع OpenVPN وقت الانتظار ببطء بعد محاولة اتصال غير ناجحة حتى هذه القيمة. الافتراضي إلى 300 ثانية. + المهلة القصوى بين محاولات الإتصال + الانتظار %sثانية بين محاولة الاتصال + الشبكات أكثر .. -> VPNS]]> + تم إغلاق الاتصال ب الشبكة الإفتراضية (%s) + تغيير الفرز + فرز + الملفات الشخصية مرتبة حسب آخر استخدام مؤخرا + الملفات الشخصية مرتبة حسب الاسم + يستخدم التكوين الخيار tls-remote الذي تم إهماله في 2.3 وإزالته أخيرًا في 2.4 + السلوك في AUTH_FAILED + الرسم البياني + استخدام مقياس لوغاريتمي + لا تتوفر بيانات كافية + متوسط ​​لكل ساعة + متوسط ​​لكل دقيقة + آخر 5 دقائق + الداخلة + الخارجة + %.0f bit/ثا + %.1f kbit/ثا + %.1f Mbit/ثا + %.1f Gbit/ثا + <p>بدءًا من الإصدار 1.1 من OpenSSL ، يرفض OpenSSL التوقيعات الضعيفة في الشهادات مثل + MD5. بالإضافة إلى ذلك ، يتم أيضًا رفض توقيعات OpenSSL 3.0 باستخدام SHA1.</p><p> + يجب عليك تحديث شهادات VPN في أقرب وقت ممكن لأن SHA1 لن يعمل أيضًا على الأنظمة الأساسية الأخرى في المستقبل + .</p> + <p>إذا كنت تريد حقًا استخدام الشهادات القديمة والمعطلة ، فحدد \"غير آمن\" لملف تعريف أمان TLS ضمن مصادقة / تشفير ملف التعريف</p> + + %.0f B + %.1f kB + %.1f MB + %.1f غيغابايت + إحصائيات الاتصال + إحصائيات مستمرة لاتصال OpenVPN الذي تم إنشاؤه + تغيير حالة الاتصال + تغييرات حالة اتصال OpenVPN (اتصال ، مصادقة ،…) + تجزئة ضعيفة (MD5) في توقيع الشهادة (SSL_CTX_use_certificate md ضعيف جدًا) + اختبار سرعة OpenSSL + أسماء تشفير OpenSSL + اختبار سرعة خوارزمية OpenSSL + قام OpenSSL بإرجاع خطأ + الإختبار جارٍ… + اختبار الخوارزميات التي تم اختيارها + يحاول تطبيق خارجي التحكم في %s. لا يمكن تحديد التطبيق الذي يطلب الوصول. السماح لهذا التطبيق يمنح الوصول إلى جميع التطبيقات. + لا يدعم تطبيق OpenVPN 3 C ++ المفاتيح الثابتة. يرجى التغيير إلى OpenVPN 2.x ضمن الإعدادات العامة. + استخدام ملفات PKCS12 مباشرة مع تطبيق OpenVPN 3 C ++ غير مدعوم. يرجى استيراد ملفات pkcs12 إلى ملف تخزين مفاتيح Android أو التغيير إلى OpenVPN 2.x ضمن الإعدادات العامة. + وكيل البروكسي + لا شيء + تور (أوربوت) + لا يدعم تطبيق OpenVPN 3 C ++ الاتصال عبر بروكسي Socks + لا يمكن العثور على تطبيق Orbot. الرجاء تثبيت Orbot أو استخدام التكامل اليدوي Socks v5. + واجهة برمجة التطبيقات عن بُعد + يدعم OpenVPN لنظام Android اثنين من واجهات برمجة التطبيقات البعيدة ، وواجهة برمجة تطبيقات متطورة تستخدم AIDL (عن بُعد في مستودع git) وواحدة بسيطة تستخدم Intents. <p>أمثلة باستخدام غلاف adb والأهداف. استبدل اسم ملف التعريف باسم ملفك الشخصي<p><p> adb shell am start-activity -a android.intent.action.MAIN de.blinkt.openvpn / .api.DisconnectVPN<p> adb shell am start-activity -a android.intent.action.MAIN - e de.blinkt.openvpn.api.profile الاسم Blinkt de.blinkt.openvpn / .api.ConnectVPN + تمكين مصادقة الوكيل + لا يمكن استخدام عبارة خيار وكيل http الإضافية وتكامل Orbot في نفس الوقت O + معلومات من الخادم: \"%s\" + تفاعل المستخدم مطلوب + يتطلب اتصال OpenVPN إدخال المستخدم ، على سبيل المثال ، المصادقة الثنائية + + + افتح URL لمتابعة مصادقة VPN + Answer challenge to continue VPN authentication + المصادقة معلقة + الموثق الخارجي + تهيئة + الموثق الخارجي غير مهيأ + حظر الاتصال بخلاف VPN (\"Killswitch\") + غالبًا ما يكون مطلوبًا حظر الاتصالات بدون VPN. غالبًا ما تستخدم التطبيقات الأخرى مصطلحات وضع العلامات مثل \"Killswitch\" أو \"Seamless tunnel\" لهذه الميزة. يوفر OpenVPN وهذا التطبيق خاصية persist-tun ، وهي ميزة لتنفيذ هذه الوظيفة.<p>تكمن المشكلة في كل هذه الأساليب التي تقدمها التطبيقات في أنها لا تقدم سوى أفضل الجهود وليست حلولاً كاملة. عند بدء التشغيل ، وتعطل التطبيق وحالات الركن الأخرى ، لا يمكن للتطبيق ضمان عمل هذه الكتلة من الاتصال بخلاف VPN. وبالتالي منح المستخدم إحساسًا زائفًا بالأمان.<p>الطريقة <b>الوحيدة</b> بها للتأكد من حظر الاتصالات غير VPN هي استخدام Android 8.0 أو إصدار أحدث واستخدام إعداد \"حظر الاتصالات بدون VPN\" الذي يمكن العثور عليه ضمن الإعدادات > الشبكة & الإنترنت > المتقدم / VPN > OpenVPN لنظام Android > تمكين Always ON VPN ، قم بتمكين حظر الاتصالات بدون VPN + يوجه هذا الخيار Android إلى عدم السماح بالبروتوكولات (IPv4 / IPv6) إذا لم تقم VPN بتعيين أي عناوين IPv4 أو IPv6. + قم بحظر IPv6 (أو IPv4) إذا لم يتم استخدامه بواسطة VPN + تثبيت شهادة جديدة + AS Servername + عنوان URL للخادم + طلب ملف تعريف تسجيل الدخول التلقائي + ملف تعريف الاستيراد من الخادم البعيد + لم يتم تعيين VPN الافتراضية. يرجى تعيين VPN الافتراضي قبل تمكين هذا الخيار. + WebView الداخلي + هناك بعض الاختلاف في هذه الرسالة اعتمادًا على الموقف الدقيق. إنهم جميعًا يشتركون في أن الخادم والعميل لا يمكن أن يتفقوا على تشفير مشترك. الأسباب الرئيسية هي: <ul><li> أنت لا تزال تعتمد على حقيقة أن OpenVPN 2.4 وما بعده يسمح لـ BF-CBC في التكوين الافتراضي (إذا لم يتم تعيين تشفير). لا يسمح OpenVPN 2.5 به افتراضيًا بعد الآن نظرًا لأنه عبارة عن <a href=\"https://community.openvpn.net/openvpn/wiki/SWEET32\">تشفير مكسور / قديم</a>.</li><li>يقوم الخادم بتشغيل OpenVPN 2.3 (أو حتى أقدم) مع --enable-small (على الأقل 4-5 سنوات من OpenVPN)</li><li></ul>تكوين معطل (على سبيل المثال ، عدم تطابق شفرات البيانات على العميل والخادم)</li> <p> <a href=\"https://github.com/OpenVPN/openvpn/blob/master/doc/man-sections/cipher-negotiation.rst\">OpenVPN يشرح القسم اليدوي حول مفاوضات التشفير</a> السيناريوهات المختلفة لمفاوضات التشفير جيدًا وما يجب القيام به في هذه الحالة. تستخدم<p>جهازًا من أجهزة TP-Link إصدار OpenVPN 2.3.x القديم الذي لا يقل عن 5 سنوات (ربما أقدم) على أجهزتهم ، حتى في طرز 2019/2020.<p>أخيرًا وليس آخرًا ، هناك مزود VPN شهير لديه خادم معطل يقول دائمًا إنه يستخدم \"BF-CBC\" لأن مطوره اعتقد أنه سيكون فكرة جيدة لإنشاء تصحيح تفاوض على تشفير خاص لا يتوافق مع المعيار OpenVPN.<p>باختصار: يجب ألا تحصل جميع التكوينات المعقولة على هذه الأخطاء. ولكن (بصرف النظر عن خادم مزود VPN المعطل) يمكن إقناع العميل بالاستمرار في الاتصال (إصلاح الرمز وليس المشكلة الحقيقية). عند الاتصال بالخوادم القديمة ، يجب أن يكون خيار وضع التوافق في الإعدادات الأساسية لشبكة VPN قادرًا على معالجة معظم مشكلات التوافق الشائعة. + تحقق من بصمة شهادة النظير + (أدخل بصمة SHA256 لشهادة (شهادات) الخادم) + HTTP Vekil: %1$s %2$d + يرجى استخدام ميزة Always-On لنظام Android لتمكين VPN في وقت التمهيد. + تعديل إعدادات الشبكة الخاصة الإفتراضية + اضغط هنا افتح نافذة لإدخال المصادقة الإضافية المطلوبة + وضع التوافق + وضع التوافق + تحميل مزود OpenSSL القديم + تستخدم الملفات الشخصية BF-CBC الذي يعتمد على مزود OpenSSL القديم (غير ممكّن). + السماح بالترجمات التي يساهم بها المجتمع + للسماح للتطبيق بالترجمة مع الترجمات التي يساهم بها المجتمع. يتطلب إعادة تشغيل التطبيق للتفعيل. + ملف تعريف أمان TLS +
diff --git a/main/src/ui/res/values-be/arrays.xml b/main/src/ui/res/values-be/arrays.xml index 5bbdc780..c8853ff6 100644 --- a/main/src/ui/res/values-be/arrays.xml +++ b/main/src/ui/res/values-be/arrays.xml @@ -28,4 +28,16 @@ Адлучыцца і захаваць пароль Ігнараваць і паўтарыць + + Сучасныя стандарты + Версія OpenVPN 2.5.x + Версія OpenVPN 2.4.x + Версіі OpenVPN 2.3.x і больш старыя + + + небяспечны (не рэкамендуецца, дазваляе небяспечная шыфраванне) + традыцыйны (прадвызначана) + пажадана (рэкамендавана, але абмяжоўвае сумяшчальнасць) + Suite B (толькі эліптычныя крывыя, якія ўхваленыя NIST) + diff --git a/main/src/ui/res/values-be/strings.xml b/main/src/ui/res/values-be/strings.xml index 619bddfd..bb776730 100644 --- a/main/src/ui/res/values-be/strings.xml +++ b/main/src/ui/res/values-be/strings.xml @@ -356,7 +356,6 @@ Рэжым мадэма працуе пакуль актыўнае злучэнне з VPN, але сам VPN выкарыстоўвацца НЕ будзе. Раннія версіі KitKat усталёўваюць памылковае значэнне MSS для злучэння па TCP (#61948). Паспрабуйце ўключыць параметр mssfix, каб выправіць гэту памылку. Android будзе працягваць выкарыстоўваць вашы налады проксі, якія азначаныя для мабільных даных або злучэння праз Wi-Fi, калі сервер DNS не прызначаны. папярэдзіць вас пра гэта ў журнале.

Калі злучэнне па VPN прызначае сервер DNS, то Android не будзе выкарыстоўваць проксі. На дадзены момант не існуе API, каб прызначыць проксі для злучэння па VPN.

- Праграмы VPN могуць спыніць сваю працу пасля выдалення або паўторнага ўсталявання. Больш падрабязна глядзіце #80074 Сканфігураваны кліенцкі адрас IP і адрасы IP у гэтай сеткавай масцы не праходзяць праз VPN. OpenVPN абыходзіць гэту праблему яўна дадаючы маршрут, які адпавядае кліенту IP і яго сеткавай масцы Адкрыццё TUN на прыладзе, калі іншы TUN усё яшчэ актыўны і выкарыстоўвае падтрымку persist-TUN, прывядзе да аварыйнага завяршэння VPNServices. Вам неабходна будзе перазагрузіць прыладу, каб VPN зноў пачаў працаваць. стараецца не дазваляць паўторна адкрываць TUN на прыладзе, а калі вам гэта сапраўды неабходна, то спачатку спыніце працу бягучага TUN\'а і толькі потым адкрывайце новы, каб прадухіліць аварыйнае завяршэнне праграмы. VPN не працуе для ўсіх астатніх карыстальнікаў. @@ -364,7 +363,6 @@ Некаторыя прызначэнні даступныя толькі праз VPN і доступ да іх нельга атрымаць без VPN. VPN у IPv6 не працуе ўвогуле. Не з\'яўляецца маршрутам CIDR Паводзіны проксі для VPN - Паўторнае ўсталяванне праграм VPN %s і больш раннія Копія %s Маршрут для ўсталяванага адраса IP diff --git a/main/src/ui/res/values-cs/strings.xml b/main/src/ui/res/values-cs/strings.xml index fe79cc07..7e02c0e2 100644 --- a/main/src/ui/res/values-cs/strings.xml +++ b/main/src/ui/res/values-cs/strings.xml @@ -354,13 +354,11 @@ Android podporuje ve VPN síti podporuje pouze CIDR trasy. Protože ne-CIDR trasy nejsou téměř nikdy používány, OpenVPN pro Android použije /32 pro trasy, které nejsou CIDR a zobrazí varování. Sdílení připojení funguje během aktivního VPN spojení. Sdílené připojení NEpoužije VPN. Dřívější KitKat verze nastavovaly špatnou hodnotu MSS na TCP spojení (#61948). OpenVPN automaticky zapne mssfix možnost pro obejití chyby. - Aplikace VPN mohou přestat fungovat po odinstalování a reinstalaci. Podrobnosti najdete v #80074 VPN vůbec nefunguje pro vedlejší uživatele. "Více uživatelů hlásí, že mobilní připojení / mobilní datové připojení má časté výpadky během používání této VPN aplikace. Vypadá to, že chování ovlivňuje jen nějaké kombinace mobilních poskytovatelů / zařízení a zatím nebyla identifikována žádná příčina / řešení chyby." Jediná destinace může být dosažena přes VPN které nejsou dosažitelné bez VPN. Sítě IPv6 nefungují vůbec. Ne-CIDR trasy Proxy chování pro VPN - Přeinstalování VPN aplikací %s a starší Kopie %s Trasa k nastavené IP adrese diff --git a/main/src/ui/res/values-da/arrays.xml b/main/src/ui/res/values-da/arrays.xml index fb3dcdd3..be7ac6df 100644 --- a/main/src/ui/res/values-da/arrays.xml +++ b/main/src/ui/res/values-da/arrays.xml @@ -28,4 +28,16 @@ Afbryd, behold adgangskoden Ignorér, forsøg igen + + Moderne stander + OpenVPN 2.5.x peers + OpenVPN 2.4.x peers + OpenVPN 2.3.x og ældre peers + + + usikker (anbefales ikke, tillader usikker krypto) + legacy (standard) + foretrukket (anbefalet, kompatibilitet dog begrænset) + Suite B (kun NIST-godkendte elliptiske kurver) + diff --git a/main/src/ui/res/values-da/strings.xml b/main/src/ui/res/values-da/strings.xml index a45ee25a..fccd2937 100644 --- a/main/src/ui/res/values-da/strings.xml +++ b/main/src/ui/res/values-da/strings.xml @@ -34,6 +34,7 @@ IPv4 adresse IPv6 adresse Angiv brugerdefinerede OpenVPN indstillinger. Benyt med forsigtighed. Bemærk også, at mange af tun relateret OpenVPN indstillinger ikke kan understøttes af VPNSettings. Hvis du syntes en vigtig indstilling mangler, så kontakt os + Brugernavn (tomt for ingen godkendelse) Kodeord For statisk konfiguration vil TLS autentifikations nøglerne blive brugt som statiske nøgler Konfigurer VPN @@ -42,6 +43,7 @@ Indtast venligst et unikt profilnavn Profilnavn Du skal vælge et bruger certifikat + Vælg et CA-certifikat eller aktivér peer-fingeraftrykskontrol (obligatorisk) Ingen fejl fundet Fejl ved konfiguration Fejl ved tolkning af IPv4-adresse @@ -125,6 +127,7 @@ Dit billede understøtter ikke VPNService API\'en, beklager :( Kryptering Angiv krypterings metode + Angiv datakrypteringschifferalgoritmerne brugt af OpenVPN adskilt af: (--data-ciphers). Lad stå tomt for at bruge standarden AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305. Angiv autentificeringsdigest til brug af OpenVPN. Efterlad tom for at anvende standard digest. Autentificering/kryptering Stifinder @@ -356,7 +359,6 @@ Tøjring fungerer, mens VPN\'en er aktiv. Den kablede forbindelse benytter IKKE VPN\'en. Tidlige KitKat-versioner indstiller den forkerte MSS-værdi på TCP-forbindelser (#61948). Prøv at aktivere mssfix-indstillingen for at løse denne fejl. Android vil fortsat bruge de proxyindstillinger, som er angivet til mobil/Wi-Fi-forbindelsen, når ingen DNS-servere er opsat. OpenVPN for Android vil advare dig om dette i loggen.

Når en VPN indstiller en DNS-server vil Android ikke benytte en proxy. Der er intet API indstilling af en proxy for en VPN-forbindelse.

- VPN-apps stoppe muligvis med at fungere, hvis de afinstalleres og geninstalleres. Se #80074 for yderligere oplysninger Den opsatte klient-IP og IP\'erne i netværksmasken bliver ikke sendt til VPN\'en. OpenVPN kompenserer for denne fejl ved udtrykkeligt at tilføje en rute, der korresponderer med klientens IP og dens netmaske Åbning af en tun-enhed, mens en anden tun-enhed, der benyttes til vedvarende tun-understøttelse, er aktiv, medfører fejl i VPN-tjenesten på enheden. En genstart er nødvendig for at gøre VPN funktionel igen. OpenVPN for Android forsøger at undgå at genåbne tun-enheden, og hvis det virkelig er nødvendigt, lukkes først den nuværende TUN, inden den nye TUN-enhed åbnes for at undgå nedbrud. Dette kan medføre et kort interval, hvori pakker sendes over en ikke-VPN-forbindelse. Selv med denne løsning går VPN-tjenesten somme tider ned og kræver genstart af enheden. VPN fungerer slet ikke for sekundære brugere. @@ -364,7 +366,6 @@ Kun destinationer, der også kan nås uden VPN, kan nås via VPN. IPv6 VPN\'er virker slet ikke. Ikke-CIDR-ruter Proxy-adfærd for VPN\'er - Geninstallerer VPN-apps %s og tidligere Kopi af %s Rute til den konfigurerede IP-adresse @@ -435,6 +436,11 @@ %.1f kbit/s %.1f Mbit / s %.1f Gbit / s + <p>Fra og med OpenSSL-version 1.1 afviser OpenSSL svage signaturer i certifikater, såsom + MD5. Med OpenSSL 3.0 afvises desuden signaturer med SHA1.</p><p> + Man bør hurtigst muligt opdatere VPN-certifikaterne, da SHA1 i nær fremtid heller ikke vil fungere på andre platforme.</p> + <p>Ønsker man stadig at bruge gamle og defekte certifikater, så vælg \"usikker\" for TLS-sikkerhedsprofilen under Godkendelse/Kryptering af profilen.</p> + %.0f B %.1f kB %.1f MB @@ -468,8 +474,33 @@ tofaktorgodkendelse
Åbn URL for at fortsætte VPN-godkendelse + Svarudfordring for at fortsætte VPN-godkendelse Godkendelse afventer Ekstern Godkendelse Opsæt Ekstern Godkendelse er ikke opsat + Bloker forbindelse uden VPN (\"Killswitch\") + Det er ofte ønsket til at blokere forbindelser uden VPN. Andre apps bruger ofte markedsføringsbegreber såsom \"Killswitch\" eller \"Sømløs tunnel\" til denne funktion. OpenVPN og denne app tilbyder persist-tun, en funktion til at implementere denne funktionalitet.<p>Problemet med alle disse metoder, som tilbydes af apps, er, at de kun kan tilbyde løsninger efter bedste evne og ikke er komplette løsninger. Ved opstart, app-nedbrud og andre corner cases kan appen ikke sikre, at denne blok af ikke-VPN-forbindelse virker. Dermed gives brugeren en falsk følelse af sikkerhed.<p>Den <b>eneste</b> pålidelige måde at sikre, at ikke-VPN-forbindelser blokeres, er at bruge Android 8.0 eller senere og bruge indstillingen \"bloker forbindelser uden VPN\", som kan findes under Indstillinger > Netværk & Internet > Avanceret/VPN > OpenVPN til Android > Aktivér Altid TIL VPN, Aktivér Blokér forbindelser uden VPN + Denne indstilling instruerer Android om ikke at tillade protokoller (IPv4/IPv6), hvis VPN\'et ikke angiver nogen IPv4- eller IPv6-adresser. + Blokér IPv6 (eller IPv4), hvis ikke i brug af VPN\'et + Installér nyt certifikat + AS-servernavn + Server URL + Anmod om autologin-profil + Importér profil fra ekstern server + Standard VPN ikke opsat. Opsæt standard-VPN, før denne mulighed aktiveres. + Internt WebView + Tjek peer-certifikatfingeraftryk + (Angiv servercertifikat(ets/ernes) SHA256-fingeraftryk) + HTTP Proxy: %1$s %2$d + Brug Altid-Til funktionen i Android til at aktivere VPN ved opstart. + Åbn VPN indstillinger + Tryk hér for at åbne et vindue for angivelse af yderligere krævet godkendelse + Kompatibilitets-tilstand + Kompatibilitets-tilstand + Indlæs den gamle OpenSSL-udbyder + Profiler bruger BF-CBC, der er baseret på den gamle OpenSSL-udbyder (ikke aktiveret). + Tillad fællesskabsbidraget oversættelser + Tillader app-oversættelser bidraget af fællesskabet. Kræver en genstart af appen for effektuering. + TLS-sikkerhedsprofil diff --git a/main/src/ui/res/values-de/strings.xml b/main/src/ui/res/values-de/strings.xml index 4a2fb918..223b2ab5 100644 --- a/main/src/ui/res/values-de/strings.xml +++ b/main/src/ui/res/values-de/strings.xml @@ -50,7 +50,7 @@ Kann die manuell angegeben Routen nicht verarbeiten (Leer lassen, um nicht zu speichern) OpenVPN-Verknüpfung - Verbinde zu VPN… + Verbinde VPN… Von der Verknüpfung referenziertes Profil konnte nicht gefunden werden Zufälliger Host-Präfix Fügt 6 zufällige Zeichen am Anfang des Hostnamens hinzu @@ -336,7 +336,7 @@ Die App \'%s\' ist nicht mehr installiert und wird daher von der Liste der erlaubten/nicht erlaubten VPN-Anwendungen entfernt VPN wird für alle Apps mit Ausnahme der ausgewählten verwendet VPN wird nur für die ausgewählten Apps verwendet - Allow apps to bypass the VPN + Erlaube Apps das VPN zu ignorieren Servereintrag entfernen? Behalten Entfernen @@ -359,7 +359,6 @@ Verbindungsfreigabe (WiFi-Hotspot/Tethering) funktioniert, während ein VPN aktiv ist, nutzt aber NICHT die VPN-Verbindung. Frühe KitKat-Version setzen einen falschen MSS-Wert für TCP-Verbindungen (#61948). Versuchen Sie, die mssfix-Option zu aktivieren, um dieses Problem zu umgehen. Android wird ihre Proxy-Einstellungen für die WLAN-Verbindung beibehalten, wenn keine DNS-Servereinstellungen vorhanden sind. OpenVPN für Android gibt einen entsprechenden Warnhinweis in der Protokolldatei aus.

Wenn eine VPN-Verbindung einen DNS-Server vorgibt, kann kein Proxy genutzt werden. Es gibt keine API für die Nutzungs eines Proxy-Servers für eine VPN-Verbindung.

- Ihre VPN-App funktioniert möglicherweise nicht mehr, wenn diese erst de- und später neu installiert wird. Für Details siehe #80074 Die konfigurierte Client-IP-Adresse und die IP-Adressen in deren Netzwerkmaske sind nicht in das VPN geroutet. OpenVPN umgeht diesen Fehler, indem eine Route hinzugefügt wird, die zu der Client-IP-Adresse und deren Netzmaske passt. Das Öffnen eines neuen tun-Devices, während ein weiteres bereits für persist-tun-Unterstützung geöffnet ist, führt zum Absturz des VPN-Dienstes, der nur durch einen Neustart behoben werden kann. OpenVPN für Android versucht daher, dieses erneute Öffnen zu vermeiden. Wenn ein erneutes Öffnen zwingend notwendig ist, wird zunächst das alte Device geschlossen, bevor ein neues geöffnet wird. Dies kann dazu führen, dass teilweise Pakete unverschlüsselt über die normal Internetverbindung gesendet werden. Auch mit diesem Workaround stürzt der VPN-Dienst möglicherweise ab, was einen Neustart des Gerätes erfordert. VPN funktioniert überhaupt nicht für die Sekundärnutzer. @@ -367,7 +366,6 @@ Nur Ziele, die ohne VPN erreichbar sind, sind auch mit VPN erreichbar. IPv6-VPNs funktionieren überhaupt nicht. Nicht CIDR-konforme Routen Proxy-Verhalten für VPNs - Neuinstallation von VPN-Apps %s und früher Kopie von %s Route zur konfigurierten VPN-IP-Adresse @@ -428,16 +426,17 @@ Verhalten bei AUTH_FAILED Kurven Logarithmische Skala verwenden - Nicht genügend Daten + noch keine Daten Durchschnitt pro Stunde Durchschnitt pro Minute - Die letzten 5 Minuten + letzten 5 Minuten Eingehend Ausgehend %.0f bit/s %.1f kbit/s %.1f Mbit/s %.1f Gbit/s + <p>Beginnend mit OpenSSL Version 1.1 lehnt OpenSSL schwache Signaturen in Zertifikaten wie MD5 ab. Zusätzlich werden bei OpenSSL 3.0 auch Signaturen mit SHA1 abgelehnt.</p><p> Sie sollten die VPN-Zertifikate so bald wie möglich aktualisieren, da SHA1 in naher Zukunft auch auf anderen Plattformen nicht mehr funktionieren wird.</p><p>Wenn Sie wirklich alte und defekte Zertifikate verwenden wollen, wählen Sie für das TLS-Sicherheitsprofil unter Authentifizierung/Verschlüsselung das Profils „insecure”.</p> %.0f B %.1f kB %.1f MB @@ -469,12 +468,13 @@ Benutzerinteraktion erforderlich OpenVPN Verbindung erfordert eine Benutzereingabe, beispielsweise zwei-Faktor Authentifikations Öffne die URL, um die VPN-Authentifizierung fortzusetzen - Can + Beantworten Sie die Herausforderung, um die VPN-Authentifizierung fortzusetzen. Authentifizierung ausstehend Externer Authentifikator Konfigurieren Externer Authentifikator nicht konfiguriert Nicht-VPN-Verbindungen blockieren (\"Killswitch\") + Oft ist es erwünscht, Verbindungen ohne VPN zu unterbinden. Andere Anwendungen verwenden für diese Funktion häufig Marketingbegriffe wie „Killswitch” oder „Seamless Tunnel”. OpenVPN und diese App bieten mit dem Parameter „persist-tun” eine Funktion zur Implementierung dieser Funktionalität.<p>Das Problem bei all diesen Methoden, die von Apps angeboten werden, ist, dass sie nur die bestmögliche Lösung bieten können und keine Komplettlösung darstellen. Beim Hochfahren, beim Absturz der App und in anderen Fällen kann die App nicht sicherstellen, dass das Sperren der Nicht-VPN-Verbindung funktioniert. Dadurch wird dem Benutzer ein falsches Gefühl der Sicherheit vermittelt.<p>Die <b>einzige</b> zuverlässige Methode, um sicherzustellen, dass Nicht-VPN-Verbindungen unterbuden werden, ist die Verwendung von Android 8.0 oder höher und die Verwendung der Einstellung \"Verbindungen ohne VPN blockieren\", die unter „Einstellungen” ➜ „Netzwerk” ➜ „Internet” ➜ „Erweitert/VPN” ➜ „OpenVPN für Android” ➜ „Always ON VPN aktivieren” und aktivieren Sie dort „Verbindungen ohne VPN sperren” Weist Android an, IP Protokolle (IPv4/IPv6) zu blockieren, wenn das VPN, keine IPv4 bzw. IPv6 Adresse setzt. Blockiere IPv6 (bzw. IPv4) wenn nicht vom VPN genutzt Neues Zertifikat installieren @@ -484,14 +484,18 @@ Importiere Profil vom Server Standard-VPN nicht festgelegt. Bitte legen Sie das Standard-VPN fest, bevor Sie diese Option aktivieren. Internes Webview + Fehlerhafte Konfiguration (z. B. nicht übereinstimmende Datenverschlüsselungen auf Client und Server)</li> <p> Das <a href=\"https://github.com/OpenVPN/openvpn/blob/master/doc/man-sections/cipher-negotiation.rst\">OpenVPN-Handbuch Abschnitt über Verschlüsselungsaushandlung</a> erklärt die verschiedenen Szenarien der Verschlüsselungsaushandlung sehr gut und was in diesen Situationen zu tun ist.<p>TP-Link-Geräte verwenden eine mindestens 5 Jahre alte OpenVPN-Version 2.3.x (möglicherweise älter) auf ihren Geräten, selbst in den 2019/2020-Modellen.<p>Zu guter Letzt gibt es einen beliebten VPN-Anbieter, der einen fehlerhaften Server betreibt, der stets angibt, „BF-CBC” zu verwenden, weil sein Entwickler es für eine gute Idee hielt, einen proprietären Patch für die Verschlüsselungsaushandlung zu erstellen, der nicht mit dem OpenVPN-Standard kompatibel ist.<p>Zusammengefasst: alle vernünftigen Konfigurationen sollten diese Fehler nicht erhalten. Aber (abgesehen vom fehlerhaften Server des VPN-Anbieters) kann der Client überredet werden, sich trotzdem zu verbinden (wodurch das Symptom und nicht das eigentliche Problem behoben wird). Bei Verbindungen zu älteren Servern sollte die Option „Kompatibilitätsmodus” in den Grundeinstellungen eines VPN die meisten der üblichen Kompatibilitätsprobleme lösen können. Fingerabdruck des Peer-Zertifikats prüfen (Geben Sie den SHA256-Fingeabdruck des Serverzertifikates an) + HTTP-Proxy: %1$s %2$d Bitte verwenden sie die \"Durchgehend aktives VPN\" Funktion von Android, um das VPN beim Booten zu aktivieren. VPN Einstellungen öffnen + Klicken Sie hier, um mit zusätzlich erforderlicher Authentifizierung fortzufahren Kompatibilitätsmodus Kompatibilitätsmodus OpenSSL Legacy-Provider laden Profile verwendet BF-CBC, das den OpenSSL-Legacy-Provider benötigit (nicht aktiviert). Community-Übersetzungen zulassen + Erlaubt die Übersetzung der App mit Übersetzungen, die von der Community beigetragen wurden. Zur Aktivierung ist ein Neustart der App erforderlich. TLS-Sicherheitsprofil diff --git a/main/src/ui/res/values-el/arrays.xml b/main/src/ui/res/values-el/arrays.xml new file mode 100644 index 00000000..724c98ba --- /dev/null +++ b/main/src/ui/res/values-el/arrays.xml @@ -0,0 +1,37 @@ + + + + + + Πιστοποιητικά + Αρχείο PKCS12 + Πιστοποιητικό Android + Όνομα χρήστη/κωδικός πρόσβασης + Στατικά κλειδιά + Χρήστης/Κωδικός + πιστοποιητικά + Χρήστης/Κωδικός + PKCS12 + Χρήστης/Κωδικός + Android + Εξωτερικός Παροχέας Πιστοποίησης + + + 0 + 1 + Απροσδιόριστο + Κρυπτογράφηση (tls-crypt) + TLS Crypt V2 + + + Αποσύνδεση, Ξέχνα τον Κωδικό + Αποσύνδεση, θυμήσου τον Κωδικό + Αγνόησε, προσπάθησε ξανά + + + Modern defaults + OpenVPN 2.5.x peers + OpenVPN 2.4.x peers + OpenVPN 2.3.x and older peers + + diff --git a/main/src/ui/res/values-el/plurals.xml b/main/src/ui/res/values-el/plurals.xml new file mode 100644 index 00000000..f273707e --- /dev/null +++ b/main/src/ui/res/values-el/plurals.xml @@ -0,0 +1,19 @@ + + + + Απομένει ενας μήνας + Απομένουν %d μήνες + + + Απομένει μία ημέρα + Απομένει %d μέρες + + + Απομένει μια ώρα + Απομένουν %d ώρες + + + Απομένει ενα λεπτό + Απομένουν %d λεπτά + + diff --git a/main/src/ui/res/values-el/strings.xml b/main/src/ui/res/values-el/strings.xml new file mode 100644 index 00000000..5db362e6 --- /dev/null +++ b/main/src/ui/res/values-el/strings.xml @@ -0,0 +1,473 @@ + + + + OpenVPN για Android + Διεύθυνση διακομιστή: + Θύρα διακομιστή: + Τοποθεσία + Αδύνατη η ανάγνωση του φακέλου + Επιλογή + Ακύρωση + Δεν υπάρχουν δεδομένα + Συμπίεση LZO + Δεν υπάρχει πιστοποιητικό + Πιστοποιητικό πελάτη + Κλειδί πιστοποιητικού πελάτη + Αρχείο PKCS12 + Πιστοποιητικό CA + Πρέπει να επιλέξετε ένα πιστοποιητικό + Πηγαίος κώδικας και δηλώσεις προβλημάτων διαθέσιμος στο http://code.google.com/p/ics-openvpn/ + Αυτό το πρόγραμμα χρησιμοποιεί τα παρακάτω στοιχεία, δείτε τον πηγαίο κώδικα για τα πλήρη στοιχεία σχετικά με τις άδειες + Σχετικά + Προφίλ + Τύπος + PKCS12 κωδικός πρόσβασης + Επιλογή… + Πρέπει να επιλέξετε ένα αρχείο + Χρήση πιστοποίησης TLS + Κατεύθυνση TLS + Εισάγετε τη διεύθυνση IPv6/μάσκα δικτύου σε μορφή CIDR (π.χ. 2000:dd::23/64) + Εισάγετε τη διεύθυνση IPv4/μάσκα δικτύου σε μορφή CIDR (π.χ. 1.2.3.4/24) + Διεύθυνση IPv4 + Διεύθυνση IPv6 + Εισαγάγετε προσαρμοσμένες επιλογές OpenVPN. Χρησιμοποιήστε με προσοχή. Επίσης σημειώστε ότι πολλές από τις σχετικές με tunnel ρυθμίσεις δεν υποστηρίζονται από το σχεδιασμό του VPNSettings. Αν νομίζετε ότι λείπει μια σημαντική επιλογή, επικοινωνήστε με το συντάκτη + Κωδικός πρόσβασης + Για την στατική ρύθμιση τα κλειδιά Auth TLS θα χρησιμοποιηθούν ως στατικά κλειδιά + Ρυθμίσετε το VPN + Προσθήκη προφίλ + Πληκτρολογήστε ένα όνομα που προσδιορίζει το νέο προφίλ + Πληκτρολογήστε ένα μοναδικό όνομα προφίλ + Όνομα προφίλ + Πρέπει να επιλέξετε ένα πιστοποιητικό χρήστη + Δεν βρέθηκε σφάλμα + Σφάλμα στη ρύθμιση + Σφάλμα κατά την ανάλυση της διεύθυνσης IPv4 + Σφάλμα κατά την ανάλυση των προσαρμοσμένων δρομολογίων + (αφήστε κενό για υποβολή query κατα βούληση) + Συντόμευση OpenVPN + Σύνδεση στο VPN… + Το καθορισμένο προφίλ δεν βρέθηκε στην συντόμευση + Τυχαίο πρόθεμα + Προσθέτει 6 τυχαίους χαρακτήρες μπροστά από το όνομα κεντρικού υπολογιστή + Ενεργοποίηση προσαρμοσμένων επιλογών + Καθορίστε προσαρμοσμένες επιλογές. Χρησιμοποιήστε το με προσοχή! + Η διαδρομή απορρίφθηκε από το Android + Αποσύνδεση + Αποσύνδεση VPN + Εκκαθάριση καταγραφής + Ακύρωση επιβεβαίωσης + Αποσύνδεση του συνδεδεμένου VPN/ακύρωση της προσπάθειας σύνδεσης; + Αφαίρεση VPN + Ελέγχει αν ο διακομιστής χρησιμοποιεί ένα πιστοποιητικό με επεκτάσεις διακομιστή TLS (server --remote-cert-TLS) + Αναμένει πιστοποιητικό διακομιστή TLS + Ελέγχει τo Θέμα DN του Απομακρυσμένου Πιστοποιητικού Διακομιστή + Έλεγχος Πιστοποιητικού ονόματος κεντρικού υπολογιστή + Καθορίστε τον έλεγχο που χρησιμοποιείται για την επαλήθευση του απομακρυσμένου πιστοποιητικού DN (π.χ. C = DE, L = Paderborn, OU = Avian IP Carriers, CN = openvpn.blinkt.de)\n\nΚαθορίστε το πλήρες DN ή το RDN (openvpn.blinkt.de στο παράδειγμα) ή ένα πρόθεμα RDN για επαλήθευση.\n\nΌταν χρησιμοποιείτε το πρόθεμα RDN \"Server\" ταιριάζει επίσης και στα \"Server-1\" και \"Server-2\"\n\nΑφήνοντας το πεδίο κειμένου κενό θα ελέγξει το RDN σε σχέση με το όνομα του κεντρικού υπολογιστή του διακομιστή.\n\nΓια περισσότερες λεπτομέρειες δείτε τη σελίδα τεκμηρίωσης του OpenVPN 2.3.1+ στο τμήμα —verify-x509-name + Θέμα απομακρυσμένου πιστοποιητικού + Ενεργοποιεί το κλειδί πιστοποίησης TLS + Αρχείο πιστοποίησης TLS + Αιτείται διευθύνσεις IP, routes και επιλογές συγχρονισμού από το διακομιστή. + Καμία πληροφορία δεν ζητήθηκε από το διακομιστή. Πρέπει να καθοριστούν ρυθμίσεις παρακάτω. + Λήψη Ρυθμίσεων + DNS + Αντικατάσταση ρυθμίσεων DNS από τον διακομιστή + Χρήση προσωπικών διακομιστών DNS + searchDomain + Διακομιστής DNS που θα χρησιμοποιηθεί. + Διακομιστής DNS + Δευτερεύων Διακομιστή DNS που θα χρησιμοποιηθεί αν δεν υπάρχει επικοινωνία με τον κανονικό Διακομιστή DNS. + Εφεδρικός διακομιστής DNS + Παράβλεψη routes που επιβλήθηκαν + Παράβλεψη δρομολογημένων που επιβλήθηκαν από το διακομιστή. + Ανακατευθύνει όλη την κίνηση μέσω του VPN + Χρήση προεπιλεγμένης διαδρομής + Πληκτρολογήστε προσαρμοσμένες διαδρομές, σε μορφή CIDR. Το \"10.0.0.0/8 2002::/16\"θα κατευθύνει τα δίκτυα 10.0.0.0/8 και 2002::/16 μέσω του VPN. + Οι διαδρομές που ΔΕΝ θα δρομολογηθούν μέσω του VPN. Χρησιμοποιήστε την ίδια σύνταξη όπως και για τις διαδρομές που συμπεριλαμβάνονται. + Προσαρμοσμένες διαδρομές + Εξαιρούμενα δίκτυα + Επίπεδο λεπτομερειών καταγραφής + Επιτρέπει πιστοποιημένα πακέτα από οποιαδήποτε IP + Να επιτραπεί διακομιστής floating + Προσαρμοσμένες επιλογές + Επεξεργασία ρυθμίσεων VPN + Αφαίρεση του προφίλ VPN \'%s\'; + Σε μερικές προσαρμοσμένες ICS ROM τα δικαιώματα του /dev/tun μπορεί να είναι λάθος, ή το άρθρωμα tun να λείπει. Για τις CM9 ROM δοκιμάστε την επιλογή για επιδιόρθωση κυριότητας στις γενικές ρυθμίσεις + Αποτυχία ανοίγματος της διεπαφής tun + "Σφάλμα: " + Εκκαθάριση + Άνοιγμα διεπαφής tun: + Τοπική IPv4: %1$s/%2$d IPv6: %3$s MTU: %4$d + Διακομιστής DNS: %1$s, Τομέας: %2$s + Διαδρομές: %1$s %2$s + Εξαιρούμενες διαδρομές: %1$s %2$s + Εγκατεστημένα routes VpnService: %1$s %2$s + Ελήφθησαν πληροφορίες διασύνδεσης %1$s και %2$s, υποθέτω πως η δεύτερη διεύθυνση είναι η διεύθυνση του απομακρυσμένου υπολογιστή. Γίνεται χρήση μάσκας /32 για την τοπική IP. Η λειτουργία που δόθηκε από το OpenVPN είναι \"%3$s\". + Η IP δρομολόγηση %1$s και %2$s με CIDR μάσκα δικτύου δεν είναι έγκυρη όταν χρησιμοποιείται μία /32 μάσκα δικτύου. + Διορθώθηκε η διαδρομή %1$s/%2$s σε %3$s/%2$s + Αδυναμία πρόσβασης στην κλειδοθήκη πιστοποιητικών του Android. Αυτό μπορεί να έχει προκληθεί από αναβάθμιση του firmware ή από την επαναφορά ένος αντίγραφου ασφαλείας μιας εφαρμογής. Παρακαλούμε επεξεργαστείτε το VPN και επιλέξτε ξανά το πιστοποιητικό από τις βασικές ρυθμίσεις για να επαναδημιουργηθούν τα δικαιώματα πρόσβασης του πιστοποιητικού. + %1$s %2$s + Αποστολή αρχείου καταγραφής + Αποστολή + Αρχείο καταγραφής ICS OpenVPN + Αντιγράφηκε η καταγραφή στο πρόχερο + Λειτουργία Tap + Η λειτουργία tap δεν είναι δυνατή με το μη root VPN API. Εκ τούτου, αυτή η εφαρμογή δεν μπορεί να παρέχει υποστήριξη tap + Πάλι? Αστειεύεσte? Όχι, η λειτουργία tap πραγματικά δεν υποστηρίζεται και η αποστολή περισσότερων ηλεκτρονικών μηνυμάτων ρωτώντας αν θα υποστηριχτεί, δεν θα βοηθήσει. + Τρίτη φορά; Στην πραγματικότητα, κάποιος θα μπορούσε να γράψει έναν εξομοιωτή tap βασισμένο σε tun που θα μπορούσε να προσθέσει πληροφορίες layer2 ή να στείλει και να αφαιρέσει πληροφορίες layer2 στη λήψη. Αλλά αυτός ο εξομοιωτής θα έπρεπε επίσης να εφαρμόσει ARP και πιθανότατα και κάποιον πελάτη DHCP. Δεν γνωρίσω κανένα που να κάνει δουλειά με αυτή την κατεύθυνση. επικοινωνήστε μαζί μου αν θέλετε να ξεκινήσετε να γράφετε κώδικα για κάτι τέτοιο. + FAQ + Αντιγραφή καταχωρήσεων καταγραφής + Για να αντιγράψετε μια μοναδική καταχώρηση καταγραφής πατήστε πάνω στην καταχώρηση και κρατήστε πατημένο. Για να αντιγράψετε/στείλετε όλο το αρχείο καταγραφής, χρησιμοποιήστε την επιλογή Αποστολή Αρχείου Καταγραφής. Χρησιμοποιήστε το κουμπί μενού της συσκευής σας, αν το κουμπί δεν εμφανίζεται στο GUI. + Συντόμευση για εκκίνηση + Μπορείτε να βάλετε μια συντόμευση στην επιφάνεια εργασίας σας για να ξεκινάτε το OpenVPN. Ανάλογα με την εφαρμογή που χρησιμοποιείτε για την αρχική σας οθόνη, θα χρειαστεί να προσθέσετε είτε συντόμευση είτε κάποιο widget. + Η ROM σας δεν υποστηρίζει το VPNService API, λυπάμαι :( + Κρυπτογράφηση + Εισάγετε μέθοδο κρυπτογράφησης + Καταχωρήστε το digest αυθεντικοποίησης που χρησιμοποιείται για το OpenVPN. Αφήστε το κενό για να χρησιμοποιήσετε το προεπιλεγμένο digest. + Πιστοποίηση/Κρυπτογράφηση + Εξερευνητής αρχείων + Ενσωματωμένο Αρχείο + Σφάλμα κατά την εισαγωγή αρχείων + Δεν ήταν δυνατή η εισαγωγή αρχείου από σύστημα αρχείων + [[Δεδομένα ενσωματωμένου αρχείου]] + Άρνηση ανοίγματος της συσκευής tun χωρίς πληροφορίες IP + Εισαγωγή προφίλ από αρχείο ovpn + Εισαγωγή + Αδυναμία ανάγνωσης αρχείου προφίλ για την εισαγωγή + Σφάλμα ανάγνωσης αρχείου ρυθμίσεων + Προσθήκη προφίλ + Δεν ήταν δυνατή η εύρεση του αρχείου %1$s που αναφέρεται στο εισαγόμενο αρχείο ρυθμίσεων + Εισαγωγή αρχείου ρυθμίσεων από την πηγή %1$s + Η διαμόρφωσή σας είχε μερικές επιλογές διαμόρφωσης που δεν αντιστοιχίζονται σε διαμορφώσεις UI. Αυτές οι επιλογές προστέθηκαν ως προσαρμοσμένες επιλογές διαμόρφωσης. Η προσαρμοσμένη διαμόρφωση εμφανίζεται παρακάτω: + Ολοκληρώθηκε η ανάγνωση του αρχείου ρυθμίσεων. + Μη δεσμεύετε την τοπική διεύθυνση και τη θύρα + Δεν υπάρχει τοπική δέσμευση + Εισαγωγή αρχείου ρυθμίσεων + Ζητήματα ασφαλείας + "Δεδομένου ότι το OpenVPN είναι ευαίσθητο με την ασφάλεια, μερικές σημειώσεις σχετικά με την ασφάλεια είναι λογικές. Όλα τα δεδομένα στην κάρτα sd είναι εγγενώς ανασφαλή. Οποιαδήποτε εφαρμογή μπορεί να τα διαβάσει (για παράδειγμα, αυτό το πρόγραμμα δεν απαιτεί ειδικά δικαιώματα στην κάρτα sd). Τα δεδομένα αυτής της εφαργογής μπορούν να διαβαστούν μόνο από την ίδια την εφαρμογή. Χρησιμοποιώντας την επιλογή εισαγωγής για cacert/cert/key στο παράθυρο διαλόγου για αρχεία, τα δεδομένα αποθηκεύονται στο προφίλ του VPN. Τα προφίλ VPN είναι προσβάσιμα μόνο από αυτήν την εφαρμογή (Μην ξεχάσετε να διαγράψετε τα αντίγραφα στην κάρτα sd), Παρόλο που είναι προσπελάσιμα μόνο από την εφαρμογή αυτή, τα δεδομένα δεν είναι ακόμη κρυπτογραφημένα. Αν κάνετε root το τηλέφωνο ή κάνετε χρήση κάποιων άλλων exploit μπορεί να είναι δυνατή η ανάκτηση των δεδομένων. Οι αποθηκευμένοι κωδικοί πρόσβασης αποθηκεύονται και σε απλό κείμενο. Ιδιαίτερα τα αρχεία pkcs12 συνιστάται να τα εισάγετε στο keystore του Android. " + Εισαγωγή + Σφάλμα εμφάνισης επιλογής πιστοποιητικού + Παρουσιάστηκε ένα σφάλμα στην προσπάθεια προβολής του διαλόγου επιλογής του πιστοποιητικού Android 4.0+. Αυτό δεν θα έπρεπε να συμβεί, καθώς είναι στάνταρ χαρακτηριστικό του Android 4.0+. Ίσως η υποστήριξη της Android ROM σας για πιστοποιητικά έχει κάποιο πρόβλημα + IPv4 + IPv6 + Αναμονή για κατάσταση μηνύματος… + εισαγόμενο προφίλ + εισαγόμενο προφίλ %d + Κατεστραμμένες εικόνες + <p>Τα επίσημα αρχεία ειδώλου της HTC είναι γνωστό πως έχουν ένα περίεργο πρόβλημα δρομολόγησης που προκαλεί πρόβλημα στη ροή της κίνησης μέσω του καναλιού (Δείτε επίσης στο <a href=\"https://github.com/schwabe/ics-openvpn/issues/18\">Issue 18</a> στον bug tracker.)</p><p>Παλιότερα επίσημα αρχεία ειδώλου της SONY για Xperia Arc S και Xperia Ray έχει αναφερθεί πως δεν περιλαμβάνουν καθόλου το VPNService στο αρχείο ειδώλου. (Δείτε επίσης στο <a href=\"https://github.com/schwabe/ics-openvpn/issues/29\">Issue 29</a> στον bug tracker.)</p><p>Σε προσαρμοσμένα αρχεία ειδώλου το πρόσθετο tun μπορει να λείπει ή τα δικαιώματα του /dev/tun να είναι λάθος. Μερικά αρχεία ειδώλου CM9 χρειάζονται να ενεργοποιήσετε την επιλογή \"Διόρθωση δικαιωμάτων ιδιοκτησίας\" στην ενότητα \"Hacks Συγκεκριμένης Συσκευής\".</p><p>Σημαντικό: αν η συσκευή σας έχει χαλασμένο αρχείο ειδώλου, αναφέρετέ το στον κατασκευαστή του ειδώλου. Όσο περισσότεροι αναφέρουν το πρόβλημα στον κατασκευαστή, τόσο περισσότερες οι πιθανότητες να το φτιάξει.</p> + Κλειδί κρυπτογράφισης αρχείου PKCS12 + Κωδικός πρόσβασης ιδιωτικού κλειδιού + Κωδικός πρόσβασης + εικονίδιο αρχείου + Έλεγχος ταυτότητας/κρυπτογράφηση TLS + Δημιουργημένες ρυθμίσεις + Ρυθμίσεις + Προσπαθεί να ορίσει τον ιδιοκτήτη του /dev/tun στο σύστημα. Μερικές εικόνες CM9 το χρειάζονται για να λειτουργήσει το VPNService API. Απαιτεί root. + Επιδιόρθωση κυριότητας του /dev/tun + Εμφανίζει το παραγόμενο αρχείο ρυθμίσεων του OpenVPN + Επεξεργασία \"%s\" + Δημιουργία ρυθμίσεων… + Ενεργοποιώντας αυτή την επιλογή, θα εξαναγκάσει επανασύνδεση αν η κατάσταση του δικτύου αλλάξει (π.χ. WiFi από/προς κινητό) + Επανασύνδεση σε αλλαγή του δικτύου + Κατάσταση δικτύου: %s + Το πιστοποιητικό CA συνήθως επιστρέφεται από το keystore του Android. Καθορίστε ένα ξεχωριστό πιστοποιητικό εάν λαμβάνετε σφάλματα επαλήθευσης πιστοποιητικού. + Επιλογή + Δεν επιστράφηκε κανένα πιστοποιητικό CA κατά την ανάγνωση από το Android keystore. Ο έλεγχος ταυτότητας μάλλον θα αποτύχει. + Εμφανίζει το παράθυρο καταγραφής κατά τη σύνδεση. Το παράθυρο καταγραφής μπορεί πάντα να προσπελαστεί από την περιοχή ειδοποιήσεων. + Εμφάνιση παραθύρου καταγραφής + %10$s%9$s εκτελείται σε %3$s%1$s (%2$s), Android %6$s (%7$s) API %4$d, ABI %5$s, (%8$s) + Σφάλμα υπογραφής με το κλειδί %1$s: %2$s του Android keystore + Σφάλμα υπογραφής με εξωτερική εφαρμογή πιστοποίησης (%3$s): %1$s: %2$s + Η προειδοποίηση της σύνδεσης VPN που λέει πως η εφαρμογή μπορεί να υποκλέψει κίνηση δεδομένων, έχει επιβληθεί από το σύστημα για αποτροπή κατάχρησης του VPNService API.\nΗ ειδοποίηση σύνδεσης του VPN (το σύμβολο με το κλειδί) έχει επίσης επιβληθεί από το σύστημα Android για να σηματοδοτεί ενεργές συνδέσεις VPN. Σε κάποια αρχεία ειδώλου αυτή η ειδοποίηση αναπαράγει και ήχο.\nΤο Android πρόσθεσε αυτούς τους διαλόγους συστήματος για την δικιά σας ασφάλεια και σιγουρεύτηκε πως δεν θα μπορούν να παρακαμφθούν. (Σε μερικά αρχεία ειδώλου δυστυχώς ούτε καν ο ήχος ειδοποίησης) + Προειδοποίηση σύνδεσης και ήχος ειδοποίησης + Αγγλική μετάφραση από τον Arne Schwabe<arne@rfc2549.org> + IP και DNS + Βασικά + Δρομολόγηση + Απόκρυψη των ρυθμίσεων του OpenVPN. Κανονικά δεν χρειάζεται. + Για προχωρημένους + Παραμετροποίηση ICS Openvpn + Δεν χρησιμοποιούνται διακομιστές DNS. Η ανάλυση των ονομάτων ενδέχεται να μην λειτουργεί. Σκεφτείτε να ορίσετε κάποιους Διακομιστές DNS. Παρακαλώ σημειώστε επίσης πως το Android θα συνεχίσει να χρησιμοποιεί της ρυθμίσεις διακομιστή μεσολάβησης που έχουν οριστεί για τη σύνδεση δεδομένων/Wi-Fi αν δεν οριστούν διακομιστές DNS. + Αδυναμία προσθήκης διακομιστή DNS \"%1$s\", απορρίφθηκε από το σύστημα: %2$s + Αδυναμία ρύθμισης διεύθυνσης IP \"%1$s\", απορρίφθηκε από το σύστημα: %2$s + <p>Αποκτήστε ένα αρχείο παραμετροποίησης που να δουλεύει (δοκιμασμένο στον υπολογιστή σας ή κατεβάστε το από τον πάροχο/οργανισμό σας)</p><p>Αν είναι ένα απλό αρχείο χωρίς επιπλέον αρχεία pem/pkcs12 μπορείτε να το στείλετε με ηλεκτρονικό ταχυδρομείο στον εαυτό σας και να ανοίξετε το επισυναπτόμενο. Αν είναι πολλαπλά αρχεία, αποθηκεύστε τα στην κάρτα sd. </p><p>Πατήστε στο επισυναπτόμενο του ηλεκτρονικού ταχυδρομείου/χρησιμοποιήστε το εικονίδιο φακέλου στη λίστα vpn για να εισάγετε το αρχείο παραμετροποίησης</p><p>Αν παρουσιαστούν σφάλματα για αρχεία που λείπουν, βάλτε τα αρχεία που λείπουν στην κάρτα sd.</p><p>Πατήστε στο σύμβολο αποθήκευσης για να προσθέσετε το VPN που εισήχθηκε στη λίστα VPN</p><p>Συνδεθείτε με το VPN πατώντας στο όνομα του VPN</p><p>Αν παρουσιαστούν σφάλματα ή προειδοποιήσεις στο αρχείο καταγραφής, προσπαθήστε να καταλάβετε τις προειδοποιήσεις/σφάλματα και προσπαθήστε να τα διορθώσετε</p> + Οδηγός έναρξης + Προσπαθήστε να φορτώσετε το module tun.ko του πυρήνα, πριν προσπαθήσετε να συνδεθείτε. Χρειάζεται συσκευές με root. + Φόρτωση αρθρώματος tun + Εισαγωγή του PKCS12 από το αρχείο ρυθμίσεων στην κλειδοθήκη του Android + Σφάλμα λήψης ρυθμίσεων του διαμεσολαβητή: %s + Χρησιμοποιείται διακομιστής μεσολάβησης %1$s %2$s + Χρήστη διαμεσολαβητή του συστήματος + Χρήση των καθολικών ρυθμίσεων για διαμεσολαβητές HTTP/HTTPS για σύνδεση. + To OpenVPN θα συνδεθεί με το συγκεκριμένο VPN αν ήταν ενεργό κατά την εκκίνηση του συστήματος. Παρακαλώ διαβάστε το FAQ με τις προειδοποιήσεις σύνδεσης πριν χρησιμοποιήσετε αυτή την επιλογή σε συσκευή με Android < 5.0. + Σύνδεση κατά την εκκίνηση + Αγνόηση + Επανεκκίνηση + Οι αλλαγές στις ρυθμίσεις εφαρμόζονται μετά την επανεκκίνηση του VPN. (Επαν)εκκίνηση τώρα; + Άλλαξαν οι ρυθμίσεις + Αδυναμία καθορισμού του τελευταίου συνδεδεμένου προφίλ για επεξεργασία + Διπλότυπες ειδοποιήσεις + Αν η μνήμη (RAM) του Android είναι σε επικίνδυνα χαμηλά επίπεδα, υπηρεσίες και εφαρμογές που δεν χρειάζονται τη συγκεκριμένη στιγμή αφαιρούνται από την ενεργή μνήμη. Αυτό τερματίζει τη σύνδεση VPN. Για να διασφαλιστεί ότι η σύνδεση/το OpenVPN θα συνεχίσει να λειτουργεί, η υπηρεσία εκτελείται με υψηλή προτεραιότητα. Για να εκτελεστεί με υψηλή προτεραιότητα, η εφαρμογή πρέπει να εμφανίσει μια ειδοποίηση. Η ειδοποίηση με το εικονίδιο του κλειδιού επιβάλλεται από το σύστημα, όπως περιγράφεται και στην προηγούμενη καταχώρηση του FAQ. Δεν μετρά ως ειδοποίηση ότι η εφαρμογή εκτελείται με υψηλή προτεραιότητα. + Δεν καθορίστηκαν προφίλ VPN. + Χρησιμοποιήστε το εικονίδιο <img src=\"ic_menu_add\"/> για να προσθέσετε ένα νέο VPN + Χρησιμοποιήστε το εικονίδιο <img src=\"ic_menu_archive\"/> για να προσθέσετε ένα υπάρχον προφίλ (.ovpn ή .conf) από την κάρτα μνήμης σας. + Βεβαιωθείτε επίσης να ελέγξετε το FAQ. Υπάρχει ένας οδηγός γρήγορης έναρξης. + Ρυθμίσεις Δρομολόγησης/Διεπαφής + Η δρομολόγηση και οι ρυθμίσεις του περιβάλλοντος χρήστη δεν γίνονται μέσω των παραδοσιακών εντολών ifconfig/route, αλλά με τη χρήση του VPNService API. αυτό έχει σαν αποτέλεσμα διαφορετικές ρυθμίσεις δρομολόγησης σε σχέση με άλλα λειτουργικά συστήματα. \nΗρύθμιση του VPN καναλιού αποτελείται από τη διεύθυνση IP και από τα δίκτυα τα οποία πρέπει να δρομολογηθούν μέσω αυτής της διασύνδεσης. Ειδικότερα, δεν απαιτείται ούτε και χρειάζεται η διεύθυνση του απέναντι peer ή διεύθυνση της προεπιλεγμένης πύλης. Δεν χρειάζονται ούτε ειδικές δρομολογήσεις για πρόσβαση στον διακομιστή VPN (π.χ. σαν αυτές που προστίθονται όταν χρησιμοποιείται μια προεπιλεγμένη πύλη ανακατεύθυνσης). Σαν αποτέλεσμα, η εφαρμογή θα αγνοήσει τέτοιες ρυθμίσεις όταν γίνεται εισαγωγή των ρυθμίσεων. Η εφαρμογή διασφαλίζει με το VPNService API ότι η σύνδεση με το διακομιστή δεν δρομολογείται μέσω του καναλιού VPN.\nTo VPNService API δεν επιτρέπει ορισμό δικτύων τα οποία δεν πρέπει να δρομολογούνται μέσω του VPNService API. Για να το ξεπεράσει αυτό, η εφαρμογή προσπαθεί να εντοπίσει δίκτυα που δεν πρέπει να δρομολογούνται μέσω του καναλιού (π.χ. route x.x.x.x y.y.y.y net_gateway) και υπολογίζει μια ομάδα δρομολογήσεων που εξαιρεί αυτές τις δρομολογήσεις για να προσομοιώσει την συμπεριφορά που έχουν άλλες πλατφόρμες. Το παράθυρο καταγραφής δείχνει τη ρύθμιση του VPNService με το που θα γίνει η σύνδεση.\nΣτο παρασκήνιο: Το Android 4.4+ δεν χρησιμοποιεί δρομολόγηση μέσω πολιτικής. Η χρήση των εντολών route/ifconfig δεν θα δείξει τις εγκατεστημένες δρομολογήσεις. Αντ\' αυτών χρησιμοποιήστε ip rule, iptables -t mangle -L + Μην ανατρέπετε σε καμία σύνδεση VPN όταν το OpenVPN επανασυνδέεται. + Επίμονο tun + Καταγραφή OpenVPN + Εισαγωγή ρυθμίσεων OpenVPN + Κατανάλωση μπαταρίας + Στις προσωπικές μου δοκιμές ο κύριος λόγος για την υψηλή κατανάλωση μπαταρίας του OpenVPN είναι τα πακέτα keepalive. Οι περισσότεροι διακομιστές OpenVPN έχουν μια επιλογή ρύθμισης, όπως η \'keepalive 10 60\', η οποία έχει σαν αποτέλεσμα την ανταλλαγή πακέτων keepalive μεταξύ της συσκευής-πελάτη και του διακομιστή κάθε 10 δευτερόλεπτα. <p> Ενώ αυτά τα πακέτα είναι μικρά και δεν χρησιμοποιούν μεγάλη κίνηση, διατηρούν το δίκτυο κινητής τηλεφωνίας απασχολημένο και αυξάνουν την κατανάλωση ενέργειας. (Δείτε επίσης <a href=\"http://developer.android.com/training/efficient-downloads/efficient-network-access.html#RadioStateMachine\">The Radio State Machine | Android Developers</a>) <p> Αυτή η ρύθμιση keepalive δεν μπορεί να αλλάξει στη συσκευή-πελάτη. Μόνο ο διαχειριστής του συστήματος OpenVPN μπορεί να αλλάξει τη ρύθμιση. <p> Δυστυχώς, χρησιμοποιώντας ένα keepalive μεγαλύτερο από 60 δευτερόλεπτα με το UDP μπορεί να προκαλέσει κάποιες πύλες NAT να ρίξουν τη σύνδεση λόγω λήξης του χρονικού ορίου. Χρησιμοποιώντας το TCP με μεγάλο keepalive δουλεύει, αλλά το tunneling TCP πάνω από TCP έχει πολύ κακή απόδοση σύνδεσης και προκαλεί υψηλή απώλεια πακέτων. (Βλ. <a href=\"http://sites.inka.de/bigred/devel/tcp-tcp.html\">Why TCP Over TCP Is A Bad Idea</a>) + Η λειτουργία Tethering του Android (μέσω WiFi, USB ή Bluetooth) και το VPNService API (που χρησιμοποιείται από αυτό το πρόγραμμα) δεν μπορούν να δουλέψουν παράλληλα. Για περισσότερες πληροφορίες δείτε στο <a href=\"https://github.com/schwabe/ics-openvpn/issues/34\">issue #34</a> + VPN και Tethering + Επαναλήψεις σύνδεσης + Ρυθμίσεις επανασύνδεσης + Αριθμός σε δευτερόλεπτα για αναμονή ανάμεσα στις απόπειρες σύνδεσης. + Δευτερόλεπτα μεταξύ των συνδέσεων + Το OpenVPN κατέρρευσε απροσδόκητα. Παρακαλούμε σκεφτείται να χρησιμοποιήσετε την επιλογή Minidump στο κύριο μενού + Αποστολή Minidump στον προγραμματιστή + Στέλνει πληροφορίες αποσφαλμάτωσης στον προγραμματιστή σχετικά με την τελευταία κατάρρευση + OpenVPN - %s + %1$s - %2$s + %1$s - %3$s, %2$s + Σύνδεση + Αναμονή για απάντηση του διακομιστή + Πιστοποίηση + Λήψη ρυθμίσεων του πελάτη + Εκχώρηση διευθύνσεων IP + Προσθήκη διαδρομών + Συνδεδεμένο + Αποσύνδεση + Επανασύνδεση + Έξοδος + Δεν εκτελείται + Επίλυση ονομάτων κεντρικών υπολογιστών + Σύνδεση (TCP) + Αποτυχία πιστοποίησης + Αναμονή για χρησιμοποιήσιμο δίκτυο + Αναμονή εκκίνησης Orbot + ↓%2$s %1$s - ↑%4$s %3$s + Χωρίς σύνδεση + Σύνδεση σε VPN %s + Σύνδεση σε VPN %s + Κάποιες εκδόσεις του Android 4.1 έχουν προβλήματα όταν το όνομα του πιστοποιητικού keystore περιέχει μη αλφαριθμητικούς χαρακτήρες. (όπως κενά, κάτω παύλες ή παύλες). Δοκιμάστε να εισάγετε ξανά το πιστοποιητικό χωρίς ειδικούς χαρακτήρες + Κρυπτογράφηση cipher + Πιστοποίηση πακέτων + Εισάγετε τη μέθοδο πιστοποίησης πακέτων + αναπτύχθηκε από %s + build εντοπισμού σφαλμάτων + Επίσημη έκδοση + Αντιγραφή στο προφίλ + Καταγραφή σφάλματος + Προσθήκη + Αποστολή αρχείου ρυθμίσεων + Πλήρης DN + Η εισηγμένη ρύθμιση χρησιμοποιούσε την παλιά ΚΑΤΑΡΓΗΜΕΝΗ επιλογή tls-remote που χρησιμοποιεί διαφορετική μορφή DN. + RDN (κοινό όνομα) + Πρόθεμα RDN + tls-remote (ΠΑΡΩΧΗΜΕΝΟ) + Μπορείτε να βοηθήσετε τη μετάφραση επισκέπτοντας http://crowdin.net/project/ics-openvpn/invite + Το %1$s προσπαθεί να ελέγξει το %2$s + Συνεχίζοντας, δίνετε στην εφαρμογή την άδεια να ελέγχει πλήρως το OpenVPN για Android και να παρακολουθεί όλη την κίνηση του δικτύου.Μην δέχεστε εάν δεν εμπιστεύεστε την εφαρμογή. Διαφορετικά, διατρέχετε τον κίνδυνο να διακυβεύονται τα δεδομένα σας από κακόβουλο λογισμικό. \" + Εμπιστεύομαι την εφαρμογή. + Δεν υπάρχει εφαρμογή που να επιτρέπεται να χρησιμοποιήσει το εξωτερικό API + Επιτρεπόμενες εφαρμογές: %s + Εκκαθάριση της λίστας των επιτρεπόμενων εξωτερικών εφαρμογών;\nΤρέχουσα λίστα των επιτρεπόμενων εφαρμογών:\n\n%s + Παύση VPN όταν η οθόνη είναι απενεργοποιημένη και λιγότερο από 64 kB δεδομένα που μεταφέρονται σε 60 δευτερόλεπτα. Όταν είναι ενεργοποιημένη η επιλογή \"Permanent Tun\", η παύση του VPN θα αφήσει τη συσκευή σας χωρίς σύνδεση δικτύου. Χωρίς την επιλογή \"Συνεχής μεταφορά\" η συσκευή δεν θα έχει σύνδεση VPN / προστασία. + Παύση της σύνδεσης VPN μετά την απενεργοποίηση της οθόνης + Παύση σύνδεσης σε κατάσταση απενεργοποίησης οθόνης: λιγότερο από %1$s σε %2$sδευτερόλεπτα + Προειδοποίηση: Το \"Persistent Tun\" δεν είναι ενεργοποιημένο για αυτό το VPN. Η κυκλοφορία θα χρησιμοποιήσει την κανονική σύνδεση στο Internet όταν η οθόνη είναι απενεργοποιημένη. + Αποθήκευση κωδικού πρόσβασης + Παύση VPN + Συνέχιση VPN + Αίτηση παύσης VPN από τον χρήστη + Παύση VPN - απενεργοποιημένη οθόνη + Hacks Συγκεκριμένης Συσκευής + Αδυναμία εμφάνισης πληροφοριών πιστοποιητικού + Συμπεριφορά εφαρμογής + Συμπεριφορά VPN + Επέτρεξε αλλαγές στα προφίλ VPN + Κλειδοθήκη υλικού: + Το εικονίδιο της εφαρμογής που προσπαθεί να χρησιμοποιήσει το OpenVPN για Android + "Ξεκινώντας με το Android 4.3, η επιβεβαίωση VPN προστατεύεται από την \"επικάλυψη εφαρμογών\", με αποτέλεσμα το παράθυρο διαλόγου να μην αντιδρά με την είσοδο αφής της εφαρμογής. Αν αντιμετωπίζετε πρόβλημα με την εφαρμογή επικοινωνήστε με τον ιδιοκτήτη της εφαρμογης. Αυτό επηρεάζει όλες τις εφαρμογές VPN από Android 4.3 και πάνω. Δείτε επίσης <a href=\"https://github.com/schwabe/ics-openvpn/issues/185\">Έκδοση 185<a> για περισσότερες λεπτομέρειες " + Επιβεβαίωση Διασύνδεσης Vpn + Εναλλακτικά, μπορείτε να κάνετε δωρεά μέσω του Play Store: + Ευχαριστούμε για την δωρεά %s! + Έγινε εκκαθάριση της καταγραφής. + Εμφάνιση κωδικού πρόσβασης + Σφάλμα πρόσβασης KeyChain: %s + Σύντομη + ISO + Χρονικές σημάνσεις + Καθόλου + Αποστολή + Λήψη + Κατάσταση VPN + Προβολή επιλογών + Ανεπίλυτη εξαίρεση: %1$s\n\n%2$s + %3$s: %1$s\n\n%2$s + Αν έχετε μια συσκευή Android με root μπορείτε να εγκαταστήσετε το <a href=\"http://xposed.info/\">Xposed framework</a> και το <a href=\"http://repo.xposed.info/module/de.blinkt.vpndialogxposed\">VPN Dialog confirm module</a> με δικό σας ρίσκο\" + Πλήρης άδειες + Δίκτυα που συνδέονται άμεσα με τις τοπικές διασυνδέσεις δεν θα δρομολογούνται μέσω του VPN. Κατάργηση αυτής της επιλογής θα ανακατευθύνει όλη την κυκλοφορία που προοριζόταν για τα τοπικά δίσκτυα, στο VPN. + Παράκαμψη VPN για τοπικά δίκτυα + Αρχείο όνομα χρήστη/κωδικού πρόσβασης + [Εισήχθησε από: %s] + Μερικά αρχεία δεν είναι δυνατό να βρεθούν. Παρακαλούμε επιλέξτε τα αρχεία για την εισαγωγή του προφίλ: + Για να χρησιμοποιήσετε αυτήν την εφαρμογή χρειάζεστε μια πύλη VPN/Εικονικό Προσωπικό Δίκτυο που υποστηρίζει OpenVPN (συχνά παρέχεται από τον εργοδότη σας). Ανατρέξτε στο http://community.openvpn.net/ για περισσότερες πληροφορίες σχετικά με το OpenVPN και τον τρόπο εγκατάστασης του δικού σας διακομιστή OpenVPN. + Εισαγωγή καταγραφής: + Η τοπολογία Vpn \"%3$s\" αλλά με ifconfig %1$s %2$s φαίνεται περισσότερο σαν διεύθυνση IP με μάσκα υποδικτύου. Υποτίθεται τοπολογία \"υποδικτύου\". + Η τιμή mssfix πρέπει να είναι ακέραιος μεταξύ 0 και 9000 + Η τιμή MTU πρέπει να είναι ακέραιος μεταξύ 64 και 9000 + Ανακοίνωση στις συνδέσεις TCP που είναι ενεργές μέσω του καναλιού ότι θα πρέπει να περιορίσουν το μέγεθος των πακέτων που στέλνουν, ώστε όταν το OpenVPN τα ενσωματώσει, το μέγεθος πακέτου που θα προκύψει όταν το στείλει το OpenVPN στον peer του να μην ξεπερνά αυτό τον αριθμό bytes. (η προεπιλογή είναι 1450) + Αντικατάσταση τιμής MSS του ωφέλιμου φορτίου TCP + Ορίστε το MSS του φόρτου TCP + Συμπεριφορά πελάτη + Εκκαθάριση επιτρεπόμενων εξωτερικών εφαρμογών + Φόρτωση… + Επιτρεπόμενες εφαρμογές VPN: %1$s + Μη επιτρεπόμενες εφαρμογές VPN: %1$s + Το πακέτο %s δεν είναι πλέον εγκατεστημένο, το αφαιρώ από τη λίστα επιτρέπεται/απαγορεύεται της εφαρμογής + Το VPN χρησιμοποιείται για όλες τις εφαρμογές αλλά αποκλείει τις επιλεγμένες + Το VPN χρησιμοποιείται μόνο για τις επιλεγμένες εφαρμογές + Να επιτρέπονται εφαρμογές να παρακάμπτουν το VPN + Αφαίρεση καταχώρησης απομακρυσμένου διακομιστή; + Διατήρηση + Διαγραφή + Προσθήκη νέου απομακρυσμένου + Χρησιμοποιήστε τις συνδέσεις σε τυχαία σειρά για την σύνδεση + Πρέπει να ορίσετε και να ενεργοποιήσετε τουλάχιστον ένα απομακρυσμένο διακομιστή. + Λίστα διακομιστή + Επιτρεπόμενες εφαρμογές + Ρυθμίσεις για προχωρημένους + Επιλογές ωφέλιμου φορτίου + Ρυθμίσεις TLS + Δεν ορίστηκε απομακρυσμένο + Κλωνοποίηση προφίλ VPN + Αντιγραφή προφίλ: %s + Προβολή αρχείου καταγραφής + Υπάρχουν πολλά προγράμματα-πελάτες OpenVPN για Android. Τα πιο συνηθισμένα είναι το OpenVPN για Android (αυτό το πρόγραμμα-πελάτη), το OpenVPN Connect και το OpenVPN Settings.<p>Τα προγράμματα-πελάτες μπορούν να ομαδοποιηθούν σε δύο ομάδες: το OpenVPN για Android και το OpenVPN Connect χρησιμοποιούν το επίσημο API VPNService (Android 4.0+) και δεν χρειάζονται root, και το OpenVPN Settings που χρειάζεται πρόσβαση root.<p>Το OpenVPN για Android είναι ένα πρόγραμμα-πελάτης ανοιχτού κώδικα και αναπτύχθηκε από τον Arne Schwabe. Στοχεύει σε πιο προχωρημένους χρήστες και προσφέρει πολλές ρυθμίσεις και τη δυνατότητα εισαγωγής προφίλ από αρχεία και διαμόρφωσης / αλλαγής προφίλ μέσα από εφαρμογή. Βασίζεται στην έκδοση κοινότητας του OpenVPN. Βασίζεται στον πηγαίο κώδικα του OpenVPN 2.x. Αυτό το πρόγραμμα-πελάτης μπορεί να θεωρηθεί ως το ημιεπίσημο πρόγραμμα-πελάτης της κοινότητας. <p>Το OpenVPN Connect δεν είναι πρόγραμμα-πελάτης ανοιχτού κώδικα που αναπτύσσεται από την OpenVPN Technologies, Inc. Το πρόγραμμα-πελάτης προορίζεται σαν πρόγραμμα-πελάτης γενικής χρήσης, απευθύνεται στο μέσο χρήστη και επιτρέπει την εισαγωγή προφίλ OpenVPN. Αυτό το πρόγραμμα-πελάτης βασίζεται στη C ++ OpenVPN υλοποίηση του πρωτοκόλλου OpenVPN (Αυτό ήταν απαραίτητο για να επιτραπεί στην OpenVPN Technologies, Inc να δημοσιεύσει μια εφαρμογή OpenVPN για iOS ). Αυτό το πρόγραμμα-πελάτης είναι το επίσημο πρόγραμμα-πελάτης της OpenVPN Technologies<p> Το OpenVPN Settings είναι ο παλαιότερος από τα προγράμματα-πελάτες και επίσης ένα UI για το OpenVPN ανοιχτού κώδικα. Σε αντίθεση με το OpenVPN για Android, απαιτείται πρόσβαση root και δεν χρησιμοποιεί το API του VPNService. Δεν εξαρτάται από το Android 4.0+ + Διαφορές μεταξύ των πελατών OpenVPN Android + Αγνόηση πολλαπλής διαδρομής: %s + Το Android υποστηρίζει μόνο CIDR δρομολογήσεις στο VPN. Δεδομένου ότι οι μη-CIDR διαδρομές σχεδόν ποτέ δεν χρησιμοποιούνται, το OpenVPN για το Android θα χρησιμοποιήσει ένα /32 για δομολογήσεις που δεν είναι CIDR και θα εμφανίσει μια προειδοποίηση. + Το tethering λειτουργεί ενώ το VPN είναι ενεργό. Η tethered σύνδεση ΔΕΝ θα χρησιμοποιήσει το VPN. + Οι πρώιμες εκδόσεις KitKat είχαν ορισμένη λάθος την τιμή MSS στις συνδέσεις TCP (# 61948). Προσπαθήστε να ενεργοποιήσετε την επιλογή mssfix για να επιλύσετε αυτό το σφάλμα. + Το Android θα συνεχίσει να χρησιμοποιεί τις ρυθμίσεις διακομιστή μεσολάβησης που έχουν οριστεί για τη σύνδεση δεδομένων/ Wi-Fi όταν δεν έχουν οριστεί διακομιστές DNS. Το OpenVPN για το Android, θα σας προειδοποιήσει σχετικά με αυτό στο αρχείο καταγραφής.

Όταν ένα VPN ορίζει ένα διακομιστή DNS, το Android δεν χρησιμοποιεί διακομιστή μεσολάβησης. Δεν υπάρχει API που να ορίζει διακομιστή μεσολάβησης σε μία σύνδεση VPN.

+ Η ρυθμισμένη IP του πελάτη και οι διευθύνσεις IP στη μάσκα δικτύου του δεν δρομολογούνται μέσω του VPN. To OpenVPN ξεπερνά αυτό το bug προσθέτοντας αποκλειστικά μια δρομολόγηση που αντιστοιχεί στην IP και στη μάσκα δικτύου του πελάτη + Το άνοιγμα μιας συσκευής tun ενώ μια άλλη συσκευή tun είναι ενεργή και χρησιμοποιείται για υποστήριξη persist-tun, κρασάρει τα VPNServices στη συσκευή. Χρειάζεται επανεκκίνηση για να μπορέσει να δουλέψει ξανά το VPN. Το OpenVPN για Android προσπαθεί να αποφύγει το εκ νέου άνοιγμα της συσκευής tun και αν χρειάζεται πραγματικά, πρώτα κλείνει την τρέχουσα συσκευή TUN πριν ανοίξει μια νέα, για αποφυγή κρασαρίσματος. Αυτό μπορεί να έχει σαν αποτέλεσμα ένα μικρό χρονικό διάστημα που τα πακέτα θα στέλνονται χωρίς τη χρήση της σύνδεσης VPN. Ακόμη και έτσι, όμως, τα VPNServices μερικές φορές κρασάρουν και χρειάζεται επανεκκίνηση της συσκευής σας. + Το VPN δεν λειτουργεί καθόλου για τους δευτερεύοντες χρήστες. + "Πολλοί χρήστες αναφέρουν ότι η σύνδεση κινητής τηλεφωνίας/σύνδεση δεδομένων κινητής τηλεφωνίας διακόπτεται συχνά κατά τη χρήση της εφαρμογής VPN. Η συμπεριφορά φαίνεται να επηρεάζει μόνο ορισμένους συνδυασμούς παροχέα / συσκευής κινητής τηλεφωνίας και μέχρι στιγμής δεν έχει μπορέσει να εντοπιστεί καμία αιτία / λύση για το bug." + Μόνο προορισμοί που είναι προσβάσιμοι χωρίς VPN μπορούν να προσπελαστούν μέσω του VPN. Το IPv6 VPN δεν λειτουργεί καθόλου. + Δρομολογήσεις όχι CIDR + Συμπεριφορά του διακομιστή μεσολάβησης για τα VPN + %s και νεώτερο + Αντίγραφο του %s + Δρομολόγηση στη ρυθμισμένη διεύθυνση IP + Λανθασμένη τιμή MSS για τη σύνδεση VPN + Δευτερεύοντες χρήστες tablet + Οορίστε προσαρμοσμένες επιλογές σύνδεσης. Χρησιμοποιήστε με προσοχή + Προσαρμοσμένες Επιλογές + Διαγράψτε την καταχώρηση σύνδεσης + Τυχαίες αποσυνδέσεις από το δίκτυο κινητής τηλεφωνίας + Τα απομακρυσμένα δίκτυα δεν είναι προσβάσιμα + Λειτουργία επιμονής tun + %s και νεώτερο + Η σύνδεση αποτυχάνει με σφάλμα SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure + Οι νεότερες εκδόσεις OpenVPN για Android (0.6.29 / Μάρτιος 2015) χρησιμοποιούν μια πιο ασφαλή προεπιλογή για τις επιτρεπόμενες σουίτες κρυπτογράφησης (tls-cipher \"DEFAULT:! EXP:! PSK:! SRP:! KRSA\"). Δυστυχώς, η παράλειψη των λιγότερο ασφαλών cipher suites και η εξαγωγή cipher suites, ειδικά η παράλειψη των cipher suites που δεν υποστηρίζουν το Perfect Forward Secrecy (Diffie-Hellman) δημιουργεί ορισμένα προβλήματα. Αυτό συνήθως προκαλούταν από μια καλοπροαίρετη αλλά κακώς εκτελεσμένη προσπάθεια ενίσχυσης της ασφάλειας TLS, θέτοντας tls-cipher στον διακομιστή ή σε ορισμένα ενσωματωμένα λειτουργικά συστήματα με απογυμνωμένο SSL (π.χ. MikroTik).\nΓια να επιλύσετε αυτό το πρόβλημα το πρόβλημα, ορίστε τις ρυθμίσεις tls-cipher στο διακομιστή σε λογική προεπιλογή όπως tls-cipher \"DEFAULT:! EXP:! PSK:! SRP:! KRSA\". Για να επιλύσετε το πρόβλημα στον πελάτη, προσθέστε την προσαρμοσμένη επιλογή tls-cipher DEFAULT στον πελάτη Android. + Το προφίλ προστέθηκε από μια εξωτερική εφαρμογή (%s) και έχει σημειωθεί ως μη επεξεργάσιμο από τον χρήστη. + Λίστα Ανάκλησης Πιστοποιητικών + Επανεκκίνηση της Υπηρεσίας OpenVPN (Η εφαρμογή μάλλον κράσαρε ή έκλεισε λόγω έλλειψης μνήμης) + Η εισαγωγή των ρυθμίσεων απέφερε ένα σφάλμα, δεν μπορεί αποθηκευτεί + Αναζήτηση + (Το τελευταίο dump είναι %1$d:%2$d παλιό (%3$s)) + Διαγραφή αρχείου καταγραφής σε κάθε νέα σύνδεση + Λήξη Χρονικού ορίου + Δεν προστέθηκε επιτρεπτή εφαρμογή. Προστίθομαι (%s) για να υπάρχει τουλάχιστον μία εφαρμογή στη λίστα επιτρεπτών ώστε να μην επιτρέπονται όλες οι εφαρμογές + Το OpenVPN για Android μπορεί να προσπαθήσει να ανακαλύψει αυτόματα τα αρχεία που λείπουν στην κάρτα sd. Πατήστε αυτό το μήνυμα για να ξεκινήσει το αίτημα δικαιωμάτων. + Πρωτόκολλο + Ενεργοποιημένο + Η άδεια VPN ανακλήθηκε από το λειτουργικό σύστημα (π.χ. ξεκίνησε ένα άλλο πρόγραμμα VPN), διακόπτοντας το VPN + Προώθηση πληροφοριών peer + Στείλτε επιπλέον πληροφορίες στο διακομιστή, π.χ. έκδοση SSL και έκδοση Android + Χρειάζεστε %1$s + Εισαγάγετε τον κωδικό πρόσβασης για το προφίλ %1$s + Χρησιμοποιήστε ενσωματωμένα δεδομένα + Εξαγωγή αρχείου ρυθμίσεων + το αρχείο tls-auth λείπει + Λείπει πιστοποιητικό χρήστη ή αρχείο κλειδιού πιστοποίησης χρήστη + Λίστα Ανάκλησης Πιστοποιητικών (προαιρετική) + Επαναλάβετε (%d) στοιχεία καταγραφής από το αρχείο καταγραφής cache + Παρόλο που τα τηλέφωνα Samsung είναι ανάμεσα στα πιο καλοπουλημένα τηλέφωνα Android, το υλικολογισμικό της Samsung συγκαταλέγεται ανάμεσα στα πιο buggy των υλικολογισμικών Android. Αυτά τα bugs δεν περιορίζονται στη λειτουργία του VPN σε αυτές τις συσκευές, αλλά πολλά από αυτά μπορούν να ξεπεραστούν. Παρακάτω περιγράφονται μερικά από αυτά τα bugs.\n\nΤο DNS δεν δουλεύει εκτός αν ο διακομιστής DNS είναι εντός της εμβέλειας του VPN.\n\nΣε πολλές συσκευές Samsung 5.x το χαρακτηριστικό για εφαρμογές που επιτρέπονται/απαγορεύονται δεν λειτουργεί..\nΣε Samsung 6.x το VPN αναφέρεται ότι δεν δουλεύει, εκτός και αν η εφαρμογή VPN εξαιρεθεί από τα χαρακτηριστικά εξοικονόμησης ενέργειας. + Τηλέφωνα Samsung + Δεν έχετε επιλέξει VPN. + Προεπιλεγμένο VPN + Το VPN χρησιμοποιείται σε μέρη όπου απαιτείται ένα προεπιλεγμένο VPN. Αυτά είναι αυτή τη στιγμή στην εκκίνηση, για το Πάντοτε Ανοιχτό και το Πλακάκι γρήγορων ρυθμίσεων. + Επιλεγμένο VPN: \'%s\' + Επανασύνδεση + Εναλλαγή VPN + Σύνδεση στο %s + Αποσύνδεση %s + Καταχωρίστε το μέγιστο χρόνο μεταξύ των προσπαθειών σύνδεσης. Το OpenVPN θα αυξήσει αργά τον χρόνο αναμονής του μετά από μια ανεπιτυχή προσπάθεια σύνδεσης μέχρι την συγκεκριμένη τιμή. Προεπιλογή σε 300s. + Μέγιστος χρόνος μεταξύ προσπαθειών σύνδεσης + Περιμένοντας %s Δευτερόλεπτα μεταξύ προσπαθειών σύνδεσης + Δίκτυα περισσότερα .. -> VPNS]]> + Σταμάτησε η σύνδεση με OpenVPN (%s) + Αλλαγή ταξινόμησης + Ταξινόμηση + Ταξινόμηση προφίλ κατά πρόσφατα χρησιμοποιημένα + Προφίλ ταξινομημένα κατά όνομα + Το Config χρησιμοποιεί την επιλογή tls-remote που είχε καταργηθεί στο 2.3 και τελικά αφαιρέθηκε στο 2.4 + Συμπεριφορά στο AUTH_FAILED + Γραφική παράσταση + Χρησιμοποιήστε λογαριθμική κλίμακα + Δεν υπάρχουν αρκετά δεδομένα + Μέσος όρος ανά ώρα + Μέσος όρος ανά λεπτό + Τελευταία 5 λεπτά + Σε + Εκτός + %.0f bit/s + %.1f kbit/s + %.1f Mbit/s + %.1f Gbit/s + %.0f B + %.1f kB + %.1f MB + %.1f GB + Στατιστικά σύνδεσης + Τρέχοντα στατιστικά της παρούσας σύνδεσης OpenVPN + Αλλαγή κατάστασης σύνδεσης + Αλλαγές κατάστασης της σύνδεσης OpenVPN (Σύνδεση, πιστοποίηση,...) + Αδύναμα (MD5) hashes στην υπογραφή πιστοποιητικού (SSL_CTX_use_certificate md too weak) + Τέστ ταχύτητας OpenSSL + Ονόματα κρυπτογράφησης OpenSSL + Δοκιμή ταχύτητας κρυπτογράφησης OpenSSL + Το OpenSSL επέστρεψε σφάλμα + Εκτέλεση δοκιμής… + Ελέγξτε τους επιλεγμένους αλγορίθμους + Μια εξωτερική εφαρμογή προσπαθεί να ελέγξει το %s. Η εφαρμογή που ζητά πρόσβαση δεν μπορεί να καθοριστεί. Επιτρέποντας σε αυτήν την εφαρμογή να παρέχει πρόσβαση σε ΟΛΕΣ τις εφαρμογές. + Η εφαρμογή OpenVPN 3 C ++ δεν υποστηρίζει στατικά κλειδιά. Αλλάξτε στο OpenVPN 2.x κάτω από τις γενικές ρυθμίσεις. + Η χρήση των αρχείων PKCS12 απευθείας με την εφαρμογή OpenVPN 3 C ++ δεν υποστηρίζεται. Παρακαλώ εισαγάγετε τα αρχεία pkcs12 στην αποθήκη κλειδιών Android ή μεταβείτε στο OpenVPN 2.x κάτω από τις γενικές ρυθμίσεις. + Διαμεσολαβητής + Καθόλου + Tor (Orbot) + Η εφαρμογή OpenVPN 3 C ++ δεν υποστηρίζει τη σύνδεση μέσω του διακομιστή μεσολάβησης Socks + Η εφαρμογή Orbot δεν μπορεί να βρεθεί. Παρακαλώ εγκαταστήστε το Orbot ή χρησιμοποιήστε χειροκίνητη ενσωμάτωση Socks v5. + Απομακρυσμένο API + Το OpenVPN για Android υποστηρίζει δύο απομακρυσμένα API, ένα εξελιγμένο API που χρησιμοποιεί AIDL (remoteEXample στο git repository) και ένα απλό που χρησιμοποιεί Intents. <p>Παραδείγματα χρήσης κέλυφους adb και τα intents. Αντικαταστήστε το όνομα προφίλ με το όνομα του προφίλ σας<p><p> adb shell am start-activity -a android.intent.action.MAIN de.blinkt.openvpn/.api.DisconnectVPN<p> adb shell am start-activity -a android.intent.action.MAIN -e de.blinkt.openvpn.api.profileName Blinkt de.blinkt.openvpn/.api.ConnectVPN + Ενεργοποίηση της Πιστοποίηση του διακομιστή μεσολάβησης + Δεν είναι δυνατή η χρήση πρόσθετης εντολής http-proxy-option και της ενσωμάτωσης Orbot ταυτόχρονα + Πληροφορίες από το διακομιστή: \'%s\' + Απαιτείται αλληλεπίδραση από το χρήστη + Η σύνδεση OpenVPN απαιτεί εισαγωγή στοιχείων από το χρήστη, π.χ. πιστοποίηση two factor + + + Ανοίξτε τη διεύθυνση URL για να συνεχίσετε την πιστοποίηση VPN + Εκκρεμεί πιστοποίηση + Εξωτερικός Πιστοποιητής + Διαμόρφωση + Ο Εξωτερικός Πιστοποιητής δεν έχει ρυθμιστεί +
diff --git a/main/src/ui/res/values-es/arrays.xml b/main/src/ui/res/values-es/arrays.xml index 4460d680..aee380af 100644 --- a/main/src/ui/res/values-es/arrays.xml +++ b/main/src/ui/res/values-es/arrays.xml @@ -28,4 +28,16 @@ Desconectar, guardar la contraseña Ignorar, volver a intentar + + Estándares modernos + Versión OpenVPN 2.5.x + Versión OpenVPN 2.4.x + OpenVPN 2.3.x y antiguas versiones + + + Inseguro (No es recomendado, debido a que se usara un cifrado poco seguro) + legacy (estándar) + Sugerido (Es recomendado pero la compatibilidad es limitada) + Perfil de cifrado \"Suite B\" (Solo el método de cifrado por curvas elípticas es aprobado por NIST (National Institute of Standards and Technology) ) + diff --git a/main/src/ui/res/values-es/strings.xml b/main/src/ui/res/values-es/strings.xml index ce56f746..96476024 100644 --- a/main/src/ui/res/values-es/strings.xml +++ b/main/src/ui/res/values-es/strings.xml @@ -34,6 +34,7 @@ Dirección IPv4 Dirección IPv6 Introduzca las opciones personalizadas de OpenVPN. Úselas con mucho cuidado. Además, tenga en cuenta que muchas de las configuraciones de OpenVPN relacionadas con tun no pueden ser soportadas por el diseño de VPNSettings. Si cree que falta una función importante, contacte al autor + Nombre de usuario (Dejar vació para no identificarse) Contraseña Para la configuración estática las claves de autenticación TLS se utilizaran como claves estáticas Configurar la VPN @@ -42,6 +43,7 @@ Por favor, introduzca un nombre de perfil único Nombre del Perfil Debe seleccionar un certificado de usuario + Debe de seleccionar un certificado CA (Certificate Authority) o bien activar la verificación de huellas digitales (Peer Fingerprint) No se encontraron errores Error en la configuración Error al analizar la dirección IPv4 @@ -125,6 +127,7 @@ Su imagen no es compatible con la API de VPNService, lo siento :( Cifrado Especifique el método de cifrado + Introduce los datos de cifrado implementados por el algoritmo criptográfico que usa OpenVPN separados de esta manera: (DATOS-DE-CIFRADO). Dejar vació para usar de manera predeterminada el valor: AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305. Introduce la autenticacion digest usada por OpenVPN. Deja en blanco para usar el digest predeterminado. Autenticación/Cifrado Administrador de archivos @@ -357,7 +360,6 @@ hacia/de Móvil)
Tethering funciona mientras que el VPN está activa. La conexión atada no utilizará el VPN. Primera versión KitKat establece el valor incorrecto MSS sobre conexiones TCP (# 61948). OpenVPN para automáticamente permitirá mssfix opción para solucionar este error. Android seguirá utilizando la configuración del proxy especificados para la conexión / Wi-Fi móvil cuando no están definidos los servidores DNS. OpenVPN para Android le advertirá sobre esto en el registro.

Cuando una VPN establece un servidor DNS Android no lo hará un proxy. No hay ninguna API para configurar un proxy para una conexión VPN.

- Aplicaciones VPN pueden dejar de funcionar cuando desinstalado y reinstalado de nuevo. Para más detalles ver # 80074 La IP del cliente configurado y las IPs en su máscara de red no se enrutan a la VPN. OpenVPN soluciona este error al agregar explícitamente una ruta que corrosponds a la IP del cliente y su máscara de red La apertura de un dispositivo tun mientras que otro dispositivo tun está activo, que se utiliza para el apoyo tun-persistir, bloquea los VPNServices en el dispositivo. Es necesario reiniciar para que el trabajo VPN de nuevo. OpenVPN para Android intenta evitar reabrir el dispositivo tun y si realmente se necesita primero cierra el TUN actual antes de abrir el nuevo dispositivo TUN para evitar estrellarse. Esto puede conducir a una corta ventana donde los paquetes se envían a través de la conexión no VPN. Incluso con esta solución los VPNServices a veces se bloquea y requiere un reinicio del dispositivo. VPN no funciona en absoluto para los usuarios secundarios. @@ -365,7 +367,6 @@ hacia/de Móvil) Sólo destino puede llegar a través de la VPN que se puede llegar sin VPN. IPv6 VPNs no funciona en absoluto. Rutas no CIDR Comportamiento Proxy para VPN - Reinstalación de aplicaciones VPN %s y anteriores copia de %s Ruta a la dirección IP configurada @@ -436,6 +437,11 @@ hacia/de Móvil) %.1f kbit/s %.1f Mbit/s %.1f Gbit/s + <p>A partir de OpenSSL versión 1.1, OpenSSL rechaza firmas de certificados CA no seguros como + MD5. Adicionalmente, con OpenSSL 3.0 también se rechazan las firmas con SHA1.</p><p> + Usted debería actualizar los certificados VPN tan pronto como sea posible ya que también SHA1 dejara de funcionar en otras plataformas en un futuro próximo.</p> + <p>Si realmente desea utilizar certificados antiguos y vulnerables, seleccione \"inseguro\" en el perfil de seguridad TLS > Autenticación/Cifrado del perfil</p> + %.0f B %.1f kB %.1f MB @@ -469,8 +475,34 @@ hacia/de Móvil) de dos factores Abrir URL para continuar con la autenticación de VPN + Complete la verificación para continuar con la autenticación VPN Autenticación pendiente Autenticador externo Configurar Autenticador externo no configurado + Bloquear la conexión que no es VPN (\"Killswitch\") + A menudo se desea bloquear las conexiones sin VPN. Otras apps suelen utilizar términos de marketing como \"Killswitch\" o \"Seamless tunnel\" para esta función. OpenVPN y esta app ofrecen \"persist-tun\", una característica para implementar esta funcionalidad.<p>El problema con todos estos métodos ofrecidos por las apps es que sólo pueden proporcionar un bloqueo parcial y no son soluciones completas. En el arranque, cuando la app no responde y otros casos, la aplicación no puede asegurar que este bloqueo de la conexión no VPN funcione. Por lo tanto, le da al usuario una falsa sensación de seguridad.<p>La <b>única</b> forma fiable de asegurar que las conexiones no VPN se bloquean es utilizar Android 8.0 o posterior y utilizar el ajuste \"bloquear conexiones sin VPN\" que se puede encontrar en Ajustes > Red & Internet > Avanzado/VPN > OpenVPN para Android > Habilitar \"VPN siempre activa\" y \"bloquear conexiones sin VPN\" + Esta opción le indica a Android que bloquee los protocolos (IPv4/IPv6) si la VPN no configura ninguna dirección IPv4 o IPv6. + Bloquear IPv6 o IPv4 si no es usado por la VPN + Instalar nuevo certificado + Como el nombre del servidor + Link del Servidor + Solicitar el perfil de usuario para el inicio de sesión automático + Importar perfil de usuario desde un servidor remoto + La VPN predeterminada no esta configurada. Por favor establece OpenVPN por defecto para activar esta opción. + WebView interno + Hay algunas variaciones de este mensaje dependiendo de la situación exacta. Todas tienen en común que el servidor y el cliente no han podido ponerse de acuerdo sobre un cifrado común. Las razones principales son: <ul><li> Todavía estás confiando en el hecho de que OpenVPN 2.4 y anteriores permitían BF-CBC en la configuración por defecto (si no se establecía --cipher). OpenVPN 2.5 ya no lo permite por defecto ya que es un <a href=\"https://community.openvpn.net/openvpn/wiki/SWEET32\">cifrado roto/desactualizado</a>.</li><li>El servidor ejecuta OpenVPN 2.3 (o incluso más antiguo) con --enable-small (al menos 4-5 años de antigüedad de OpenVPN)</li><li></ul>Configuración inadecuada (por ejemplo, desajuste de cifrado de datos en el cliente y el servidor)</li> <p> La sección del manual de <a href=\"https://github.com/OpenVPN/openvpn/blob/master/doc/man-sections/cipher-negotiation.rst\">OpenVPN sobre negociación de cifrado<a> explica muy bien los diferentes escenarios de negociación de cifrado y qué hacer en estas situaciones.<p>Los dispositivos de TP-Link utilizan una versión de OpenVPN 2.3. x (posiblemente más antigua) en sus dispositivos, incluso en los modelos 2019/2020.<p>Por último, pero no menos importante, hay un popular proveedor de VPN que mantiene un servidor mal configurado que siempre menciona que está usando \'BF-CBC\' porque su desarrollador pensó que sería una buena idea crear un parche de negociación de cifrado propietario que es incompatible con el estándar OpenVPN.<p>En resumen: todas las configuraciones sanas no deberían obtener estos errores. Pero (aparte del servidor que provee un VPN defectuoso) se puede forzar al cliente VPN para que se siga conectando (arreglando el error pero no el verdadero problema). Cuando se conecta a servidores más antiguos, la opción de modo de compatibilidad en la configuración básica de una VPN debería poder resolver la mayoría de los problemas de compatibilidad más comunes. + Verificar la huella digital del certificado de pares (peer) + (Introducir la huella digital (fingerprint) SHA256 de el servidor de certificados) + Proxy HTTP: %1$s %2$d + Por favor use la función siempre activa (Always-On) de Android para activar a OpenVPN en el incio. + Configuraciones de OpenVPN + Presione aquí para abrir una nueva ventana e introducir la información adicional requerida para completar la autenticación. + Modo de Compatibilidad + Modo de Compatibilidad + Cargar la fuente OpenSSL heredada (legacy) + Los perfiles usan BF-CBC el cual depende de una fuente heredada (legacy) de OpenSSL (No habilitado). + Permitir traducciones aportadas por la comunidad + Permitir que la interfaz de OpenVPN sea colocada en Español con traducciones de parte de la comunidad. Para activar esta opción requieres reiniciar OpenVPN. + Perfil de seguridad TLS diff --git a/main/src/ui/res/values-et/arrays.xml b/main/src/ui/res/values-et/arrays.xml index dd68810a..37f0596b 100644 --- a/main/src/ui/res/values-et/arrays.xml +++ b/main/src/ui/res/values-et/arrays.xml @@ -28,4 +28,16 @@ Katkesta ühendus, säilita parool Ignoreeri, proovi uuesti + + Kaasaegsed vaikesätted + OpenVPN 2.5.x partnerid + OpenVPN 2.4.x partnerid + OpenVPN 2.3.x ja vanemad partnerid + + + ebaturvaline (ei soovita, lubab ebaturvalist krüptot) + legacy (default) + preferred (recommended but limited compabbility) + Suite B (only NIST approved elliptic curves) + diff --git a/main/src/ui/res/values-et/strings.xml b/main/src/ui/res/values-et/strings.xml index e32a6213..f98feb85 100644 --- a/main/src/ui/res/values-et/strings.xml +++ b/main/src/ui/res/values-et/strings.xml @@ -357,7 +357,6 @@ Lõastamine (tethering) töötab ka aktiivse VPN puhul. Lõastatud ühendus EI kasuta VPN kanalit. Varased KitKat versioonid kasutavad TCP ühendustel vale MSS väärtust (#61948). OpenVPN määrab vastuabinõuna automaatselt mssfix valiku. Kui ühtegi DNS serverit pole määratud, siis jätkab Android mobiilsele/Wi-Fi ühendusele määratud puhverserveri kasutamist. OpenVPN for Android hoiatab sellest logis.

Kui VPN seadistab DNS serveri siis Android ei puhverda. VPN puhverserveri määramiseks puudub API.

- VPN apid ei pruugi enam töötada pärast eemaldamist ja uuestipaigaldamist. Täpsem info #80074 Seadistatud kliendi IP ja selle võrgumaskis sisalduvaid IP-sid ei marsruudita VPN kaudu. OpenVPN lahendab selle probleemi lisades marsruudi kliendi IP ja võrgumaski jaoks Tun seadme avamine samal ajal kui mõni teine tun seade on aktiivne, mida kasutatakse püsiva-tun tagamiseks, jooksutab seadme VPN teenused kokku. VPN kasutamiseks tuleb seade uuesti käivitada. OpenVPN üritab vältida tun seadme uuestiavamist ja tõsise vajaduse korral sulgeb uue TUN avamisel eelnevalt aktiivse TUN seadme et vältida hangumist. See võib põhjustada lühiajalise akna mille jooksul saadetakse pakette VPN ühendusest mööda. Kuid isegi vaatamata kirjeldatud protsessile võib VPN teenus vahest kokku joosta ja seade vajada uuestikäivitamist. VPN töötab ainult põhikasutaja jaoks. @@ -365,7 +364,6 @@ Üle VPN on ligipääsetav ainult aadress, mis on kättesaadav ka ilma VPN ühenduseta. IPv6 VPNid ei tööta üldse. Mitte-CIDR marsruudid Puhverserveri käitumine VPN puhul - VPN appide uuestipaigaldamine %s ja eelnevad %s koopia Seadistatud IP aadressi marsruut diff --git a/main/src/ui/res/values-fa/arrays.xml b/main/src/ui/res/values-fa/arrays.xml new file mode 100644 index 00000000..12999299 --- /dev/null +++ b/main/src/ui/res/values-fa/arrays.xml @@ -0,0 +1,43 @@ + + + + + + گواهینامه ها + فایل PKCS12 + گواهی های اندروید + نام کاربری/رمز عبور + کلید های ایستاتیک + نام کاربری/رمز + گواهینامه ها + کاربر / PW + PKCS12 + User/PW + Android + ارائه دهنده تأییدیه خارجی + + + 0 + 1 + نامشخص + رمزگذاری (--tls-crypt) + TLS Crypt V2 + + + قطع ارتباط، رمز عبور را فراموش کرده ام + قطع ارتباط، نگه داشتن رمز عبور + نادیده گرفتن، دوباره امتحان کنید + + + پیش فرض های مدرن + OpenVPN 2.5.x peers + OpenVPN 2.4.x peers + Mohammad + + + 100.576.86 + میراث (پیش فرض) + ترجیح داده شده (توصیه شده اما با سازگاری محدود) + مجموعه B (فقط منحنی های بیضوی مورد تایید NIST) + + diff --git a/main/src/ui/res/values-fa/plurals.xml b/main/src/ui/res/values-fa/plurals.xml new file mode 100644 index 00000000..97e86a48 --- /dev/null +++ b/main/src/ui/res/values-fa/plurals.xml @@ -0,0 +1,19 @@ + + + + یک ماه مونده + یک ساعت باقی مانده + + + یک روز مانده + 2 + + + یک ساعت باقی مانده + یک ساعت باقی مانده + + + یک دقیقه باقی مانده است + %d minutes left + + diff --git a/main/src/ui/res/values-fa/strings.xml b/main/src/ui/res/values-fa/strings.xml new file mode 100644 index 00000000..53629161 --- /dev/null +++ b/main/src/ui/res/values-fa/strings.xml @@ -0,0 +1,508 @@ + + + + OpenVPN برای آندروید + Server Address: + پورت سرور: + موقعیت + قادر به خواندن دایرکتوری نمی باشد. + انتخاب کنید + لغو + اطلاعاتی وجود ندارد + فشرده سازی LZO + مجوز داده نشد + مجوز کاربر + کلید گواهی مشتری + فایل PKCS12 + گواهینامه های کانادا + شما باید یک فایل را انتخاب کنید + Source code and issue tracker available at https://github.com/schwabe/ics-openvpn/ + این برنامه از اجزای زیر استفاده می نماید. کد منبع را برای دستیابی به جزئبات کامل در مجوز برنامه مشاهده نمایید + در باره + پروفایل ها + نوع + PKCS12 رمز عبور12233445 + انتخاب کنید… + شما باید یک فایل را انتخاب کنید + استفاده از تایید اعتبار رمزگذاری TLS + مسیر TLS + آدرس IPv6/نقاب شبکه را در قالب CIDR وارد کنید (مانند 2000:dd::23 / 64) + آدرس IPv4/نقاب شبکه را در قالب CIDR وارد کنید (مانند 1.2:dd::3.4 / 24) + آدرس IPv4 + آدرس IPv6 + گزینه های OpenVPN سفارشی را وارد کنید. با احتیاط استفاده کنید. همچنین توجه داشته باشید که بسیاری از تنظیمات مرتبط OpenVPN با طراحی VPNS تنظیمات پشتیبانی نمی شود. اگر فکر می کنید یک گزینه مهم از دست رفته است، با نویسنده تماس بگیرید + Username (leave empty for no auth) + رمز عبور + برای تنظیمات ثابت، کلید های TLS Auth به عنوان کلیدهای ثابت استفاده می شود + پیکربندی VPN + اضافه کردن پروفایل + برای شناسایی پروفایل جدید یک نام وارد نمایید + لطفا نام منحصر به فردی را وارد کنید + نام پروفایل + شما باید یک گواهی را انتخاب کنید + You must select a CA certificate or enable peer fingerprint check + خطایی پیدا نشد + خطا در پیکربندی + خطا در تجزیه آدرس IPv4 + خطا در تجزیه مسیرهای سفارشی شده + (leave empty to query on demand) + میانبر OpenVPN + اتصال به VPN… + پروفایل مشخص شده در میانبر یافت نشد + پیشوند میزبان تصادفی + 6 علامت تصادفی در مقابل نام میزبان اضافه می کند + گزینه های سفارشی را فعال کنید + گزینه های سفارشی را مشخص کنید. با دقت استفاده کنید! + مسیر توسط Android لغو شده است + قطع اتصال + قطع نمودن VPN + خالی کردن لاگ + کنسل کردن تائیدیه + VPN متصل شده را قطع کنید / لغو کردن تلاش برای اتصال ؟ + حذف VPN + بررسی اینکه آیا سرور از یک گواهی با پسوند TLS Server استفاده می کند (--remote-cert-tls server) + انتظار TLS سرور گواهی + بررسی مجوز دستیابی سرور از راه دور نمونه DN + بررسی مجوز نام میزبان + مشخص کنید چک مورد استفاده برای تأیید گواهی از راه دور DN (به عنوان مثال C = DE، L = Paderborn، OU = حامل آی پی پرندگان، CN = openvpn.blinkt.de) \n\n مشخص DN کامل یا RDN (openvpn.blinkt.de در مثال مثال) یا یک پیشوند RDN برای تأیید. \n\n در هنگام استفاده از پیشوند RDN \"سرور\" مطابقت با \"سرور-1\" و \"سرور-2\" \n\n درحال خواندن فیلد خالی RDN در برابر نام میزبان سرور است.\n\n برای جزئیات بیشتر، صفحه اصلی OpenVPN 2.3.1+ تحت نام -verify-x509-name را ببینید + موضوع گواهی ریموت + TLS Key Authentication را فعال می کند + پرونده TLS Auth + درخواست آدرس های IP، مسیرها و گزینه های زمان بندی از سرور. + اطلاعاتی از سرور درخواست نشده است. تنظیمات باید در زیر مشخص شوند. + تنظیمات را بکشید + DNS + تنظیمات DNS را توسط سرور غیرفعال کنید + از DNS سرور خود استفاده کنید + دامنه جستجو + سرور DNS مورد استفاده قرار گرفت. + سرور DNS + سرور DNS دوم استفاده می شود اگر سرور DNS معمولی قابل دسترسی نباشد. + پشتیبان گیری DNS سرور + مسیرهای تحت فشار را نادیده بگیرید + نادیده گرفته شده توسط سرور تحت فشار قرار داد. + مسیریابی بیش از VPN را هدایت می کند + استفاده از مسیر پیش فرض + مسیرهای سفارشی را وارد کنید فقط در قالب CIDR مقصد را وارد کنید \"10.0.0.0/8 2002:: / 16\" شبکه ها 10.0.0.0/8 و 2002:: / 16 را بر روی VPN هدایت می کند. + مسیرهایی که نباید بیش از VPN ردیابی شوند. از نحو مشابه برای مسیرهای گوناگون استفاده کنید. + مسیرهای سفارشی + شبکه های منقضی شده + سطح ورودی را وارد کنید + اجازه می دهد بسته های مجاز از هر IP + اجازه سرور شناور + گزینه های سفارشی + تنظیمات VPN را ویرایش کنید + مشخصات VPN را حذف کنید \'%s\'? + در برخی از تصاویر ICS سفارشی، اجازه / dev / tunn ممکن است اشتباه باشد، یا ماژول tun ممکن است به طور کامل از دست رفته باشد. برای تصاویر CM9 گزینه تنظیم حق مالکیت را در تنظیمات عمومی امتحان کنید + باز کردن رابط رابط tun باز نشد + "خطا:" + پاک کردن + باز کردن رابط tun: + محلی IPv4: %1$s / %2$d IPv6: %3$s MTU: %4$d + سرور DNS: %1$s، دامنه: %2$s + مسیرها: %1$s %2$s + مسیرها حذف شدند: %1$s %2$s + مسیرهای VpnService نصب شده: %1$s %2$s + اطلاعات %1$s و %2$s دارای اطلاعات رابط است، فرض بر این است که آدرس دوم آدرس از راه دور است. استفاده از / 32 mask net برای IP محلی. حالت داده شده توسط OpenVPN \"%3$s\" است. + نمی تواند %1$s و %2$s را به عنوان مسیر IP با ماسک CIDR معنی کند، با استفاده از / 32 به عنوان ماسک شبکه. + مسیر اصلاح شده %1$s / %2$s تا %3$s / %2$s + می توانید به گواهینامه های Keychain Android دسترسی پیدا کنید. این می تواند به دلیل ارتقاء سیستم عامل یا با بازگرداندن یک نسخه پشتیبان از تنظیمات برنامه / برنامه ایجاد شود. لطفا VPN را ویرایش کنید و گواهینامه را در زیر تنظیمات اصلی برای مجوز دسترسی به گواهی انتخاب کنید. + %1$s %2$s + ارسال فایل ورودی + ارسال + فایل ورودی ICS OpenVPN + فایل ورودی به کلیپ بورد کپی شد + Tap Mode + Tap Mode با API non-root VPN امکان پذیر نیست. بنابراین این برنامه نمی تواند پشتیبانی Tap را فراهم کند + دوباره؟ شوخی می کنی؟ خیر، حالت Tap واقعا پشتیبانی نمی شود و ارسال نامه های بیشتری از شما می پرسد که آیا پشتیبانی خواهد شد یا نه. + A third time? Actually, one could write a a tap emulator based on tun that would add layer2 information on send and strip layer2 information on receive. But this tap emulator would also have to implement ARP and possibly a DHCP client. I am not aware of anybody doing any work in this direction. Contact me if you want to start coding on this. + سوالات متداول + کپی کردن ورودی های وارد شده + برای کپی یک ورودی تنها ورودی را فشار داده و نگه دارید. برای کپی / ارسال کل ورود به سیستم از گزینه Send Log استفاده کنید. اگر دکمه در رابط گرافیکی قابل مشاهده نیست، دکمه منوی سخت افزار را استفاده کنید. + میانبر برای شروع + شما می توانید یک میانبر برای شروع OpenVPN روی دسکتاپ خود قرار دهید. بسته به برنامه صفحه اصلی شما باید میانبر یا ویجت را اضافه کنید. + تصویر شما API VPNService را پشتیبانی نمی کند، متاسفم :( + رمزگذاری + روش رمزگذاری را وارد کنید + Enter the data encryption cipher algorithms used by OpenVPN separated by : (--data-ciphers). Leave empty to use the default of AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305. + هشدار احراز هویت استفاده شده برای OpenVPN را وارد کنید. برای استفاده از هشدار پیش فرض این قسمت را خالی بگذارید. + احراز هویت / رمزنگاری + فایل اکسپلورر + فایل درون خطی + خطای وارد کردن فایل + فایل را نمیتوان از فایل سیستمی وارد کرد + [[داده فایل درون خطی]] + امتناع از قدح دستگاه بدون اطلاعات IP + وارد کردن پروفایل از فایل ovpn + وارد كردن + نمیتوان پروفایل را برای واردکردن خواند + خطا در خواندن فایل پیکربندی + اضافه کردن پروفایل + فایل %1$s ذکر شده در فایل پیکربندی وارد شده یافت نشد + وارد کردن فایل پیکربندی از منبع %1$s + پیکربندی شما دارای چند گزینه پیکربندی است که برای تنظیمات رابط کاربری UI نمی باشد. این گزینه ها به عنوان گزینه های پیکربندی سفارشی اضافه شدند. تنظیمات سفارشی در زیر نمایش داده می شود: + خواندن فایل پیکربندی انجام شد. + به آدرس و پورت محلی متصل نباشید + بدون اتصال محلی + وارد کردن فایل پیکربندی + ملاحظات امنیتی + "به عنوان OpenVPN حساس به امنیت، چند یادداشت در مورد امنیت منطقی است. تمام اطلاعات در SDCARD ذاتا ناامن است. هر برنامه می تواند آن را بخواند (به عنوان مثال این برنامه نیاز به هیچ کارت SD کارت خاصی ندارد) داده های این برنامه فقط می تواند خوانده شود با استفاده از گزینه واردات برای cacert / cert / key در محاوره فایل، داده ها در نمای VPN ذخیره می شوند. پروفایل های VPN تنها از طریق این برنامه قابل دسترسی هستند (فراموش نکنید که پس از آن کپی ها را در SDCARD خذف کنید) با وجود اینکه فقط با استفاده از این نرم افزار قابل دسترسی است، داده ها هنوز رمزگذاری نشده اند. با ریشه کن کردن تلفن یا سایر سوء استفاده ممکن است داده ها را بازیابی کنید. همچنین کلمه عبور ذخیره شده در متن ساده ذخیره می شود. برای فایل های pkcs12 بسیار توصیه می شود که شما آنها را وارد keystore اندرویدی می کنید. " + وارد كردن + خطا در نمایش گواهی + یک استثنا برای نشان دادن گزینه انتخاب گواهینامه Android 4.0+ به دست آمده است. این هرگز نباید به عنوان یک ویژگی استاندارد از Android 4.0+ اتفاق بیفتد. شاید پشتیبانی از ROM Android شما برای ذخیره سازی گواهی خراب است + IPv4 + IPv6 + در حال انتظار برای حالت پیام… + پروفایل وارده شده + پروفایل وارد شده %d + تصاویر شکسته + <p>Official HTC images are known to have a strange routing problem causing traffic not to flow through the tunnel (See also <a href=\"https://github.com/schwabe/ics-openvpn/issues/18\">Issue 18</a> in the bug tracker.)</p><p>Older official SONY images from Xperia Arc S and Xperia Ray have been reported to be missing the VPNService completely from the image. (See also <a href=\"https://github.com/schwabe/ics-openvpn/issues/29\">Issue 29</a> in the bug tracker.)</p><p>On custom build images the tun module might be missing or the rights of /dev/tun might be wrong. Some CM9 images need the \"Fix ownership\" option under \"Device specific hacks\" enabled.</p><p>Most importantly: If your device has a broken Android image, report it to your vendor. The more people who report an issue to the vendor, the more likely they are to fix it.</p> + PKCS12 کلید رمزگذاری فایل + رمز عبور خصوصی کلید + کلمه عبور + آیکون فایل + تأیید اعتبار/رمزگذاری TLS + پیکربندی تولید شده + تنظیمات + سعی می کند مالک / dev / tun را به سیستم بگذارد. برخی از تصاویر CM9 نیاز به ایجاد API VPNService API دارند. نیاز به ریشه دارد. + مالکیت / dev / tun را رفع کنید + فایل پیکربندی OpenVPN تولید شده را نشان می دهد + ویرایش \"%s\" + در حال ساخت پیکربندی… + روشن کردن این گزینه در صورت تغییر حالت اتصال شبکه مجبور خواهد شد (به عنوان مثال WiFi به / از تلفن همراه) + مجددا به تغییر شبکه متصل شوید + وضعیت شبکه: %s + Cert CA معمولا از فروشگاه اصلی Android باز می شود. در صورتی که خطاهای تأیید گواهی دریافت کنید گواهی جداگانه را مشخص کنید. + انتخاب کنید + بدون گواهی CA در حالی که خواندن از حافظه اصلی آندروید بازگشت. احراز هویت احتمالا شکست خواهد خورد. + پنجره ورود به سیستم در اتصال را نشان می دهد. پنجره ورود به سیستم همیشه می تواند از وضعیت اعلان دسترسی داشته باشد. + نمایش پنجره لاگ + %10$s %9$s در حال اجرا در %3$s %1$s (%2$s)، Android %6$s (%7$s) API %4$d، ABI %5$s، (%8$s) + خطایی در هنگام وارد شدن با کلیدی کلید Android %1$s: %2$s + خطا در ورود به سیستم با نرم افزار تأیید کننده خارجی (%3$s): %1$s: %2$s + اخطار اتصال VPN به شما این را می گوید که این برنامه می تواند تمام سیستم های ترافیکی را تحت کنترل بگیرد تا از سوء استفاده از VPNS سرویس API جلوگیری شود. \n اطلاع رسانی اتصال VPN (نماد کلیدی) نیز توسط سیستم Android برای نشان دادن اتصال VPN در حال انجام است. در برخی از تصاویر این اعلان یک صدا را پخش می کند. \n اندروید این پنجره های سیستم را برای ایمنی خود معرفی کرد و اطمینان داد که نمی توان آنها را دور زد. (در برخی از تصاویر این متاسفانه شامل یک صدای اعلان) + هشدار اتصال و صدای اعلان + ترجمه انگلیسی توسط Arne Schwabe<arne@rfc2549.org> + IP و DNS + پایه + مسیریابی + تنظیمات OpenVPN مبهم. به طور معمول مورد نیاز نیست. + پیشرفته + پیکربندی ICS Openvpn + هیچ سرویس دهنده DNS استفاده نمی شود. رزولوشن نام ممکن است کار نکند تنظیم سرورهای DNS سفارشی را در نظر بگیرید. لطفا توجه داشته باشید که آندروید با استفاده از تنظیمات پروکسی خود برای اتصال به تلفن همراه / Wi-Fi شما تنظیم می شود که هیچ سرور DNS تنظیم نمی شود. + DNS Server \"%1$s\" را که توسط سیستم رد شد، نمی توانستم اضافه کنم: %2$s + نمی توان آدرس IP \"%1$s\" را که توسط سیستم رد شد، تنظیم کرد: %2$s + <p> دریافت پیکربندی کاری (در رایانه شما تست شده یا از ارائه دهنده / سازمان خود دانلود کنید) </p><p> اگر این فایل یک فایل بدون فایل اضافی pem / pkcs12 شما می توانید فایل خودتان ایمیل کنید و پیوست را باز کنید. اگر فایل های چندگانه آنها را روی کارت SD خود قرار دهید، آن را روی کارت SD خود قرار دهید. </p><p> با پیوست ایمیل پیگیری کنید / از نماد پوشه در لیست vpn برای وارد کردن فایل پیکربندی استفاده کنید. </p><p> اگر خطاهای مربوط به فایل های خراب وجود داشته باشد، فایل های موجود در کارت SD خود قرار می گیرد. </p><p> روی ذخیره کلیک کنید نماد برای اضافه کردن VPN وارد شده به لیست VPN شما </p><p> اتصال VPN با کلیک بر روی نام VPN</p><p> اگر خطا یا هشدارها در log وجود دارد در تلاش برای درک هشدارها / خطا و سعی کنید آنها را تعمیر کنید </p> + شروع سریع + قبل از تلاش برای اتصال، ماژول kernel tun.ko را بارگیری کنید. نیاز به دستگاه های ریشه دار. + ماژول load tun + PKCS12 را از پیکربندی به Android Keystore وارد کنید + خطا در گرفتن تنظیمات پروکسی: %s + در حال استفاده از پراکسی %1$s %2$s + استفاده از پروکسی سیستم + از پیکربندی گسترده سیستم برای پروکسی های HTTP / HTTPS برای اتصال استفاده کنید. + OpenVPN VPN مشخص شده را در صورت فعال بودن در بوت سیستم، متصل می کند. لطفا قبل از استفاده از این گزینه در Android < 5.0، FAQ را بخوانید. + اتصال در بوت + چشم پوشی + راه اندازی مجدد + تغییرات پیکربندی بعد از راه اندازی مجدد VPN اعمال می شود. (دوباره) VPN را شروع کنید? + پیکربندی تغییر کرد + نمیتوان آخرین پروفایل متصل را برای ویرایش تعریف کرد + اعلان های تکراری + اگر اندروید تحت فشار سیستم (RAM) است، برنامه ها و خدمات که در حال حاضر مورد نیاز نیست از حافظه فعال حذف شده است. این یک اتصال VPN مداوم را متوقف می کند. برای اطمینان از اتصال / OpenVPN باقی می ماند سرویس با اولویت بالاتر اجرا می شود. برای اجرای با اولویت بالاتر، برنامه باید اعلان را نمایش دهد. آیکون اعلان کلیدی توسط سیستم اعمال می شود همانطور که در سؤال پیشین پرسشنامه شرح داده شده است. این برنامه به دلیل اعمال با اولویت بالاتر به عنوان اعلان برنامه محسوب نمی شود. + هیچ پروفایل VPN مجازی تعریف نشده است. + برای افزودن یک VPN جدید از نماد <img src=\"ic_menu_add\"/> استفاده کنید + از نماد <img src=\"ic_menu_archive\"/> برای وارد کردن نمایه موجود (.ovpn یا .conf) از sdcard خود استفاده کنید. + همچنین مطمئن شوید که سوالات متداول را نیز بررسی کرده اید. یک راهنمای شروع سریع وجود دارد. + مسیریابی / پیکربندی رابط + پیکربندی مسیریابی و رابط کاربری از طریق دستورات ifconfig / route سنتی انجام نمی شود، بلکه با استفاده از API VPNService انجام می شود. این نتیجه پیکربندی مسیریابی متفاوت نسبت به سایر سیستم عاملهاست. \n پیکربندی تونل VPN شامل آدرس IP و شبکه هایی است که باید از طریق این رابط هدایت شوند. به خصوص، آدرس شریک همکار یا نشانی دروازه مورد نیاز یا مورد نیاز است. مسیرهای ویژه برای رسیدن به سرور VPN (برای مثال اضافه شده در هنگام استفاده از هدایت دروازه) نیز مورد نیاز نیستند. پس از وارد کردن یک پیکربندی، این تنظیمات در نتیجه این تنظیمات را نادیده می گیرد. این برنامه با API VPNService تضمین می کند که اتصال به سرور از طریق تونل VPN هدایت نمی شود. \n VPNService API اجازه نمی دهد تا مشخص کردن شبکه هایی که نباید از طریق VPN هدایت شوند. به عنوان یک راه حل، برنامه تلاش می کند تا شبکه هایی را شناسایی کند که نباید از طریق تونل رانده شوند (مثلا route xxxx yyyy net_gateway) و محدوده ای از مسیرهایی را که این مسیرها را حذف می کند را به تقلید از رفتار سایر سیستم عامل ها محاسبه می کند. پنجره های ورود به سیستم نشان می دهد پیکربندی VPNS خدمات پس از ایجاد اتصال. \n صحنه های بین المللی: آندروید 4.4 + از مسیریابی خط مشی استفاده می کند. با استفاده از مسیر / ifconfig مسیرهای نصب شده را نشان نمی دهد. در عوض استفاده از ip rule، iptables -t mangle -L + هنگامی که OpenVPN دوباره برقرار می شود، هیچ اتصال VPN را تنظیم نکنید. + مداوم tun + ورودی OpenVPN + وارد کردن پیکربندی OpenVPN + مصرف باتری + در آزمایش های شخصی من دلیل اصلی مصرف باتری بالا از OpenVPN بسته های نگهدارنده هستند. اکثر سرورهای OpenVPN دارای یک دستورالعمل پیکربندی مانند \"keepalive 10 60\" هستند که باعث می شود مشتری و سرور هر 10 ثانیه یک بار بسته های نگهداری را تغییر دهند. <p> در حالیکه این بسته ها کوچک هستند و از ترافیک زیادی استفاده نمی کنند، شبکه رادیویی تلفن همراه را مشغول می کنند و مصرف انرژی را افزایش می دهند. (همچنین نگاه کنید به <a href=\"http://developer.android.com/training/efficient-downloads/efficient-network-access.html#RadioStateMachine\"> دستگاه دستگاه رادیویی | Android Developers</a>) <p> این تنظیم Keepalive را نمی توان در سرویس گیرنده تغییر داد. فقط مدیر سیستم OpenVPN می تواند تنظیمات را تغییر دهد. <p> متاسفانه با استفاده از keepalive بزرگتر از 60 ثانیه با UDP می تواند بعضی از دروازه های NAT را به علت زمان وقوع غیرفعال، قطع کند. با استفاده از TCP با زمان طولانی نگه داشتن زنده کار می کند، اما تونل زدن TCP بیش از TCP در اتصالات با از دست دادن بسته بندی بسیار ضعیف است. (به <a href=\"http://sites.inka.de/bigred/devel/tcp-tcp.html\"> چرا TCP بیش از TCP یک Idea</a> بد است) + ویژگی Tethering اندروید (بیش از WiFi، USB یا بلوتوث) و API VPNService (که توسط این برنامه استفاده می شود) با یکدیگر کار نمی کنند. برای جزئیات بیشتر <a href=\"https://github.com/schwabe/ics-openvpn/issues/34\">issue # 34</a> را ببینید; + VPN و Tethering + اتصال دوباره انجام می شود + تنظیمات اتصال مجدد + تعداد ثانیه ها برای متوقف کردن تلاش اتصال. + ثانیه بین اتصالات + OpenVPN به طور غیر منتظره کرش کرد. لطفا از گزینه Send Minidump در منوی اصلی استفاده کنید + ارسال Minidump به توسعه دهنده + اطلاعات اشکالزدایی در مورد آخرین خرابی به برنامه نویس ارسال میکند + OpenVPN - %s + %1$s - %2$s + %1$s - %3$s، %2$s + برقراری ارتباط + در انتظار پاسخ سرور + تأیید اعتبار + گرفتن پیکربندی مشتری + اختصاص آدرس های IP + افزودن مسیرها + متصل شد + قطع اتصال + اتصال مجدد + خروج + در حال اجرا نیست + حل نام میزبان + اتصال (TCP) + تأیید اعتبار ناموفق بود + در حال انتظار برای شبکه قابل استفاده است + منتظر Orbot برای شروع + ↓ %2$s %1$s - ↑ %4$s %3$s + متصل نیست + اتصال به VPN %s + اتصال به VPN %s + برخی از نسخه های Android 4.1 مشکلی دارند اگر نام گواهینامه Keystore شامل کاراکترهای غیر الفبا و عددی (مانند فضاهای، تاکید یا خطاهای) باشد. سعی کنید گواهینامه را مجددا وارد کنید بدون کاراکترهای خاص + رمزنگاری سری + بسته تأیید هویت + روش اعتبار سنجی بسته را وارد کنید + ساخته شده توسط %s + اشکال زدایی ساخت + ساخت رسمی + کپی به نمایه + Crashdump + اضافه کردن + ارسال فایل پیکربندی + کامل DN + پیکربندی وارد شده شما از گزینه قدیمی DEPRECATED tls-remote استفاده می کند که از فرمت DN متفاوت استفاده می کند. + RDN (نام مشترک) + پیشوند RDN + tls-remote (DEPRECATED) + شما می توانید از طریق http://crowdin.net/project/ics-openvpn/invite به ترجمه کمک کنید + %1$s تلاش برای کنترل %2$s است + با ادامه، شما به مجوز برنامه برای کنترل کامل OpenVPN برای آندروید و برای تله ترافیک شبکه بروید. قبول نمی کنید مگر اینکه به برنامه اطمینان داشته باشید. در غیر این صورت، شما خطر داده شدن اطلاعات خود را از طریق نرم افزارهای مضر به خطر می اندازید. \" + من به این برنامه اعتماد دارم. + هیچ برنامه اجازه استفاده از API خارجی را نداشت + برنامه های مجاز: %s + لیست برنامه های مجاز خارجی را پاک کنید؟ \n لیست برنامه های مجاز فعلی: \n\n%s + مکث VPN زمانی که صفحه خاموش است و داده های کمتر از 64 کیلوبایت در 60 ثانیه منتقل شده است. هنگامی که گزینه \"Permanent Tun\" فعال می شود و توقف VPN، دستگاه شما با NO اتصال به شبکه را ترک می کند. بدون گزینه \"Standing Tun\" دستگاه هیچ اتصال / حفاظت از VPN ندارد. + توقف اتصال VPN بعد از خاموش کردن + اتصال متوقف شده در حالت خاموش روی صفحه نمایش: کمتر از %1$s در %2$ss + هشدار: تداوم پایانی برای این VPN فعال نیست. هنگامی که صفحه خاموش باشد، ترافیک از اتصال معمولی اینترنت استفاده خواهد کرد. + ذخیره گذرواژه + توقف VPN + از سر گرفتن VPN + مکث VPN توسط کاربر درخواست شده است + VPN متوقف شد - صفحه نمایش خاموش است + خصوصیات دستگاه هک + اطلاعات گواهی نمایش داده نمی شود + رفتار برنامه + رفتار VPN + اجازه تغییرات در پروفایل VPN + سخت افزار Keystore: + نماد برنامه تلاش برای استفاده از OpenVPN برای آندروید + "با شروع از Android 4.3 تأیید VPN در برابر\" برنامه های Overlaying \"محافظت می شود.این نتیجه منجر به محاوره ای می شود که به ورودی لمس واکنش نشان نمی دهد.اگر شما یک برنامه ای دارید که از پوشش ها استفاده می کند ممکن است این رفتار را ایجاد کند. از این برنامه است.این مشکل بر تمامی برنامه های VPN در اندروید 4.3 و بالاتر تأثیر می گذارد. همچنین برای جزئیات بیشتر <a href=\"https://github.com/schwabe/ics-openvpn/issues/185\">Issue 185<a> " + گفتگوی تایید Vpn + به طور خلاصه شما می توانید با فروشگاه Play Donation را به من بدهید: + متشکرم برای اهدای %s! + لاگ پاک شد. + نمایش گذرواژه + خطای دسترسی KeyChain: %s + کوتاه + ایزو + زمان سنج + هیچ یک + بارگذاری + دانلود + وضعیت Vpn + نمایش گزینه ها + استثنا ناامن: %1$s\n\n%2$s + %3$s: %1$s\n\n%2$s + اگر دستگاه اندرویدی خود را ریشه کرده باشید می توانید <a href=\"http://xposed.info/\"> بستن framework</a> را نصب کنید و <a href=\"http://repo.xposed.info/module/de.blinkt.vpndialogxposed\">VPN Dialog را تایپ کنید ماژول </a> به خطر افتادن شما \" + مجوزهای کامل + شبکه هایی که به طور مستقیم به واسط های محلی متصل می شوند بر روی VPN مسیریابی نمی شوند. لغو انتخاب این گزینه تمام ترافیک شبکه های محلی را به VPN هدایت می کند. + دور زدن VPN برای شبکه های محلی + نام کاربری / رمز عبور فایل + [وارد شده از: %s] + برخی از فایل ها یافت نشد لطفا فایل ها را برای وارد کردن مشخصات انتخاب کنید: + برای استفاده از این برنامه شما نیاز به یک VPN ارائه دهنده / VPN دروازه پشتیبانی از OpenVPN (اغلب توسط کارفرمای شما ارائه شده). برای اطلاعات بیشتر در مورد OpenVPN و نحوه راه اندازی سرور OpenVPN خود، http://community.openvpn.net/ را بررسی کنید. + لاگ وارد شده: + توپولوژی وی پی ان \"%3$s\" مشخص شده است، اما ifconfig %1$s %2$s بیشتر شبیه یک آدرس IP با ماسک شبکه است. فرض کنید توپولوژی \"زیر شبکه\". + مقدار override MSS باید یک عدد صحیح بین 0 و 9000 باشد + مقدار override باید یک عدد صحیح بین 64 و 9000 باشد + اعلام کرد که جلسات TCP در حال اجرا بر روی تونل است که آنها باید اندازه بسته بسته ارسالی خود را محدود کنند، پس از آن که OpenVPN آنها را محصور کرده است، اندازه بسته یابی UDP که OpenVPN به همتای خود ارسال می کند، از این تعداد بایت ها تجاوز نمی کند. (پیش فرض 1450 است) + ارزش MSS از مزیت TCP را غیرفعال کنید + تنظیم MSS از بارنامه TCP + رفتار مشتری + پاک کردن مجاز برنامه های خارجی + بارگذاری… + مجاز برنامه های وی پی ان: %1$s + نرم افزارهای مجاز VPN: %1$s + Package %s دیگر نصب نشده است، حذف آن از لیست اجازه / عدم اجازه برنامه اجازه می دهد + VPN برای تمام برنامه ها استفاده می شود اما حذف شده است + VPN فقط برای برنامه های انتخاب شده استفاده می شود + نرم افزار برای دور زدن VPN اجازه می دهد + حذف سرور ریموت? + نگه داشتن + حذف + اضافه کردن ریموت جدید + از ورودی های اتصال در حالت تصادفی در اتصال استفاده کنید + شما باید حداقل یک سرور راه دور را تعریف و فعال کنید. + فهرست سرور + برنامه های مجاز + تنظیمات پیشرفته + گزینه های Payload + تنظیمات TLS + بدون تعریف ریموت + مشخصات VPN تکراری + تکثیر مشخصات: %s + نمایش لاگ + چندین مشتری OpenVPN برای آندروید وجود دارد. مشترکین OpenVPN برای آندروید (این مشتری)، OpenVPN Connect و OpenVPN Settings.<p> مشتریان را می توان به دو گروه تقسیم کرد: OpenVPN برای آندروید و OpenVPN Connect با استفاده از VPNS سرویس رسمی API (آندروید 4.0+) و نیاز به هیچ ریشه و OpenVPN تنظیماتی که از root.<p>OpenVPN برای آندروید استفاده می کند یک مشتری منبع باز است و توسط Arne Schwabe توسعه یافته است. این است که به کاربران پیشرفته تر هدف قرار می گیرد و تنظیمات بسیاری را فراهم می کند و توانایی وارد کردن پروفایل از فایل ها و پیکربندی / تغییر پروفایل در داخل برنامه. مشتری بر اساس نسخه اجتماعی OpenVPN است. این بر مبنای کد منبع OpenVPN 2.x است. این مشتری می تواند به عنوان مشتری نیمه رسمی جامعه دیده شود. <p> OpenVPN Connect کلاینت غیر منبع باز است که توسط OpenVPN Technologies، Inc. توسعه یافته است. مشتری کلاینت به طور کلی استفاده می شود و بیشتر به کاربر معمولی هدایت می شود و اجازه ورود به پروفایل های OpenVPN را می دهد. این سرویس مبتنی بر بازپرداخت OpenVPN C ++ پروتکل OpenVPN است (این برای اجازه OpenVPN Technologies، Inc به انتشار برنامه iOS OpenVPN لازم بود). این سرویس دهنده مشتری رسمی فن آوری های OpenVPN است. <p> تنظیمات OpenVPN قدیمی ترین مشتریان و همچنین UI برای OpenVPN منبع باز است. در مقایسه با OpenVPN برای آندروید، آن نیاز به ریشه دارد و از API VPNService استفاده نمی کند. این به Android 4.0 + بستگی ندارد + تفاوت بین مشتریان OpenVPN اندروید + نادیده گرفتن مسیر چندرسانه ای: %s + اندروید تنها از مسیرهای CIDR به VPN پشتیبانی می کند. از آنجایی که مسیرهای غیر CIDR تقریبا هرگز استفاده نمی شود، OpenVPN برای اندروید از 32/32 برای مسیرهایی استفاده می کند که CIDR نیستند و هشدار را صادر می کنند. + VPN در حال فعال است. اتصال متصل به VPN از VPN استفاده نخواهد کرد. + نسخه کیت کت اولیه مقدار ارزش اشتباه MSS را در اتصالات TCP (# 61948) تنظیم می کند. سعی کنید گزینه mssfix را فعال کنید تا این اشکال حل شود. + آندروید با استفاده از تنظیمات پروکسی خود را مشخص شده برای اتصال تلفن همراه / Wi-Fi را حفظ خواهد کرد زمانی که هیچ سرور DNS تنظیم نشده است. OpenVPN برای Android در مورد این در log.

هنگامی که یک VPN یک سرور DNS را تنظیم می کند، آندروید از پروکسی استفاده نمی کند. هیچ API برای تنظیم یک پروکسی برای اتصال VPN وجود ندارد. 123._4_1_

321
+ IP سرویس گیرنده پیکربندی و IP ها در ماسک شبکه خود را به VPN هدایت نمی کنند. OpenVPN در مورد این اشکال با صراحت اضافه کردن یک مسیر که corrosponds به IP سرویس گیرنده و mask آن + باز کردن یک دستگاه صدای زنگ در حالی که دستگاه دیگری tun فعال است، که برای پشتیبانی persistent tun استفاده می شود، سرویس VPNS را بر روی دستگاه خراب می کند. مجددا راه اندازی مجدد می شود تا مجددا کار VPN انجام شود. OpenVPN برای آندروید تلاش می کند تا از بازگشایی دستگاه tun جلوگیری کند و اگر واقعا نیاز باشد، ابتدا TUN فعلی را قبل از باز شدن دستگاه جدید TUN برای جلوگیری از سقوط، بسته می کند. این ممکن است منجر به یک پنجره کوتاه که در آن بسته ها بر روی اتصال غیر VPN ارسال شوند. حتی با این راهکار VPNS سرویس ها گاهی اوقات سقوط می کنند و نیاز به راه اندازی مجدد دستگاه دارند. + VPN برای کاربران ثانویه کار نمی کند. + "کاربران چندگانه گزارش می دهند که اتصال داده های تلفن همراه / داده های تلفن همراه در هنگام استفاده از برنامه VPN غالبا کاهش می یابد. به نظر می رسد که رفتار به تنها برخی از ترکیبی از سرویس دهنده / دستگاه تلفن همراه تاثیر می گذارد و تاکنون هیچ علت / راه حل برای شناسایی اشکال وجود نداشته است." + تنها مقصد را می توان از طریق VPN که بدون VPN قابل دسترسی است رسیده است. VPN های IPv6 همگی کار نمی کنند. + مسیرهای غیر CIDR + رفتار پروکسی برای VPN ها + %s و قبل از آن + کپی از %s + مسیر به آدرس IP پیکربندی شده + مقدار MSS برای اتصال VPN نامعتبر است + کاربران تبلت ثانویه + گزینه های خاص اتصال سفارشی را مشخص کنید. با دقت استفاده کنید + گزینه های سفارشی + حذف اتصال ورودی + تصادفی از شبکه تلفن همراه قطع می شود + شبکه های از راه دور قابل دسترسی نیست + حالت مداوم را ادامه دهید + %s و بعدا + اتصالات با SSL23_GET_SERVER_HELLO: sslv3 هشدار شکست خوردن دستکاری + جدیدتر OpenVPN برای نسخه های آندروید (0.6.29 / مارس 2015) از پیش فرض امن تر برای سوئیت های مجاز رمز (tls-cipher \"DEFAULT:! EXP:! PSK:! SRP:! kRSA\") استفاده می شود. متأسفانه، حذف کردن سوئیت های امنیتی کمتری و صادر کردن سوئیت های سری، به ویژه حذف مجموعه سوپرمارکت هایی که از تضعیف کامل Perfect Forward پشتیبانی نمی کنند (Diffie-Hellman) باعث مشکلات خاصی می شود. این معمولا توسط تلاش خوبی انجام شده اما به اجرا گذاشته شده به منظور تقویت امنیت TLS با تنظیم tls-cipher در سرور یا برخی از سیستم عامل های جاسازی شده با SSL خالی شده (به عنوان مثال MikroTik) ناشی می شود. \n برای حل این مشکل مشکل، تنظیم tls-رمز تنظیمات سرور به صورت پیش فرض معقول مانند tls-cipher \"DEFAULT:! EXP!! PSK:! SRP:! kRSA\". برای کنار آمدن با مشکل در سرویس گیرنده، گزینه tls-cipher DEFAULT سفارشی را در سرویس گیرنده Android اضافه کنید. + این نمایه از یک برنامه خارجی (%s) اضافه شده است و به عنوان قابل ویرایش کاربر مشخص نشده است. + فهرست لغو گواهینامه + راه اندازی مجدد سرویس OpenVPN (احتمالا سقوط برنامه ممکن است برای فشار حافظه کشته یا کشته شود) + وارد کردن پیکربندی خطایی را ایجاد کرد، نمیتواند آن را ذخیره کند + جستجو کردن + (آخرین بارگیری %1$d: %2$dh قدیمی است (%3$s)) + پاک کردن ورود به سیستم در اتصال جدید + وقفه اتصال + هیچ مجوزی اضافه نشده است اضافه کردن خودمان (%s) برای داشتن حداقل یک برنامه در لیست برنامه مجاز برای اجازه دادن به تمام برنامه ها + OpenVPN برای اندروید می تواند سعی کند فایل (های) گم شده در Sdcard را به صورت خودکار کشف کند. روی این پیام ضربه بزنید درخواست مجوز را آغاز کنید. + پروتکل + فعال شده است + مجوز VPN توسط سیستم عامل (به عنوان مثال دیگر برنامه VPN شروع شده) لغو شده است، توقف VPN + فشار اطلاعات همگانی + ارسال اطلاعات اضافی به سرور، به عنوان مثال نسخه SSL و نسخه آندروید + نیاز به %1$s + لطفا رمز عبور را برای پروفایل وارد کنید %1$s + استفاده از داده های درون خطی + فایل پیکربندی صادراتی + پرونده tls-auth گم شده است + گم شده گواهینامه کاربر یا کاربر تایید فایل کلید + Certificatecate لغو فهرست (اختیاری) + Reread (%d) موارد ورود را از پرونده ذخیره سازی log + با وجود اینکه گوشی های سامسونگ از جمله تلفن های هوشمند اندرویدی هستند، سیستم عامل سامسونگ نیز در میان سخت افزارهای سخت افزاری اندرویدی قرار دارد. اشکالات فقط به استفاده از VPN در این دستگاه محدود نمی شود، اما بسیاری از آنها می توانند کار کنند. در زیر برخی از این اشکالات شرح داده شده است.\n\nDNS کار نمی کند مگر اینکه سرور DNS در محدوده VPN باشد. \n\n در بسیاری از دستگاه های Samsung 5.x قابلیت برنامه های مجاز / غیر مجاز کار نمی کند.\n در سامسونگ 6. VPN گزارش شده است که کار نمی کند مگر اینکه برنامه VPN از ویژگی های Powersave معاف باشد. + گوشی های سامسونگ + VPN انتخاب نشده است. + VPN پیش فرض + VPN در مکان هایی که نیاز به VPN پیش فرض مورد استفاده قرار می گیرد. این در حال حاضر در بوت، برای همیشه در و کاشی تنظیمات سریع است. + VPN در حال حاضر انتخاب شده است: \'%s\' + اتصال مجدد + تغییر VPN + اتصال به %s + قطع ارتباط %s + حداکثر زمان بین تلاش های اتصال را وارد کنید. OpenVPN پس از تلاش اتصال ناموفق تا این مقدار، زمان انتظار خود را به آرامی افزایش می دهد. پیش فرض به 300s. + حداکثر زمان بین تلاش های اتصال + منتظر %s ثانیه ثانیه بین تلاش اتصال + شبکه ها بیشتر را بررسی کنید .. -> VPNS را بررسی کنید]]> + اتصال به OpenVPN بسته شده است (%s) + مرتب سازی را تغییر دهید + مرتب سازی + پروفایل های مرتب شده توسط اخیرا استفاده شده است + پروفایل ها بر اساس نام مرتب شده اند + Config با استفاده از گزینه tls-remote که در 2.3 حذف شد و در 2.4 حذف شد + رفتار در AUTH_FAILED + نمودار + از مقیاس لگاریتمی استفاده کنید + اطلاعات کافی نیست + میانگین در ساعت + میانگین در هر دقیقه + 5 دقیقه گذشته + در + بیرون + %.0f بیت / ثانیه + %.1f کیلوبایت / ثانیه + %.1f مگابیت بر ثانیه + %.1f گیگابیت / ثانیه + <p>Starting with OpenSSL version 1.1, OpenSSL rejects weak signatures in certificates like + MD5. Additionally with the OpenSSL 3.0 signatures with SHA1 are also rejected.</p><p> + You should update the VPN certificates as soon as possible as SHA1 will also no longer work on other platforms in the + near future.</p> + <p>If you really want to use old and broken certificates select \"insecure\" for the TLS security profile under Authentication/Encryption of the profile</p> + + %.0f بایت + %.1f کیلوبایت + %.1f مگابایت + %.1f گیگابایت + آمار ارتباط + آمار مربوط به اتصال OpenVPN ایجاد شده است + تغییر وضعیت اتصال + تغییر وضعیت اتصالات OpenVPN (اتصال، تأیید اعتبار، ...) + ضعیف (MD5) هش در امضای گواهی (SSL _CTX _use _certificate md خیلی ضعیف) + باز نمودن سرعت SSL + باز کردن اسامی رمزنگاشته های SSL + آزمون سریع رمز عبور OpenSSL + رمزنگاشته های SSL دچار خطا شده است. + در حال تست کردن + الگوریتم های انتخاب شده آزمایش + یک برنامه بیگانه در حال تلاش برای دسترسی به %s است. درخواست دسترسی برنامه لغو شد ، مجاز نمودن این برنامه موجب دسترسی کلی به تمام برنامه هاست . + کلیدهای وضعیت را پشتیبانی کنید .لطفا در زیر قسمت تنظیمات عمومی به OpenVPN 2.x تغییر یابد . + استفاده از فایلهای PKCS12 مستقیما با اجرا VPN 3 سی پلاس (++) پشتیبانی نمی شود. لطفا فایل های pkcs12 را به کلیدهای ذخیره اندروید افزوده یا در قسمت زیر تنظیمات عمومی به OpenVPN 2.x تغییر دهید. + پراکسی + هیچکدام + تور (اوربوت) + C ++ 3 OpenVPN اجرای حمایت نمی اتصال از طریق پراکسی پراکسی + Orbot application cannot be found. Please install Orbot or use manual Socks v5 integration. + API راه دور + Openvpn نیاز برای آندروید APIs دو از راه دور، API پیچیده با استفاده از AIDL (remoteEXample در مخزن دستگاه گوارش) و یکی ساده با استفاده از مفاهیم را پشتیبانی می کند. <p>نمونه با استفاده از پوسته های بانک انکشاف آسیایی و مفاهیم. جایگزینی profilname با شما مشخصات نام<p><p> بانک انکشاف آسیایی پوسته هستم شروع فعالیت - android.intent.action.MAIN de.blinkt.openvpn/.api. DisconnectVPN<p> پوسته بانک انکشاف آسیایی در شروع فعالیت - android.intent.action.MAIN -e de.blinkt.openvpn.api.profileName Blinkt de.blinkt.openvpn/.api. ConnectVPN + فعال کردن تأیید اعتبار پراکسی + نمیتوان از بیانیه اضافی http-proxy-option یا Integration Orbot در همان زمان استفاده کرد + اطلاعات از سرور: \'%s\' + Hello everyone + اتصال OpenVPN نیاز به ورودی کاربر به عنوان مثال دو عامل + authentification + + آدرس URL را برای ادامه VPN تأیید کنید + آدرس URL را برای ادامه VPN تأیید کنید + تایید هویت در انتظار + Authenticator خارجی + پیکربندی + External Authenticator not configured + مسدود کردن اتصال غیر VPN (\"Killswitch\") + اغلب مواقع تمایل به مسدود کردن اتصالات خارج از VPN است. سایر نرم‌افزار ها از لفظ هایی مانند \"Killswitch\" یا \"Seamless tunnel\" برای این ویژگی استفاده می‌کنند. OpenVPN و این نرم‌افزار persist-tun را عرضه می‌کند، یک تابع جهت تعبیه این قابلیت. <p>مشکلی که با تمام این روش های عرضه شده توسط نرم‌افزار ها وجود دارد این است که آنها صرفا بهترین راه حل را ارائه می‌کنند و هیچ راه حل کاملی وجود ندارد. حین راه اندازی، متوقف شدن نرم‌افزار و سایر موارد نادر، نرم‌افزار نمی‌تواند مطمئن شود که مسدودسازی اتصالات غیر VPN عمل کند. و در نتیجه تلقین حس کاذب ایمنی به کاربر.<p>تنها</b> راه قابل اعتماد جهت اطمینان از مسدود بودن اتصالات خارج از VPN استفاده از اندروید ۸.۰ و بالاتر و استفاده از \"مسدود سازی اتصالات بدون VPN\" از تنظیمات > شبکه & اینترنت > پیشرفته/VPN > OpenVPN برای اندروید > فعالسازی همیشگی VPN، فعالسازی مسدودیت اتصالات بدون VPN است + این گزینه به اندروید دستور می‌دهد که اگر VPN هیچ آدرس IPv4 یا IPv6 را تنظیم نکرده باشد، پروتکل‌های (IPv4/IPv6) را مجاز نکند. + Block IPv6 (or IPv4) if not used by the VPN + Install new certificate + As servername + Server URL + 248vpn + Importiere Profil vom Server + Default VPN not set. Please set the Default VPN before enabling this option. + Internal WebView + بسته به موقعیت دقیق، تغییراتی در این پیام وجود دارد. همه آنها وجه اشتراک دارند که سرور و کلاینت نمی توانند روی یک رمز مشترک به توافق برسند. دلایل اصلی عبارتند از: <ul><li> شما همچنان بر این واقعیت تکیه می کنید که OpenVPN نسخه 2.4 و بالاتر به BF-CBC در پیکربندی پیش فرض اجازه داده است (اگر هیچ --cipher تنظیم نشده باشد). OpenVPN 2.5 دیگر آن را به صورت پیش فرض اجازه نمی دهد زیرا یک رمز <a href=\"https://community.openvpn.net/openvpn/wiki/SWEET32\">شکسته/ قدیمی است</a>.</li><li>سرور OpenVPN 2.3 (یا حتی قدیمی تر) را با --enable-small (حداقل OpenVPN 4-5 ساله) اجرا می کند</li><li></ul>پیکربندی خراب (مثلاً عدم تطابق رمزهای داده روی مشتری و سرور)</li> <p> <a href=\"https://github.com/OpenVPN/openvpn/blob/master/doc/man-sections/cipher-negotiation.rst\">OpenVPN بخش دستی در مورد مذاکره رمز</a> سناریوهای مختلف مذاکره رمز را به خوبی توضیح می دهد و در این شرایط چه باید کرد.<p>دستگاه TP-Link از نسخه حداقل 5 ساله OpenVPN 2.3.x (احتمالاً قدیمی تر) در دستگاه های خود استفاده می کنند، حتی در مدل های 2019/2020.<p>آخرین اما نه کم اهمیت ترین، یک ارائه دهنده VPN محبوب وجود دارد که یک سرور خراب دارد که همیشه می گوید از \"BF-CBC\" استفاده می کند، زیرا توسعه دهنده آن فکر می کرد ایجاد یک پچ مذاکره رمز اختصاصی که با استاندارد ناسازگار است ایده خوبی است. OpenVPN.<p>به طور خلاصه: تمام تنظیمات عاقل نباید این خطاها را دریافت کنند. اما (به غیر از سرور ارائه‌دهنده VPN خراب) می‌توان مشتری را متقاعد کرد که همچنان متصل شود (رفع علامت و نه مشکل واقعی). هنگام اتصال به سرورهای قدیمی، گزینه حالت سازگاری در تنظیمات اولیه VPN باید بتواند اکثر مشکلات رایج سازگاری را برطرف کند. + Check peer certificate fingerprint + (Enter the SHA256 fingerprint of the server certificate(s)) + HTTP Proxy: %1$s %2$d + Please use the Always-On Feature of Android to enable VPN at boot time. + Open VPN settings + Press here open a window to enter additional required authentication + Compatibility Mode + Compatibility mode + Load OpenSSL legacy provider + Profiles uses BF-CBC which depends on OpenSSL legacy provider (not enabled). + Allow community contributed translations + Allows the app to be translated with translations contributed by the community. Requires a restart of the app to activate. + TLS Security Profile +
diff --git a/main/src/ui/res/values-fr/arrays.xml b/main/src/ui/res/values-fr/arrays.xml index 4a1dcb24..18c4b337 100644 --- a/main/src/ui/res/values-fr/arrays.xml +++ b/main/src/ui/res/values-fr/arrays.xml @@ -28,4 +28,16 @@ Déconnecter, garder le mot de passe Ignorer, réessayer + + Paramètres par défaut modernes + Pairs OpenVPN 2.5.x + Pairs OpenVPN 2.4.x + OpenVPN 2.3.x et anciens pairs + + + non sécurisé (déconseillé, autorise une cryptographie non sécurisée) + legacy (default) + préféré (recommandé mais compatibilité limitée) + Suite B (uniquement les courbes elliptiques approuvées par le NIST) + diff --git a/main/src/ui/res/values-fr/strings.xml b/main/src/ui/res/values-fr/strings.xml index 2f2c97b8..e2bcbd09 100644 --- a/main/src/ui/res/values-fr/strings.xml +++ b/main/src/ui/res/values-fr/strings.xml @@ -34,6 +34,7 @@ "Adresse IPv4" "Adresse IPv6" Entrez les options d\'OpenVPN personnalisées. A utiliser avec précaution. A noter aussi que de nombreux paramètres Tun d\'OpenVPN ne sont pas pris en charge à cause de la conception de \"VPNSettings\". Si vous pensez qu\'une option importante manque, veuillez contacter l\'auteur + Nom d\'utilisateur (laisser vide pour aucune authentification) "Mot de passe" "Pour la configuration statique, des clés d\'authentification TLS seront utilisés comme des clés statiques." "Configurer le VPN" @@ -42,6 +43,7 @@ Veuillez entrer un nom de profil unique "Nom de profil" "Aucun certificat utilisateur sélectionné." + Vous devez sélectionner un certificat CA ou activer la vérification d\'empreinte digitale par un pair "Aucune erreur" "Erreur dans la configuration" "Impossible d\'analyser l\'adresse IPv4" @@ -65,7 +67,7 @@ Attendre le certificat de serveur TLS Vérifie le DN du sujet du certificat serveur distant "Vérification du certificat de l\'hôte" - Indiquez la manière de vérifier le DN du certificat distant (ex : C=DE, L=Paderborn, OU =Avian IP Carriers, CN=openvpn.blinkt.de)\n\nEntrez le DN complet, le RDN (openvpn.blinkt.de dans l\'exemple) ou un préfixe RDN.\n\nEn utilisant le préfixe RDN, \"Server\" correspond à \"Server-1\" et \"Server-2\"\n\nSi vous laissez le champ de texte vide, le RDN sera comparé au nom du serveur.\n\nPour plus de détails, voir la page du manuel OpenVPN 2.3.1+ : —verify-x509-name + Indiquez la manière de vérifier le DN du certificat distant (ex : C=DE, L=Paderborn, OU =Avian IP Carriers, CN=openvpn.blinkt.de)\n\nEntrez le DN complet, le RDN (openvpn.blinkt.de dans l\'exemple) ou un préfixe RDN.\n\nEn utilisant le préfixe RDN, \"Serveur\" cela correspond à \"Serveur-1\" et \"Serveur-2\"\n\nSi vous laissez le champ de texte vide, le RDN sera comparé au nom du serveur.\n\nPour plus de détails, voir la page du manuel OpenVPN 2.3.1+ : —verify-x509-name Objet du certificat distant "Activer l\'authentification par clé TLS" "Fichier d\'authentification TLS" @@ -111,11 +113,11 @@ "%1$s %2$s" Envoyer le journal Envoyer - "Fichier de log OpenVPN ICS" + Fichier journal OpenVPN ICS Entrée du journal copiée dans le presse-papier Mode Tap Le mode TAP est indisponible avec l\'API VPN non root. Par conséquent, cette application ne peut pas supporter TAP - Encore une fois ? Vous plaisantez ? Le mode TAP n\'est absolument pas pris en charge, et continuer de m\'envoyer des e-mails me demandant s\'il sera intégré ne va en rien aider. + Encore une fois ? Vous plaisantez ? Le mode TAP n\'est absolument pas pris en charge, et continuer de m\'envoyer des e-mails me demandant s\'il sera intégré ne va pas aider. Encore une fois ? En fait, il est possible que quelqu\'un puisse écrire un émulateur TAP basé sur TUN qui pourrait modifier à la volée les informations de la couche \"Liaison\". Mais cet émulateur devrait aussi implémenter ARP et un client DHCP. A ma connaissance, personne n\'a commencé à travailler sur ce sujet. Contactez-moi si vous voulez m\'aider à travailler là-dessus. FAQ Copie des entrées du journal @@ -125,32 +127,33 @@ Votre ROM ne prend pas en charge l\'API VPNService, désolé :( Chiffrement Entrez la méthode de chiffrement - Entrez l\'authentification digest utilisé pour OpenVPN. Laisser vide pour utiliser le digest par défaut. + Entrez les algorithmes de chiffrement des données utilisés par OpenVPN séparés par : (--data-ciphers). Laissez vide pour utiliser la valeur par défaut AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305. + Entrez l\'authentification digest utilisée pour OpenVPN. Laissez vide pour utiliser le digest par défaut. Authentification/Chiffrement Explorateur de fichiers "Fichier personnalisé" Impossible d\'importer le fichier - "Impossible d\'importer le fichier depuis le système de fichiers" + Impossible d\'importer le fichier depuis le système de fichiers "[[Fichier de données personnalisé]]" - "Impossible d\'ouvrir le périphérique TUN sans informations IP" - "Importer un profil depuis un fichier .ovpn" - "Importer" - "Impossible de lire le profil à importer" - "Erreur de lecture du fichier de configuration" + Impossible d\'ouvrir le périphérique TUN sans informations IP + Importer un profil depuis un fichier .ovpn + Importer + Impossible de lire le profil à importer + Erreur de lecture du fichier de configuration ajouter un profil - "Impossible de trouver le fichier %1$s mentionné dans le fichier de configuration importé" - "Importation du fichier de configuration depuis %1$s" + Impossible de trouver le fichier %1$s mentionné dans le fichier de configuration importé + Importation du fichier de configuration depuis %1$s Votre configuration a quelques options qui ne sont pas prises en compte par l\'interface utilisateur. Ces options ont donc été ajoutées comme des options de configuration personnalisées : - "Fin de la lecture du fichier de configuration." - "Ne pas se lier à l\'adresse locale et au port" - "Aucune liaison locale" + Fin de la lecture du fichier de configuration. + Ne pas se lier à l\'adresse et au port locaux + Aucune liaison locale Importer le fichier de configuration Remarques sur la sécurité "Comme OpenVPN est une application critique en terme de sécurité, quelques remarques sur la sécurité sont nécessaires. Toutes les informations stockées sur la carte SD ne sont pas sûres. Toute application peut en obtenir l\'accès : par exemple, ce programme ne requiert aucun droit particulier pour accéder à la carte SD. Par contre, les données d\'OpenVPN ne peuvent être lues que par OpenVPN. En utilisant l\'option d\'importation pour les CACert/Cert/Key, les données sont stockées dans le profil VPN. Ce dernier est seulement accessible à OpenVPN. Ainsi, veuillez ne pas oublier de supprimer les CACert/Cert/Key de la carte SD après importation. Car, même si l\'application en a l\'exclusivité, les données ne sont pas pour autant chiffrées. En \"rootant\" l\'appareil ou par d\'autres exploits il est toujours possible d\'accéder à ces informations. A titre d\'exemple, les mots de passe sont stockés en clair. Pour les fichiers de type Pkfcs12, il est fortement recommandé que vous les importiez dans le gestionnaire de clés d\'Android." - "Importer" - "Erreur d\'affichage certificat sélectionné" + Importer + Erreur lors de l\'affichage de la sélection de certificat Impossible d\'ouvrir la boite de dialogue de sélection de certificat d\'Android 4.0+. Cela ne devrait jamais se produire car il s\'agit d\'une fonctionnalité de base d\'Android 4.0+. Peut-être que le stockage des certificats de votre ROM Android ne fonctionne plus - "IPv4" + IPv4 IPv6 Attente du statut… "profil importé" @@ -172,17 +175,17 @@ Activer cette option forcera une reconnexion si l\'état du réseau est modifié (par exemple WiFi/Mobile) Se reconnecter au changement de réseau État du réseau : %s - "Le certificat CA est généralement renvoyé par le gestionnaire de clés Android. Spécifiez un certificat distinct si vous obtenez des erreurs de vérification de certificat." - "Sélectionner" + Le certificat CA est généralement renvoyé par le gestionnaire de clés Android. Spécifiez un certificat distinct si vous obtenez des erreurs de vérification de certificat. + Sélectionner Aucun certificat CA n\'a été trouvé depuis le gestionnaire de clés d\'Android. L\'authentification va probablement échouer. Affiche le journal à la connexion. Cette fenêtre peut toujours être consultée à partir de la notification d\'état. Afficher le journal %10$s %9$s fonctionnant sur %3$s %1$s (%2$s), Android %6$s (%7$s) API %4$d, ABI %5$s, (%8$s) - "Erreur de signature de la clé %1$s : %2$s par le gestionnaire d\'Android" + Erreur de signature de la clé %1$s : %2$s par le gestionnaire d\'Android Erreur de signature avec l\'application d\'authentification externe (%3$s): %1$s: %2$s - \"L\'avertissement de connexion au VPN, qui vous informe que cette application peut intercepter tout le trafic, est imposé par le système pour éviter les abus de l\'API du service VPN.\nLa notification de connexion au VPN (le symbole qui ressemble à une clé) est aussi imposée par le système Android pour signaler une connexion VPN en cours de fonctionnement. + L\'avertissement de connexion au VPN, qui vous informe que cette application peut intercepter tout le trafic, est imposé par le système pour éviter les abus de l\'API du service VPN.\nLa notification de connexion au VPN (le symbole qui ressemble à une clé) est aussi imposée par le système Android pour signaler une connexion VPN en cours de fonctionnement. Sur certaines ROM, cette notification joue un son.\nAndroid a introduit ces notifications pour votre propre sécurité et a fait en sorte qu\'elles soient impossibles à contourner - "Avertissement de connexion et son de notification" + Avertissement de connexion et son de notification Traduction française par les utilisateurs sur Crowdin IP et DNS Base @@ -191,31 +194,31 @@ Sur certaines ROM, cette notification joue un son.\nAndroid a introduit ces noti Avancée Configuration ICS OpenVPN Aucun serveur DNS utilisé. La résolution des noms de domaine peut ne pas fonctionner. Ajoutez des serveurs DNS personnalisés. Veuillez également noter qu\'Android va continuer à utiliser vos paramètres de proxy renseignés pour votre connexion Wi-Fi/mobile lorsqu\'aucun serveur DNS n\'est défini. - "Impossible d\'ajouter le serveur DNS \"%1$s\", rejeté par le système : %2$s" + Impossible d\'ajouter le serveur DNS \"%1$s\", rejeté par le système : %2$s Impossible de configurer l\'adresse IP \"%1$s\", rejeté par le système : %2$s <p>Obtenez une configuration fonctionnelle (testée sur un ordinateur ou téléchargée depuis le site de votre fournisseur/entreprise)</p><p>S\'il s\'agit d\'un seul fichier avec aucun fichier Pem/Pks12 supplémentaire, vous pouvez vous l\'envoyer par mail et l\'ouvrir directement. Si vous avez plusieurs fichiers de configuration, mettez-les sur votre carte SD.</p><p>Cliquez sur la pièce jointe de votre e-mail / Utilisez l\'icône \"dossier\" dans la liste des VPN pour importer le fichier de configuration.</p><p>Si des erreurs concernant des fichiers manquants apparaissent, veuillez mettre les fichiers manquants sur la carte SD.</p><p>Cliquez sur l\'icône \"enregistrer\" pour ajouter le profil VPN importé à la liste de VPNs.</p><p>Connectez le VPN en cliquant sur son nom dans cette liste.</p><p>Si vous rencontrez des erreurs ou des avertissements, veuillez consulter le journal pour les corriger.</p> - "Démarrage rapide" + Démarrage rapide Essayez de charger le module du noyau \"tun.ko\" avant de tenter de vous connecter. Requiert des droits root. - "Charger le module TUN" + Charger le module TUN Importer le PKCS12 de la configuration dans le gestionnaire de clés Android Erreur d\'obtention des paramètres de proxy : %s - "Utilisation du proxy %1$s %2$s" - "Utiliser le proxy système" - "Utiliser la configuration générale du système pour que les proxy HTTP / HTTPS se connectent." + Utilisation du proxy %1$s %2$s + Utiliser le proxy système + Utiliser la configuration générale du système pour que les proxy HTTP / HTTPS se connectent. OpenVPN connectera le VPN spécifié si l\'application est active au démarrage du système. Veuillez lire la FAQ d\'avertissement de connexion avant d\'utiliser cette option sur Android < 5.0. Se connecter au redémarrage Ignorer Redémarrer Les changements de configuration sont appliqués après redémarrage du VPN. (Re)démarrer le VPN maintenant ? Configuration modifiée - "Impossible de déterminer le dernier profil connecté pour l\'édition" + Impossible de déterminer le dernier profil connecté pour l\'édition Notifications en double Si Android manque de mémoire vive (RAM), les application et les services qui ne sont pas utilisés sont automatiquement fermés. Cela stoppe donc la connexion VPN en cours. Pour s\'assurer que celle-ci reste toujours lancée, le service est lancé avec une priorité plus élevée. L\'application doit alors afficher une notification en permanence. L\'icône de \"clé\" dans la zone de notification est imposée par le système comme expliqué dans l\'entrée précédente de la FAQ. Aucun profil VPN défini. Utilisez l\'icône <img src=\"ic_menu_add\"/> pour ajouter un nouveau VPN. Utilisez l\'icône <img src=\"ic_menu_archive\"/> pour importer un profil existant (.opvpn ou .conf) depuis votre carte SD. Veillez également à consulter la FAQ. Vous y trouverez un guide de démarrage rapide. - "Redirections / Configuration de l\'interface" + Redirections / Configuration de l\'interface La configuration du routage et des interfaces n\'est pas faite par l\'intermédiaire des commandes traditionnelles ifconfig/route, mais en utilisant l\'API VPNService. La configuration de routage est donc différente par rapport aux autres systèmes d\'exploitation. \nLa configuration du tunnel VPN se compose de l\'adresse IP et des réseaux qui doivent être routés via cette interface. En particulier aucune adresse de pair ou de passerelle n\'est nécessaire ou requise. Des routes spéciales pour atteindre le serveur VPN (par exemple ajoutées lorsque vous utilisez \"redirect-gateway\") ne sont pas nécessaires. L\'application ignore par conséquent ces paramètres lors de l\'importation d\'une configuration. L\'application assure avec l\'API VPNService que la connexion au serveur ne passe pas par le tunnel VPN.\nL\'API VPNService ne permet pas de spécifier les réseaux qui ne doivent pas être routés via le VPN. Pour contourner ce problème, l\'application essaye de détecter les réseaux qui ne doivent pas être routés par le tunnel (ex. route x.x.x.x y.y.y.y net_gateway) et calcule un ensemble de routes qui exclut cette route pour mimer le comportement des autres plates-formes. Les journaux montrent la configuration de VPNService lors d\'une connexion.\nEn coulisses : Android 4.4+ utilise la politique du routage. Utiliser route/ifconfig n\'affichera pas les routes installés. Utilisez plutôt ip rule, iptables -t mangle -L Ne pas couper la connexion VPN lors de la reconnexion d\'OpenVPN. Persistance de l\'interface TUN @@ -273,7 +276,7 @@ Sur certaines ROM, cette notification joue un son.\nAndroid a introduit ces noti tls-remote (OBSOLÈTE) Vous pouvez aider à traduire l\'application en vous rendant sur http://crowdin.net/project/ics-openvpn/invite %1$s essaye de contrôler %2$s - En continuant, vous donnez la permission à l\'application de contrôler complètement OpenVPN pour Android et d\'intercepter tout le trafic réseau.N\'acceptez que si vous faite confiance à l\'application. Sinon vous vous exposez au risque de voir vos données compromises par un logiciel malveillant.\" + En continuant, vous donnez la permission à l\'application de contrôler complètement OpenVPN pour Android et d\'intercepter tout le trafic réseau.N\'acceptez que si vous faite confiance à l\'application. Sinon vous vous exposez au risque de voir vos données compromises par un logiciel malveillant. Faire confiance à cette application. Aucune application n\'est autorisée à utiliser l\'API externe Applications autorisées : %s @@ -303,7 +306,7 @@ Sur certaines ROM, cette notification joue un son.\nAndroid a introduit ces noti Erreur d\'accès de KeyChain : %s Court ISO - Horodateurs + Horodatages Aucun Envoyé Reçu @@ -317,7 +320,7 @@ Sur certaines ROM, cette notification joue un son.\nAndroid a introduit ces noti Contourner le VPN pour les réseaux locaux Fichier Nom d\'utilisateur/Mot de passe [Importé de : %s] - Certains fichiers sont introuvables. Sélectionner les fichiers pour importer le profil : + Certains fichiers sont introuvables. Sélectionnez les fichiers pour importer le profil : Pour utiliser cette application, vous avez besoin d\'un fournisseur/passerelle VPN qui soutient OpenVPN (souvent fourni par votre employeur). Vérifier ici http://community.openvpn.net pour plus d\'informations sur OpenVPN et comment configurer votre propre serveur OpenVPN. Journal d\'import : Topologie VPN «%3$s » spécifiée mais ifconfig %1$s %2$s ressemble plus à une adresse IP avec un masque de réseau. On suppose que la topologie « sous-réseau » est utilisée. @@ -357,15 +360,13 @@ Sur certaines ROM, cette notification joue un son.\nAndroid a introduit ces noti Le partage fonctionne tant que le VPN est actif. La connexion partagée n\'utilisera pas le VPN. Les premières versions KitKat définissent une valeur MSS erronée (#61948). Essayez d\'activer l\'option mssfix pour contourner ce bug. Android va continuer d\'utiliser vos paramètres de proxy spécifiés pour la connexion mobile / Wi-Fi lorsque aucun serveur DNS n\'est défini. OpenVPN pour Android vous avertira à ce sujet dans le journal.

Quand un VPN définit un serveur de DNS, Android n\'utilisera pas de proxy. Il n\'y a pas d\'API pour définir un proxy pour une connexion VPN.

- Les applications VPN peuvent cesser de fonctionner lors d\'une désinstallation suivie d\'une réinstallation. Pour plus de détails, voir #80074 L\'adresse IP du client, et les adresses IP de ce réseau ne sont pas routées par le VPN. OpenVPN contourne ce problème en ajoutant une route qui correspond à l’adresse IP et au masque de sous-réseau du client Ouvrir un appareil en mode TUN pendant qu\'un autre appareil en mode TUN est actif, ce qui est requis pour la prise en charge de la persistance TUN, produit un plantage de VPNServices sur l\'appareil. Un redémarrage est nécessaire pour faire fonctionner le VPN à nouveau. OpenVPN pour Android tente d\'éviter de ré-ouvrir l\'appareil en mode TUN , et si cela est indispensable il arrête d\'abord le TUN actuel avant d\'ouvrir le nouveau TUN pour éviter un plantage. Cela peut conduire à une courte période pendant laquelle les paquets sont envoyés hors de la connexion VPN. Même avec cette solution de contournement, VPNServices se bloque parfois et nécessite un redémarrage de l\'appareil. - Le VPN ne fonctionnera pas du tout pour tous les utilisateurs secondaires. + Le VPN ne fonctionnera pas du tout pour les utilisateurs secondaires. "Plusieurs utilisateurs ont signalé des pertes de paquets durant l\'utilisation d\'un VPN sur leur connexion mobile. Ce comportement semble être lié à certains fournisseurs/téléphones, et jusqu\'à présent, nous n\'avons pas pu identifier la cause de ce bug." Seule la destination peut être atteinte via le VPN accessible sans VPN. Les VPNs IPv6 ne fonctionnent pas du tout. Routes non CIDR Comportement du proxy pour les VPN - Réinstallation des applications VPN %s et antérieur Copie de %s Route vers l\'adresse IP configurée @@ -387,7 +388,7 @@ Sur certaines ROM, cette notification joue un son.\nAndroid a introduit ces noti Rechercher (Le dernier dump est vieux de %1$d:%2$d (du %3$s )) Effacer le journal sur une nouvelle connexion - Extinction de la connexion + Délai de connexion Aucune application autorisée n\'a été ajoutée. Il faut au minimum ajouter cette application (%s) afin d\'en autoriser au moins une. Cela évite d’autoriser toutes les autres applications inutilement OpenVPN pour Android va essayer de chercher le(s) fichier(s) manquant(s) sur une carte SD. Tapoter ce message va démarrer une demande d\'autorisation. Protocole @@ -436,6 +437,7 @@ Sur certaines ROM, cette notification joue un son.\nAndroid a introduit ces noti %.1f kbit/s %.1f Mbit/s %.1f Gbit/s + <p> %.0f B %.1f kB %.1f MB @@ -469,8 +471,32 @@ Sur certaines ROM, cette notification joue un son.\nAndroid a introduit ces noti exemple une authentification à deux facteurs
Ouvrir l\'URL pour continuer l\'authentification VPN + Répondez au défi pour continuer l\'authentification VPN Authentification en attente Authentificateur externe Configurer Authentificateur externe non configuré + Bloquer les connexions non VPN (\"Killswitch\") + Cette option indique à Android de ne pas autoriser les protocoles (IPv4/IPv6) si le VPN ne définit aucune adresse IPv4 ou IPv6. + Bloquer IPv6 (ou IPv4) s\'il n\'est pas utilisé par le VPN + Installer un nouveau certificat + Nom du serveur AS + URL du serveur + Demander un profil de connexion automatique + Importer le profil depuis le serveur distant + VPN par défaut non défini. Veuillez définir le VPN par défaut avant d\'activer cette option. + WebView interne + Vérifier l\'empreinte digitale du certificat homologue + (Entrez l\'empreinte SHA256 du ou des certificats de serveur) + Proxy HTTP : %1$s %2$d + Veuillez utiliser la fonction Always-On d\'Android pour activer le VPN au démarrage. + Ouvrir les paramètres VPN + Appuyez ici pour ouvrir une fenêtre pour entrer l\'authentification supplémentaire requise + Mode de compatibilité + Mode de compatibilité + Charger l\'ancien fournisseur OpenSSL + Les profils utilisent BF-CBC qui dépend du fournisseur hérité OpenSSL (non activé). + Autoriser les traductions fournies par la communauté + Autoriser l\'application à être traduite avec les traductions apportées par la communauté. Nécessite un redémarrage de l\'application pour s\'activer. + Profil de sécurité TLS diff --git a/main/src/ui/res/values-he/arrays.xml b/main/src/ui/res/values-he/arrays.xml new file mode 100644 index 00000000..73c716a2 --- /dev/null +++ b/main/src/ui/res/values-he/arrays.xml @@ -0,0 +1,43 @@ + + + + + + אישורים + קובץ PKCS12 + אישור Android + שם משתמש/ססמה + מפתחות סטטיים + משתמש/סיסמה + אישורים + משתמש/סיסמה + PKCS12 + משתמש / PW + Android + ספק אימות חיצוני + + + 0 + 1 + לא צוין + הצפנה (‎--tls-crypt) + TLS Crypt V2 + + + התנתק, שכח סיסמה + התנתק, זכור סיסמה + התעלמות, ניסיון חוזר + + + ברירות מחדל מודרניות + עמיתים של OpenVPN 2.5.x + עמיתים של OpenVPN 2.4.x + OpenVPN 2.3.x ומעלה + + + לא מאובטח (לא מומלץ, מאפשר קריפטו לא מאובטח) + מורשת (ברירת מחדל) + מועדף (מומלץ אך תאימות מוגבלת) + סוויטה B (רק עקומות אליפטיות שאושרו על ידי NIST) + + diff --git a/main/src/ui/res/values-he/plurals.xml b/main/src/ui/res/values-he/plurals.xml new file mode 100644 index 00000000..0a61b8e4 --- /dev/null +++ b/main/src/ui/res/values-he/plurals.xml @@ -0,0 +1,27 @@ + + + + One month left + נותרו חודשיים + %d חודשים נותרו + %d חודשים נותרו + + + יום אחד נשאר + נותרו יומיים + %d ימים נותרו + %d ימים נותרו + + + One month left + נותרו שעתיים + %d שעות נותרו + נותרו %d שעות + + + נותרה דקה אחת + נותרו שתי דקות + %d דקות נותרו + %d דקות נותרו + + diff --git a/main/src/ui/res/values-he/strings.xml b/main/src/ui/res/values-he/strings.xml new file mode 100644 index 00000000..3a2e1cf4 --- /dev/null +++ b/main/src/ui/res/values-he/strings.xml @@ -0,0 +1,508 @@ + + + + OpenVPN עבור אנדרואיד + כתובת שרת: + יציאת שרת: + מיקום + לא ניתן לקרוא את התיקייה + בחר + ביטול + אין נתונים + דחיסת LZO + אין תעודה + תעודת לקוח + מפתח תעודת לקוח + קובץ PKCS12 + תעודת CA + עליך לבחור תעודה + קוד מקור ודיווח על תקלות זמין תחת https://github.com/schwabe/ics-openvpn + התוכנית משתמשת ברכיבים הבאים; קרא את קוד המקור לקבלת פרטים מלאים על הרשיונות + על אודות + פרופילים + סוג + סיסמת PKCS12 + בחירה… + עליך לבחור קובץ + להשתמש באימות TLS + כיוון TLS + הזן כתובת IPv6 / מסיכת רשת בפורמט CIDR (למשל 2000: dd :: 23/64) + הזן כתובת IPv4 / מסיכת רשת בפורמט CIDR (למשל 1.2.3.4/24) + כתובת IPv4 + כתובת IPv6 + הזן אפשרויות VPN מותאמות אישית, השתמש בזהירות. +יש לקחת בחשבון שחלק מהאפשרויות אינן נתמכות, אם אתה סבור שיש הגדרה חשובה שחסרה בתוכנה, נא צור עימנו קשר + שם משתמש (להשאיר ריק ללא אישור) + סיסמה + עבור תצורה סטטית מפתחות אימות TLS יהיו מפתחות סטטים + קביעת התצורה של ה-VPN + הוספת פרופיל + הזן שם זיהוי לפרופיל החדש + אנא הזן שם פרופיל ייחודי + שם פרופיל + עליך לבחור אישור משתמש + עליך לבחור אישור CA או לאפשר בדיקת טביעת אצבע של עמיתים + לא נמצאה שגיאה + שגיאה בהגדרות תצורה + שגיאה בניתוח כתובת ה- IPv4 + שגיאה בניתוח המסלולים המותאמים אישית + (להשאיר ריק לשאילתה על פי דרישה) + קיצור דרך OpenVPN + מתחבר ל- VPN… + בפרופיל שצוין הקיצור לא נמצא + קידומת Host אקראית + מוסיף 6 תווים אקראיים לפני שם המחשב המארח + אפשר אפשרויות מותאמות אישית + ציין אפשרויות מותאמות אישית. השתמש בזהירות! + ראוטר נדחה על ידי אנדרואיד + מנותק + נתק VPN + נקה יומן רישום + ביטול אישור + נתק VPN / בטל את ניסיון ההתחברות? + הסר VPN + בודק אם השרת משתמש באישור עם הרחבות שרת TLS (--remote-cert-tls server) + מצפה לתעודת TLS של השרת + בודק את ה- DN בנושא אישורי השרת המרוחק + בדיקת תעודת מארח + ציין את הצ\'ק המשמש לאימות ה- DN האישור המרוחק (למשל C = DE, L = Paderborn, OU = Avi IP IP, CN = openvpn.blinkt.de)\n\nציין את ה- DN המלא או ה- RDN (openvpn.blinkt.de ב הדוגמה) או קידומת RDN לאימות.\n\nבעת שימוש בקידומת RDN \"Server\" תואם את \"Server-1\" ו- \"Server-2\"\n\nהשארת שדה הטקסט ריק תבדוק את ה- RDN כנגד שם המארח של השרת.\n\nלפרטים נוספים עיין בדף האדם של OpenVPN 2.3.1+ תחת — verify-x509-name + נושא אישור מרחוק + מפעיל את אימות מפתח TLS + קובץ TLS Auth + מבקש מהשרת כתובות IP, ניתובים (routes) ואפשרויות תזמון. + לא ביקשת מידע מהשרת. יש לציין את ההגדרות להלן. + משיכת הגדרות + DNS + עוקף הגדרות DNS לפי שרת + השתמש בשרתי הDNS שלך + חפש בדומיין + שרת DNS לשימוש. + שרת DNS + אם אין אפשרות להגיע לשרת DNS רגיל שרת DNS משני. + גיבוי שרת DNS + התעלם מהניתובים שנדחפו + התעלם מניתובים שנדחפו על-ידי השרת. + מפנה את כל התעבורה דרך ה-VPN + השתמש במסלול בברירת מחדל + הזן מסלולים מותאמים אישית. רק הזן יעד CIDR בתבנית. \"10.0.0.0/8 2002:: / 16\" ישיר 10.0.0.0/8 רשתות ו- 2002:: / 16 דרך ה-VPN. + מסלולים שאסור לנתב דרך ה-VPN. השתמש באותו תחביר כמו עבור המסלולים הכלולים. + מסלולים מותאמים אישית + רשתות שלא נכללו + רמת כמות המלל של רישום + מאפשר לקבל מנות מורשות מכל כתובת IP + אפשר שרת צף + אפשרויות מותאמות אישית + עריכת הגדרות VPN + הסר את פרופיל \'%s\'? + בחלק מתמונות ICS מותאמות אישית ייתכן שההרשאה ב-/dev/tun שגויה, או שמודול ה-tun חסר לחלוטין. עבור תמונות CM9 נסה את אפשרות תיקון הבעלות תחת הגדרות כלליות + פתיחת ממשק tun נכשלה + „שגיאה:” + פינוי + פתיחת ממשק tun: + IPv4 מקומית: %1$s/%2$d IPv6:‏ %3$s MTU:‏ %4$d + שרת DNS:‏ %1$s, שם תחום: %2$s + ניתובים: %1$s %2$s + נתיבים הוחרגו: %1$s %2$s + מסלולי VpnService מותקנים: %1$s %2$s + קבל ממשק המידע %1$s ו- %2$s, בהנחה הכתובת השניה היא כתובת העמית הרחוק. שימוש /32 מסיכת רשת עבור IP המקומית. מצב שנתן OpenVPN הוא \"%3$s\". + לא הגיוני של %1$ s ו- %2$ s כמו ניתוב ה-IP עם netmask CIDR, באמצעות /32 בתור מסיכת רשת. + תוקן התוואי %1$s/%2$s אל %3$s/%2$s + לא ניתן לגשת לאישורי מחזיק מפתחות אנדרואיד. זה יכול להיגרם על ידי שדרוג קושחה או על ידי שחזור גיבוי של הגדרות האפליקציה/אפליקציה. אנא ערוך את ה-VPN ובחר מחדש את האישור בהגדרות הבסיסיות כדי ליצור מחדש את ההרשאה לגשת לאישור. + %1$s %2$s + שליחת קובץ יומן רישום + שליחה + קובץ יומן הרישום ICS OpenVPN + הועתק רשומה ביומן ללוח כתיבה + מצב Tap + בלי הרשאות רוט Tap אינו אפשרי ללא VPN API. לכן יישום זה אינה יכול לספק תמיכה + שוב? אתה צוחק? לא, מצב הקשה ממש לא נתמך ושליחת דואר נוסף לשאול אם הוא יתמך לא יעזור. + פעם שלישית? למעשה, אפשר לכתוב אמולטור ברז המבוסס על tun שיוסיף מידע שכבה2 על שליחה ויסיר מידע על שכבה2 בקבלה. אבל אמולטור הברז הזה יצטרך גם ליישם ARP ואולי לקוח DHCP. אני לא מודע לכך שמישהו עושה עבודה בכיוון הזה. צור איתי קשר אם אתה רוצה להתחיל לקוד על זה. + שאלות נפוצות + העתקת ערכי יומן רישום + כדי להעתיק דפוס ערך כניסה יחיד, לחץ לחיצה ארוכה על ערך יומן. כדי להעתיק/לשלח יומן שלם השתמש באפשרות שלח יומן רישום. השתמש בלחצן תפריט חומרה אם אינם גלויים בממשק המשתמש. + קיצור דרך להפעלה + אתה יכול למקם קיצור דרך להפעלת OpenVPN בשולחן העבודה שלך. בהתאם לתוכנית מסך הבית שלך תצטרך להוסיף קיצור דרך או ווידג\'ט. + הרום שלך לא תומכת ב-VPNService API, סליחה :( + הצפנה + הזן שיטת הצפנה + הזן את אלגוריתמי ההצפנה של הצפנת הנתונים המשמשים את OpenVPN מופרדים על ידי: (--data-ciphers). השאר ריק כדי להשתמש בברירת המחדל של AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305. + הזן את תקציר האימות המשמש עבור OpenVPN. השאר ריק כדי להשתמש תצורת ברירת המחדל. + אימות/הצפנה + סייר קבצים + קובץ מוטבע + שגיאה בייבוא קובץ + לא היתה אפשרות לייבא קובץ מערכת הקבצים + [[נתוני קובץ מוטבע]] + מסרב לפתוח התקן Tun ללא נתוני ה-IP + ייבוא פרופיל מקובץ ovpn + ייבוא + לא ניתן לקרוא פרופיל לייבוא + שגיאה בקריאת קובץ תצורה + הוספת פרופיל + לא היתה אפשרות למצוא את הקובצים %1$s המוזכרים בקובץ ההגדרות המיובא + ייבוא קובץ תצורה מהמקור %1$s + לתצורה שלך היו כמה אפשרויות תצורה שאינן ממפות לתצורות ממשק משתמש. אפשרויות אלה נוספו כאפשרויות תצורה מותאמות אישית. התצורה המותאמת אישית מוצגת להלן: + סיום קריאת קובץ הגדרות. + אל תבצע איגוד כתובת מקומית, ופורט + אין איגוד מקומי + ייבוא קובץ תצורה + הגדרות ביטחון + "מכיוון ש-OpenVPN רגיש לאבטחה, כמה הערות לגבי אבטחה הן הגיוניות. כל הנתונים בכרטיס ה-sdcard אינם מאובטחים מטבעם. כל אפליקציה יכולה לקרוא אותם (לדוגמה, תוכנית זו אינה דורשת זכויות מיוחדות של כרטיס sd). ניתן לקרוא את הנתונים של האפליקציה הזו רק ע\"י האפליקציה עצמה. ע\"י שימוש באפשרות הייבוא של cacert/cert/key בתיבת הדו-שיח של הקובץ הנתונים מאוחסנים בפרופיל ה-VPN. פרופילי ה-VPN נגישים רק ע\"י אפליקציה זו. (לא לשכוח למחוק את העותקים בכרטיס ה-sd לאחר מכן). למרות שהאפליקציה הזו נגישה רק על ידי אפליקציה זו, הנתונים עדיין לא מוצפנים. על ידי שורש הטלפון או ניצול אחר ייתכן שניתן יהיה לאחזר את הנתונים. סיסמאות שמורות מאוחסנות גם בטקסט רגיל. עבור קבצי pkcs12 מומלץ מאוד לייבא אותם למאגר המפתחות של אנדרואיד." + ייבוא + שגיאה בהצגת בחירת האישור + יש חריג בניסיון להציג את תיבת הדו-שיח לבחירת אישורים של Android 4.0+. זה לא אמור לקרות מכיוון שזו תכונה סטנדרטית של אנדרואיד 4.0+. אולי התמיכה ב-Android ROM שלך לאחסון אישורים שבורה + IPv4 + IPv6 + בהמתנה להודעת מצב… + פרופיל מיובא + פרופיל מיובא %d + תמונות מערכת פגומות + <p>ידוע כי תמונות רשמיות של HTC כוללות בעיית ניתוב מוזרה הגורמת לתנועה לא לזרום דרך המנהרה (ראה גם <a href=\"https://github.com/schwabe/ics-openvpn/issues/18\">גיליון 18</a> במעקב אחר באגים.)</p><p>תמונות SONY רשמיות ישנות יותר מ-Xperia Arc S ו-Xperia Ray דווחו ל חסר את VPNService לחלוטין מהתמונה. (ראה גם <a href=\"https://github.com/schwabe/ics-openvpn/issues/29\">גיליון 29</a> במעקב אחר באגים.)</p><p>בתמונות בנייה מותאמות אישית, ייתכן שמודול ה-tun חסר או שהזכויות של /dev/tun שגויות. חלק מתמונות CM9 זקוקות לאפשרות \"תקן בעלות\" תחת \"פריצות ספציפיות למכשיר\".</p><p>והכי חשוב: אם למכשיר שלך יש תמונת אנדרואיד שבורה, דווח על כך לספק שלך. ככל שיותר אנשים ידווחו על בעיה לספק, כך גדל הסיכוי שהם יפתרו אותה.</p> + מפתח קובץ הצפנה מסוג PKCS12 + סיסמת מפתח פרטי + סיסמה + סמל קובץ + אימות/הצפנה TLS + נוצר עריכה + הגדרות + מנסה להגדיר את הבעלים של /dev/tun למערכת. חלק מתמונות CM9 זקוקות לזה כדי לגרום ל- VPNService API לעבוד. דורש רוט. + תקן בעלות על /dev/tun + מציג את קובץ התצורה של OpenVPN שנוצר + „%s” בעריכה + יוצר תצורה… + הפעלת אפשרות זו תאלץ חיבור מחדש אם ישתנה מצב הרשת (למשל WiFi לנייד) + התחבר מחדש בשינוי רשת + מצב הרשת: %s + אישור \"רשות אישורים\" מוחזרת בדרך כלל מ Keystore של אנדרואיד. ציין אישור נפרד אם אתה מקבל שגיאות אימות אישור. + בחר + אישור \"רשות אישורים\" לא חזר בזמן הקריאה על פי keystore של אנדרואיד. האימות כנראה ייכשל. + מציג חלון יומן בהתחברות. ניתן לגשת חלון יומן תמיד ממציג ההודעות. + הצג חלון יומן + %10$s %9$s פועל על %3$s %1$s (%2$s), אנדרואיד %6$s (%7$s) API %4$d, ABI %5$s, (%8$s) + שגיאה חתימה עם keystore אנדרואיד המפתח %1$ s: %2$ s + שגיאה בחתימה עם אפליקציית מאמת חיצונית (%3$s): %1$s: %2$s + אזהרת חיבור VPN האומרת כי יישום זה יוכל ליירט את כל התעבורה של המערכת. כדי למנוע ניצול לרעה של חיבור ה-VPNService API.\n VPN ההודעה (סמל מפתח) מוצג גם על-ידי מערכת אנדרואיד כדי לאותת על חיבור VPN מתמשך. על כמה רומים הודעה זו מנגנת צליל. \n אנדרואיד הציג את תיבות דו-שיח אלה לצרכי בטיחות שלך, ודאג כי הם לא יכולים להיות מבוטלים. (על כמה רומים לצערינו זה כולל צליל התראה) + אזהרת חיבור והודעות קול + תרגום לעברית מאת Arne Schwabe<@shopisrael> + IP ו־DNS + בסיסי + ניתוב + הגדרות OpenVPN לא ברורות. בדרך כלל אין צורך. + מתקדם + ICS Openvpn תוצר + אין שימוש בשרתי DNS. ייתכן שרזולוציית השם לא תעבוד. שקול להגדיר שרתי DNS מותאמים אישית. שים לב גם ש-אנדרואיד תמשיך להשתמש בהגדרות ה-פרוקסי שלך שצוינו עבור חיבור הנייד/וואי-פיי שלך כאשר לא מוגדרים שרתי DNS. + לא ניתן להוסיף שרת DNS \"%1$s\", נדחה על ידי המערכת: %2$s + לא ניתן להגדיר את כתובת ה-IP \"%1$s\", שנדחתה על ידי המערכת: %2$s + <p>קבל תצורה עובדת (נבדקה במחשב שלך או הורדה מהספק/ארגון שלך)</p><p>אם מדובר בקובץ בודד ללא קבצי pem/pkcs12 נוספים, תוכל לשלוח את הקובץ בדוא\"ל בעצמך ולפתוח את הקובץ המצורף. אם יש לך מספר קבצים שים אותם בכרטיס ה-SD שלך.</p><p>לחץ על הקובץ המצורף למייל/השתמש בסמל התיקייה ברשימת ה-vpn כדי לייבא את קובץ התצורה</p><p>אם יש שגיאות לגבי קבצים חסרים, שים את הקבצים החסרים בכרטיס ה-SD שלך.</p><p>לחץ על סמל השמירה כדי להוסיף את ה-VPN המיובא לרשימת ה-VPN שלך</p><p>חבר את ה-VPN על ידי לחיצה על שם ה-VPN</p><p>אם יש שגיאה או אזהרות ביומן נסה להבין את האזהרות/שגיאה ונסה לתקן אותם</p> + התחלה מהירה + נסה לטעון את מודול ליבת tun.ko לפני שתנסה להתחבר. צריך מכשירים עם רוט. + טעינת מודול tun + ייבא PKCS12 מהתצורה לחנות המפתחות של אנדרואיד + שגיאה בהשגת הגדרות פרוקסי: %s + שימוש בפרוקסי %1$s %2$s + להשתמש במתווך המערכת + השתמש בתצורה הרחבה של המערכת עבור פרוקסי HTTP/HTTPS כדי להתחבר. + OpenVPN יחבר את ה-VPN שצוין אם הוא היה פעיל באתחול המערכת. אנא קרא את השאלות הנפוצות בנושא אזהרת חיבור לפני השימוש באפשרות זו ב-אנדרואיד < 5.0. + התחברות עם ההפעלה + התעלם + הפעלה מחדש + שינויי תצורה מוחלים לאחר הפעלה מחדש של ה-VPN. (מחדש) להפעיל את ה-VPN עכשיו? + תצורה השתנתה + לא ניתן לקבוע את הפרופיל האחרון המחובר לעריכה + התראות כפולות + אם אנדרואיד נמצא בלחץ זיכרון מערכת (RAM), אפליקציות ושירותים שאינם נחוצים כרגע יוסרו מהזיכרון הפעיל. זה מפסיק חיבור VPN מתמשך. כדי להבטיח שהחיבור/OpenVPN ישרוד השירות פועל בעדיפות גבוהה יותר. כדי לפעול בעדיפות גבוהה יותר, האפליקציה חייבת להציג הודעה. סמל התראת המפתח מוטל על ידי המערכת כמתואר בערך השאלות הנפוצות הקודם. זה לא נחשב כהתראה לאפליקציה לצורך הפעלה בעדיפות גבוהה יותר. + לא הוגדרו פרופילי VPN. + השתמש בסמל <img src=\"ic_menu_add\"/> כדי להוסיף VPN חדש + השתמש בסמל <img src=\"ic_menu_archive\"/> כדי לייבא פרופיל קיים (.ovpn או .conf) מכרטיס ה-sdcard שלך. + הקפד לבדוק גם את השאלות הנפוצות. יש מדריך להתחלה מהירה. + הגדרות ניתוב/מנשק + הניתוב ותצורת הממשק לא נעשים באמצעות פקודות ifconfig/route המסורתיות אלא באמצעות ה-API של VPNService. כתוצאה מכך תצורת ניתוב שונה מאשר במערכות הפעלה אחרות. \nהתצורה של מנהרת ה-VPN מורכבת מכתובת ה-IP והרשתות שיש לנתב על פני ממשק זה. במיוחד, אין צורך או נדרש כתובת שותף עמית או כתובת שער. גם מסלולים מיוחדים להגיע לשרת ה-VPN (לדוגמה הוסיפו בעת שימוש ב-redirect-gateway) אינם נחוצים. כתוצאה מכך, היישום יתעלם מהגדרות אלה בעת ייבוא תצורה. האפליקציה מבטיחה עם VPNService API שהחיבור לשרת לא מנותב דרך מנהרת ה-VPN.\nה-API של VPNService אינו מאפשר לציין רשתות שאסור לנתב באמצעות ה-VPN. כדרך לעקיפת הבעיה, האפליקציה מנסה לזהות רשתות שאסור לנתב עליהן דרך מנהרה (למשל מסלול xxxx yyyy net_gateway) ומחשבת קבוצה של מסלולים שמוציאה את המסלולים האלה כדי לחקות את ההתנהגות של פלטפורמות אחרות. חלונות היומן מציגים את התצורה של VPNService עם יצירת חיבור.\nמאחורי הקלעים: אנדרואיד 4.4+ אכן משתמש בניתוב מדיניות. שימוש ב-route/ifconfig לא יציג את המסלולים המותקנים. במקום זאת השתמש בכלל ip, iptables -t mangle -L + אל תחזור ללא חיבור VPN כאשר OpenVPN מתחבר מחדש. + tun קבוע + יומן OpenVPN + ייבא הגדרות של OpenVPN + צריכת סוללה + בבדיקות האישיות שלי הסיבה העיקרית לצריכת סוללה גבוהה של OpenVPN הן מנות Keepalive. לרוב שרתי OpenVPN יש הנחיית תצורה כמו \'keepalive 10 60\' שגורמת ללקוח ולשרת להחליף מנות Keepalive כל עשר שניות. <p> מנות אלו אמנם קטנות ואינן משתמשות בתעבורה רבה, אך הן מעסיקות את רשת הרדיו הנייד ומגדילות את צריכת האנרגיה. (ראה גם <a href=\"https://developer.android.com/training/efficient-downloads/efficient-network-access.html#RadioStateMachine\">The Radio State Machine | מפתחי אנדרואיד</a>) <p> לא ניתן לשנות את ההגדרה Keepalive זו בלקוח. רק מנהל המערכת של OpenVPN יכול לשנות את ההגדרה. <p> לרוע המזל, שימוש ב-Keealive של יותר מ-60 שניות עם UDP עלול לגרום לשערי NAT מסוימים להפסיק את החיבור עקב פסק זמן של חוסר פעילות. השימוש ב-TCP עם פסק זמן ארוך של שמירה על החיים עובד, אבל ביצוע מנהור של TCP על TCP מתפקד בצורה גרועה ביותר בחיבורים עם אובדן מנות גבוה. (ראה <a href=\"http://sites.inka.de/bigred/devel/tcp-tcp.html\">מדוע TCP מעל TCP הוא רעיון רע</a>) + תכונת ה-Android Tethering (על WiFi, USB או Bluetooth) וממשק ה-API של VPNService (בשימוש על ידי תוכנית זו) אינם פועלים יחד. לפרטים נוספים עיין בגיליון <a href=\"https://github.com/schwabe/ics-openvpn/issues/34\">#34</a> + VPN וקשירה + ניסיונות חיבור מחדש + הגדרות חיבור מחדש + מספר השניות להמתנה בין ניסיונות החיבור. + שניות בין חיבורים + OpenVPN התרסק באופן בלתי צפוי. אנא שקול לשלוח לנו דיווח בתפריט הראשי + שלח דיווח למפתחים + שולח מידע איתור באגים על הקריסה האחרונה למפתח + OpenVPN - %s + %1$s - %2$s + %1$s - %3$s, %2$s + מתחבר + מחכה לתשובה משרת + מאמת + מקבל תצורת לקוח + מוקצות כתובות IP + נוספים ניתובים + מחובר + ניתוק + התחברות מחדש + יציאה + אינו פועל + פתרון שמות מארחים + מתחבר (TCP) + אימות נכשל + ממתין לרשת שמישה + מחכה Orbot יתחיל + ↓%2$s %1$s - ↑%4$s %3$s + לא מחובר + מתחבר ל-VPN %s + מתחבר ל-VPN %s + בחלק מהגרסאות של Android 4.1 יש בעיות אם שם אישור מאגר המפתחות מכיל תווים לא אלפאנומריים (כמו רווחים, קווים תחתונים או מקפים). נסה לייבא מחדש את האישור ללא תווים מיוחדים + צופן הצפנה + אימות מנות + נא למלא את שיטת אימות המנות + נבנה על ידי %s + מהדורה לפיתוח + מהדורה רשמית + העתקה לפרופיל + היטל קריסה + הוספה + שליחת קובץ הגדרות + DN מלא + התצורה המיובאת שלך השתמשה באפשרות הישנה של DEPRECATED tls-remote המשתמשת בפורמט DN אחר. + RDN (שם נפוץ) + קידומת RDN + tls-remote (לא בשימוש עוד) + אתה יכול לעזור בתרגום על ידי ביקור בכתובת https://crowdin.net/project/ics-openvpn/invite + %1$s ניסיונות לשלוט ב %2$s + אם תמשיך, אתה נותן לאפליקציה הרשאה לשלוט לחלוטין ב-OpenVPN עבור אנדרואיד וליירט את כל תעבורת הרשת.אל תאשר אלא אם כן אתה סומך על הבקשה. אחרת, אתה מסתכן שהנתונים שלך ייפגעו על ידי תוכנה זדונית.\" + היישומון הזה מהימן. + אין אפליקציה מורשית להשתמש ב-API חיצוני + יישומונים מורשים: %s + לנקות רשימה של אפליקציות חיצוניות מותרות?\nרשימה נוכחית של אפליקציות מותרות:\n\n%s + השהה את ה-VPN כאשר המסך כבוי ופחות מ-64 קילובייט מועברים נתונים ב-60s. כאשר אפשרות ה-\"Persistent Tun\" מופעלת, השהיית ה-VPN תשאיר את המכשיר שלך ללא קישוריות רשת. ללא אפשרות \"Persistent Tun\" למכשיר לא יהיה חיבור/הגנה VPN. + השהה את חיבור ה-VPN לאחר כיבוי המסך + השהיית חיבור במצב כבוי מסך: פחות מ %1$s בשנייה %2$s + אזהרה: התאמה מתמשכת לא מופעלת עבור VPN זה. התנועה תשתמש בחיבור האינטרנט הרגיל כשהמסך כבוי. + שמירת סיסמה + השהה VPN + המשך VPN + השהיית VPN התבקשה על ידי המשתמש + VPN מושהה – מסך כבוי + פריצות למכשיר + לא ניתן להציג מידע על אישור + התנהגות יישום + התנהגות VPN + אפשר שינויים בפרופילי VPN + מאגר מפתחות חומרה: + סמל של אפליקציה שמנסה להשתמש ב-OpenVPN עבור אנדרואיד + "החל מ-Android 4.3 אישור ה-VPN נשמר מפני \"תצוגת מעל אפליקציות\". כתוצאה מכך תיבת הדו-שיח לא מגיבה לקלט מגע. אם יש לך אפליקציה שמשתמשת בתצוגת-על היא עלולה לגרום להתנהגות זו. אם תמצא אפליקציה פוגעת פנה למחבר של האפליקציה. בעיה זו משפיעה על כל יישומי ה-VPN באנדרואיד 4.3 ואילך. ראה גם <a href=\"https://github.com/schwabe/ics-openvpn/issues/185\">גיליון 185<a> לפרטים נוספים" + דו-שיח אישור VPN + לחלופין, תוכל לשלוח לי תרומה באמצעות חנות Play: + תודה שתרמת %s! + יומן נוקה. + הצגת סיסמה + שגיאת גישה למחזיק מפתחות: %s + קצר + ISO + חותמות זמן + ללא + העלה + הורדה + מצב VPN + הצגת אפשרויות + חריג לא מטופל: %1$s \n\n %2$s + %3$s: %1$s\n\n%2$s + אם ביצעתה רוט למכשיר האנדרואיד שלך, אתה יכול להתקין את <a href=\"http://xposed.info/\">Xposed framework</a> ו <a href=\"http://repo.xposed.info/module/de.blinkt.vpndialogxposed\">VPN Dialog confirm module</a> על אחריותך בלבד\" + רישיונות מלאים + רשתות המחוברות ישירות לממשקים המקומיים לא ינותבו דרך ה-VPN. ביטול הבחירה באפשרות זו יפנה מחדש את כל התעבורה המיועדת לרשתות מקומיות ל-VPN. + מעקף VPN עבור רשתות מקומיות + קובץ שם משתמש/סיסמה + [מיובא מ: %s] + חלק מהקבצים לא נמצאו. אנא בחר את הקבצים לייבא את הפרופיל: + כדי להשתמש באפליקציה זו אתה צריך ספק VPN/שער VPN התומך ב-OpenVPN (לרוב מסופק על ידי המעסיק שלך). בדוק https://community.openvpn.net/ למידע נוסף על OpenVPN וכיצד להגדיר שרת OpenVPN משלך. + יומן ייבוא: + טופולוגיית VPN \"%3$s\" צוינה אבל ifconfig %1$s %2$s נראה יותר כמו כתובת IP עם מסיכת רשת. בהנחה של טופולוגיה של \"רשת משנה\". + ערך עקיפת ה-MSS חייב להיות מספר שלם בין 0 ל-9000 + ערך עקיפת ה-MTU חייב להיות מספר שלם בין 64 ל-9000 + עוקף את ערך MSS של מטען TCP + הגדר MSS של מטען TCP + התנהגות הלקוח + נקה אפליקציות חיצוניות מותרות + טוען… + אפליקציות VPN מותרות: %1$s + אפליקציות VPN אסורות: %1$s + חבילה %s אינה מותקנת יותר, ומסירה אותה מרשימת ההיתרים/אסור האפליקציה + ה-VPN משמש עבור כל האפליקציות אך לא יכלול נבחרות + VPN משמש רק עבור אפליקציות נבחרות + אפשר לאפליקציות לעקוף את ה-VPN + להסיר את ערך השרת המרוחק? + שמור + מחק + הוסף שלט חדש + השתמש בערכי חיבור בסדר אקראי בעת חיבור + עליך להגדיר ולאפשר לפחות שרת מרוחק אחד. + רשימת שרתים + אפליקציות מותרות + הגדרות מתקדמות + אפשרויות מטען + הגדרות TLS + לא הוגדר שלט + שכפל פרופיל VPN + שכפול פרופיל: %s + הצג יומן + קיימים מספר לקוחות OpenVPN עבור אנדרואיד. הנפוצים שבהם הם OpenVPN עבור אנדרואיד (לקוח זה), OpenVPN Connect והגדרות OpenVPN.<p>ניתן לקבץ את הלקוחות לשתי קבוצות: OpenVPN לאנדרואיד ו-OpenVPN Connect משתמשים ב-API הרשמי של VPNService (Android 4.0+) ואינם דורשים שורש והגדרות OpenVPN המשתמשות ב-root.<p>OpenVPN עבור אנדרואיד הוא לקוח קוד פתוח ופותח על ידי Arne Schwabe. הוא מכוון למשתמשים מתקדמים יותר ומציע הגדרות רבות ויכולת לייבא פרופילים מקבצים ולהגדיר/לשנות פרופילים בתוך האפליקציה. הלקוח מבוסס על גרסת הקהילה של OpenVPN. הוא מבוסס על קוד המקור של OpenVPN 2.x. ניתן לראות בלקוח זה כלקוח חצי רשמי של הקהילה. <p>OpenVPN Connect הוא לקוח ללא קוד פתוח שפותח על ידי OpenVPN Technologies, Inc. הלקוח מסומן כלקוח לשימוש כללי וממוקד יותר למשתמש הממוצע ומאפשר ייבוא של פרופילי OpenVPN. לקוח זה מבוסס על יישום מחדש של OpenVPN C++ של פרוטוקול OpenVPN (זה נדרש כדי לאפשר ל-OpenVPN Technologies, Inc לפרסם אפליקציית iOS OpenVPN). לקוח זה הוא הלקוח הרשמי של טכנולוגיות OpenVPN <p> OpenVPN Settings הוא הוותיק מבין הלקוחות וגם ממשק משתמש עבור OpenVPN בקוד פתוח. בניגוד ל-OpenVPN לאנדרואיד הוא דורש שורש ואינו משתמש ב-API של VPNService. זה לא תלוי באנדרואיד 4.0+ + הבדלים בין לקוחות OpenVPN Android + התעלמות ממסלול ריבוי שידור: %s + אנדרואיד תומך רק בנתיבי CIDR ל-VPN. מכיוון שכמעט אף פעם לא נעשה שימוש במסלולים שאינם CIDR, OpenVPN עבור אנדרואיד ישתמש ב-/32 עבור מסלולים שאינם CIDR ויוציא אזהרה. + שיתוף האינטרנט פועל בזמן שה-VPN פעיל. החיבור המקושר לא ישתמש ב-VPN. + גרסה מוקדמת של KitKat הגדירה ערך MSS שגוי בחיבורי TCP (#61948). נסה להפעיל את אפשרות mssfix כדי לעקוף את הבאג הזה. + אנדרואיד תמשיך להשתמש בהגדרות ה-פרוקסי שצוינו עבור חיבור הנייד/וואי-פיי כאשר לא מוגדרים שרתי DNS. OpenVPN עבור אנדרואיד יזהיר אותך על כך ביומן.

כאשר VPN מגדיר שרת DNS אנדרואיד לא ישתמש בפרוקסי. אין API להגדיר פרוקסי עבור חיבור VPN.

+ ה-IP של הלקוח המוגדר וכתובות ה-IP במסיכת הרשת שלו אינם מנותבים ל-VPN. OpenVPN עוקף את הבאג הזה על ידי הוספה מפורשת של מסלול התואם ל-IP של הלקוח ולמסכת הרשת שלו + פתיחת מכשיר tun בזמן שהתקן tun אחר פעיל, המשמש לתמיכה ב-persist-tun, קורסת את VPNServices במכשיר. נדרש אתחול כדי לגרום ל-VPN לעבוד שוב. OpenVPN לאנדרואיד מנסה להימנע מפתיחה מחדש של מכשיר ה-tun ובמידת הצורך תחילה סוגר את ה-TUN הנוכחי לפני פתיחת מכשיר ה-TUN החדש כדי להימנע מקריסה. זה עלול להוביל לחלון קצר שבו מנות נשלחות דרך החיבור שאינו VPN. אפילו עם פתרון זה, VPNServices לפעמים קורסים ודורשים אתחול מחדש של המכשיר. + VPN לא עובד בכלל עבור משתמשים משניים. + "משתמשים מרובים מדווחים שהחיבור הסלולרי/חיבור הנתונים הסלולרי נותק לעתים קרובות בזמן השימוש באפליקציית VPN. נראה שההתנהגות משפיעה רק על שילוב של ספק סלולרי/מכשיר, ועד כה לא ניתן היה לזהות סיבה/מעקף לבאג." + ניתן להגיע רק ליעד דרך ה-VPN שניתן להגיע אליהם ללא VPN. IPv6 VPNs לא עובדים בכלל. + מסלולים שאינם CIDR + התנהגות פרוקסי עבור VPNs + %s ומעלה + עותק של %s + נתב אל כתובת ה-IP המוגדרת + ערך MSS שגוי עבור חיבור VPN + משתמשי טאבלט משניים + ציין אפשרויות ספציפיות לחיבור מותאם אישית. השתמש בזהירות + אפשרויות מותאמות אישית + הסר את רשומת החיבור + ניתוק אקראי מהרשת הסלולרית + לא ניתן להגיע לרשתות מרוחקות + מצב tun תמיד + %s ואילך + חיבורים נכשלים עם SSL23_GET_SERVER_HELLO:כשל בלחיצת יד התראה sslv3 + OpenVPN חדשות יותר עבור גרסאות אנדרואיד (0.6.29/מרץ 2015) משתמשות בברירת מחדל מאובטחת יותר עבור חבילות הצופן המותרות (tls-cipher \"DEFAULT:!EXP:!PSK:!SRP:!kRSA\"). למרבה הצער, השמטת חבילות הצופן הפחות מאובטחות וחבילות הצופן הייצוא, במיוחד השמטת חבילות הצופן שאינן תומכות ב-Perfect Forward Secrecy (דיפי-הלמן) גורמת לכמה בעיות. זה נגרם בדרך כלל על ידי ניסיון עם כוונות טובות אך מבוצעות בצורה גרועה לחזק את אבטחת TLS על ידי הגדרת צופן tls בשרת או כמה מערכת הפעלה משובצת עם SSL מופשט (למשל MikroTik).\nכדי לפתור את הבעיה הזו, הגדר את הגדרות ה-tls-cipher בשרת לברירת מחדל סבירה כמו tls-cipher \"DEFAULT:!EXP:!PSK:!SRP:!kRSA\". כדי לעקוף את הבעיה בלקוח הוסף את האפשרות המותאמת אישית tls-cipher DEFAULT בלקוח אנדרואיד. + פרופיל זה נוסף מאפליקציה חיצונית (%s) וסומן כלא ניתן לעריכה על ידי המשתמש. + רשימת ביטולי אישורים + הפעלה מחדש של שירות OpenVPN (האפליקציה קרסה כנראה או הופסקה בגלל לחץ זיכרון) + ייבוא התצורה יצר שגיאה, לא ניתן לשמור אותה + חפש + (ההשלכה האחרונה היא בת %1$d:%2$dשעה (%3$s)) + נקה יומן בחיבור חדש + פסק זמן לחיבור + לא נוספה אפליקציה מותרת. הוספנו בעצמנו (%s) כדי שיהיה לנו לפחות אפליקציה אחת ברשימת האפליקציות המותרות כדי לא לאפשר את כל האפליקציות + OpenVPN עבור אנדרואיד יכול לנסות לגלות את הקבצים החסרים בכרטיס ה-sdcard באופן אוטומטי. הקש על הודעה זו התחל את בקשת ההרשאה. + פרוטוקול + מופעל + הרשאת VPN בוטלה על ידי מערכת ההפעלה (כניראה, תוכנת VPN אחרת הופעלה), VPN נעצר + דחף מידע על עמיתים + שלח מידע נוסף לשרת, למשל גרסת SSL וגרסת אנדרואיד + צריך %1$s + נא למלא סיסמה לפרופיל %1$s + השתמש בנתונים מוטבעים + ייצוא קובץ תצורה + קובץ tls-auth חסר + חסר אישור משתמש או קובץ מפתח אישור משתמש + רשימת ביטולי אישורים (אופציונלי) + קרא מחדש (%d) פריטי יומן מקובץ מטמון יומן + למרות שטלפונים של סמסונג הם בין מכשירי האנדרואיד הנמכרים ביותר, הקושחה של סמסונג היא גם בין קושחות האנדרואיד הכי באגיות. הבאגים אינם מוגבלים לפעולת ה-VPN במכשירים אלה, אך ניתן לעקוף רבים מהם. בהמשך מתוארים חלק מהבאגים הללו.\n\nDNS אינו פועל אלא אם כן שרת ה-DNS בטווח ה-VPN.\n\nבמכשירים רבים של Samsung 5.x תכונת היישומים המותרים/אסורים לא פועלת.\nב-Samsung 6.x דווח כי VPN אינו פועל אלא אם אפליקציית ה-VPN פטורה מתכונות Powersave. + טלפונים של סמסונג + לא נבחר VPN. + VPN ברירת מחדל + VPN בשימוש במקומות שבהם יש צורך ב-VPN ברירת מחדל. אלה נמצאים כעת באתחול, עבור Always-On ואריח ההגדרות המהירות. + VPN שנבחר כעת: \'%s\' + התחבר מחדש + החלף VPN + התחבר ל %s + נתק %s + הזן את הזמן המקסימלי בין ניסיונות החיבור. OpenVPN יעלה לאט את זמן ההמתנה שלו לאחר ניסיון חיבור לא מוצלח עד לערך זה. ברירת המחדל היא 300s. + זמן מקסימלי בין ניסיונות חיבור + המתנה של %s שניות בין ניסיון החיבור + רשתות נוספות .. -> VPNS]]> + החיבור ל־OpenVPN נסגר (%s) + שנה מיון + סוג + פרופילים ממוינים לפי שימוש לאחרונה + פרופילים ממוינים לפי שם + Config משתמש באפשרות tls-remote שהוצאה משימוש ב-2.3 והוסרה לבסוף ב-2.4 + התנהגות ב-AUTH_FAILED + תרשים + השתמש בסולם לוגריתמי + אין מספיק נתונים + ממוצע לשעה + ממוצע לדקה + 5 הדקות האחרונות + נכנס + יוצא + %.0f סיבית/יות + %.1f kbit/s + %.1f Mbit/s + %.1f Gbit/s + <p>החל מגרסה 1.1 של OpenSSL, OpenSSL דוחה חתימות חלשות בתעודות כמו + MD5. בנוסף עם OpenSSL 3.0 חתימות עם SHA1 נדחות גם כן.</p><p> + עליך לעדכן את אישורי + VPN בהקדם האפשרי שכן SHA1 גם לא יעבוד יותר בפלטפורמות אחרות בעתיד הקרוב.</p> + <p>אם אתה באמת רוצה להשתמש בתעודות ישנות ושבורות בחר \"לא מאובטח\" עבור פרופיל האבטחה TLS תחת אימות/הצפנה של הפרופיל</p> + + %.0f B + %.1f kB + %.1f MB + %.1f GB + סטטיסטיקת חיבור + סטטיסטיקה עדכנית של חיבור ה־OpenVPN הפעיל + שינוי מצב חיבור + שינויי סטטוס של חיבור OpenVPN (חיבור, אימות,…) + Hash חלש (MD5) בחתימת אישור (SSL_CTX_use_certificate md חלש מדי) + בדיקת מהירות OpenSSL + שמות צופן OpenSSL + בדיקת מהירות קריפטו של OpenSSL + OpenSSL החזיר שגיאה + מבחן ריצה… + בדוק אלגוריתמים נבחרים + אפליקציה חיצונית מנסה לשלוט ב %s. לא ניתן לקבוע את האפליקציה המבקשת גישה. מתן אישור לאפליקציה זו מעניק לכל האפליקציות גישה. + היישום OpenVPN 3 C++ אינו תומך במפתחות סטטיים. אנא שנה ל-OpenVPN 2.x תחת הגדרות כלליות. + שימוש בקבצי PKCS12 ישירות עם יישום OpenVPN 3 C++ אינו נתמך. נא לייבא את קבצי pkcs12 למאגר המפתחות של אנדרואיד או שנה ל-OpenVPN 2.x תחת הגדרות כלליות. + פרוקסי + ללא + Tor (Orbot) + יישום OpenVPN 3 C++ אינו תומך בחיבור באמצעות Proxy Socks + לא ניתן למצוא את אפליקציית Orbot. אנא התקן את Orbot או השתמש באינטגרציה ידנית של Socks v5. + API מרוחק + OpenVPN לאנדרואיד תומך בשני ממשקי API מרוחקים, API מתוחכם המשתמש ב-AIDL (remoteEXample במאגר git) ואחד פשוט באמצעות Intents. <p>דוגמאות לשימוש ב-adb shell והכוונות. החלף את שם הפרופיל שלך בשם הפרופיל שלך<p><p> adb shell am start-activity -a android.intent.action.MAIN de.blinkt.openvpn/.api.DisconnectVPN<p> adb shell am start-activity -a android.intent.action.MAIN - e de.blinkt.openvpn.api.profileName Blinkt de.blinkt.openvpn/.api.ConnectVPN + אפשר אימות פרוקסי + לא ניתן להשתמש בהצהרת http-proxy-option נוספת ובשילוב Orbot בו-זמנית + מידע מהשרת: ‚%s’ + נדרשת פעולה מהמשתמש + חיבור OpenVPN דורש קלט משתמש, למשל אימות שני פקטור + + + יש לפתוח את הכתורת כדי להמשיך באימות ה־VPN + ענה לאתגר להמשיך באימות VPN + בהמתנה לאימות + תכנית אימות חיצונית + הגדרה + לא מוגדר מאמת חיצוני + חסום חיבור שאינו VPN (\"Killswitch\") + לעתים קרובות רצוי לחסום חיבורים ללא VPN. אפליקציות אחרות משתמשות לעתים קרובות במונחי שיווק כמו \"Killswitch\" או \"מנהרה חלקה\" עבור תכונה זו. OpenVPN והאפליקציה הזו מציעות persist-tun, תכונה ליישום פונקציונליות זו.<p>הבעיה עם כל השיטות הללו שמציעות אפליקציות היא שהן יכולות לספק את מיטב המאמצים והן אינן פתרונות מלאים. באתחול, קריסת אפליקציה ומקרי פינות אחרים, האפליקציה לא יכולה להבטיח שהחסימה הזו של חיבור ללא VPN עובד. ובכך נותן למשתמש תחושת ביטחון מזויפת.<p>הדרך האמינה היחידה <b>להבטיח</b> שאינם VPN חסומים היא להשתמש ב-Android 8.0 ואילך ולהשתמש בהגדרה \"חסום חיבורים ללא VPN\" שניתן למצוא תחת הגדרות > רשת & אינטרנט > מתקדם/VPN > OpenVPN עבור Android > אפשר VPN תמיד פועל, אפשר חסימת חיבורים ללא VPN + אפשרות זו מורה לאנדרואיד לא לאפשר פרוטוקולים (IPv4/IPv6) אם ה-VPN לא מגדיר כתובות IPv4 או IPv6. + חסום את IPv6 (או IPv4) אם ה-VPN לא משתמש בו + התקן אישור חדש + שם שרת AS + כתובת האתר של השרת + בקש פרופיל התחברות אוטומטי + ייבא פרופיל משרת מרוחק + ברירת המחדל של VPN לא הוגדרה. אנא הגדר את ברירת המחדל של VPN לפני הפעלת אפשרות זו. + WebView פנימי + ישנן כמה וריאציות של הודעה זו בהתאם למצב המדויק. המשותף לכולם הוא שהשרת והלקוח לא יכלו להסכים על צופן משותף. הסיבות העיקריות הן: <ul><li> אתה עדיין מסתמך על העובדה ש-OpenVPN 2.4 ומעלה אפשר BF-CBC בתצורת ברירת המחדל (אם לא הוגדר -- צופן). OpenVPN 2.5 אינו מאפשר זאת כברירת מחדל מכיוון שהוא צופן <a href=\"https://community.openvpn.net/openvpn/wiki/SWEET32\">שבור/מיושן</a>.</li><li>השרת מריץ OpenVPN 2.3 (או אפילו ישן יותר) עם --enable-small (לפחות OpenVPN בן 4-5 שנים)</li><li></ul>תצורה שבורה (למשל, אי התאמה של צופני נתונים בלקוח ובשרת)</li> <p> The <a href=\"https://github.com/OpenVPN/openvpn/blob/master/doc/man-sections/cipher-negotiation.rst\">OpenVPN חלק ידני על משא ומתן צופן</a> מסביר היטב את התרחישים השונים של משא ומתן צופן ומה לעשות במצבים אלה.<p>מכשירי TP-Link משתמשים בגרסת OpenVPN 2.3.x בת 5 שנים לפחות (ייתכן שישנה יותר) במכשירים שלהם, אפילו בדגמי 2019/2020.<p>אחרון חביב, יש ספק VPN פופולרי שיש לו שרת מקולקל שתמיד אומר שהוא משתמש ב-\'BF-CBC\' מכיוון שהמפתח שלו חשב שזה יהיה רעיון טוב ליצור תיקון ניהול צופן קנייני שאינו תואם לתקן. OpenVPN.<p>לסיכום: כל התצורות השפויות לא אמורות לקבל שגיאות אלו. אבל (חוץ מהשרת של ספק ה-VPN השבור) ניתן לשכנע את הלקוח בכל זאת להתחבר (תיקון הסימפטום ולא הבעיה האמיתית). בעת חיבור לשרתים ישנים יותר, אפשרות מצב התאימות בהגדרות הבסיסיות של VPN אמורה להיות מסוגלת לטפל ברוב בעיות התאימות הנפוצות. + בדוק טביעת אצבע של אישור עמית + (הזן את טביעת האצבע SHA256 של אישורי השרת) + פרוקסי HTTP: %1$s %2$d + אנא השתמש בתכונת ה-Always On של Android כדי להפעיל VPN בזמן האתחול. + פתח את הגדרות VPN + לחץ כאן פתח חלון כדי להזין אימות נדרש נוסף + מצב תאימות + מצב תאימות + טען ספק OpenSSL מדור קודם + פרופילים משתמש ב-BF-CBC אשר תלוי בספק OpenSSL מדור קודם (לא מופעל). + אפשר תרגומים שתרמו מהקהילה + מאפשר לתרגם את האפליקציה עם תרגומים שנתרמו על ידי הקהילה. דורש הפעלה מחדש של האפליקציה כדי להפעיל אותה. + פרופיל אבטחה של TLS +
diff --git a/main/src/ui/res/values-hu/arrays.xml b/main/src/ui/res/values-hu/arrays.xml index ef5c852f..edb8fb39 100644 --- a/main/src/ui/res/values-hu/arrays.xml +++ b/main/src/ui/res/values-hu/arrays.xml @@ -14,7 +14,7 @@ Felhasználó/Jelszó + Tanúsítványok Felhasználó/Jelszó + PKCS12 Felhasználó/Jelszó + Android - External Auth Provider + Külső Hitelesítési Szolgáltató 0 diff --git a/main/src/ui/res/values-hu/strings.xml b/main/src/ui/res/values-hu/strings.xml index 6d7bec00..1673a68c 100644 --- a/main/src/ui/res/values-hu/strings.xml +++ b/main/src/ui/res/values-hu/strings.xml @@ -356,7 +356,6 @@ Internetmegosztás működik mialatt a VPN aktív. A megosztott kapcsolat NEM fogja használni a VPN-t. A korai KitKat verzió rosszul állítja be az MSS értéket a TCP kapcsolaton (#61948). Próbálja meg engedélyezni az mssfix opciót a hiba kiküszöbölésére. Az Android továbbra is használni fogja a proxy beállításokat, amik a mobil/WiFi kapcsolathoz vannak megadva ameddig nincs beállítva DNS kiszolgáló. Az OpenVPN for Android erről figyelmeztetni fog a log-ban.

Amikor a VPN beállít egy DNS kiszolgálót, az Android nem fogja tovább használni a proxy-t. Nincs API proxy beállításra VPN kapcsolathoz.

- A VPN alkalmazások nem biztos hogy működnek ha uninstallálják majd újra installálják. A részleteket lásd #80074 A konfigurált kliens IP és a hálózati maszkjában levő IP-k útvonala nem a VPN-en keresztül vezet. Az OpenVPN úgy küszöböli ki ezt a hibát, hogy explicit hozzáad egy útvonalat ami a kliens IP és hálózati maszkjának megfelel Egy tun eszköz megnyitása, mialatt egy másik tun eszköz aktív, ami megmaradó-tun esetén használt, a VPNService összeomlását okozza az eszközön. A VPN újbóli működéséhez újraindítás szükséges. Az OpenVPN for Android megpróbálja elkerülni a tun eszköz újra megnyitását és ha valóban szükséges akkor először lezárja az aktuális TUN-t az új TUN megnyitása előtt az összeomlás elkerülése érdekében. Ez egy rövid ablakoz vezethet ami alatt csomagok továbbítódhatnak nem-VPN kapcsolaton keresztül. A VPNService ennek ellenére néha mégis összeomlik, ami az eszköz újraindítását igényli. A VPN egyáltalán nem működik másodlagos felhasználóknak. @@ -364,7 +363,6 @@ Csak azok a célállomások érhetőek el VPN-en, amik VPN nélkül is elérhetőek. Az IPv6 VPN egyáltalán nem működik. Nem CIDR Útvonalak Proxy viselkedés a VPN-ekhez - VPN alkalmazások újratelepítése %s és korábbi %s másolata Útvonal a konfigurált IP címhez diff --git a/main/src/ui/res/values-in/arrays.xml b/main/src/ui/res/values-in/arrays.xml index 8f6ebdb4..506f45fa 100644 --- a/main/src/ui/res/values-in/arrays.xml +++ b/main/src/ui/res/values-in/arrays.xml @@ -1,5 +1,4 @@ - Sertifikat - Berkas PKCS12 + File PKCS12 Android Certificate Nama Pengguna\Sandi Kunci Tetap @@ -20,7 +19,7 @@ 0 1 - Belum ditentukan + Belum ditentukan​ love Encryption (tls-crypt) TLS Crypt V2 @@ -29,4 +28,16 @@ Disconnect, keep password Abaikan, coba lagi + + Modern defaults + OpenVPN 2.5.x rekan-rekan + OpenVPN 2.4.x rekan-rekan + OpenVPN 2.3.x dan rekan-rekan yang lebih lama + + + insecure (not recommend, allows insecure crypto) + legacy (default) + disukai (disarankan tetapi kompatibilitas terbatas) + Suite B (only NIST approved elliptic curves) + diff --git a/main/src/ui/res/values-in/plurals.xml b/main/src/ui/res/values-in/plurals.xml index 4ec8c686..fd2a1275 100644 --- a/main/src/ui/res/values-in/plurals.xml +++ b/main/src/ui/res/values-in/plurals.xml @@ -1,5 +1,4 @@ - %d bulan kiri @@ -7,4 +6,10 @@ %d hari lagi + + %d jam lagi + + + %d menit lagi + diff --git a/main/src/ui/res/values-in/strings.xml b/main/src/ui/res/values-in/strings.xml index 05e09d9c..6fd33819 100644 --- a/main/src/ui/res/values-in/strings.xml +++ b/main/src/ui/res/values-in/strings.xml @@ -34,6 +34,7 @@ Alamat IPv4 Alamat IPv6 Masukan pengaturan kustom OpenVPN. Harap gunakan dengan hati-hati. Perlu dicatat bahwa pengaturan yang terkait dengan TUN OpenVPN tidak didukung oleh disain VPNSettings. Jika anda fikir ada hal penting yang belum tersedia segera hubungi pembuatnya + Nama pengguna (biarkan kosong tanpa autentikasi) Kata Sandi Untuk pengaturan tetap, kunci otentifikasi TLS akan digunakan sebagai kunci statis Konfigurasi VPN @@ -42,6 +43,7 @@ Silakan masukan nama profil yang berbeda Nama profil Anda harus memilih sertifikat pengguna + Anda harus memilih sertifikat CA atau mengaktifkan pemeriksaan sidik jari rekan Tidak ada kesalahan Konfigurasi Salah Kesalahan penulisan alamat IPV4 @@ -125,6 +127,7 @@ Gambar Anda tidak mendukung VPNService API, maaf:( Enkripsi Masukkan metode enkripsi + Masukkan algoritma enkripsi data cipher yang digunakan oleh OpenVPN dipisahkan dengan : (--data-ciphers). Biarkan kosong untuk menggunakan default AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305. Masukkan digest otentikasi yang digunakan OpenVPN. Biarkan kosong untuk menggunakan standar digest. Otentikasi/Enkripsi Penjelajah berkas @@ -356,7 +359,6 @@ Penarikan bekerja sementara VPN aktif. Ditambatkan sambungan tidak akan menggunakan VPN. Versi KitKat awal menetapkan nilai MSS salah pada TCP koneksi (# 61948). OpenVPN untuk secara otomatis mengaktifkan mssfix pilihan untuk solusi bug ini. Android akan tetap menggunakan pengaturan proxy Anda ditentukan untuk mobile koneksi / Wi-Fi ketika tidak ada server DNS diatur. OpenVPN untuk Android akan memperingatkan Anda tentang hal ini dalam log.

Ketika VPN menetapkan server DNS Android tidak akan proxy. Tidak ada API untuk mengatur proxy untuk koneksi VPN.

- Aplikasi VPN dapat berhenti bekerja ketika dihapus dan diinstal ulang lagi. Untuk jelasnya lihat # 80074 IP klien dikonfigurasi dan IP di topeng jaringan tidak diteruskan ke VPN. OpenVPN bekerja di sekitar bug ini dengan secara eksplisit menambahkan rute yang corrosponds ke IP klien dan netmask nya Membuka perangkat tun saat perangkat tun lain sedang aktif, yang digunakan untuk dukungan bertahan-tun, crash VPNServices pada perangkat. A reboot diperlukan untuk membuat pekerjaan VPN lagi. OpenVPN untuk Android mencoba untuk menghindari membuka kembali perangkat tun dan jika benar-benar diperlukan pertama menutup TUN saat sebelum membuka perangkat TUN baru untuk menghindari crash. Hal ini dapat menyebabkan jendela pendek di mana paket dikirim melalui koneksi non-VPN. Bahkan dengan solusi ini VPNServices kadang-kadang crash dan memerlukan reboot perangkat. VPN tidak bekerja sama sekali bagi pengguna sekunder. @@ -364,7 +366,6 @@ Hanya tujuan yang bisa dicapai melalui VPN yang bisa dijangkau tanpa VPN. VPN IPv6 tidak bekerja sama sekali. Rute non CIDR Tindakan Proxy untuk VPN - Menginstal ulang aplikasi VPN %s dan sebelumnya Salinan dari %s Alihkan ke alamat IP yang telah ditentukan @@ -435,6 +436,12 @@ %.1f kbit/s %.1f Mbit/s %.1f Gbit/s + <p>Starting with OpenSSL version 1.1, OpenSSL rejects weak signatures in certificates like + MD5. Additionally with the OpenSSL 3.0 signatures with SHA1 are also rejected.</p><p> + You should update the VPN certificates as soon as possible as SHA1 will also no longer work on other platforms in the + near future.</p> + <p>If you really want to use old and broken certificates select \"insecure\" for the TLS security profile under Authentication/Encryption of the profile</p> + %.0f B %.1f kB %.1f MB @@ -468,6 +475,7 @@ Buka URL untuk melanjutkan otentikasi VPN + Answer challenge to continue VPN authentication Otentikasi tertunda Pemeriksa Eksternal Konfigurasikan diff --git a/main/src/ui/res/values-it/arrays.xml b/main/src/ui/res/values-it/arrays.xml index b968a77f..74515a0e 100644 --- a/main/src/ui/res/values-it/arrays.xml +++ b/main/src/ui/res/values-it/arrays.xml @@ -28,4 +28,16 @@ Disconnetti, mantieni la password Ignora, riprova
+ + Impostazioni predefinite moderne + Peer di OpenVPN 2.5.x + Peer di OpenVPN 2.4.x + Peer di OpenVPN 2.3.x e precedenti + + + insicuro (non consigliato, consente crittografia non sicura) + legacy (predefinito) + preferito (consigliato ma compatibilità limitata) + Suite B (solo curve ellittiche approvate dal NIST) + diff --git a/main/src/ui/res/values-it/strings.xml b/main/src/ui/res/values-it/strings.xml index ade79873..a8928cad 100644 --- a/main/src/ui/res/values-it/strings.xml +++ b/main/src/ui/res/values-it/strings.xml @@ -360,7 +360,6 @@ Usa il tasto hardware Menù se non è visibile nella GUI. Le operazioni di tethering funzionano mentre la VPN è attiva. La connessione di tether NON utilizzerà la VPN. La prima versione KitKat ha impostato il valore MSS errato sulle connessioni TCP (#61948). Prova ad abilitare l\'opzione mssfix per risolvere questo problema. Android continuerà a utilizzare le impostazioni proxy specificate per la connessione mobile/Wi-Fi quando non vengono impostati server DNS. OpenVPN per Android ti avviserà in questo registro.

Quando una VPN imposta un server DNS, Android non utilizzerà un proxy. Non esistono API per impostare un proxy per una connessione VPN

- Le applicazioni VPN potrebbero smettere di funzionare durante la disinstallazione e la reinstallazione. Per dettagli vedi # 80074 L\'IP client configurato e gli IP nella maschera di rete non vengono indirizzati alla VPN. OpenVPN funziona senza questo errore aggiungendo esplicitamente un percorso che corrisponda con il client IP e con la sua maschera di rete L\'apertura di un dispositivo tun mentre è attivo un altro dispositivo tun, che viene utilizzato per il supporto persist-tun, blocca i VPNServices sul dispositivo. Un riavvio è necessario per rendere nuovamente funzionante la VPN. OpenVPN per Android tenta di evitare la riapertura del dispositivo tun e se necessario chiude l\'attuale TUN prima di aprire il nuovo dispositivo TUN per evitare il blocco. Ciò può portare ad una breve finestra in cui i pacchetti vengono inviati tramite la connessione non VPN. Anche con questa soluzione il VPNServices a volte si blocca e richiede un riavvio del dispositivo. VPN non funziona affatto per gli utenti secondari. @@ -368,7 +367,6 @@ Usa il tasto hardware Menù se non è visibile nella GUI. Solo la destinazione può essere raggiunta tramite VPN che sono raggiungibili senza VPN. La VPN IPv6 non funziona affatto. Nessuna route CIDR Modalità proxy per VPN - Reinstallazione applicazioni VPN %s e precedenti Copia di %s Percorso per l\'indirizzo IP configurato @@ -439,6 +437,12 @@ Usa il tasto hardware Menù se non è visibile nella GUI. %.1f kbit/s %.1f Mbit/s %.1f Gbit/s + <p>A partire dalla versione 1.1 di OpenSSL, OpenSSL rifiuta le firme deboli nei certificati come + MD5. Inoltre con OpenSSL 3.0 vengono rifiutate anche le firme con SHA1.</p><p> + È necessario aggiornare i certificati VPN il prima possibile in quanto SHA1 non funzionerà più anche su altre piattaforme nel + prossimo futuro.</p> + <p>Se vuoi veramente utilizzare certificati vecchi e vulnerabili, selezionare \"non sicuro\" per il profilo di sicurezza TLS in Autenticazione/Crittografia del profilo</p> + %.0f B %.1f kB %.1f MB @@ -481,6 +485,7 @@ Usa il tasto hardware Menù se non è visibile nella GUI. Questa opzione indica ad Android di non consentire i protocolli (IPv4/IPv6) se la VPN non imposta alcun indirizzo IPv4 o IPv6. Blocca IPv6 (o IPv4) se non usato dalla VPN Installa nuovo certificato + Come nome server URL del server Richiedi profilo di accesso automatico Importa profilo da server remoto @@ -489,6 +494,7 @@ Usa il tasto hardware Menù se non è visibile nella GUI. Controlla l\'impronta digitale del certificato peer (Inserisci l\'impronta digitale SHA256 dei certificati del server) Proxy HTTP: %1$s %2$d + Utilizza la funzione Always-On di Android per abilitare la VPN all\'avvio. Apri impostazioni VPN Premi qui per aprire una finestra per inserire l\'autenticazione aggiuntiva necessaria Modalità di compatibilità @@ -497,4 +503,5 @@ Usa il tasto hardware Menù se non è visibile nella GUI. Profili utilizza BF-CBC che dipende dal fornitore obsoleto OpenSSL (non attivato). Consenti le traduzioni fornite dalla community Consente la traduzione dell\'app con le traduzioni fornite dalla community. Richiede il riavvio dell\'app per l\'attivazione. + Profilo di sicurezza TLS diff --git a/main/src/ui/res/values-ja/arrays.xml b/main/src/ui/res/values-ja/arrays.xml index 1b5358d3..09e28ba9 100644 --- a/main/src/ui/res/values-ja/arrays.xml +++ b/main/src/ui/res/values-ja/arrays.xml @@ -35,4 +35,16 @@ パスワードを維持して切断 無視して再試行 + + 最新のデフォルト + OpenVPN 2.5.x peers + OpenVPN 2.4.xピア + OpenVPN 2.3.x以前のピア + + + 安全でない(非推奨、安全でない暗号を許可します) + レガシー(デフォルト) + おすすめ(推奨、ただし互換性が制限されます) + Suite B (only NIST approved elliptic curves) + diff --git a/main/src/ui/res/values-ja/strings.xml b/main/src/ui/res/values-ja/strings.xml index de4e8b45..75f36be1 100644 --- a/main/src/ui/res/values-ja/strings.xml +++ b/main/src/ui/res/values-ja/strings.xml @@ -396,7 +396,6 @@ Android 4.4以上はポリシールーティングを使用します。route/ifc テザリングはVPNが接続中でも有効です。ただしテザリングした通信はVPNを使用できません。 初期のKitKatはTCP接続において間違ったMSS値を使用します。(#61948). このバグを回避するにはmssfixオプションの有効化を試してください。 AndroidはDNSサーバの設定がされていない場合、モバイル/WiFiのプロキシ設定を使用し続けます。OpenVPN for Androidはこれについてログにて警告します。

VPNがDNSサーバを設定した場合、Androidはプロキシを使用しなくなります。VPNでプロキシを使用するよう設定するAPIは存在しません。

- VPNアプリはアンインストール/再インストール時に正常に動作しなくなることがあります。詳細は#80074を参照してください。 設定されたクライアントIPとネットマスクに含まれるIPアドレスはVPNを経由しません。OpenVPNは明示的に経路を追加することでこのバグを回避します。 ほかのTUNデバイスが使用されている間に、永続的なTUNデバイス機能のためにTUNデバイスを開こうとするとデバイス上のVPNServiceがクラッシュします。VPNが再び動作するためにはデバイスの再起動が必要です。OpenVPN for Androidはクラッシュを避けるため、新しいTUNデバイスを開く前に現在のTUNデバイスを閉じます。これは短期間、パケットが非VPN接続に送信される原因になります。この回避策があっても、VPNServiceは時々クラッシュし、デバイスの再起動が必要になります。 VPNはほかのユーザーに対しては動作しません。 @@ -404,7 +403,6 @@ Android 4.4以上はポリシールーティングを使用します。route/ifc VPNなしでも到達可能なネットワークにのみVPN経由で到達できる場合。IPv6 VPN は動作しません。 CIDR形式ではない経路 VPNとプロキシの挙動 - VPNアプリを再インストールする場合 %sおよびそれ以前 %sのコピー 設定されたIPアドレスへの経路 @@ -540,4 +538,5 @@ Android 4.4以上はポリシールーティングを使用します。route/ifc プロファイルは、OpenSSLレガシープロバイダー(有効化されていません)に依存するBF-CBCを使用します。 コミュニティが投稿した翻訳を許可する コミュニティから提供された翻訳を使用してアプリを翻訳できるようにします。有効にするには、アプリを再起動する必要があります。 + TLSセキュリティプロファイル diff --git a/main/src/ui/res/values-ko/arrays.xml b/main/src/ui/res/values-ko/arrays.xml index 08de48f4..253cf0a7 100644 --- a/main/src/ui/res/values-ko/arrays.xml +++ b/main/src/ui/res/values-ko/arrays.xml @@ -28,4 +28,16 @@ 연결 해제, 암호 유지 무시하기, 재시도 + + 최신 기본값 + OpenVPN 2.5.x 피어 + OpenVPN 2.4.x 피어 + OpenVPN 2.3.x and older peers + + + insecure (not recommend, allows insecure crypto) + 레거시 (기본값) + preferred (recommended but limited compabbility) + Suite B (only NIST approved elliptic curves) + diff --git a/main/src/ui/res/values-ko/strings.xml b/main/src/ui/res/values-ko/strings.xml index 445c2880..40191324 100644 --- a/main/src/ui/res/values-ko/strings.xml +++ b/main/src/ui/res/values-ko/strings.xml @@ -356,7 +356,6 @@ 테더링은 VPN이 활성화되어있는 동안 작동합니다. 테더링된 연결은 VPN을 사용하지 않을 것입니다. 초기 킷캣 버전은 TCP 연결에서 잘못된 MSS 값을 설정합니다(# 61948). 이 버그를 우회하려면 MSS 재정의 옵션을 활성화하십시오. Android는 DNS 서버가 설정되지 않은 경우 모바일/Wi-Fi 연결에 지정된 프록시 설정을 계속 사용합니다. OpenVPN for Android는 로그에 이에 대해 경고할 것입니다.

VPN이 DNS 서버를 설정할 때 안드로이드는 프록시를 사용하지 않을 것입니다. VPN 연결을 위한 프록시를 설정하는 API는 없습니다.

- VPN 앱이 제거되고 다시 설치되면 작동을 멈출 수 있습니다. 자세한 내용은 #80074를 참조하십시오. 구성된 클라이언트 IP와 해당 네트워크 마스크에 있는 IP들은 VPN으로 라우팅되지 않습니다. OpenVPN은 클라이언트 IP와 넷마스크에 해당하는 경로를 명시적으로 추가함으로써 이 버그를 우회합니다. 지속적인 TUN 지원에 사용되는 다른 TUN 장치가 활성화된 상태에서 한 TUN 장치를 열면 기기의 VPNServices가 죽습니다. VPN을 다시 작동 시키려면 재부팅해야 합니다. OpenVPN for Android는 TUN 장치를 다시 열지 않으려고 시도합니다. 정말 필요하면 충돌이 발생하지 않도록 새로운 TUN 장치를 열기 전에 먼저 현재 TUN을 닫습니다. 이 경우 짧은 순간 VPN이 아닌 연결을 통해 패킷이 전송될 수 있습니다. 이 우회 방법으로도 VPNServices가 죽고 기기를 재부팅해야 하는 경우가 있습니다. VPN은 부차적인 사용자에게는 전혀 작동하지 않습니다. @@ -364,7 +363,6 @@ VPN 없이 도달할 수 있는 목적지만 VPN을 통해서 도달할 수 있습니다. IPv6 VPN은 전혀 작동하지 않습니다. 비 CIDR 경로 VPN을 위한 프록시 동작 - VPN 앱들을 재설치 %s 및 이전 버전 %s의 사본 구성된 IP 주소로의 경로 @@ -472,4 +470,7 @@ External Authenticator Configure 외부 Authneticator가 구성되지 않았습니다. + 새 인증서 설치 + 서버 URL + 원격 서버에서 프로필 가져오기 diff --git a/main/src/ui/res/values-nl/arrays.xml b/main/src/ui/res/values-nl/arrays.xml index 3faa319c..de25dc10 100644 --- a/main/src/ui/res/values-nl/arrays.xml +++ b/main/src/ui/res/values-nl/arrays.xml @@ -28,4 +28,10 @@ Verbinding verbreken, wachtwoord onthouden Negeer, probeer opnieuw + + Modern defaults + OpenVPN 2.5.x peers + OpenVPN 2.4.x peers + OpenVPN 2.3.x and older peers + diff --git a/main/src/ui/res/values-nl/strings.xml b/main/src/ui/res/values-nl/strings.xml index 02222529..f0628645 100644 --- a/main/src/ui/res/values-nl/strings.xml +++ b/main/src/ui/res/values-nl/strings.xml @@ -356,7 +356,6 @@ Tethering werkt terwijl de VPN actief is. De tethered-verbinding maakt GEEN gebruik van de VPN. Vroege KitKat-versie heeft de verkeerde MSS-waarde ingesteld voor TCP-verbindingen (#61948). Probeer de mssfix-optie in te schakelen om deze bug te omzeilen. Android blijft uw proxy-instellingen gebruiken die zijn opgegeven voor de mobiel/wifi-verbinding wanneer er geen DNS-servers zijn ingesteld. OpenVPN voor Android waarschuwt u hierover in het logboek.

Wanneer een VPN een DNS-server instelt, gebruikt Android geen proxy. Er is geen API om een ​​proxy in te stellen voor een VPN-verbinding.

- VPN-apps werken mogelijk niet meer wanneer ze worden verwijderd en opnieuw worden geïnstalleerd. Voor details zie #80074 Het geconfigureerde client-IP en de IP\'s in het netwerkmask worden niet naar de VPN gerouteerd. OpenVPN werkt om deze bug heen door expliciet een route toe te voegen die overeenkomt met het IP-adres van de client en zijn netmask Als een tun-apparaat wordt geopend terwijl een ander tun-apparaat actief is, deze wordt gebruikt voor ondersteuning voor persist-tun, crasht het de VPNServices op het apparaat. Opnieuw opstarten is vereist om VPN opnieuw te laten werken. OpenVPN voor Android probeert te voorkomen dat het tun-apparaat opnieuw wordt geopend en als het echt nodig is, sluit het eerst de huidige TUN voordat het nieuwe TUN-apparaat wordt geopend om te voorkomen dat het crasht. Dit kan leiden tot een kort venster waarin pakketten via de niet-VPN-verbinding worden verzonden. Zelfs met deze tijdelijke oplossing crasht de VPNServices soms en is het opnieuw opstarten van het apparaat vereist. VPN werkt niet helemaal voor secundaire gebruikers. @@ -364,7 +363,6 @@ Alleen de bestemming kan worden bereikt via de VPN die bereikbaar is zonder VPN. IPv6 VPN\'s werken helemaal niet. Niet CIDR-routes Proxy-gedrag voor VPN\'s - Herinstalleren van VPN-apps %s en eerder Kopie van %s Route naar het geconfigureerde IP-adres diff --git a/main/src/ui/res/values-pl/arrays.xml b/main/src/ui/res/values-pl/arrays.xml index 4a59a99c..367976c6 100644 --- a/main/src/ui/res/values-pl/arrays.xml +++ b/main/src/ui/res/values-pl/arrays.xml @@ -28,4 +28,16 @@ Odłącz, zachowaj hasło Ignore, retry + + Modern defaults + rówieśnicy OpenVPN 2.5.x + rówieśnicy OpenVPN 2.4.x + OpenVPN 2.3.x i starsi rówieśnicy + + + insecure (not recommend, allows insecure crypto) + legacy (default) + preferowany (zalecana, ale ograniczona kompatybilność) + Suite B (tylko krzywe eliptyczne zatwierdzone przez NIST) + diff --git a/main/src/ui/res/values-pl/strings.xml b/main/src/ui/res/values-pl/strings.xml index 507d44f9..62899021 100644 --- a/main/src/ui/res/values-pl/strings.xml +++ b/main/src/ui/res/values-pl/strings.xml @@ -34,6 +34,7 @@ Adres IPv4 Adres IPv6 Wprowadź ustawienia niestandardowe OpenVPN. Używać z rozwagą. Należy również pamiętać, że wiele ustawień związanych z tun OpenVPN nie jest obsługiwana przez projekt VPNSettings. Jeśli uważasz, że brakuje ważnych opcji skontaktuj się z autorem + Nazwa użytkownika (pozostaw puste dla braku autoryzacji) Hasło W konfiguracji statycznej klucze uwierzytelniania TLS zostaną wykorzystane jako statyczne klucze Konfiguracja VPN @@ -42,6 +43,7 @@ Wybierz unikalną nazwę profilu Nazwa profilu Musisz wybrać certyfikat użytkownika + Musisz wybrać certyfikat CA lub włączyć sprawdzanie linii papilarnych równorzędnych Brak błędów Błąd w konfiguracji Błąd analizowania adresu IPv4 @@ -125,6 +127,7 @@ Twój obraz nie wspiera API VPN, przepraszamy ;( Szyfrowanie Wprowadź metodę szyfrowania + Enter the data encryption cipher algorithms used by OpenVPN separated by : (--data-ciphers). Leave empty to use the default of AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305. Wprowadź tryb autoryzacji używany z OpenVPN. Pozostaw puste, aby skorzystać z ustawień domyślnych. Uwierzytelnianie/Szyfrowanie Przeglądanie plików @@ -168,7 +171,7 @@ Popraw uprawnienia do /dev/tun Pokazuje wygenerowany plik konfiguracji OpenVPN Edytujesz \"%s\" - Tworzenie konfiguracji… + Tworzenie konfiguracji... Włączenie tej opcji spowoduje ponowne połączenie jeśli stan sieci się zmienił (np. z WiFi na GSM) Połącz ponownie przy zmianie sieci Stan sieci: %s @@ -357,7 +360,6 @@ Wczesne wersje KitKat ustawiają złą wartość MSS połączeń TCP (#61948). Spróbuj ustawić opcję mssfix w celu obejścia tego problemu. Android będzie używał Twoich ustawień proxy dla połączenia mobilnego/Wi-Fi kiedy nie jest sprecyzowany serwer DNS. OpenVPN dla Androida ostrzeże Cię o tym w logu.

Kiedy VPN ustawi serwer DNS Android nie będzie używał więcej proxy. Nie ma żadnego API do ustawienia proxy dla połączenia VPN.

- Aplikacje VPN mogą przestać działać po odinstalowaniu i ponownej instalacji. W celu uzyskania szczegółów zobacz #80074 Brakuje konfiguracji tras dla adresu IP klienta oraz masek podsieci. OpenVPN rozwiązuje ten problem przez dodanie trasy odpowiedniej dla adresu IP klienta i maski jego podsieci Otwieranie urządzenia tun, gdy inne urządzenie używane do obsługi persist-tun, jest otwarte, powoduje awarię VPNServices na urządzeniu. Ponowne uruchomienie urządzenia jest konieczne dla przywrócenia VPN. OpenVPN dla systemu Android próbuje uniknąć ponownego otwarcia urządzenia tun. Aby uniknąć awarii zamknij bieżący TUN przed otwarciem nowego TUN. Może to prowadzić do krótkiego momentu, gdzie pakiety są wysyłane poza siecią VPN. Nawet mimo zastosowania tego obejścia VPNServices czasami ulega awarii i wymaga ponownego uruchomienia urządzenia. VPN absolutnie nie działa dla dodatkowych użytkowników. @@ -365,7 +367,6 @@ OpenVPN dla Androida ostrzeże Cię o tym w logu.

Kiedy VPN ustawi serwer DNS Przy użyciu VPN można dotrzeć tylko do miejsc, które są osiągalne bez sieci VPN. VPN protokołu IPv6 nie działa w ogóle. Trasy nie-CIDR Zachowanie Proxy w sieci VPN - Ponowna instalacja aplikacji VPN %s i wcześniejsze Kopia %s Trasa do skonfigurowanego adresu IP @@ -436,6 +437,7 @@ OpenVPN dla Androida ostrzeże Cię o tym w logu.

Kiedy VPN ustawi serwer DNS %.1f kbit/s %.1f Mbit / s %.1f Gbit/s + <p> %.0f B %.1f kB %.1f MB @@ -470,8 +472,28 @@ OpenVPN dla Androida ostrzeże Cię o tym w logu.

Kiedy VPN ustawi serwer DNS weryfikacji Otwórz adres URL, aby kontynuować uwierzytelnianie VPN + Otwórz adres URL, aby kontynuować uwierzytelnianie VPN Oczekiwanie na uwierzytelnienie Zewnętrzne uwierzytelnienie Konfiguruj Nie skonfigurowano zewnętrznego uwierzytelnienia + 阻止非 VPN 连接(“Killswitch”) + & + Ta opcja instruuje system Android, aby nie zezwalał na protokoły (IPv4/IPv6), jeśli sieć VPN nie ustawia żadnych adresów IPv4 ani IPv6. + Blokuj IPv6 (lub IPv4), jeśli nie są używane przez VPN + Zainstaluj nowy certyfikat + JAKO nazwa_serwera + Serwer URL + Importuj profil ze zdalnego serwera + Domyślna sieć VPN nie jest ustawiona. Przed włączeniem tej opcji ustaw domyślną sieć VPN. + Użyj funkcji Always-On Androida, aby umożliwić włączenie VPN wraz ze startem systemu. + Otwórz ustawienia VPN + Kliknij tutaj, aby otworzyć okno, aby wprowadzić dodatkowe wymagane uwierzytelnienie + Tryb zgodności + Tryb zgodności + Załaduj starszego dostawcę OpenSSL + Profile używają BF-CBC, który zależy od starszego dostawcy OpenSSL (nie jest włączony). + Zezwalaj na tłumaczenia współtworzone przez społeczność + Zezwól na tłumaczenie aplikacji, wykorzystując propozycje użytkowników. Do aktywacji wymaga ponownego uruchomienie aplikacji. + Profil bezpieczeństwa TLS diff --git a/main/src/ui/res/values-pt-rBR/arrays.xml b/main/src/ui/res/values-pt-rBR/arrays.xml new file mode 100644 index 00000000..1153b6d3 --- /dev/null +++ b/main/src/ui/res/values-pt-rBR/arrays.xml @@ -0,0 +1,43 @@ + + + + + + Certificados + Arquivo PKCS12 + Certificado Android + Usuário/Senha + Chaves Estáticas + Usuário/Senha + Certificados + Usuário/Senha + PKCS12 + Usuário/Senha + Android + Provedor de Autenticação Externa + + + 0 + 1 + Não Especificado + Criptografia (Tls-crypt) + TLS Crypt V2 + + + Desconectar-se, esquecer a senha + Desconectar-se, manter a senha + Ignorar, tente novamente + + + Padrões modernos + Pares OpenVPN 2.5.x + Pares OpenVPN 2.4.xj + OpenVPN 2.3.xe pares mais antigos + + + inseguro (não recomendado, permite criptografia insegura) + legacy (default) + preferred (recommended but limited compabbility) + Suite B (only NIST approved elliptic curves) + + diff --git a/main/src/ui/res/values-pt-rBR/plurals.xml b/main/src/ui/res/values-pt-rBR/plurals.xml new file mode 100644 index 00000000..d108121d --- /dev/null +++ b/main/src/ui/res/values-pt-rBR/plurals.xml @@ -0,0 +1,19 @@ + + + + Falta um mês + %d meses restantes + + + Falta um dia + %d dias restantes + + + Falta uma hora + %d horas restantes + + + Falta um minuto + %d minutos restantes + + diff --git a/main/src/ui/res/values-pt-rBR/strings.xml b/main/src/ui/res/values-pt-rBR/strings.xml new file mode 100644 index 00000000..89ff26fd --- /dev/null +++ b/main/src/ui/res/values-pt-rBR/strings.xml @@ -0,0 +1,493 @@ + + + + OpenVPN para Android + Endereço do Servidor: + Porta: + Localização + Não foi possível ler o diretório + Selecionar + Cancelar + Não há dados + Compressão LZO + Sem Certificado + Certificado do Cliente + Chave do Certificado do Cliente + Arquivo PKCS12 + Certificado CA + Você deve selecionar um certificado + O código fonte e o rastreamento de incidentes estão disponíveis em http://code.google.com/p/ics-openvpn/ + Este programa utiliza os seguintes componentes; veja o código fonte para mais detalhes das licenças + Sobre + Perfis + Tipo + Senha do PKCS12 + Selecione... + Você deve selecionar um arquivo + Utilizar Autenticação TLS + Direção TLS + Entre o Endereço IPv6/CIDR (ex: 2000:dd::23/64) + Entre o endereço IPv4/CIDR (ex: 1.2.3.4/24) + Endereço IPv4 + Endereço IPv6 + Insira as opções personalizadas para o OpenVPN. Utilize com cuidado. Observe também que muitas das opções relacionadas ao tun do OpenVPN não podem ser suportadas pelo design do VPNSettings. Contate o autor se você acha que uma opção importante está faltando. + Nombre de usuario (Dejar vació para no identificarse) + Senha + Para a configuração estática as chaves de autenticação de TLS serão utilizadas como chaves estáticas + Configurar VPN + Adicionar Perfil + Digite um nome que identifica o novo perfil + Por favor, digite um nome de perfil único + Nome do perfil + Você deve selecionar um certificado de usuário + Você deve selecionar um certificado de CA ou habilitar a verificação de impressão digital de mesmo nível + Nenhum erro encontrado + Erro na configuração + Erro ao analisar o endereço IPv4 + Erro ao analisar as rotas personalizadas + (deixe em branco para consulta sob demanda) + Atalho do OpenVPN + Conectando à VPN… + O perfil especificado no atalho não foi encontrado + Prefixo de Host aleatório + Adiciona 6 caracteres aleatórios na frente do hostname + Habilitar opções personalizadas + Opções personalizadas. Use com cuidado! + Rota rejeitada pelo Android + Desconectar + Desconectar VPN + limpar log + Cancelar confirmação + Desconectar a VPN conectada/cancelar a tentativa de conexão? + Remover VPN + Verifica se o servidor usa um certificado com as extensões de servidor TLS (- servidor remoto-cert-TLS) + Esperar certificado do servidor TLS + Verifica o DN Subject do certificado do servidor remoto + Verificar o Hostname do Certificado + Especificar a conta usada para verificar o certificado remoto DN (por exemplo, C = DE, L = Paderborn, UO = aviária operadoras IP, CN=openvpn.blinkt.de)\n\Especificar o DN completo ou o RDN (openvpn.blinkt.de no exemplo) ou um prefixo RDN para verification.\n\nWhen usando o prefixo RDN \"Servidor\" corresponde a \"Server-1\" e \"Server-2\" \n\nDeixando vazio, o campo de texto irá verificar o RDN contra o servidor hostname.\n\nPara mais detalhes consulte a página principal do 2.3.1+ OpenVPN sob — verificar-X509-nome + Subject do certificado remoto + Permite a Autenticação de Chave TLS + Arquivo de Auth TLS + Solicitações de endereços de IP, rotas e opções de sincronização do servidor. + Nenhuma informação é solicitada do servidor. Configurações precisam ser especificadas abaixo. + Obter Configurações + DNS + Substituir as configurações de DNS pelo servidor + Use seus próprios servidores de DNS + Domínio de pesquisa + Servidor DNS a ser usado. + Servidor DNS + Servidor DNS secundário utilizado caso o servidor primário esteja inacessível. + Servidor DNS alternativo + Ignorar rotas empurradas + Ignorar rota empurrada pelo servidor. + Redireccionar todo o tráfego pela VPN + Usar rota padrão + Digite rotas personalizadas. Apenas indique destino em formato CIDR. \"10.0.0.0 / 8 2002 :: / 16\" iria dirigir as redes 10.0.0.0 / 8 e 2002 :: / 16 sobre a VPN. + As rotas que não devem ser encaminhados pelo VPN. Use a mesma sintaxe para rotas incluídas. + Rotas personalizadas + Redes excluídas + Nível de complexidade do log + Permite pacotes autenticados a partir de qualquer IP + Permitir servidor flutuante + Opções personalizadas + Editar configurações de VPN + Remover o perfil VPN \'%s\'? + Em algumas imagens ICS personalizado a permissão em / dev / tun pode estar errada, ou o módulo tun pode estar faltando completamente. Para imagens CM9 tente a opção correção propriedade sobre as configurações gerais + Falha ao abrir a interface de tun + "Erro:" + Claro + Abrindo a interface tun: + Local IPv4: %1$s/%2$d IPv6:%3$s MTU:%4$d + Servidor DNS: %1$s, domínio: %2$s + Rotas: %1$s %2$s + Rotas excluídas: %1$s %2$s + Rotas VpnService instaladas: %1$s %2$s + Existem múltiplas informações de interface, %1$s e %2$s, a aplicação assume que o segundo endereço é um endereço \'peer\' do endereço remoto. Será usada uma máscara de rede /32 para o IP local. O modo estabelecido pela OpenVPN é \"%3$s\". + Não consigo entender %1$s e %2$s como uma rota IP com máscara de rede CIDR, usando /32 como máscara de rede. + A rota %1$s/%2$s foi corrigida para %3$s/%2$s + Não é possível aceder aos certificados \'Keychain Android\'. Isso pode ter sido causado por uma atualização de firmware ou uma restauração das configurações da app/app. Será necessário editar o perfil VPN e selecionar novamente o certificado nas configurações básicas para recriar a permissão e possibilitar o acesso ao certificado. + %1$s %2$s + Enviar arquivo de log + Enviar + Ficheiro de registo do ICS OpenVPN + Entrada de registo copiada para a área de transferência + Entrada de registo copiada para a área de transferência + A API VPN não permite o modo Tap em dispositivos sem acesso root. Desta forma não é possível oferecer suporte Tap nesta aplicação + Outra vez? Você está brincando? Não, o modo tap não é suportado de maneira nenhuma e enviar mais emails perguntando se eventualmente será não irá ajudar. + Uma terceira vez? Na verdade, seria possível escrever um emulador tap baseado em tun capaz de adicionar informações referentes à camada 2 durante o envio e removê-la quando da recepção. No entanto, a esse emulador tap seria necessário implementar clientes ARP e, provavelmente, DHCP. Não conheço ninguém trabalhando com esse objetivo. Entre em contato caso conheça alguém ou deseje programar isso. + Perguntas frequentes + Copiando entradas de log + Para copiar uma única entrada de log, pressione e segure a entrada em questão. Para copiar/enviar o log completo, use a opção Enviar Log. Use o botão de menu físico, caso o botão não esteja visível na interface. + Atalho para iniciar + É possível colocar um atalho para iniciar o OpenVPN no desktop. Dependendo do programa de homescreen, será necessário adicionar um atalho ou um widget. + Sua imagem não oferece suporte a API VPNService, desculpe :( + Criptografia + Digite o método de criptografia + Insira os algoritmos de criptografia de dados usados pelo OpenVPN separados por : (--data-ciphers). Deixe em branco para usar o padrão de AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305. + Digite a autenticação digest utilizada pelo OpenVPN. Deixe em branco para usar o digest padrão. + Autenticação/Cifragem + Explorar Arquivos + Arquivo inline + Erro importando Arquivo + Não foi possível importar o ficheiro + [[Dados do ficheiro embutido]] + Recusando-se a abrir o dispositivo tun sem informações de IP + Importar Perfil a partir de um arquivo ovpn + Importar + Não foi possível ler o perfil para importação + Erro ao ler o arquivo de configuração + Adicionar perfil + Não foi possível encontrar o arquivo %1$s mencionado no arquivo de configuração importado + Importando arquivo de configuração a partir de %1$s + Sua configuração possuía algumas entradas de configuração que não possuem equivalentes na interface gráfica. Essas opções foram adicionadas como opções de configuração personalizadas. A configuração personalizada é exibida abaixo: + Leitura de arquivo de configuração terminada. + Não ligar a endereço e porta local + Não permitir ligações \'locais\' + Importar arquivo de configuração + Considerações de segurança + "Como OpenVPN é segurança sensíveis algumas notas sobre segurança são sensatas. Todos os dados no sdcard é inerentemente inseguro. Cada aplicativo pode lê-lo (por exemplo, este programa não requer direitos especiais cartão SD). Os dados desta aplicação só pode ser lido pelo próprio aplicativo. Ao usar a opção de importação para cacert / cert / chave no diálogo os dados do arquivo é armazenado no perfil de VPN. Os perfis de VPN são acessíveis apenas por esta aplicação. (Não se esqueça de apagar as cópias no sd cartão depois). Mesmo com acesso apenas por este aplicativo os dados ainda não é criptografado. torcendo por telefone ou outros exploits pode ser possível recuperar os dados. senhas salvas são armazenadas em texto simples assim. Para arquivos PKCS12 é altamente recomendável que você importá-los para o armazenamento de chaves android. " + Importar + Erro a mostrar a selecção de certificados + Tenho uma exceção tentando mostrar diálogo de seleção de certificado do Android 4.0+. Isso nunca deveria acontecer como este um recurso padrão do Android 4.0 +. Talvez seu apoio ROM Android para o armazenamento de certificado é quebrado + IPv4 + IPv6 + Aguardando a mensagem de estado... + Perfil importado + Perfil importado %d + Imagens quebradas + Wechat + Chave de crifra de ficheiros PKCS12 + Senha da chave privada + Senha + ícone de ficheiro + Autenticação/Criptografia TLS + Config gerada + Configurações + Tenta definir o dono de / dev / tun para sistema. Algumas imagens CM9 precisa disso para fazer o trabalho da API VPNService. Requer raiz. + Corrijir a propriedade de /dev/tun + Mostra o arquivo de configuração do OpenVPN gerado + A editar \"%s\" + A preparar a configuração + A ativação desta opção forçará uma reconexão se o estado da rede é alterado (por exemplo, WiFi de / para móvel) + Reconectar-se na mudança de rede + Status da rede: %s + O certificado CA geralmente é obtido a partir do armazenamento de credenciais do Android. Especifique um certificado diferente caso você encontre erros de validação do certificado. + Selecione + Nenhum certificado CA foi retornado durante a leitura do armazenamento de credenciais do Android. A autenticação poderá falhar. + Exibe a janela de registro ao conectar. A janela de registro poderá ser acessada sempre a partir da barra de notificações. + Mostrar janela de registos + %10$s %9$s executando em %3$s %1$s (%2$s), Android %6$s (%7$s) API %4$d, ABI %5$s, (%8$s) + Falha ao assinar a chave %1$s com Android keystore: %2$s + Erro ao assinar com aplicativo autenticador externo (%3$s): %1$s: %2$s + O aviso de conexão VPN dizendo que este aplicativo pode interceptar todo o tráfego é imposto pelo sistema para evitar abusos da API do Serviço VPN.\nA notificação de conexão VPN (ícone de chave) é também imposto pelo sistema Android para indicar uma conexão VPN ativa. Em alguns sistemas essa notificação toca um som.\nO Android implementou avisos no sistema para a sua segurança e garantir que elas não sejam contornadas. (Infelizmente alguns sistemas podem incluir um som de notificação) + Aviso de conexão e som de notificação + Tradução em Português por Eduardo Addad; + IP e DNS + Básico + Encaminhamento + Configurações OpenVPN obscura. Normalmente não é necessário. + Avançado + Configuração ICS Openvpn + Nenhum servidor DNS está sendo utilizado. A resolução de nomes pode não funcionar. Considere configurar um Servidor DNS personalizado. Observe também que o Android continuará utilizando sua configuração de proxy especificada pelo seu dispositivo/conexão WI-Fi quando não existe servidor DNS definido. + Não foi possivel adicionar o servidor DNS \"%1$s\", rejeitado pelo sistema: %2$s + Não foi possível configurar o endereço IP \"%1$s\", recusado pelo sistema: %2$s + <p>Obtenha uma config funcionando (testado em seu computador ou baixado de seu provedor/organização)</p><p>Se for arquivo único sem nenhum arquivo pem/pkcs12 extra você pode enviar o arquivo por email para si mesmo e abrir o anexo. Se tiver vários arquivos coloque-os em seu cartão SD.</p><p>Abra do anexo de email/Use o ícone de pasta na lista vpn para importar o arquivo de config</p><p>Caso houver erros sobre arquivos faltando coloque-os no seu cartão SD.</p><p>Clique no ícone de salvar para adicionar o arquivo importado a sua lista VPN</p><p>Conecte-se à VPN clicando no nome da VPN</p><p>Se houver erros ou avisos no log tente entendê-los e corrigi-los</p> + Inicio rápido + Tente carregar o módulo kernel tun.ko antes de se conectar. Precisa de root. + Carregar módulo tun + Importar PKCS12 da configuração para o Armazenamento de Credenciais do Android + Falha ao obter configurações de proxy: %s + Usando o proxy %1$s %2$s + Utilizar proxy do sistema + Utiliza a configuração proxy HTTP/HTTPS do sistema para a conexão. + O OpenVPN irá se conectar ao VPN especificado no boot do sistema caso esteje ativo. Por favor leia o aviso de conexão no FAQ antes de utilizar esta opção no Android < 5.0. + Conectar na inicialização + Ignorar + Reiniciar + As alterações de configuração são aplicadas depois de reiniciar o VPN. (Re) iniciar o VPN agora? + Configuração alterada + Não foi possível determinar o perfil conectado último para edição + Notificações duplicadas + Se Android está sob pressão de memória (RAM) do sistema, aplicativos e serviços que não são necessários neste momento são removidos da memória ativa. Isto encerra uma conexão VPN em curso. Para garantir que a conexão/OpenVPN sobrevive o serviço é executado com prioridade mais alta. Para executar com maior prioridade, o aplicativo deve exibir uma notificação. O ícone de notificação chave é imposto pelo sistema como descrito na entrada da FAQ anterior. Ele não conta como notificação app para efeito de execução com maior prioridade. + Não há perfis de VPN definidos. + Use o ícone <img src=\"ic_menu_add\"/> para adicionar uma nova VPN + Use o < img src = \"ic_menu_archive\" / > ícone para importar um perfil existente (ovpn ou conf) do seu sdcard. + Verifique as FAQ. Existe um guia rápido. + Configuração de roteamento/Interface + A configuração de roteamento e interface não é feita através de comandos ifconfig/rota tradicional, mas usando a API VPNService. Isso resulta em uma configuração de roteamento diferente do que em outros sistemas operacionais. \nThe configuração do túnel VPN consiste o endereço IP e as redes que devem ser roteadas através desta interface. Especialmente, nenhum endereço de parceiro de mesmo nível ou endereço de gateway é necessário ou exigido. Rotas especiais para alcançar o servidor de VPN (por exemplo adicionado ao usar redirecionamento-gateway) não são necessários também. O aplicativo irá consequentemente ignorar essas configurações ao importar uma configuração. O app garante com a API de VPNService que a conexão ao servidor não é roteado através do túnel VPN. \nThe VPNService API não permite a especificação de redes que não devem ser roteadas através da VPN. Para solucionar esse problema o aplicativo tenta detectar redes que não devem ser encaminhadas ao longo do túnel (p. ex. rota x.x.x. x y.y.y.y net_gateway) e calcula um conjunto de rotas que exclui este rotas para emular o comportamento de outras plataformas. As janelas de log mostra a configuração da VPNService ao estabelecer uma conexão. \nBehind as cenas: Android 4.4 + usar política de roteamento. Usando a rota/ifconfig não mostrará as rotas instaladas. Em vez disso, use a regra de ip, iptables -t mangle -L + Fazer não o retorno ao nenhuma conexão VPN quando OpenVPN é reconectar. + Tun Persistente + OpenVPN Log + Importar configuração OpenVPN + Consumo de bateria + Em meus testes pessoais, a principal razão para o consumo de bateria alta do OpenVPN são os pacotes keepalive. A maioria dos servidores de OpenVPN tem um como a Directiva de configuração \' keepalive 10 60\', que faz com que o cliente e o servidor trocar pacotes keepalive em 10 segundos. <p> enquanto estes pacotes são pequenos e não use muito tráfego, manter a rede de rádio móvel ocupado e aumentar o consumo de energia. (Veja também a máquina de estado de rádio <a href=\"http://developer.android.com/training/efficient-downloads/efficient-network-access.html#RadioStateMachine\">The | Android Developers</a>) <p> que essa configuração keepalive não pode ser alterada no cliente. Somente o administrador de sistema do OpenVPN pode alterar a configuração. <p> infelizmente, usando um keepalive maior do que 60 segundos com UDP pode causar alguns gateways NAT para soltar a conexão devido a um tempo limite de inatividade. Usando TCP com uma longa manter vivo timeout funciona, mas encapsulamento TCP sobre TCP executa extremamente mal em conexões com alta perda de pacotes. (Veja <a href=\"http://sites.inka.de/bigred/devel/tcp-tcp.html\">Why TCP sobre TCP é um Idea</a> ruim) + O recurso de Tethering do Android (através de Wi-Fi, USB ou Bluetooth) e a API de VPNService (usada por este programa) não funcionam juntos. Para mais detalhes consulte o <a href=\"https://github.com/schwabe/ics-openvpn/issues/34\">issue #34</a> + VPN e Tethering + Tentativas de ligação + Configurações de religação + Número de segundos de espera entre tentativas de conexão. + Segundos entre as conexões + OpenVPN caiu inesperadamente. Por favor, considere usar a opção Minidump send no menu principal + Enviar Minidump para desenvolvedor + Envia informação de depuração sobre falhas para o programador + OpenVPN - %s + %1$s - %2$s + %1$s - %3$s, %2$s + Conectando + A esperar pela resposta do servidor + Autenticando + Obtendo a configuração do cliente + Atribuindo endereços IP + Adicionando rotas + Conectado + Desconectar + Reconectando + Saindo + Não está em execução + A resolver nomes de host + Conectando (TCP) + Falha na autenticação + Esperando por rede utilizável + Aguardando o Orbot iniciar + ↓%2$s %1$s - ↑%4$s %3$s + Desconectado + Conectando-se a VPN %s + Conectando-se a VPN %s + Algumas versões do Android 4.1 ter problemas se o nome do certificado de armazenamento de chave contém caracteres não alfanuméricos (como espaços, sublinhados ou traços). Tente importar novamente o certificado sem caracteres especiais + Cifra de criptografia + Autenticação de pacotes + Selecione o método de autenticação de pacotes + compilado por %s + compilação de depuração + compilação oficial + Copiar para o perfil + Crashdump + Add + Enviar arquivo de configuração + DN completo + Sua configuração importada usado a opção de tls-remoto velha obsoleto que usa um formato diferente do DN. + RDN (nome comum) + Prefixo RDN + tLS-remoto (obsoleto) + Pode ajudar a traduzir, visite http://crowdin.net/project/ics-openvpn/invite + %1$s tenta controlar %2$s + Por meio de processo, você está dando a permissão de aplicativo para controlar completamente OpenVPN para Android e para interceptar todos traffic.Do rede não aceitar menos que confie no application. Caso contrário, você corre o risco de ter seus dados comprometidos por software malicioso. \" + Confio nesta aplicação. + Nenhuma app pode usar a API externa + Aplicações permitidas:%s + Limpar lista de aplicativos externos permitidos?\nLista atual de aplicativos permitidos:\n\n%s + Pausar a VPN quando a tela estiver desligada e menos de 64kB transferidos em 60s. Quando a opção \"Tun Persistente\" estiver habilitada, pausando a VPN irá deixar seu dispositivo SEM conexão de rede. Sem a opção \"Tun Persistente\" o dispositivo ficará sem a conexão/proteção VPN. + Pausar a conexão VPN após desligar a tela + Pausando conexão ao desligar a tela: menos que %1$s em %2$ss + Aviso: Tun persistente não habilitado para esta VPN. Tráfego usará a conexão de Internet normal quando a tela estiver desligada. + Salvar senha + Pausa VPN + Retomar VPN + VPN pausado por solicitação do usuário + VPN pausado - fora da tela + Especificações do dispositivo Hacks + Não é possível mostrar as informações de certificado + Comportamento do aplicativo + Comportamento VPN + Permitir alterações aos perfis de VPN + Armazenamento de chaves de hardware: + Ícone do app, tentando usar o OpenVPN para Android + "A partir do Android 4.3 a confirmação de VPN é protegida contra \"aplicativos com sobreposição\". Isso resulta no diálogo não reconhecer o toque na tela. Se você utiliza aplicativos que sobrepõe na tela isso pode acontecer. Se você encontrar um aplicativo causando isso contate o autor do mesmo. Isso afeta todos os aplicaticos VPN no Android 4.3 e superior. Veja também <a href=\"https://github.com/schwabe/ics-openvpn/issues/185\">Issue 185<a> para mais detalhes" + Caixa de diálogo confirmação de Vpn + Você também pode me enviar doações através da Play Store: + Obrigado por doar %s! + Log apagada. + Mostrar a senha + Erro de acesso às chaves: %s + Curto + ISO + Carimbos de hora + Nenhum + Upload + Download + Vpn Status + Ver opções + Exceção sem tratamento: %1$s\n\n%2$s + %3$s: %1$s\n\n%2$s + Se você tem raiz de seu dispositivo Android, você pode instalar o framework</a> de <a href=\"http://xposed.info/\">Xposed e uma caixa de diálogo <a href=\"http://repo.xposed.info/module/de.blinkt.vpndialogxposed\">VPN confirmar module</a> a seu próprio risco \" + Licenças completas + Redes conectadas diretamente na interface local não serão roteadas para o VPN. Desmarcando esta opção irá redirecionar todo o tráfego das redes locais para a VPN. + Ignorar VPN para redes locais + Arquivo de nome de usuário/senha + [Importados: %s] + Alguns arquivos não podem ser encontrados. Por favor, selecione os arquivos para importar o perfil: + Para usar este aplicativo, que você precisa de um gateway de provedor/VPN VPN apoiando o OpenVPN (muitas vezes fornecida pelo seu empregador). Confira http://community.openvpn.net/ para obter mais informações sobre o OpenVPN e como configurar seu próprio servidor OpenVPN. + Log de importação: + Topologia de VPN \"%3$s\" especificado mas ifconfig %1$s %2$s se parece mais com um endereço IP com uma máscara de rede. Supondo que a topologia \"sub-rede\". + O valor de substituição MSS deve ser um número inteiro entre 0 e 9000 + O valor de substituição MTU deve ser um número inteiro entre 64 e 9000 + Anuncia para as sessões TCP dentro do tunel que elas devem limitar o tamanho dos pacotes de uma forma que após o OpenVPN encapsulá-los, o tamanho final dos pacotes UDP que o OpenVPN enviar não possa exceder esse número de bytes (padrão é 1450) + Substituir o valor MSS de payload TCP + Definir MSS do TCP payload + Comportamento cliente + Limpar lista de aplicativos externos permitidos + Carregando… + Aplicativos permitidos na VPN: %1$s + Aplicativos não-permitidos na VPN: %1$s + O pacote %s não está mais instalado, removendo-o da lista de aplicativos permitidos/não-permitidos + O VPN é utilizado para todos os apps exceto os selecionados + O VPN é utilizado somente para os apps selecionados + Permitir apps a contornar o VPN + Remover entrada de servidor remoto? + Manter + Excluir + Adicionar novo controle remoto + Uso conexão entradas em ordem aleatória em conectar + Você precisa definir e habilitar pelo menos um servidor remoto. + Lista servidores + Aplicativos permitidos + Configurações avançadas + Opções de carga + Definições TLS + Sem controle remoto definido + Perfil VPN duplicado + Duplicando perfil: %s + Mostrar registo + Vários clientes OpenVPN para Android existir. Os mais comuns são OpenVPN para Android (este cliente), os clientes OpenVPN Connect e OpenVPN Settings.<p>The podem ser agrupados em dois grupos: OpenVPN para Android e OpenVPN Ligação usar o VPNService API oficial (Android 4.0+) e não necessitam de raiz e OpenVPN configurações que usa root.<p>OpenVPN para Android é um cliente de código aberto e desenvolvido por Arne Schwabe. É destinado a usuários mais avançados e oferece muitas configurações e a capacidade de importar perfis a partir de arquivos e configurar perfis / mudam dentro do app. O cliente é baseado na versão comunidade de OpenVPN. Ele baseia-se no código de fonte 2.x OpenVPN. Este cliente pode ser visto como a semi oficialmente cliente da comunidade. <p>OpenVPN Connect é cliente de origem não aberta, que é desenvolvido por OpenVPN Technologies, Inc. O cliente é recuado para ser cliente de uso geral e mais orientada para o usuário médio e permite a importação de perfis OpenVPN. Este cliente é baseada na reimplementação do protocolo OpenVPN o OpenVPN C ++ (Isto foi necessário para permitir que OpenVPN Technologies, Inc para publicar um aplicativo iOS OpenVPN). Este cliente é o cliente oficial das tecnologias OpenVPN <p> OpenVPN Configurações é o mais antigo dos clientes e também uma interface do usuário para o código aberto OpenVPN. Em contraste com o OpenVPN para Android requer raiz e não usa a API VPNService. Ele não depende Android 4.0+ + As diferenças entre os clientes OpenVPN Android + Ignorar caminho multicast: %s + Android apenas suporta rotas CIDR para a VPN. Pelo facto de as rotas não-CIDR quase nunca serem usadas, OpenVPN para Android irá usar uma rota /32 para rotas não-CIDR e emitir um aviso. + Tethering funciona enquanto o VPN está ativo. A conexão com fio não vai usar a VPN. + Primeira versão KitKat definir o valor MSS errado em conexões TCP (# 61948). Tente habilitar a opção mssfix para resolver este bug. + Android vai continuar a usar as configurações de proxy especificadas para a conexão / Wi-Fi móvel quando não há servidores DNS são configurados. OpenVPN para Android irá avisá-lo sobre isso no log.

When uma VPN define um servidor DNS Android não vai usar um proxy. Não há nenhuma API para definir um proxy para um connection.

VPN + O IP do cliente configurado e os IPs em sua máscara de rede não são encaminhadas para a VPN. OpenVPN funciona em torno este bug, acrescentando explicitamente uma rota que corrosponds ao IP do cliente e da sua máscara de rede + Abrindo um dispositivo tun enquanto outro dispositivo tun é ativo, que é usado para suporte de persistir-tun, trava o VPNServices no dispositivo. Uma reinicialização é necessária para fazer a VPN funcionar novamente. OpenVPN para Android tenta evitar a reabertura do dispositivo tun e se realmente precisava primeiro fecha o TUN atual antes de abrir o novo dispositivo TUN para evitar a queda. Isso pode levar a uma pequena janela onde os pacotes são enviados durante a conexão VPN não. Mesmo com esta solução alternativa a VPNServices às vezes trava e requer uma reinicialização do dispositivo. + VPN não funciona de todo para os utilizadores secundários. + "Vários usuários relatam que o / conexão de dados móveis conexão móvel é frequentemente deixado cair durante o uso do aplicativo VPN. O comportamento parece afetar apenas algumas provedor de combinação móvel / dispositivo e até agora nenhuma causa / solução para o bug poderia ser identificado." + Único destino pode ser alcançado através da VPN que são acessíveis sem VPN. O IPv6 VPNs não funcionar em todos. + Rotas não CIDR + Comportamento proxy para VPNs + %s e anteriores + Copiar de %s + Rota para o endereço IP configurado + Valor MSS errado para conexão VPN + Usuários de tablet secundárias + Especifique opções específicas de conexão personalizado. Use com cuidado + Opções personalizadas + Remover entrada de conexão + Desconecta aleatórios da rede móvel + Redes remotas não acessíveis + Persistir modo tun + %s e mais tarde + Falha de conexões com falha de alerta do aperto de mão SSL23_GET_SERVER_HELLO:sslv3 + OpenVPN mais recente para as versões do Android (0.6.29/March 2015) usar um padrão mais seguro para as suites cifra permitidos (tls-cifra \"padrão:! EXP:! PSK:! SRP:! kRSA \"). Infelizmente, omitindo o menos segura cifra de suites e suites de cifra de exportação, especialmente a omissão das suites cifra que não oferecem suporte a Perfect Forward Secrecy (Diffie-Hellman) causa alguns problemas. Isso geralmente é causada por uma tentativa bem intencionada, mas mal executada para fortalecer a segurança TLS definindo cifra de tls no servidor ou algum incorporado sistemas operacionais com despojado SSL (por exemplo, MikroTik). \nTo resolver o problema, definir as configurações de cifra-tls no servidor para o padrão razoável como tls-cifra \"padrão:! EXP:! PSK:! SRP:! kRSA \". Para contornar o problema sobre o cliente adicionar o costume opção tls-cifra padrão no cliente Android. + Este perfil foi adicionado um aplicativo externo (%s) e foi marcado como usuário não editável. + Lista de certificados revogados + Reiniciando o OpenVPN Service (App caiu provavelmente caiu ou morto para pressão de memória) + Importando o config gerou um erro, não pode salvá-lo + Pesquisa + (Último despejo é %1$d:%2$dh velho (%3$s)) + Limpar registo na nova conexão + Tempo limite de conexão + Nenhum app permitido adicionado. Adicionando nós mesmos (%s) para ter pelo menos um app na lista para não permitir todos os apps + OpenVPN para Androud pode procurar por aquivo(s) faltante(s) no sdcard automaticamente. Toque nesta mensagem para iniciar a permissão de acesso. + Protocolo + Habilitado + Permissão VPN revogada pelo sistema (ex.: outro aplicativo VPN iniciado), interrompendo VPN + Enviar informações extras + Envia outras informações para o servidor como versões do SSL e Android + Necessário %1$s + Entre com a senha do perfil %1$s + Usar dados embutidos + Exportar arquivo de configuração + arquivo tls-auth está ausente + Certificado ou chave de usuário ausente + Lista de Revogaçao de Certificado (opcional) + Recarregar (%d) itens do arquivo cache de registro + Mesmo que os telefones Samsung sejam os dispositivos Android mais vendidos, são conhecidos por terem as firmwares mais problemáticas. As falhas nesses dispositivos não são limitadas apenas as funções VPN mas a maioria pode ser contornada. Seguem detalhes de algumas dessas falhas.\n\nO DNS não funciona caso não esteje dentro da rede VPN.\n\nNa maioria dos Samsung 5.x a função de permitir/não-permitir aplicativos não funciona.\nNo Samsung 6.x a VPN pode não funcionar a não ser que seje excluída da função de economia de bateria. + Aparelhos Samung + Nenhuma VPN selecionada. + VPN padrão + VPN usada em locais onde uma VPN padrão é necessária. Estes estão atualmente na inicialização (boot), para Sempre-Ativo (Always-On) e o bloco nas Configurações Rápidas (Quick Settings Tile). + VPN atualmente selecionado: \'%s\' + Reconectar + Alternar VPN + Conectar a %s + Desconectar %s + Entre com o limite de tempo para as tentativas de conexão. O OpenVPN irá aumentar lentamente seu tempo de espera durante as tentativas de conexão até o máximo definido aqui. Padrão de 300s. + Tempo limite entre as tentativas de conexão + Aguardando %ss segundos entre as tentativas de conexão + Redes mais .. -> VPNS]]> + A conexão com OpenVPN fechada (%s) + Alterar a classificação + Ordenar + Perfis classificados por último usado + Perfis classificados por nome + Configuração usa Tls-remotas de opção que foi depreciado em 2.3 e, finalmente, removido em 2,4 + Ação em AUTH_FAILED + Gráfico + Usar escala logarítmica + Dados insuficientes + Média por hora + Média por minuto + Últimos 5 minutos + Recebidos + Enviados + %.0f bit/s + %.1f kbit/s + %.1f Mbit/s + %.1f Gbit/s + <p>A partir do OpenSSL versão 1.1, o OpenSSL rejeita assinaturas fracas em certificados como + MD5. Além disso, com o OpenSSL 3.0, as assinaturas com SHA1 também são rejeitadas.</p><p> + Você deve atualizar os certificados VPN o mais rápido possível, pois o SHA1 também não funcionará mais em outras plataformas em + futuro próximo.</p> + <p>Se você realmente deseja usar certificados antigos e quebrados, selecione \"inseguro\" para o perfil de segurança TLS em Autenticação/Criptografia do perfil</p> + + %.0f B + %.1f kB + %.1f MB + %.1f GB + Estatísticas de conexão + Estatísticas atuais da conexão OpenVPN estabelecida + Folkzaza + Folkzaza + Hashes fracos (MD5) na assinatura do certificado (SSL_CTX_use_certificate md too weak) + Teste de velocidade do OpenSSL + Nomes de cifra OpenSSL + Teste de velocidade do OpenSSL Crypto + OpenSSL retornou um erro + Executando teste… + Testar os algoritmos selecionados + Um aplicativo externo tenta controlar %s. O aplicativo que solicita o acesso não pode ser determinado. Permitir que este aplicativo concede TODOS os aplicativos de acesso.a.3 + A implementação OpenVPN 3 C++ não suporta chaves estáticas. Altere para OpenVPN 2.x nas configurações gerais. + Usar diretamente arquivos PKCS12 com a implementação do OpenVPN 3 C++ não é suportado. Importe os arquivos PKCS12 para o armazenamento de chaves do Android ou mude para OpenVPN 2.x nas configurações gerais. + Proxy + Nenhum + Tor (Orbot) + Implementação do OpenVPN 3 C++ não suporta conexão via proxy Socks + O aplicativo Orbot não foi encontrado. Por favor, instale-o ou use uma integração manual do Socks v5. + API remota + O OpenVPN para Android suporta duas APIs remotas, uma API sofisticada usando AIDL (RemoteEXample no repositório git) e uma simples usando Intents. <p>Exemplos usando o shell adb e as intenções. Substitua profilname pelo seu nome de perfil<p><p> adb shell am start-activity -a android.intent.action.MAIN de.blinkt.openvpn /.api.DisconnectVPN<p> adb shell am start-activity -a android.intent.action.MAIN - e de.blinkt.openvpn.api.profileName Blinkt de.blinkt.openvpn /.api.ConnectVPN + Habilitar a autenticação de Proxy + Não se pode usar uma declaração adicional de http-proxy-option e a integração Orbot ao mesmo tempo + Informações do servidor: \'%s \' + Necessário a interação do usuário + A conexão OpenVPN requer uma entrada do usuário, por exemplo, autenticação + em dois fatores + + Abrir URL para continuar autenticação VPN + Abrir URL para continuar autenticação VPN + Autenticação pendente + Autenticador Externo + Configurar + Autenticador externo não configurado + Bloquear conexão não VPN (\"Killswitch\") + Muitas vezes é desejável bloquear conexões sem VPN. Outros aplicativos costumam usar termos de marcação como \"Killswitch\" ou \"Túnel sem costura\" para esse recurso. OpenVPN e este aplicativo oferecem persist-tun, um recurso para implementar essa funcionalidade.<p>O problema com todos esses métodos oferecidos pelos aplicativos é que eles só podem fornecer o melhor esforço e não são soluções completas. Na inicialização, travamento do aplicativo e outros casos de canto, o aplicativo não pode garantir que esse bloco de conexão não VPN funcione. Assim, dando ao usuário uma falsa sensação de segurança.<p>A <b>única</b> maneira confiável de garantir que as conexões não VPN sejam bloqueadas é usar o Android 8.0 ou posterior e usar a configuração \"bloquear conexões sem VPN\" que pode ser encontrada em Configurações > Rede & Internet > Avançado/VPN > OpenVPN para Android > Habilite Always ON VPN, Habilite conexões de bloco sem VPN + Esta opção instrui o Android a não permitir protocolos (IPv4/IPv6) se a VPN não definir nenhum endereço IPv4 ou IPv6. + Bloqueie IPv6 (ou IPv4) se não for usado pela VPN + Instalar novo certificado + nome do servidor AS + URL do servidor + Solicitar perfil de login automático + Importar perfil do servidor remoto + Por favor, use o recurso Always-On do Android para habilitar a VPN no momento da inicialização. + diff --git a/main/src/ui/res/values-ro/strings.xml b/main/src/ui/res/values-ro/strings.xml index e039b793..a5b9ed6b 100644 --- a/main/src/ui/res/values-ro/strings.xml +++ b/main/src/ui/res/values-ro/strings.xml @@ -34,6 +34,7 @@ Adresă IPv4 Adresă IPv6 Introduceţi opţiuni particularizate OpenVPN. Folosiţi cu atenţie. De asemenea, reţineţi că multe dintre opţiunile legate de OpenVPN tun nu sunt suportate de VPNSettings. Dacă lipseşte o opţiune importantă contactaţi autorul + Nume de utilizator Parola Pentru configurarea statică Cheile TLS Auth vor fi utilizate ca şi chei statice Configurați VPN-ul @@ -42,6 +43,7 @@ Vă rugăm să introduceţi un nume de profil unic Nume profil Trebuie să selectați un certificat de utilizator + Trebuie să selectați un certificat CA sau să activați verificarea amprentei Nu s-a găsit nici o eroare Eroare în configurare Eroare parsare adresă IPv4 @@ -125,6 +127,7 @@ Imaginea dvs. nu suportă API-ul VPNService, îmi pare rău :( Criptare Alegeţi metoda de criptare + Introduceți algoritmii de criptare a datelor utilizați de OpenVPN, separați prin : (--data-ciphers). Lăsați gol pentru a utiliza valoarea implicită de Introduceţi autentificarea digest ce este folosită de OpenVPN. Lăsaţi gol pentru digest predefinit. Autentificare/criptare File Explorer @@ -179,6 +182,7 @@ Arată fereastra Jurnal %10$s %9$s rulează pe %3$s %1$s (%2$s), Android %6$s (%7$s) API %4$d, ABI %5$s, (%8$s) Eroare semnare cu Android keystore key %1$s: %2$s + Eroare de semnare cu aplicația de autentificare externă (%3$s): %1$s: %2$s Avertizarea la conexiunea VPN ce vă spune că această aplicaţie poate intercepta întreg traficul este impusă de sistem pentru a preveni abuzul funcţiei API VPNService.\nNotificarea de conexiune VPN(simbolul cheie)este de asemenea impusă de sistemul Android pentru a semnala o conexiune VPN în derulare. În cadrul unor imagini această notificare face şi un sunet.\nAndroid a introdus aceste notificări pentru siguranţa dvs. şi este asigurat că nu pot fi evitate. (Din păcate în anumite imagini acestea includ şi un sunet de notificare) Alertă conexiune şi sunet notificare Traducere în limba română de Silviu Vulcan<silviuvulcan.ro> @@ -197,6 +201,7 @@ Încarcă modulul tun Import PKCS12 configurare în Android Keystore Eroare la obţinerea setărilor proxy: %s + Utilizarea proxy-ului %1$s %2$s Foloseşte proxy sistem Foloseşte configurarea sistem pentru proxy HTTP/HTTPS folosit la conectare. OpenVPN va conecta VPN-ul specificat dacă vs fi activ la pornirea sistemului. Citiți întrebările frecvente privind avertizare de conexiune înainte de a utiliza această opțiune pe Android < 5.0. @@ -353,7 +358,6 @@ Funcția tethering funcționează în timp ce VPN-ul este activ. Conexiunea legată NU va utiliza VPN-ul. Primele versiuni KitKat setao o valoare MSS greșită pe conexiunile TCP (#61948). Încercați să activați opțiunea mssfix pentru a rezolva această eroare. Android va continua să utilizeze setările proxy specificate pentru conexiunea mobilă/Wi-Fi atunci când nu sunt setate servere DNS. OpenVPN pentru Android vă va avertiza despre acest lucru în fișierul log.

Când VPN stabilește un server DNS, Android nu va utiliza un proxy. Nu există niciun API pentru a seta un proxy pentru o conexiune VPN.

- Aplicațiile VPN pot să nu mai funcționeze când sunt dezinstalate și reinstalate din nou. Pentru detalii, a se vedea #80074 IP-ul client configurat și IP-urile din masca sa de rețea nu sunt direcționate către VPN. OpenVPN funcționează în jurul acestui bug prin adăugarea explicită a unui traseu care corespunde IP-ului client și netmask-ului său Deschiderea unui dispozitiv tun în timp ce un alt dispozitiv tun este activ, care este utilizat pentru suportul tun persistent, blochează serviciile VPN de pe dispozitiv. Este necesară o repornire pentru ca VPN să funcționeze din nou. OpenVPN pentru Android încearcă să evite redeschiderea dispozitivului tun și, dacă este necesar, mai întâi închide TUN-ul curent înainte de a deschide noul dispozitiv TUN pentru a evita accidentarea. Acest lucru poate duce la o fereastră scurtă în care pachetele sunt trimise prin conexiunea non-VPN. Chiar și cu această soluție, VPNServices se blochează uneori și necesită repornirea dispozitivului. VPN nu funcționează deloc pentru utilizatorii secundari. @@ -361,7 +365,6 @@ Numai destinația poate fi atinsă prin VPN care poate fi accesată fără VPN. Porturile IPv6 VPN nu funcționează deloc. Rute non-CIDR Comportamentul proxy pentru VPN-uri - Reinstalarea aplicațiilor VPN %s sau mai puțin Copie a %s Rutează prin adresa IP configurată diff --git a/main/src/ui/res/values-ru/arrays.xml b/main/src/ui/res/values-ru/arrays.xml index 642186eb..e3f3786b 100644 --- a/main/src/ui/res/values-ru/arrays.xml +++ b/main/src/ui/res/values-ru/arrays.xml @@ -14,7 +14,7 @@ Логин/пароль + Сертификаты Логин/пароль + PKCS12 Логин/пароль + сертификат Android - External Auth Provider + Внешний провайдер аутентификации 0 @@ -28,4 +28,16 @@ Отключиться, сохранить пароль Игнорировать, повторить + + Современные значения + OpenVPN 2.5.x + OpenVPN 2.4.x + OpenVPN 2.3.x и старее + + + небезопасный (не рекомендуется, допускает небезопасное шифрование) + традиционный (по умолчанию) + предпочтительный (рекомендуется, но ограничивает совместимость) + набор B (только эллиптические кривые, одобренные NIST) + diff --git a/main/src/ui/res/values-ru/strings.xml b/main/src/ui/res/values-ru/strings.xml index e4da5e5d..c498bc0c 100644 --- a/main/src/ui/res/values-ru/strings.xml +++ b/main/src/ui/res/values-ru/strings.xml @@ -8,7 +8,7 @@ Адрес сервера: Порт сервера: Расположение - Невозможно прочитать каталог + Невозможно прочитать папку Выбрать Отмена Нет данных @@ -16,8 +16,8 @@ Нет сертификата Сертификат клиента Ключ сертификата клиента - Файл PKCS12 - Сертификат ЦС + PKCS12 файл + CA сертификат Необходимо выбрать сертификат Исходный код и отслеживание проблем доступны на https://github.com/schwabe/ics-openvpn/ Данная программа использует следующие компоненты; смотрите исходный код для получения подробной информации о лицензии @@ -33,37 +33,37 @@ Введите адрес/маску подсети IPv4 в формате CIDR (например, 1.2.3.4/24) Адрес IPv4 Адрес IPv6 - Введите пользовательские параметры OpenVPN. Используйте с осторожностью. Также обратите внимание, что многие настройки OpenVPN, связанные с tun, не могут поддерживаться конструкцией VPNSettings. Если вы считаете, что отсутствует важная опция, свяжитесь с автором - Имя пользователя (оставьте пустым без авторизации) + Введите пользовательские параметры OpenVPN. Используйте осторожно. Также обратите внимание, что многие настройки OpenVPN, связанные с туннелированием (tun), могут не поддерживаться данной реализацией VPNSettings. Если вы считаете, что не хватает важных параметров, свяжитесь с автором + Имя пользователя (пустое - без авторизации) Пароль - Для конфигурации с статичными сертификатами будут использоваться ключи TLS + Для статической конфигурации ключи TLS аутентификации будут использоваться как статические Настройка VPN Добавить конфигурацию Введите название новой конфигурации Пожалуйста, введите уникальное название конфигурации Название конфигурации Необходимо выбрать сертификат пользователя - Вы должны выбрать сертификат CA или включить проверку отпечатка однорангового узла. + Вы должны выбрать сертификат CA или включить проверку отпечатков. Ошибок не найдено Ошибка в конфигурации - Ошибка синтаксического анализа IPv4-адреса - Невозможно распознать пользовательские маршруты + Ошибка разбора IPv4-адреса + Ошибка при разборе пользовательской маршрутизации. (оставьте пустым для запроса по требованию) Ярлык OpenVPN Подключение к VPN… Не найдена конфигурация, указанная в ярлыке - Случайный префикс узла + Случайный префикс хоста Добавляет 6 случайных символов перед именем хоста Включить пользовательские параметры - Пользовательские параметры. Используйте с осторожностью! + Укажите пользовательские параметры. Будьте осторожны! Маршрутизация отклонена Android Отключить - Отключить VPN - очистить журнал - Подтверждение отмены + Отключиться от VPN + Очистить лог файл + Отменить подтверждение Отключить активный VPN/отменить попытку подключения? Удалить VPN - Проверяет, использует ли сервер сертификат с серверными расширениями TLS (--remote-cert-tls server) + Проверяет использует ли сервер сертификат с серверными расширениями TLS (--remote-cert-tls server) Ожидание сертификата сервера TLS Проверяет DN субъекта сертификата удалённого сервера Проверка имени хоста сертификата @@ -71,55 +71,55 @@ Субъект удалённого сертификата Включить аутентификацию по TLS ключу Файл аутентификации TLS - Запрос IP-адреса, маршрутов и параметров от сервера. - Игнорировать все параметры сервера. Параметры должны быть указаны ниже. - Запрашивать параметры + Запрашивает IP адреса, маршрутизацию и параметры времени с сервера. + Информация с сервера не поступила. Ниже необходимо указать настройки. + Запросить настройки DNS - Переопределить параметры DNS от сервера - Использовать ваши DNS + Переопределить DNS параметры сервера + Использовать собственные DNS серверы Домен поиска - DNS-сервер для использования. + DNS сервер. DNS-сервер - Вторичный DNS-сервер используется, если не получен ответ от первого сервера DNS. + Использовать вторичный DNS сервер когда основной недоступен. Резервный сервер DNS Игнорировать посылаемые маршруты Игнорировать маршруты, посылаемые сервером. Перенаправляет весь трафик через VPN Использовать маршрут по умолчанию - Введите собственную маршрутизацию. Укажите место назначения только в формате CIDR. \"10.0.0.0/8 2002::/16\" будет направлять сети 10.0.0.0/8 и 2002::/16 через VPN. - Маршрутизация, которой НЕ следует маршрутизировать через VPN. Используйте тот же синтаксис, что и для включенных маршрутизаций. + Введите пользовательские маршруты. Вводите адрес назначения только в формате CIDR. «10.0.0.0/8 2002::/16» направит сети 10.0.0.0/8 и 2002::/16 через VPN. + Маршруты, которые НЕ должны маршрутизироваться через VPN. Используйте тот же синтаксис, что и для включённых маршрутов. Пользовательские маршруты - Исключённые сети + Исключенные сети Уровень детализации журнала - Разрешить аутентифицированные пакеты с любого IP-адреса + Разрешает аутентифицированные пакеты с любого IP адреса Разрешить «плавающий» сервер Пользовательские параметры Изменить настройки VPN Удалить конфигурацию VPN «%s»? - На некоторых пользовательских образах ICS разрешение на /dev/tun может быть неправильным, или модуль tun может отсутствовать полностью. Для образов CM9 попробуйте исправить вариант управления в общих настройках + На некоторых неофициальных сборках права на модуль туннеля могут быть неверными или модуль туннеля может быть не включён. Для прошивки CM9 можете попробовать исправить владельца прямо из настроек приложения. Не удалось открыть интерфейс tun "Ошибка: " Очистить - Открытие tun-интерфейса: - Адрес IPv4: %1$s/%2$d IPv6: %3$s MTU: %4$d - DNS-сервер: %1$s, Домен: %2$s + Открытие интерфейса туннеля (tun): + Локальный IPv4: %1$s/%2$d IPv6: %3$s MTU: %4$d + DNS сервер: %1$s, Домен: %2$s Маршруты: %1$s %2$s Исключенные маршруты: %1$s %2$s Установленные маршрутизации VpnService: %1$s %2$s - Получена информация об интерфейсе %1$s и %2$s, предполагается, что второй адрес является адресом удаленного узла. Использование сетевой маски /32 для локального IP. Режим, предоставляемый OpenVPN: \"%3$s\". - Невозможно определить %1$s и %2$s в качестве IP-маршрутизации с сетевой маской CIDR, используя /32 в качестве сетевой маски. + Получена информация интерфейса %1$s и %2$s, при условии, что второй адрес является одноранговым адресом удалённого устройства. Используется сетевая маска /32 для локального IP-адреса. Режим, установленный OpenVPN – «%3$s». + Невозможно определить %1$s и %2$s как маршрут IP с маской сети CIDR, используя /32 в качестве маски сети. Исправлена маршрутизация %1$s/%2$s до %3$s/%2$s - Не удалось получить доступ к сертификатам связки ключей Android. Это может быть вызвано обновлением прошивки или восстановлением резервной копии приложения и настроек приложения. Измените VPN и повторно выберите сертификат в основных настройках, чтобы восстановить разрешение на доступ к сертификату. + Невозможно получить доступ к хранилищу ключей и сертификатов Android. Это может быть вызвано обновлением прошивки или восстановления старой копии приложения или его настроек. Отредактируйте конфигурацию VPN и заново укажите ключи и сертификаты в разделе «Основные параметры». %1$s %2$s Отправить файл журнала Отправить - Файл журнала ICS VPN Pro - Запись журнала скопирована в буфер обмена - Режим TAP - Режим касания невозможен с API VPN без рут прав. Таким образом, это приложение не может поддерживать касание. - Очередной раз? Вы смеётесь? Нет, режим касания действительно не поддерживается, и отправка дополнительных писем с вопросом, будет ли он поддерживаться, не поможет. - Третий раз? На самом деле можно было бы писать эмулятор tap, основанные на tun, который бы добавлял информацию 2 уровня при отправке и извлекал бы ее при получении. Но этот эмулятор потребует также ARP и, возможно, клиента DHCP. Я не знаю никого, кто мог бы этим заняться. Свяжитесь со мной, если вы хотите заняться этим. - Помощь + Файл журнала ICS OpenVPN + Запись лог файла скопирована в буфер + Режим касания + Режим TAP невозможен на устройствах без root, поэтому данное приложение не может обеспечить поддержку TAP. + Снова? Вы шутите? Нет, режим TAP действительно не поддерживается, и отправка большего количества писем с вопросом о том, будет ли реализована его поддержка, не поможет. + Третий раз? На самом деле можно было бы писать эмулятор tap, основанные на tun, который бы добавлял информацию 2-го уровня при отправке и извлекал бы ее при получении. Но этот эмулятор потребует также ARP и, возможно, клиента DHCP. Я не знаю никого, кто мог бы этим заняться. Свяжитесь со мной, если вы хотите заняться этим. + Вопросы и ответы Копирование записей журнала Чтобы скопировать отдельную запись журнала, нажмите и удерживайте эту запись в журнале. Чтобы скопировать и отправить весь журнал, используйте опцию «Отправить журнал». Используйте кнопку аппаратного меню, если она не отображается в графическом интерфейсе. Ярлык для запуска @@ -127,32 +127,32 @@ Ваша прошивка не поддерживает VPNService API, извините :( Шифрование Укажите метод шифрования - Введите алгоритмы шифрования данных, используемые OpenVPN, разделенные символом \":\" (--data-ciphers). Оставьте пустым, чтобы использовать стандартные AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305. + Укажите алгоритмы шифрования для OpenVPN, разделяя их двоеточием (--data-ciphers). Для шифрования по умолчанию (AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305) оставьте пустым. Введите дайджест аутентификации, используемый для OpenVPN. Оставьте поле пустым, чтобы использовать дайджест по умолчанию. Аутентификация/шифрование - Проводник + Обзор файлов Встроенный файл Ошибка при импорте файла Не удалось импортировать файл из файловой системы - [[Встроенные данные файла]] - Отказ в открытии устройства tun без информации об IP-адресе + [[Данные встроенного файла]] + Отказ в открытии устройства tun без информации про IP адрес Импорт конфигурации из файла .ovpn Импорт Не удалось прочитать конфигурацию для импорта Ошибка чтения файла конфигурации добавить конфигурацию - Не удалось найти файл %1$s, упомянутый в импортированном файле параметров + Не удалось найти файл «%1$s», указанный в импортированном файле конфигурации Импорт файла параметров из источника %1$s В ваших параметрах было несколько опций параметров, которые не сопоставлены с параметрами пользовательского интерфейса. Эти параметры были добавлены как опции пользовательских параметров. Пользовательские параметры отображаются ниже: Файл конфигурации успешно прочитан. Не привязывать к локальному адресу и порту - Нет локальной привязки - Импортировать файл параметров + Без локальной привязки + Импортировать файл конфигурации Соображения безопасности "Так как OpenVPN чувствителен к безопасности, то уместны будут несколько замечаний на её счёт. Все данные на SD-карте по сути не защищены. Каждое приложение может прочесть их (например, эта программа не требует специальных привилегий на SD-карту). Данные этого приложения могут быть прочитаны только им самим. При использовании функции импорта сертификатов и ключей в диалоговом окне данные сохраняются в профиле VPN. Профили VPN доступны только этому приложению. (Не забудьте потом удалить копии на SD-карте). Несмотря на то, что данные доступны только этому приложению, они всё ещё не зашифрованы. При наличии прав администратора (рута) на телефоне или через некую уязвимость эти данные можно извлечь. Также сохранённые пароли хранятся в обычном текстовом виде. Настоятельно рекомендуется файлы pkcs12 импортировать в android keystore." Импорт Ошибка при отображении выбранного сертификата - Получено исключение при попытке отобразить диалоговое окно выбора сертификата Android 4.0+. Этого никогда не должно происходить, поскольку это стандартная функция Android 4.0+. Возможно, ваша поддержка Android ROM для хранения сертификатов не работает + Произошла ошибка при попытке вызова системного диалога выбора сертификатов Android 4.0+. Такое никогда не должно происходить, поскольку это стандартная функция Android 4.0+. Возможно, поддержка хранилища сертификатов на вашей прошивке не работает. IPv4 IPv6 Ожидание сообщения о состоянии… @@ -165,78 +165,76 @@ Пароль значок файла Аутентификация/шифрование TLS - Созданные параметры + Сгенерированная конфигурация Настройки - Пытается установить владельца /dev/tun в system. Некоторым образам CM9 это необходимо для работы API VPNService. Требуется рут доступ. - Исправить право собственности на /dev/tun - Показывает сгенерированный файл параметров OpenVPN + Попытка изменить владельца /dev/tun в системе. Некоторые прошивки CM9 требуют этого для корректной работы OpenVPN API. Требуется root доступ. + Исправить права доступа к /dev/tun + Показывает сгенерированный файл конфигурации OpenVPN Правка «%s» - Сборка параметров… - Включение этой опции приведет к принудительному переподключению, если состояние сети изменится (например, Wi-Fi или передачи данных) + Сборка конфигурации… + Повторное подключение, если изменяется состояние сети (например, при переключении с WiFi на мобильную и наоборот). Повторное подключение при смене сети Статус сети: %s - Сертификат CA обычно возвращается из хранилища ключей Android. Укажите отдельный сертификат, если вы получаете ошибки проверки сертификата. + Сертификат CA обычно берется из хранилища ключей Android. Если у вас возникли ошибки при проверке, вы можете указать другой CA сертификат. Выбрать - Сертификат ЦС не возвращен при чтении из хранилища ключей Android. Аутентификация, вероятно, не удастся. - Показывает окно журнала при подключении. К окну журнала всегда можно получить доступ из статуса уведомления. - Показать окно журнала + Не удалось получить CA сертификат из хранилища ключей Android. Аутентификация скорее всего работать не будет. + Показывает окно лог файла при подключении. Это окно можно также открыть из уведомления о состоянии. + Показать окно лог файла %10$s %9$s работает на %3$s %1$s (%2$s), Android %6$s (%7$s) API %4$d, ABI %5$s, (%8$s) - Ошибка подписи с помощью ключа хранилища ключей Android %1$s: %2$s - Ошибка подписи с помощью внешнего приложения для проверки подлинности (%3$s): %1$s: %2$s - \"Предупреждение о VPN-подключении о том, что это приложение может перехватывать весь трафик, наложено системой для предотвращения злоупотребления API VPNService. -Уведомление о VPN-подключении (символ ключа) также накладывается системой Android, чтобы уведомлять о текущем VPN-подключении. На некоторых образах это уведомление воспроизводит звук. -Android ввел эти системные диалоги для вашей безопасности и позаботился о том, чтобы их невозможно было обойти. (На некоторых изображениях это, к сожалению, включает звук уведомления)\" + Ошибка подписи с использованием ключа из хранилища Android %1$s: %2$s + Ошибка подписи с помощью внешнего приложения аутентификации (%3$s): %1$s: %2$s + Предупреждение о подключении к VPN говорит о том что приложение может перехватывать весь сетевой трафик. Оно показывается системой Android автоматически для предотвращения злоупотреблений с использованием VPNService API.\nУведомление о VPN подключении (символ ключа) также формируется системой Android для индикации подключения к сети через VPN. В некоторых прошивках оно сопровоздается звуком. Система использует предупреждения и уведомления для вашей безопасности и их нельзя обойти (к сожалению, на некоторых прошивках это относится и к звуку уведомления). Предупреждение о подключении и звук уведомления Русский перевод от RusFox <horonitel@gmail.com> и многих других IP и DNS Основной Маршрутизация - Непонятные настройки OpenVPN. Обычно не требуется. + Редко используемые настройки OpenVPN. Обычно не требуется. Расширенные - Параметры ICS Openvpn - DNS-серверы не используются. Разрешение имени может не работать. Рассмотрите возможность установки пользовательских DNS-серверов. Также обратите внимание, что Android будет продолжать использовать настройки вашего прокси, указанные для вашего мобильного и Wi-Fi подключения, если DNS-серверы не установлены. + Конфигурация ICS OpenVPN + Серверы DNS не используются. Разрешение имён может не работать. Рассмотрите возможность установки пользовательских DNS-серверов. Также обратите внимание, что Android будет продолжать использовать настройки прокси, указанные для вашего мобильного/WiFi-соединения, если не указаны DNS-серверы. Не удалось добавить DNS-сервер «%1$s», отклонён системой: %2$s Не удалось настроить IP-адрес «%1$s», отклонён системой: %2$s <p>Используйте готовую конфигурацию (протестированную на вашем компьютере или полученную от вашего провайдера)</p><p>Если это простой файл без pem/pkcs12, вы можете отправить его как вложение по электронной почте на своё устройство. Если же файлов несколько, вы можете использовать их со своей карты памяти.</p><p>Просто откройте .conf файл или выберите его в диалоге импорта (значок папки в списке профилей)</p><p>Если программа выдаст ошибку о нехватке некоторых файлов, просто поместите эти файлы на карту памяти.</p><p>Нажмите кнопку сохранения для добавления импортируемой конфигурации в программу</p><p>Запустите ваш VPN-тоннель, нажав на его название в списке</p><p>Если при запуске возникли ошибки, попробуйте разобраться и устранить их.</p> Быстрый старт - Перед подключением попробуйте загрузить модуль ядра tun.ko. Требуются устройства с рут-доступом. - Загрузить модуль tun - Импорт PKCS12 из параметров в хранилище ключей Android + Перед подключением попробуйте загрузить модуль ядра tun.ko. На устройстве потребуется уровень доступа root. + Загрузить модуль туннеля (tun) + Импортировать PKCS12 из параметров конфигурации в хранилище ключей Android Ошибка при получении настроек прокси: %s - Через прокси %1$s %2$s + Используется прокси %1$s %2$s Использовать системный прокси - Использовать общесистемные параметры для подключения прокси HTTP/HTTPS. - OpenVPN подключит указанный VPN, если он был активен при загрузке системы. Прежде чем использовать эту опцию на Android < 5.0, прочтите часто задаваемые вопросы о предупреждении о подключении. - Подключаться при запуске + Использовать системные настройки для подключения HTTP/HTTPS прокси. + OpenVPN будет подключаться к указанному VPN, если она активна при загрузке системы. Прочитайте Вопросы и Ответы о предупреждении при подключении перед тем как использовать эту функцию на Android < 5.0. + Подключаться при загрузке системы Игнорировать - Перезапуск - Изменения конфигурации применяются после перезапуска VPN. (Пере)запустить VPN сейчас? + Перезагрузка + Изменения конфигурации действительны после перезапуска VPN. (Пере)запустить VPN сейчас? Конфигурация изменена Не удалось определить последнюю использованную конфигурацию для редактирования Повторяющиеся уведомления - Если Android испытывает нехватку системной памяти (ОЗУ), приложения и службы, которые в данный момент не нужны, удаляются из активной памяти. Это завершает текущее соединение VPN. Чтобы гарантировать, что подключение к OpenVPN не закрывается в фоне, то служба работает с более высоким приоритетом. Для работы с более высоким приоритетом приложение должно отображать уведомление. Иконка ключевого уведомления накладывается системой, как описано в предыдущем разделе часто задаваемых вопросов. Это не считается уведомлением приложения для работы с более высоким приоритетом. + Если Android испытывает нехватку системной памяти (RAM), приложения и службы, которые в данный момент не нужны, удаляются из активной памяти. Это завершает текущее соединение VPN. Чтобы гарантировать, что подключение к OpenVPN не закрывается, сервис работает с более высоким приоритетом. Для работы с более высоким приоритетом приложение должно отображать уведомление. Иконка ключевого уведомления накладывается системой, как описано в предыдущем разделе часто задаваемых вопросов. Это не считается уведомлением приложения для работы с более высоким приоритетом. Конфигурации VPN не указаны. - Используйте <img src=\"ic_menu_add\"/> иконку, чтобы добавить новый VPN + Используйте значок <img src=\"ic_menu_add\"/> для добавления нового VPN. Используйте кнопку <img src=\"ic_menu_archive\"/> для импорта существующих конфигураций (.ovpn или .conf) с карты памяти. - Обязательно ознакомьтесь с Информацией. Есть краткое руководство по началу работы. - Маршрутизация/Параметры интерфейса - \"Маршрутизация и настройка интерфейса выполняется не с помощью традиционных команд ifconfig/route, а с использованием API VPNService. Это приводит к другим параметрам маршрутизации, чем в других операционных системах. -Параметры VPN-туннеля состоят из IP-адреса и сетей, которые должны быть маршрутизированы через этот интерфейс. В частности, не требуется адрес однорангового партнера или адрес шлюза. Специальные маршрутизации для доступа к VPN-серверу (например, добавленные при использовании шлюза перенаправления) также не нужны. Следовательно, приложение будет игнорировать эти настройки при импорте параметров. Приложение гарантирует работу с помощью API VPNService, что поключение к серверу не маршрутизируется через VPN-туннель. -API VPNService не позволяет указывать сети, которые не должны маршрутизироваться через VPN. В качестве обходного пути приложение пытается обнаружить сети, которые не следует маршрутизировать через туннель (например, маршрут x.x.x.x y.y.y.y net_gateway), и вычисляет набор маршрутизаций, исключающих эти маршрутизации, для имитации поведения других платформ. В окнах журнала отображаются параметры VPNService после установки подключения. -Сценарий: Android 4.4+ действительно использует маршрутизацию политик. Использование route/ifconfig не покажет установленные маршрутизации. Вместо этого используйте правило ip, iptables -t mangle -L\" - Не отключаться от VPN-подключения при повторном подключении OpenVPN. + Ознакомьтесь с секцией Вопросы и Ответы. Есть также краткое руководство начала работы. + Конфигурация маршрутизации/интерфейса + Конфигурация маршрутизации и интерфейса производится не через традиционные команды ifconfig/route, а с помощью VPNService API. Это приводит к созданию другой конфигурации маршрутизации, отличной от конфигураций, используемых на других ОС. +Конфигурация VPN-туннеля состоит из IP-адресов и сетей, которые должны направляться через этот интерфейс. Никаких особых адресов участников или адресов шлюза не требуется. Также не требуются и специальные маршруты для соединения с VPN-сервером (например, добавленные при использовании redirect-gateway). Следовательно, приложение будет игнорировать эти параметры при импорте конфигурации. Приложение с помощью VPNService API гарантирует, что подключение к серверу не направляется через VPN-туннель. +API VPNService не позволяет указывать сети, которые не должны направляться через VPN. Приложение пытается определить сети, которые не должны быть направлены через туннель (например, маршрут x.x.x.x y.y.y.y net_gateway) и вычисляет список маршрутов, в который не включаются эти маршруты, чтобы эмулировать поведение других платформ. Окно журнала показывают конфигурацию сервиса VPN после установления соединения. +За кулисами: Android 4.4+ использует политику маршрутизации. Использование route/ifconfig не покажет установленные маршруты. Вместо этого используйте IP-правило, iptables -t mangle -L. + Не переходит на соединение без VPN во время восстановления подключения. Постоянный tun Журнал OpenVPN - Импорт конфигурации OpenVPN - Расход батареи + Импортировать конфигурацию OpenVPN + Потребление батареи В моих тестах главным источником высокого потребления электроэнергии батареи были пакеты keepalive. Большинство OpenVPN-серверов содержат директиву вроде «keepalive 10 60», которая заставляет клиент и сервер обмениваться keepalive-пакетами каждые 10 секунд. <p> Хоть эти пакеты и маленькие, и не расходуют много трафика, они заставляют радиомодуль всё время работать, что повышает расход энергии. (см. <a href=\"http://developer.android.com/training/efficient-downloads/efficient-network-access.html#RadioStateMachine\">The Radio State Machine | Android Developers</a>) <p> Настройки keepalive не могут быть изменены на клиенте, это может сделать только системный администратор OpenVPN. <p> К сожалению, использование keepalive более, чем 60 секунд с UDP, может привести к тому, что некоторые шлюзы NAT будут обрывать соединение из-за отсутствия активности. Использование TCP с большим keepalive-таймаутом будет работать, но производительность туннелирования TCP через TCP в сетях с высокими потерями пакетов крайне низкая (см. <a href=\"http://sites.inka.de/bigred/devel/tcp-tcp.html\">Why TCP Over TCP Is A Bad Idea</a>) - Функция Android-модема (через Wi-Fi, USB или Bluetooth) и API VPNService (используемая этой программой) не работают вместе. Дополнительные сведения смотрите в <a href=\"https://github.com/schwabe/ics-openvpn/issues/34\">Выпуск #34</a> - VPN и модем - Повторные попытки подключения + Функция раздачи интернета в Android (через WiFi, USB или Bluetooth) и VPNService API (используемое этим приложением) не работают вместе. Подробней в <a href=\"https://github.com/schwabe/ics-openvpn/issues/34\">проблеме №34</a>. + VPN и раздача интернета + Попытки переподключения Настройки переподключения - Количество секунд ожидания между попытками подключения. - Секунды между подключениями - Неожиданный сбой OpenVPN. Подумайте об использовании опции отправки мини-дампа в главном меню + Количество секунд между попытками подключения. + Время в секундах между подключениями + Приложение «OpenVPN для Android» завершилось неожиданно. Рассмотрите возможность отправить минидамп разработчику из главного меню. Отправить мини-дамп разработчику Отправляет отладочную информацию о последнем сбое разработчику OpenVPN - %s @@ -247,32 +245,32 @@ API VPNService не позволяет указывать сети, которы Аутентификация Получение параметров клиента Назначение IP-адресов - Добавление маршрутизации + Добавление маршрутов Подключено Отключить Переподключение Выход Не запущено - Разрешение имён хостов + Разрешение имён узлов Подключение (TCP) Аутентификация не удалась - Ожидание подключения к сети + Ожидание доступной к сети Ожидание запуска Orbot ↓%2$s %1$s - ↑%4$s %3$s Не подключено Подключение к VPN %s Подключение к VPN %s В некоторых версиях Android 4.1 возникают проблемы, если имя сертификата хранилища ключей содержит не буквенно-цифровые символы (например, пробелы, подчеркивания или дефисы). Попробуйте повторно импортировать сертификат без специальных символов - Код шифрования - Пакетная аутентификация - Введите метод аутентификации пакета + Коды шифрования + Аутентификация пакетов + Укажите метод аутентификации пакетов собрано с помощью %s - Сборка отладки + Отладочная сборка официальная сборка Скопировать в конфигурацию - Аварийный дамп + Отчёт об ошибке Добавить - Отправить файл параметров + Отправить файл конфигурации Полный DN Ваши импортированные параметры использовали старую УСТАРЕВШУЮ опцию tls-remote, которая использует другой формат DN. RDN (обычное имя) @@ -280,167 +278,162 @@ API VPNService не позволяет указывать сети, которы tls-remote (УСТАРЕЛО) Вы можете помочь с переводом, посетив https://crowdin.net/project/ics-openvpn/invite %1$s пытается контролировать %2$s - Продолжая, вы даете приложению разрешение полностью контролировать OpenVPN для Android и перехватывать весь сетевой трафик. НЕ принимайте, если вы не доверяете приложению. В противном случае вы рискуете, что ваши данные будут скомпрометированы вредоносным ПО. + Продолжая, вы даёте приложению «OpenVPN для Android» разрешение на полный контроль и перехват всего сетевого трафика. Не продолжайте, если не доверяете этому приложению. В противном случае вы рискуете подвергнуть свои данные риску компрометации вредоносным ПО. Я доверяю этому приложению. - Ни одному приложению не разрешено использовать внешний API + Нет приложений, разрешённых для внешнего API Разрешённые приложения: %s - \"Очистить список разрешенных внешних приложений? -Текущий список разрешенных приложений: - -%s\" + Очистить список разрешенных внешних приложений?\nТекущий список разрешенных приложений:\n\n%s Приостанавливать VPN, если экран выключен и передано меньше 64kb данных за 60 сек. Когда включена опция \"Постоянный туннель\", приостановка VPN оставит ваше устройство без сетевого подключения. Без опции \"Постоянный туннель\" устройство не будет иметь VPN-соединения/защиты. Приостановить VPN-соединение после выключения экрана Приостановка подключения при выключенном экране: менее %1$s в %2$ss - Предупреждение: постоянный туннель не включен для этой VPN. Когда экран выключен, трафик будет использовать обычное Интернет-соединение. + Внимание: постоянный туннель не включён для этого VPN. Трафик будет использовать обычное подключение к сети интернет, когда экран выключен. Сохранить пароль Приостановить VPN Возобновить VPN Пауза VPN запрошена пользователем - VPN приостановлен - экран выключен + VPN приостановлен – выключен экран Хаки для данного устройства - Невозможно отобразить информацию о сертификате + Невозможно отобразить сведения о сертификате Поведение приложения Поведение VPN Разрешить изменение конфигураций VPN Аппаратное хранилище ключей: - Иконка приложения, пытающегося использовать OpenVPN для Android + Значок приложения, пытающегося использовать «OpenVPN для Android» "Начиная с Android 4.3, диалог подтверждения VPN-соединения защищён от приложений, «накладывающихся поверх экрана». Это приводит к тому, что диалоговое окно подтверждения не реагирует на сенсорные нажатия. Если вам попадётся приложение, использующее наложения и вызывающее такое поведение, свяжитесь с автором этого приложения. Эта проблема затрагивает все VPN приложения на Android 4.3 и более поздних версиях. Смотрите также <a href=\"https://github.com/schwabe/ics-openvpn/issues/185\">Issue 185<a> для получения дополнительных сведений" Диалог подтверждения VPN - В качестве альтернативы вы можете отправить нам пожертвование через Google Play: - Большое спасибо вам за пожертвование %s! + В качестве альтернативы вы можете сделать пожертвование в Play Store: + Спасибо за донат %s! Журнал очищен. Показать пароль - Ошибка доступа к связке ключей: %s - Короткая + Ошибка при доступе к хранилищу ключей: %s + Кратко ISO - Отметки времени + Время Ничего Загрузить - Загрузки + Скачать Статус VPN Настройки вида - \"Необработанное исключение: %1$s + \"Неопознанная ошибка: %1$s %2$s\" %3$s: %1$s\n\n%2$s - Если вы получили рут права на вашем устройстве Android, вы можете установить <a href=\"http://xposed.info/\">Xposed framework</a> и <a href=\"http://repo.xposed.info/module/de.blinkt.vpndialogxposed\">Модуль подтверждения диалога VPN</a> на свой страх и риск + Если на вашем устройстве есть root, можете установить <a href=\"http://xposed.info/\">Xposed framework</a> и <a href=\"http://repo.xposed.info/module/de.blinkt.vpndialogxposed\">модуль автоматического подтверждения диалога подключения VPN</a> на свой страх и риск. Полные тексты лицензий - Сети, напрямую подключенные к локальным интерфейсам, не будут маршрутизироваться через VPN. Отмена выбора этого параметра приведет к перенаправлению всего трафика, предназначенного для локальных сетей, в частности VPN. + Сети, напрямую подключённые к локальным интерфейсам, не будут маршрутизироваться через VPN. Отмена выбора этого параметра приведёт к перенаправлению всего трафика, предназначенного для локальных сетей, в частности VPN. Обход VPN для локальных сетей - Файл имени пользователя и пароля + Файл с именем пользователя/паролем [Импортировано из: %s] Некоторые файлы не найдены. Выберите файлы для импорта в конфигурацию: Чтобы использовать это приложение, вам необходим провайдер VPN/шлюз VPN, поддерживающий VPN Pro (часто предоставляется вашим работодателем). Посетите https://community.openvpn.net/ для получения дополнительной информации об OpenVPN и о том, как настроить ваш собственный сервер OpenVPN. Журнал импорта: Указана топология VPN «%3$s», но ifconfig %1$s %2$s больше похоже на IP-адрес с маской сети. Используется топология «подсеть». - Значение переопределения MSS должно быть целым числом от 0 до 9000. + Значение, переопределяющее MSS, должно быть целым числом от 0 до 9000 Значение, переопределяющее MTU, должно быть целым числом от 64 до 9000 - Сообщите сеансам TCP, запущенным через туннель, что они должны ограничить размер своих пакетов отправки, чтобы после их инкапсуляции OpenVPN результирующий размер пакета UDP, который OpenVPN отправляет своему партнеру, не превышал этого количества байтов. (по умолчанию 1450) + Объявить TCP-сессиям, работающим через туннель, что они должны ограничить размер своих пакетов так, чтобы после их инкапсуляции OpenVPN результирующий размер UDP-пакета, который OpenVPN посылает своим одноранговым узлам, не превышал это число байт. (1450 по умолчанию) Переопределить MSS для нагрузки TCP Задать MSS для нагрузки TCP Поведение клиента Очистить разрешённые внешние приложения - Загрузка... + Загрузка… Разрешённые приложения VPN: %1$s Запрещённые приложения VPN: %1$s Пакет %s больше не установлен, он удаляется из списка разрешённых/запрещённых приложений VPN используется для всех приложений, кроме выбранных VPN используется только для выбранных приложений Разрешить приложениям обходить VPN - Удалить запись удаленного сервера? - Содержание + Убрать запись удалённого сервера? + Оставить как есть Удалить - Добавить новое управление - Использовать записи подключения в случайном порядке при подключении + Добавить новый сервер + При подключении использовать список соединений в случайном порядке Вам необходимо определить и включить хотя бы один удалённый сервер. Список серверов Разрешённые приложения Расширенные настройки - Настройки полезной нагрузки + Настройки нагрузки Настройки TLS - Управление не определено + Удаленный узел не определен Дублировать конфигурацию VPN Дублирование конфигурации: %s Показать журнал Существуют различные клиенты OpenVPN для Android. Самые распространённые — OpenVPN для Android (этот клиент), OpenVPN Connect и OpenVPN Settings.<p>Клиенты можно разделить на две группы: OpenVPN для Android и OpenVPN Connect используют официальный VPNService API (Android 4.0+) и не требуют root-доступ, и OpenVPN Settings, который требует root.<p>OpenVPN для Android — клиент с открытым исходным кодом, который разработал Arne Schwabe. Он предназначен для более опытных пользователей и предоставляет много настроек, возможность импорта конфигураций из файлов и настраивать/изменять конфигурации внутри приложения. Этот клиент основан на общественной версии OpenVPN. А именно на исходном коде OpenVPN 2.x. Этот клиент можно представить как полуофициальный клиент сообщества. <p>OpenVPN Connect — клиент с закрытым исходным кодом, который разрабатывается OpenVPN Technologies, Inc. Он призван для обычного использования и предназначен для простых пользователей, и позволяет импортировать конфигурации OpenVPN. Этот клиент основан на OpenVPN C++, другой реализации протокола OpenVPN (Это потребовалось OpenVPN Technologies, Inc, чтобы опубликовать приложение OpenVPN на iOS). Этот клиент — официальный клиент OpenVPN technologies <p> OpenVPN Settings — старейший из клиентов, он также UI для OpenVPN с открытым исходным кодом. В отличие от OpenVPN для Android, он требует root-прав и не использует VPNService API. Он не зависит от Android 4.0+ Различия между клиентами OpenVPN для Android - Игнорирование многоадресной маршрутизации: %s - Android поддерживает только CIDR-маршруты к VPN. Поскольку маршруты без CIDR почти никогда не используются, OpenVPN для Android будет использовать /32 для не CIDR-маршрутов и выдавать предупреждение. - Режим модема работает, пока активен VPN. Привязанное подключение НЕ будет использовать VPN. - Ранняя версия KitKat устанавливала неправильное значение MSS для TCP-соединений (#61948). Попробуйте включить опцию mssfix, чтобы обойти эту ошибку. - Android будет продолжать использовать настройки вашего прокси, указанные для мобильного/Wi-Fi подключения, если DNS-серверы не установлены. OpenVPN для Android предупредит вас об этом в журнале. Когда VPN устанавливает DNS-сервер, Android не будет использовать прокси. API для установки прокси для VPN-подключения отсутствует. - Приложения VPN могут перестать работать после удаления и повторной установки. Подробности см. #80074 - Настроенный IP-адрес клиента и IP-адреса в его сетевой маске не маршрутизируются в VPN. OpenVPN работает над этой ошибкой, явно добавляя маршрутизацию, которая соответствует IP-адресу клиента и его сетевой маске. - Открытие устройства tun при активном другом устройстве tun, которое используется для поддержки persist-tun, приводит к сбою служб VPN на устройстве. Для возобновления работы VPN требуется перезагрузка. OpenVPN для Android пытается избежать повторного открытия устройства tun и, если это действительно необходимо, сначала закрывает текущий TUN перед открытием нового устройства TUN, чтобы избежать сбоя. Это может привести к появлению короткого окна, в котором пакеты отправляются через соединение, отличаемые от VPN. Даже с этим временным решением VPNServices иногда дает сбой и требует перезагрузки устройства. + Игнорирование многоадресного маршрута: %s + Android поддерживает только CIDR-маршруты к VPN. Поскольку маршруты без CIDR почти никогда не используются, «OpenVPN для Android» будет использовать /32 для маршрутов без CIDR и выдавать предупреждение. + Вы можете раздавать интернет при активном VPN, но это соединение НЕ будет использовать VPN. + Ранние версии KitKat устанавливают неправильное значение MSS для TCP-соединений (#61948). Попробуйте включить функцию mssfix, чтобы обойти эту ошибку. + Android будет продолжать использовать настройки прокси, указанные для мобильного/WiFi-соединения, когда не установлен DNS-сервер. «OpenVPN для Android» предупредит вас об этом в журнале.

Когда VPN установит DNS-сервер, Android прекратит использовать прокси. Для установки прокси для VPN-соединения нет API.

+ Сконфигурированный IP-адрес клиента и IP-адреса в его маске сети не маршрутизируются в VPN. OpenVPN обходит эту ошибку, явно добавляя маршрут, который соответствует IP-адресу клиента и его маске сети. + Открытие туннеля, когда туннель уже активен, для его постоянного удержания, может привести к ошибке и VPNServices закроется на устройстве. Для возобновления работы VPN требуется перезагрузка. «OpenVPN для Android» пытается избежать установки второго туннеля, и, если это действительно нужно, сначала закроет текущий туннель, перед открытием нового, чтобы избежать сбоя приложения. Это может привести к небольшому интервалу, в котором передача пакетов происходит по обычному (не VPN) соединению. Даже с этими ухищрениями VPNServices иногда даёт сбой и требует перезагрузки устройства. VPN вообще не работает для вторичных пользователей. - Несколько пользователей сообщают, что мобильное подключение/передача данных данных часто прерывается при использовании приложения VPN. Такое поведение, по-видимому, влияет только на некоторую комбинацию мобильного провайдера/устройства, и пока не удалось определить причину /обходной путь для ошибки. - Через VPN можно достичь только пункта назначения, который доступен без VPN. IPv6 VPN вообще не работает. + Некоторые пользователи сообщают, что мобильная связь/мобильная передача данных часто обрывается, когда используется VPN-приложение. Такое поведение, влияет только на некоторые комбинации провайдеров/устройств, и, пока что, не удалось определить причину/обходной путь для решения этой ошибки. + Через VPN могут работать только те адреса, которые доступны без VPN. IPv6 VPN не работают вообще. Маршрутизация без CIDR Поведение прокси для VPN - Переустановка приложений VPN %s и ранее Копия %s Маршрутизация на настроенный IP-адрес - Неверное значение MSS для VPN-подключения + Неправильное значение MSS для VPN-подключения Дополнительные пользователи планшетов - Укажите индивидуальные параметры подключения. Используйте с осторожностью + Укажите пользовательские параметры подключения. Используйте с осторожностью Пользовательские параметры Удалить запись о подключении Случайные отключения от мобильной сети Удалённые сети недоступны - Режим Persist tun + Постоянный режим туннеля %s и позднее - Сбой подключения с SSL23_GET_SERVER_HELLO:sslv3 сбой квитирования предупреждения - \"Более новые версии OpenVPN для Android (0.6.29/март 2015 г.) используют более безопасное значение по умолчанию для разрешенных наборов шифрования (tls-cipher \"DEFAULT:!EXP:!PSK:!SRP:!kRSA\"). К сожалению, пропуск менее безопасных комплектов шифрования и экспортных комплектов шифрований, особенно отсутствие комплектов шифрований, не поддерживающих Perfect Forward Secrecy (Diffie-Hellman), вызывает некоторые проблемы. Обычно это вызвано благими намерениями, но плохо выполненной попыткой усилить безопасность TLS путем установки tls-cipher на сервере или некоторых встроенных ОС с урезанным SSL (например, MikroTik). -Чтобы решить эту проблему, установите настройки tls-cipher на сервере на разумные значения по умолчанию, такие как tls-cipher \"DEFAULT:!EXP:!PSK:!SRP:!kRSA\". Чтобы обойти проблему на клиенте, добавьте настраиваемую опцию tls-cipher DEFAULT в клиент Android.\" + Сбой соединения с SSL23_GET_SERVER_HELLO:ошибка рукопожатия sslv3 + Новые версии «OpenVPN для Android» (0.6.29/март 2015 года) используют более безопасные настройки по умолчанию для разрешённых наборов шифров (tls-cipher «DEFAULT:!EXP:!PSK:!SRP:!kRSA»). К сожалению, прекращение использования менее безопасных и экспортных наборов шифров, а особенно тех наборов шифров, которые не поддерживают Perfect Forward Secrecy (Diffie-Hellman), приводит к некоторым проблемам. Обычно это происходит из-за благонамеренной, но плохо реализованной попытки усиления безопасности TLS путём установки tls-cipher на сервере или некоторых встроенных ОС с урезанным SSL (например, MikroTik). +Чтобы решить эту проблему, установите настройки tls-cipher на сервере на разумные по умолчанию, такие как tls-cipher «DEFAULT:!EXP:!PSK:!SRP:!kRSA». Чтобы обойти проблему на клиенте, добавьте отдельную настройку tls-cipher DEFAULT в клиент Android. Данная конфигурация была добавлена из внешнего приложения (%s) и отмечена недоступной для редактирования пользователем. Список отозванных сертификатов - Перезапуск службы OpenVPN (приложение, вероятно, разбилось или было убито из-за нехватки памяти) + Перезапуск службы OpenVPN (приложение, вероятно, аварийно завершилось или было закрыто из-за нехватки памяти) При импорте параметров возникла ошибка, сохранение невозможно. Поиск - (Последний дамп %1$d:%2$dh старый (%3$s)) - Очистить журнал при новом подключении - Тайм-аут подключения - Не добавлено ни одного разрешенного приложения. Добавляем себя (%s), чтобы иметь хотя бы одно приложение в списке разрешённых приложений, чтобы не разрешать все приложения - OpenVPN для Android может попытаться автоматически обнаружить отсутствующие файлы на SD-карте. Нажмите на это сообщение, чтобы предоставить запрос разрешения. + (Последний дамп создан %1$d:%2$d назад (%3$s)) + Очищать журнал при новом подключении + Время ожидания соединения + Не добавлено ни одного разрешённого приложения. Добавьте себя (%s), чтобы в списке разрешённых приложений было хотя бы одно приложение, иначе необходимо будет разрешить все приложения. + «OpenVPN для Android» может попытаться автоматически обнаружить отсутствующие файлы на SD-карте. Нажмите на это сообщение, чтобы получить запрос на разрешение. Протокол Включено Разрешение VPN отозвано ОС (например, запущена другая программа VPN), остановка VPN - Получить информацию о пире + Получить информацию об участнике Отправьте на сервер дополнительную информацию, например dерсия SSL и версия Android Требуется: %1$s Введите пароль для конфигурации %1$s Использовать встроенные данные Экспорт файла параметров - tls-auth файл отсутствует + Отсутствует файл tls-auth Отсутствует сертификат пользователя или файл ключа сертификата пользователя Список отозванных сертификатов (необязательно) - Перечитать (%d) элементы журнала из файла кэша журнала - \"Несмотря на то, что телефоны Samsung являются одними из самых продаваемых телефонов Android, прошивки Samsung также являются одними из самых глючных прошивок Android. Ошибки не ограничиваются работой VPN на этих устройствах, но многие из них можно обойти. Ниже описаны некоторые из этих ошибок. + Перечитать (%d) элементов из файла кеша журнала + Даже несмотря на то, что устройства Samsung являются одними из наиболее продаваемых устройств на Android, прошивки Samsung также являются и наиболее проблемными прошивками на Android. Ошибки не ограничиваются только работой VPN на этих устройствах, но многие из них можно обойти. Далее описаны некоторые из этих ошибок. -DNS не работает, если DNS-сервер не находится в диапазоне VPN. +DNS не работает, если сервер DNS не в диапазоне VPN. На многих устройствах Samsung 5.x функция разрешённых/запрещённых приложений не работает. -Сообщается, что на Samsung 6.x VPN не работает, если приложение VPN не освобождено от функций Энергосбережения.\" +На Samsung 6.x, как сообщается, VPN не работает, пока приложению VPN не разрешено не экономить заряд батареи. Телефоны Samsung VPN не выбран. VPN по умолчанию VPN, который будет использоваться по умолчанию, когда это необходимо. А именно, при загрузке, для «Постоянной VPN» и для переключателя в «Быстрых настройках». - "Выбранный в настоящий момент VPN: \'%s\'" + В настоящее время выбран VPN: «%s» Переподключить Переключить VPN Подключиться к %s Отключить %s Введите максимальное время между попытками подключения. OpenVPN будет постепенно увеличивать время ожидания после неудачной попытки подключения до этого значения. По умолчанию 300 секунд. Максимальное время между попытками подключения - Ожидание %ss секунд между попытками подключения + Ожидание %s сек. между попыткой подключения (Сети) Ещё -> VPN]]> Подключение к OpenVPN закрыто (%s) Сортировка Сортировка Конфигурации отсортированы по порядку последнего использования Конфигурации отсортированы по названию - Параметры используют опцию tls-remote, которые устарели в 2.3 и окончательно были удалены в 2.4. + Файл конфигурации использует функцию tls-remote, которая была объявлена устаревшей в версии 2.3 и окончательно удалена в версии 2.4 Поведение при AUTH_FAILED График Использовать логарифмическую шкалу @@ -452,45 +445,68 @@ DNS не работает, если DNS-сервер не находится в Исходящие %.0f бит/с %.1f кбит/с - %.1f Мбит/с - %.1f Гбит/с - %.1f Б + %.1f мбит/с + %.1f гбит/с + <p>Начиная с OpenSSL версии 1.1, отклоняются слабые подписи сертификатов, такие как MD5. Кроме того, с OpenSSL версии 3.0, подписи с SHA1 также отклоняются.</p><p>Вам следует как можно скорее обновить сертификаты VPN, поскольку в ближайшем будущем SHA1 перестанет работать на и других платформах.</p><p>Если вы действительно хотите использовать устаревшие и повреждённые сертификаты, выберите «Небезопасный» для профиля безопасности TLS в разделе «Аутентификация/Шифрование».</p> + %.0f Б %.1f кБ %.1f МБ %.1f ГБ Статистика подключения - Текущая статистика установленного OpenVPN подключения + Текущая статистика установленного подключения OpenVPN Изменение статуса подключения - Изменение состояния подключения OpenVPN (Подключение, аутентификация,…) - Слабые (MD5) хэши в подписи сертификата (SSL_CTX_use_certificate md слишком слабый) + Изменения состояния соединения OpenVPN (подключение, аутентификация, …) + Слабые (MD5) хеши в сигнатуре сертификата (SSL_CTX_use_certificate MD слишком слабый) Тест скорости OpenSSL - Имена шифрования OpenSSL + Названия шифров OpenSSL Тест скорости шифрования OpenSSL OpenSSL возвратил ошибку Тестирование… - Проверить выбранные алгоритмы + Тест выбранных алгоритмов Внешнее приложение пытается управлять %s. Приложение, запрашивающее доступ, не может быть определено. Разрешение этого приложения предоставляет доступ ко ВСЕМ приложениям. Реализация OpenVPN 3 на C ++ не поддерживает статические ключи. Переключитесь на OpenVPN 2.x в общих настройках. - Использование файлов PKCS12 напрямую с помощью OpenVPN 3 C ++ не поддерживается. Импортируйте файлы pkcs12 в хранилище ключей Android или переключитесь на OpenVPN 2.x в общих настройках. + Использование файлов PKCS12 напрямую с помощью OpenVPN 3 C ++ не поддерживается. Импортируйте файлы PKCS12 в хранилище ключей Android или переключитесь на OpenVPN 2.x в общих настройках. Прокси Нет - Tor браузер (Орбот) - Реализация VPN Pro 3 C++ не поддерживает подключение через прокси-сервер Socks - Приложение Orbot не найдено. Установите Orbot или используйте ручную интеграцию Socks v5. + Tor (Orbot) + Реализация OpenVPN 3 на C++ не поддерживает подключение через Socks-прокси + Приложение Orbot не найдено. Установите Orbot или настройте Socks v5 вручную. Удалённый API OpenVPN для Android поддерживает два удалённых API: сложный API с использованием AIDL (remoteEXample в репозитории git) и простой с использованием Intents.<p>Примеры использования оболочки adb и intents. Замените profileName на название своей конфигурации<p><p> adb shell am start-activity -a android.intent.action.MAIN de.blinkt.openvpn/.api.DisconnectVPN<p> adb shell am start-activity -a android.intent.action.MAIN -e de.blinkt.openvpn.api.profileName Blinkt de.blinkt.openvpn/.api.ConnectVPN - Включить аутентификацию прокси + Использовать аутентификацию прокси Невозможно одновременно использовать дополнительную инструкцию http-proxy-option и интеграцию с Orbot - "Информация с сервера: \'%s\'" + Информация от сервера: «%s» Требуется взаимодействие с пользователем Для подключения OpenVPN требуется ввод данных пользователем, например двухфакторная аутентификация Открыть URL-адрес для продолжения аутентификации VPN Ответить на запрос, чтобы продолжить аутентификацию VPN Ожидание аутентификации Внешний аутентификатор - Параметры + Настройка Внешний аутентификатор не настроен - Блокировать соединение без VPN (\"Killswitch\") + Блокировать соединение без VPN («Killswitch») + Часто желательно блокировать соединения без VPN. Другие приложения часто используют термины «Killswitch» или «Seamless tunnel» для данной функции. OpenVPN и это приложение предлагают использовать постоянный туннель для реализации данной функции.<p>Проблема всех этих методов, предлагаемых приложениями, заключается в том, что они могут только улучшить ситуацию, но не являются полноценными решениями. При загрузке, сбое приложения и других сложных случаях приложение не может гарантировать, что запрет не VPN-соединений сработает, давая пользователю ложное чувство безопасности.<p><b>Единственный</b> надёжный способ гарантировать, что не VPN-соединения заблокированы, это использовать Android 8.0 или новее и настройку «Блокировать соединения без VPN», которую можно найти в «Настройках» → «Сеть и интернет» → «Дополнительно/VPN» → «OpenVPN для Android» → включить блокировку соединений без VPN («VPN всегда включена»). + Эта функция предписывает Android не разрешать протоколы (IPv4/IPv6), если VPN не устанавливает адреса IPv4 или IPv6. + Блокировать IPv6 (или IPv4), если не используется по VPN + Установить новый сертификат + Сервер AS + URL сервера + Запрос профиля автовхода + Импорт профиля с удаленного сервера + Не задан VPN по умолчанию. Перед включением этой функции установите VPN по умолчанию. + Встроенный WebView + "Могут быть вариации этого сообщения в зависимости от конкретной ситуации. Их всех объединяет то, что сервер и клиент не смогли договориться об общем шифре. Основными причинами являются: <ul><li> Вы всё ещё рассчитываете на то, что в OpenVPN 2.4 и более ранних версиях шифр BF-CBC разрешён в конфигурации по умолчанию (если не задан --cipher). Начиная с OpenVPN 2.5 по умолчанию это не так, так как шифр является <a href=https://community.openvpn.net/openvpn/wiki/SWEET32>скомпрометированным/устаревшим</a>.</li><li> Сервер работает под управлением OpenVPN 2.3 (или даже старее) с --enable-small (как минимум 4-5 летний давности).</li><li> Неправильная конфигурация (например, несоответствие шифров на клиенте и сервере).</li><p><a href=https://github.com/OpenVPN/openvpn/blob/master/doc/man-sections/cipher-negotiation.rst>Раздел руководства OpenVPN по согласованию шифров</a> очень хорошо объясняет различные сценарии согласования и что нужно делать в такой ситуации.</li><li> Устройства TP-Link используют в своих прошивках версию OpenVPN 2.3.x как минимум 5-летней давности (возможно, и более раннюю), даже в моделях 2019-2020 годов.</li><li> И последнее, но не менее важное: существует популярный VPN-провайдер, у которого есть неправильно настроенный сервер, всегда сообщающий, что использует «BF-CBC», потому что его разработчик подумал, что было бы неплохо создать правильный патч согласования шифров, несовместимый со стандартом OpenVPN.</li><p>В качестве итога: все нормальные конфигурации не должны возвращать подобную ошибку. Но (за исключением неправильно настроенного сервера VPN-провайдера) клиент можно заставить подключиться (устранив симптом, а не настоящую проблему). При подключении к старым серверам функция «Режим совместимости» в основных настройках VPN должна помочь решить большинство распространённых проблем совместимости." + Проверять отпечаток сертификата участника + (Введите SHA256-отпечаток сертификатов сервера) + HTTP-прокси: %1$s %2$d + Используйте системную функцию «VPN всегда включена» в Android для включения VPN во время загрузки. + Настройки Open VPN + Нажмите здесь, чтобы открыть окно ввода дополнительных необходимых данных аутентификации Режим совместимости Режим совместимости + Загрузка устаревшего провайдера OpenSSL + Профили используют BF-CBC, который зависит от устаревшего OpenSSL (отсутствует). + Использовать локализацию + Использовать локализацию приложения с помощью перевода, выполненного сообществом. Потребуется перезапуск приложения. + Профиль безопасности TLS diff --git a/main/src/ui/res/values-si/arrays.xml b/main/src/ui/res/values-si/arrays.xml new file mode 100644 index 00000000..eb1d2679 --- /dev/null +++ b/main/src/ui/res/values-si/arrays.xml @@ -0,0 +1,43 @@ + + + + + + සහතික + PKCS12 ගොනුව + ඇන්ඩ්රොයිඩ් සහතිකය + පරිශීලකනාමය/මුරපදය + ස්ථිතික යතුරු + පරිශීලක/PW + සහතික + පරිශීලක/PW + PKCS12 + පරිශීලක/PW + Android + බාහිර සත්යාපන සැපයුම්කරු + + + 0 + 1 + නිශ්චිතව දක්වා නැත + සංකේතනය (--tls-crypt) + TLS Crypt V2 + + + විසන්ධි කර, මුරපදය අමතක කරන්න + විසන්ධි කර, මුරපදය තබා ගන්න + නොසලකන්න, නැවත උත්සාහ කරන්න + + + නවීන පෙරනිමි + OpenVPN 2.5.x සම වයසේ මිතුරන් + OpenVPN 2.4.x සම වයසේ මිතුරන් + OpenVPN 2.3.x සහ වැඩිහිටි සම වයසේ මිතුරන් + + + අනාරක්ෂිත (නිර්දේශ නොකරයි, අනාරක්ෂිත ගුප්තකේතනයට ඉඩ දෙයි) + උරුමය (පෙරනිමි) + කැමති (නිර්දේශිත නමුත් සීමිත අනුකූලතාව) + කට්ටලය B (NIST අනුමත ඉලිප්සීය වක්‍ර පමණි) + + diff --git a/main/src/ui/res/values-si/plurals.xml b/main/src/ui/res/values-si/plurals.xml new file mode 100644 index 00000000..d13ff6cb --- /dev/null +++ b/main/src/ui/res/values-si/plurals.xml @@ -0,0 +1,19 @@ + + + + මාසයක් ඉතිරියි + මාස %d ක් ඉතිරියි + + + එක දවසක් ඉතුරුයි + දින %d ක් ඉතිරිව ඇත + + + පැයක් ඉතිරියි + පැය %d ක් ඉතිරියි + + + විනාඩියක් ඉතිරියි + විනාඩි %d ක් ඉතිරියි + + diff --git a/main/src/ui/res/values-si/strings.xml b/main/src/ui/res/values-si/strings.xml new file mode 100644 index 00000000..bd41e202 --- /dev/null +++ b/main/src/ui/res/values-si/strings.xml @@ -0,0 +1,503 @@ + + + + ඇන්ඩ්‍රොයිඩ් සඳහා ඕපන්වීපීඑන් + සේවාදායකයේ ලිපිනය: + සේවාදායකයේ කෙවෙනිය: + ස්ථානය + නාමාවලිය කියවීමට නොහැක + තෝරා ගැනීම + සිදු කරන්න + දත්ත නැත + LZO සම්පීඩනය + සහතිකය නැත + අනුග්‍රාහකයාගේ සහතිකය + අනුග්‍රාහකයාගේ සහතිකය + PKCS12 ගොනුව + CA සහතිකය + ඔබ සහතිකයක් තෝරාගත යුතුය + මූලාශ්‍ර කේතය සහ නිකුතු ට්‍රැකරය https://github.com/schwabe/ics-openvpn/ හි ඇත + මෙම වැඩසටහන පහත සඳහන් සංරචක භාවිතා කරයි; බලපත්‍ර පිළිබඳ සම්පූර්ණ විස්තර සඳහා මූලාශ්‍ර කේතය බලන්න + මේ ගැන + පැතිකඩයන් + වර්ගය + PKCS12 මුරපදය + + ඔබ ගොනුවක් තෝරාගත යුතුය + TLS සත්‍යාපනය භාවිතා කරන්න + TLS දිශාව + CIDR ආකෘතියෙන් IPv6 ලිපිනය/Netmask ඇතුළු කරන්න (උදා: 2000:dd::23/64) + CIDR ආකෘතියෙන් IPv4 ලිපිනය/Netmask ඇතුලත් කරන්න (උදා. 1.2.3.4/24) + IPv4 ලිපිනය + IPv6 ලිපිනය + අභිරුචි OpenVPN විකල්ප ඇතුළත් කරන්න. පරිස්සමෙන් භාවිතා කරන්න. VPNSettings නිර්මාණය මගින් බොහෝ tun සම්බන්ධ OpenVPN සිටුවම් වලට සහය දැක්විය නොහැකි බව සලකන්න. වැදගත් විකල්පයක් අස්ථානගත වී ඇතැයි ඔබ සිතන්නේ නම් කතුවරයා අමතන්න + පරිශීලක නාමය (සත්‍යාපනයක් නොමැතිව හිස්ව තබන්න) + මුරපදය + ස්ථිතික වින්‍යාසය සඳහා TLS Auth Keys ස්ථිතික යතුරු ලෙස භාවිතා කරනු ඇත + අ.පු.ජා. වින්‍යාසගත කරන්න + පැතිකඩ එකතු කරන්න + නව පැතිකඩ හඳුනා ගනිමින් නමක් ඇතුළත් කරන්න + කරුණාකර අද්විතීය පැතිකඩ නමක් ඇතුළත් කරන්න + පැතිකඩ නාමය + ඔබ පරිශීලක සහතිකයක් තෝරාගත යුතුය + ඔබ CA සහතිකයක් තෝරාගත යුතුය හෝ සම වයසේ ඇඟිලි සලකුණු පරීක්ෂාව සබල කළ යුතුය + දෝෂයක් හමු නොවීය + වින්‍යාස කිරීමේදී දෝෂයකි + IPv4 ලිපිනය විග්‍රහ කිරීමේ දෝෂයකි + අභිරුචි මාර්ග විග්‍රහ කිරීමේ දෝෂයකි + (ඉල්ලුම මත විමසීමට හිස්ව තබන්න) + ඔපන්වීපීඑන් කෙටිමඟ + අ.පු.ජා. වෙත සම්බන්ධ… + කෙටිමඟෙහි සඳහන් කර ඇති පැතිකඩ සොයාගත නොහැකි විය + සසම්භාවී ධාරක උපසර්ගය + සත්කාරක නාමය ඉදිරිපිට අහඹු අක්ෂර 6ක් එක් කරයි + අභිරුචි විකල්ප ශක්තිමත් කරන්න + අභිරුචි විකල්ප සඳහන් කරන්න. පරිස්සමෙන් භාවිතා කරන්න! + මාර්ගය Android විසින් ප්‍රතික්ෂේප කරන ලදී + විසන්ධි කරන්න + අ.පු.ජා. විසන්ධි කරන්න + පැහැදිලි ලඝු-සටහන + තහවුරු කිරීම අවලංගු කරන්න + සම්බන්ධිත VPN විසන්ධි කරන්න/සම්බන්ධතා උත්සාහය අවලංගු කරන්නද? + අ.පු.ජා. ඉවත් කරන්න + සේවාදායකය TLS සේවාදායක දිගු සමඟ සහතිකයක් භාවිතා කරන්නේ දැයි පරීක්ෂා කරයි (--දුරස්ථ-cert-tls සේවාදායකය) + TLS සේවාදායක සහතිකය බලාපොරොත්තු වන්න + දුරස්ථ සේවාදායක සහතික විෂය DN පරීක්ෂා කරයි + සහතික සත්කාරක නාමය පරීක්ෂා කරන්න + දුරස්ථ සහතිකය DN සත්‍යාපනය කිරීමට භාවිතා කරන චෙක්පත සඳහන් කරන්න (උදා C=DE, L=Paderborn, OU=Avian IP Carriers, CN=openvpn.blinkt.de)\n\nසම්පූර්ණ DN හෝ RDN (openvpn.blinkt.de in) සඳහන් කරන්න. උදාහරණය) හෝ සත්‍යාපනය සඳහා RDN උපසර්ගයක්.\n\nRDN උපසර්ගය භාවිතා කරන විට \"Server\" ගැලපීම \"Server-1\" සහ \"Server-2\"\n\nපාඨ ක්ෂේත්‍රය හිස්ව තැබීමෙන් සේවාදායක සත්කාරක නාමයට එරෙහිව RDN පරීක්ෂා කරනු ඇත.\n\nවැඩි විස්තර සඳහා -verify-x509-name යටතේ OpenVPN 2.3.1+ manpage බලන්න + දුරස්ථ සහතික විෂය + TLS යතුරු සත්‍යාපනය සක්‍රීය කරයි + TLS Auth ගොනුව + සේවාදායකයෙන් IP ලිපින, මාර්ග සහ කාල විකල්ප ඉල්ලයි. + සේවාදායකයෙන් කිසිදු තොරතුරක් ඉල්ලා නැත. සැකසීම් පහත සඳහන් කළ යුතුය. + අදින්න සැකසුම් + DNS + සේවාදායකය විසින් DNS සැකසුම් අභිබවා යන්න + ඔබගේම ව.නා.ප. සේවාදායක භාවිතා කරන්න + වසමසොයන්න + භාවිතා කළ යුතු ව.නා.ප. සේවාදායකයා + ව.නා.ප. සේවාදායකයා + සාමාන්‍ය DNS සේවාදායකය වෙත ළඟා විය නොහැකි නම් ද්විතීයික DNS සේවාදායකය භාවිතා කරයි. + උපස්ථ ව.නා.ප. සේවාදායකයා + තල්ලු කරන ලද මාර්ග නොසලකා හරින්න + සේවාදායකය විසින් තල්ලු කරන ලද මාර්ග නොසලකා හරින්න. + VPN හරහා සියලුම ගමනාගමනය යළි හරවා යවයි + පෙරනිමි මාර්ගය භාවිතා කරන්න + අභිරුචි මාර්ග ඇතුළත් කරන්න. CIDR ආකෘතියෙන් පමණක් ගමනාන්තය ඇතුළු කරන්න. \"10.0.0.0/8 2002::/16\" VPN හරහා 10.0.0.0/8 සහ 2002::/16 ජාල මෙහෙයවනු ඇත. + VPN හරහා නොයැවිය යුතු මාර්ග. ඇතුළත් කළ මාර්ග සඳහා සමාන වාක්‍ය ඛණ්ඩය භාවිතා කරන්න. + අභිරුචි මාර්ග + බැහැර කළ ජාල + ලොග් වාචික මට්ටම + ඕනෑම IP එකකින් සත්‍යාපනය කළ පැකට් වලට ඉඩ දෙයි + පාවෙන සේවාදායකයට ඉඩ දෙන්න + අභිරුචි විකල්ප + අ.පු.ජා. සැකසුම් සංස්කරණය + අ.පු.ජා. පැතිකඩ \'%s\' ඉවත් කරන්නද? + සමහර අභිරුචි ICS රූප මත /dev/tun මත අවසරය වැරදි විය හැක, නැතහොත් tun මොඩියුලය සම්පුර්ණයෙන්ම අතුරුදහන් විය හැක. CM9 පින්තූර සඳහා සාමාන්‍ය සැකසුම් යටතේ හිමිකාරත්වය නිවැරදි කිරීමේ විකල්පය උත්සාහ කරන්න + ටුන් අතුරුමුහුණත විවෘත කිරීමට අසමත් විය + "දෝෂය: " + පැහැදිලිව + ටුන් අතුරුමුහුණත විවෘත කිරීම: + දේශීය IPv4: %1$s/%2$d IPv6: %3$s MTU: %4$d + ව.නා.ප. සේවාදායකය: %1$s, වසම: %2$s + මාර්ග: %1$s %2$s + බැහැර කළ මාර්ග: %1$s %2$s + VpnService මාර්ග ස්ථාපනය කර ඇත: %1$s %2$s + අතුරුමුහුණත් තොරතුරු %1$s සහ %2$sලැබුණි, දෙවන ලිපිනය දුරස්ථයේ සම ලිපිනය යැයි උපකල්පනය කරයි. දේශීය IP සඳහා /32 netmask භාවිතා කිරීම. OpenVPN විසින් ලබා දෙන මාදිලිය \"%3$s\" වේ. + CIDR netmask සමඟින් %1$s සහ %2$s IP මාර්ගයක් ලෙස අර්ථ දැක්විය නොහැක, /32 netmask ලෙස භාවිතා කරයි. + නිවැරදි%2$s %1$s%2$s%3$sදක්වා + Android Keychain සහතික වෙත ප්‍රවේශ විය නොහැක. මෙය ස්ථිරාංග උත්ශ්‍රේණි කිරීමකින් හෝ යෙදුම්/යෙදුම් සැකසීම් වල උපස්ථයක් ප්‍රතිසාධනය කිරීමෙන් සිදු විය හැක. කරුණාකර VPN සංස්කරණය කර සහතිකයට ප්‍රවේශ වීමට අවසරය ප්‍රතිනිර්මාණය කිරීමට මූලික සැකසුම් යටතේ සහතිකය නැවත තෝරන්න. + %1$s %2$s + ලොග් ගොනුව යවන්න + යවන්න + ICS OpenVPN ලොග් ගොනුව + ලොග් ප්‍රවේශය පසුරු පුවරුවට පිටපත් කරන ලදී + ප්‍රකාරය තට්ටු කරන්න + මූල නොවන VPN API සමඟ තට්ටු ප්‍රකාරය කළ නොහැක. එබැවින් මෙම යෙදුමට ටැප් සහාය ලබා දිය නොහැක + යළි? ඔයා විහිළු කරනවාද? නැත, ටැප් ප්‍රකාරය ඇත්ත වශයෙන්ම සහාය නොදක්වන අතර එයට සහය දක්වන්නේ දැයි විමසමින් තවත් තැපැල් යැවීම උදව් නොවනු ඇත. + තුන්වෙනි වතාව? ඇත්ත වශයෙන්ම, කෙනෙකුට ටුන් මත පදනම්ව ටැප් ඉමුලේටරයක් ලිවිය හැකි අතර එය යැවීමේ ලේයර්2 තොරතුරු එකතු කරන අතර ලැබෙන විට ලේයර්2 තොරතුරු ඉවත් කරයි. නමුත් මෙම ටැප් ඉමුලේටරයට ARP සහ සමහරවිට DHCP සේවාලාභියෙකුද ක්‍රියාත්මක කිරීමට සිදුවේ. මේ පැත්තේ කිසිම වැඩක් කරන කෙනෙක් ඉන්නවා කියලා මම දන්නේ නැහැ. ඔබට මෙය කේතනය කිරීම ආරම්භ කිරීමට අවශ්‍ය නම් මා අමතන්න. + නිති පැණ + ලොග් සටහන් පිටපත් කිරීම + තනි ලොග් ප්‍රවේශයක් පිටපත් කිරීමට ඔබා ලොග් ප්‍රවේශය අල්ලාගෙන සිටින්න. සම්පූර්ණ ලොගය පිටපත් කිරීමට/ යැවීමට Send Log විකල්පය භාවිතා කරන්න. GUI හි බොත්තම නොපෙනේ නම්, දෘඪාංග මෙනු බොත්තම භාවිතා කරන්න. + ලබා ගැනීමට කෙටිමඟ + ඔබේ ඩෙස්ක්ටොප් එකේ OpenVPN ආරම්භ කිරීමට ඔබට කෙටිමඟක් තැබිය හැක. ඔබගේ මුල් තිරයේ වැඩසටහන අනුව ඔබට කෙටිමඟක් හෝ විජට් එකක් එක් කිරීමට සිදුවේ. + ඔබගේ රූපය VPNService API සඳහා සහය නොදක්වයි, සමාවන්න :( + සංකේතනය + දත්ත සංකේතන ක්‍රම ඇතුලත් කරන්න + OpenVPN විසින් භාවිතා කරන දත්ත සංකේතාංකන කේතාංක ඇල්ගොරිතම ඇතුලත් කරන්න : (--data-ciphers). AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305 හි පෙරනිමිය භාවිතා කිරීමට හිස්ව තබන්න. + OpenVPN සඳහා භාවිතා කරන සත්‍යාපන සංග්‍රහය ඇතුළු කරන්න. පෙරනිමි ජීර්ණය භාවිතා කිරීමට හිස්ව තබන්න. + සත්‍යාපනය/ගුප්තකේතනය + ගොනු ගවේෂකය + පේළිගත ගොනුව + ගොනුව ආයාත කිරීමේ දෝෂයකි + ගොනු පද්ධතියෙන් ගොනුව ආයාත කිරීමට නොහැකි විය + [[අන්තර්ගත ගොනු දත්ත]] + IP තොරතුරු නොමැතිව ටුන් උපාංගය විවෘත කිරීම ප්රතික්ෂේප කිරීම + ovpn ගොනුවෙන් පැතිකඩ ආයාත කරන්න + ආයත කරන්න + ආයාත කිරීමට පැතිකඩ කියවිය නොහැකි විය + වින්‍යාස ගොනුව කියවීමේ දෝෂයකි + පැතිකඩ එකතු කරන්න + ආයාත කළ වින්‍යාස ගොනුවේ සඳහන් %1$s ගොනුව සොයා ගැනීමට නොහැකි විය + මූලාශ්‍ර %1$sවෙතින් වින්‍යාස ගොනුව ආයාත කිරීම + ඔබගේ වින්‍යාසයට UI වින්‍යාසයන් වෙත සිතියම්ගත නොකළ වින්‍යාස විකල්ප කිහිපයක් තිබුණි. මෙම විකල්ප අභිරුචි වින්‍යාස විකල්ප ලෙස එකතු කරන ලදී. අභිරුචි වින්‍යාසය පහත දැක්වේ: + වින්‍යාස ගොනුව කියවා අවසන්. + ප්‍රාදේශීය ලිපිනයට සහ වරායට බැඳෙන්න එපා + දේශීය බැඳීමක් නැත + වින්‍යාස ගොනුව ආයාත කරන්න + ආරක්ෂක සලකා බැලීම් + "OpenVPN ආරක්ෂක සංවේදී බැවින් ආරක්ෂාව පිළිබඳ සටහන් කිහිපයක් සංවේදී වේ. sdcard හි ඇති සියලුම දත්ත සහජයෙන්ම අනාරක්ෂිත වේ. සෑම යෙදුමකටම එය කියවිය හැකිය (උදාහරණයක් ලෙස මෙම වැඩසටහනට විශේෂ sd කාඩ්පත් හිමිකම් අවශ්ය නොවේ). මෙම යෙදුමේ දත්ත කියවිය හැක්කේ යෙදුමට පමණි. ගොනු සංවාදයේ cacert/cert/key සඳහා ආයාත විකල්පය භාවිතා කිරීමෙන් දත්ත VPN පැතිකඩෙහි ගබඩා වේ. VPN පැතිකඩ වෙත ප්‍රවේශ විය හැක්කේ මෙම යෙදුමට පමණි. (ඉන්පසු sd කාඩ්පතේ ඇති පිටපත් මකා දැමීමට අමතක නොකරන්න). මෙම යෙදුමට පමණක් ප්‍රවේශ විය හැකි වුවද දත්ත තවමත් සංකේතනය කර නොමැත. දුරකථනය රූට් කිරීම හෝ වෙනත් සූරාකෑම මගින් දත්ත ලබා ගැනීමට හැකි වේ. සුරකින ලද මුරපද සරල පෙළෙහිද ගබඩා කර ඇත. pkcs12 ගොනු සඳහා, ඔබ ඒවා ඇන්ඩ්‍රොයිඩ් යතුරු ගබඩාවට ආයාත කිරීම නිර්දේශ කෙරේ." + ආයත කරන්න + සහතික තේරීම පෙන්වීමේ දෝෂයකි + Android 4.0+ සහතික තේරීම් සංවාදය පෙන්වීමට උත්සාහ කිරීමේදී ව්‍යතිරේකයක් ලැබුණි. මෙය Android 4.0+ හි සම්මත විශේෂාංගයක් ලෙස කිසිවිටෙක සිදු නොවිය යුතුය. සමහර විට සහතික ගබඩා කිරීම සඳහා ඔබගේ Android ROM සහාය බිඳී ඇත + රාජ්ය පණිවිඩය…සඳහා රැඳී සිටිමින් + ආයාත කළ පැතිකඩ + ආයත කළ පැතිකඩ %d + බිඳුණු රූප + <p>නිල HTC පින්තූර උමග හරහා ගමනාගමනය ගලා නොයන අමුතු මාර්ගගත ගැටලුවක් ඇති බව දන්නා කරුණකි (බග් ට්‍රැකරයේ <a href=\"https://github.com/schwabe/ics-openvpn/issues/18\">නිකුතුව 18</a> ද බලන්න.)</p><p>Xperia Arc S සහ Xperia Ray වෙතින් පැරණි නිල SONY පින්තූර වාර්තා කර ඇත. රූපයෙන් VPNService සම්පූර්ණයෙන්ම අතුරුදහන් වේ. (දෝෂ ලුහුබැඳීමේ <a href=\"https://github.com/schwabe/ics-openvpn/issues/29\">නිකුතුව 29</a> ද බලන්න.)</p><p>අභිරුචි ගොඩනැගීමේ රූපවල ටුන් මොඩියුලය අස්ථානගත වී හෝ /dev/tun හි අයිතිවාසිකම් වැරදි විය හැක. සමහර CM9 පින්තූර සඳහා \"උපාංග විශේෂිත හැක්\" යටතේ \"අයිතිකාරත්වය නිවැරදි කරන්න\" විකල්පය සක්‍රීය කර තිබීම අවශ්‍ය වේ.</p><p>වඩාත්ම වැදගත් දෙය: ඔබගේ උපාංගයේ බිඳුණු Android රූපයක් තිබේ නම්, එය ඔබේ වෙළෙන්දාට වාර්තා කරන්න. ගැටලුවක් වෙළෙන්දාට වාර්තා කරන පුද්ගලයින් වැඩි වන තරමට, ඔවුන් එය නිවැරදි කිරීමට වැඩි ඉඩක් ඇත.</p> + PKCS12 ගොනු සංකේතාංකන යතුර + පුද්ගලික යතුරේ මුරපදය + මුරපදය + ගොනු නිරූපකය + TLS සත්‍යාපනය/ගුප්තකේතනය + ජනනය කරන ලද වින්‍යාසය + සැකසුම් + /dev/tun හි හිමිකරු පද්ධතියට සැකසීමට උත්සාහ කරයි. VPNService API ක්‍රියා කිරීමට සමහර CM9 රූපවලට මෙය අවශ්‍ය වේ. root අවශ්යයි. + /dev/tun හි හිමිකම නිවැරදි කරන්න + ජනනය කරන ලද OpenVPN වින්‍යාස ගොනුව පෙන්වයි + \"%s\" සංස්කරණය කිරීම + ගොඩනැගිලි වින්‍යාසය… + මෙම විකල්පය ක්‍රියාත්මක කිරීමෙන් ජාල තත්ත්වය වෙනස් වුවහොත් නැවත සම්බන්ධ වීමට බල කෙරෙනු ඇත (උදා. WiFi වෙත/ජංගමයෙන්) + ජාල වෙනස් කිරීමේදී නැවත සම්බන්ධ වන්න + ජාලයේ තත්ත්වය: %s + CA සහතිකය සාමාන්‍යයෙන් Android යතුරු ගබඩාවෙන් ආපසු එවනු ලැබේ. ඔබට සහතික සත්‍යාපන දෝෂ තිබේ නම් වෙනම සහතිකයක් සඳහන් කරන්න. + තෝරන්න + ඇන්ඩ්‍රොයිඩ් යතුරු ගබඩාවෙන් කියවන අතරතුර CA සහතිකයක් ආපසු නොලැබුණි. සත්‍යාපනය බොහෝ විට අසාර්ථක වනු ඇත. + සම්බන්ධකයේ ලොග් කවුළුව පෙන්වයි. දැනුම්දීම් තත්ත්වයෙන් ලොග් කවුළුව සැමවිටම ප්‍රවේශ විය හැක. + ලොග් කවුළුව පෙන්වන්න + %10$s %9$s %3$s %1$s (%2$s), Android %6$s (%7$s) API %4$d, ABI %5$s, (%8$s) මත ධාවනය වේ + Android යතුරු ගබඩා යතුර %1$s: %2$sසමඟ අත්සන් කිරීමේ දෝෂයකි + බාහිර සත්‍යාපන යෙදුම (%3$s): %1$s: %2$sසමඟ අත්සන් කිරීමේ දෝෂයකි + VPN සම්බන්ධතා අනතුරු ඇඟවීම මඟින් මෙම යෙදුමට සියලුම ගමනාගමනයට බාධා කළ හැකි බව පවසන VPNService API අනිසි ලෙස භාවිතා කිරීම වැළැක්වීම සඳහා පද්ධතිය විසින් පනවනු ලැබේ.\nVPN සම්බන්ධතා දැනුම්දීම (ප්‍රධාන සංකේතය) ඇන්ඩ්‍රොයිඩ් පද්ධතිය මගින් පනවනු ලබන්නේ දැනට පවතින VPN සම්බන්ධතාවයක් සංඥා කිරීමටය. සමහර පින්තූරවල මෙම දැනුම්දීම ශබ්දයක් වාදනය කරයි.\nඇන්ඩ්‍රොයිඩ් විසින් මෙම පද්ධති සංවාද ඔබගේ ආරක්ෂාව සඳහා හඳුන්වා දුන් අතර ඒවා මග හැරිය නොහැකි බවට වග බලා ගත්හ. (සමහර පින්තූරවල මෙය අවාසනාවන්ත ලෙස දැනුම් දීමේ ශබ්දයක් ඇතුළත් වේ) + සම්බන්ධතා අනතුරු ඇඟවීම සහ දැනුම්දීම් ශබ්දය + ඉංග්‍රීසි පරිවර්තනය Arne Schwabe<arne@rfc2549.org>විසිනි + අ.ජා. කේ. සහ ව.නා.ප. + මූලික + මාර්ගගත කිරීම + නොපැහැදිලි OpenVPN සැකසුම්. සාමාන්යයෙන් අවශ්ය නොවේ. + තව දුරටත් + ICS Openvpn වින්‍යාසය + DNS සේවාදායකයන් භාවිතා නොවේ. නම විභේදනය ක්‍රියා නොකරනු ඇත. අභිරුචි DNS සේවාදායකයන් සැකසීම සලකා බලන්න. DNS සේවාදායකයන් සකසා නොමැති විට Android ඔබගේ ජංගම/Wi-Fi සම්බන්ධතාවය සඳහා නිශ්චිතව දක්වා ඇති ඔබගේ ප්‍රොක්සි සැකසුම් දිගටම භාවිතා කරන බව කරුණාවෙන් සලකන්න. + පද්ධතිය විසින් ප්‍රතික්ෂේප කරන ලද \"%1$s\" DNS සේවාදායකය එක් කළ නොහැක: %2$s + IP ලිපිනය \"%1$s\" වින්‍යාස කිරීමට නොහැකි විය, පද්ධතිය විසින් ප්‍රතික්ෂේප කරන ලදී: %2$s + <p>ක්‍රියාකාරී වින්‍යාසයක් ලබා ගන්න (ඔබේ පරිගණකයේ පරීක්‍ෂා කර හෝ ඔබේ සැපයුම්කරු/සංවිධානයෙන් බාගන්න)</p><p>එය අමතර pem/pkcs12 ගොනු නොමැති තනි ගොනුවක් නම් ඔබට ගොනුව ඊමේල් කර ඇමුණුම විවෘත කළ හැක. ඔබට ගොනු කිහිපයක් තිබේ නම් ඒවා ඔබගේ sd කාඩ්පතට දමන්න.</p><p>config ගොනුව ආයාත කිරීමට විද්‍යුත් තැපැල් ඇමුණුම මත ක්ලික් කරන්න/vpn ලැයිස්තුවේ ඇති ෆෝල්ඩර නිරූපකය භාවිතා කරන්න</p><p>නැතිවූ ගොනු පිළිබඳ දෝෂ තිබේ නම් නැතිවූ ගොනු ඔබේ sd කාඩ්පතට දමන්න.</p><p>ඔබගේ VPN ලැයිස්තුවට ආනයනය කරන ලද VPN එක් කිරීමට සුරකින්න සංකේතය මත ක්ලික් කරන්න</p><p>VPN නම මත ක්ලික් කිරීමෙන් VPN සම්බන්ධ කරන්න</p><p>ලොගයේ දෝෂයක් හෝ අනතුරු ඇඟවීම් තිබේ නම් අනතුරු ඇඟවීම්/දෝෂය අවබෝධ කර ගැනීමට උත්සාහ කරන්න. ඒවා නිවැරදි කරන්න</p> + ඉක්මන් ආරම්භය + සම්බන්ධ වීමට උත්සාහ කිරීමට පෙර tun.ko කර්නල් මොඩියුලය පූරණය කිරීමට උත්සාහ කරන්න. මුල් බැසගත් උපාංග අවශ්‍යයි. + ටුන් මොඩියුලය පැටවීම + වින්‍යාසයෙන් PKCS12 Android Keystore වෙත ආයාත කරන්න + ප්‍රොක්සි සැකසුම් ලබා ගැනීමේ දෝෂයකි: %s + ප්‍රොක්සි %1$s %2$sභාවිතා කිරීම + පද්ධති ප්‍රොක්සි භාවිතා කරන්න + සම්බන්ධ වීමට HTTP/HTTPS ප්‍රොක්සි සඳහා පද්ධති පුළුල් වින්‍යාසය භාවිතා කරන්න. + OpenVPN එය පද්ධති ආරම්භයේදී සක්‍රිය නම් නිශ්චිත VPN සම්බන්ධ කරයි. Android < 5.0 මත මෙම විකල්පය භාවිතා කිරීමට පෙර කරුණාකර සම්බන්ධතා අනතුරු ඇඟවීමේ නිතර අසන පැන කියවන්න. + ආරම්භයේදී සම්බන්ධ කරන්න + නොසලකන්න + නැවත ආරම්භ කරන්න + VPN නැවත ආරම්භ කිරීමෙන් පසු වින්‍යාස කිරීමේ වෙනස්කම් යොදනු ලැබේ. (නැවත) VPN දැන් ආරම්භ කරන්නද? + වින්‍යාසය වෙනස් විය + සංස්කරණය සඳහා අවසන් සම්බන්ධිත පැතිකඩ තීරණය කළ නොහැක + අනුපිටපත් දැනුම්දීම් + ඇන්ඩ්‍රොයිඩ් පද්ධති මතකයේ (RAM) පීඩනය යටතේ පවතී නම්, මේ මොහොතේ අවශ්‍ය නොවන යෙදුම් සහ සේවා ක්‍රියාකාරී මතකයෙන් ඉවත් කරනු ලැබේ. මෙය දැනට පවතින VPN සම්බන්ධතාවයක් අවසන් කරයි. සම්බන්ධතාවය/OpenVPN නොනැසී පවතින බව සහතික කිරීම සඳහා සේවාව ඉහළ ප්‍රමුඛතාවයකින් ක්‍රියාත්මක වේ. ඉහළ ප්‍රමුඛතාවයකින් ක්‍රියාත්මක වීමට යෙදුම දැනුම්දීමක් පෙන්විය යුතුය. ප්‍රධාන දැනුම්දීම් නිරූපකය පෙර නිති අසන ප්‍රශ්න ඇතුළත් කිරීමේ විස්තර කර ඇති පරිදි පද්ධතිය විසින් පනවනු ලැබේ. එය ඉහළ ප්‍රමුඛතාවයකින් ධාවනය කිරීමේ අරමුණ සඳහා යෙදුම් දැනුම්දීමක් ලෙස ගණන් නොගනී. + VPN පැතිකඩ නිර්වචනය කර නොමැත. + නව VPN එකක් එක් කිරීමට <img src=\"ic_menu_add\"/> නිරූපකය භාවිතා කරන්න + ඔබගේ sdcard වෙතින් පවතින (.ovpn හෝ .conf) පැතිකඩක් ආයාත කිරීමට <img src=\"ic_menu_archive\"/> නිරූපකය භාවිතා කරන්න. + නිතර අසන පැන ද පරීක්ෂා කිරීමට වග බලා ගන්න. ඉක්මන් ආරම්භක මාර්ගෝපදේශයක් ඇත. + මාර්ගගත කිරීම / අතුරුමුහුණත් වින්‍යාසය + මාර්ගගත කිරීම සහ අතුරුමුහුණත වින්‍යාස කිරීම සිදු කරනු ලබන්නේ සම්ප්‍රදායික ifconfig/route විධාන හරහා නොව VPNService API භාවිතා කිරීමෙනි. මෙය අනෙකුත් OS වලට වඩා වෙනස් රවුටින් වින්‍යාසයක් ඇති කරයි. \nVPN උමගෙහි වින්‍යාසය IP ලිපිනය සහ මෙම අතුරු මුහුණත හරහා ගමන් කළ යුතු ජාල වලින් සමන්විත වේ. විශේෂයෙන්ම, සම වයසේ හවුල්කරු ලිපිනයක් හෝ ද්වාර ලිපිනයක් අවශ්‍ය හෝ අවශ්‍ය නොවේ. VPN සේවාදායකය වෙත ළඟා වීමට විශේෂ මාර්ග (උදාහරණයක් ලෙස redirect-gateway භාවිතා කරන විට එකතු කරන ලද) අවශ්‍ය නොවේ. වින්‍යාසයක් ආයාත කිරීමේදී යෙදුම මෙම සැකසුම් නොසලකා හරිනු ඇත. යෙදුම VPNService API සමඟින් සේවාදායකය වෙත සම්බන්ධතාවය VPN උමඟ හරහා නොයන බව සහතික කරයි.\nVPNService API VPN හරහා ගමන් නොකළ යුතු ජාල සඳහන් කිරීමට ඉඩ නොදේ. විසඳුමක් ලෙස යෙදුම උමග හරහා ගමන් නොකළ යුතු ජාල හඳුනා ගැනීමට උත්සාහ කරයි (උදා: මාර්ගය xxxx yyyy net_gateway) සහ අනෙකුත් වේදිකාවල හැසිරීම් අනුකරණය කිරීම සඳහා මෙම මාර්ග බැහැර කරන මාර්ග සමූහයක් ගණනය කරයි. සම්බන්ධතාවයක් ස්ථාපනය කිරීමේදී VPNService හි වින්‍යාසය ලොග් කවුළු පෙන්වයි.\nතිරය පිටුපස: Android 4.4+ ප්‍රතිපත්ති මාර්ගගත කිරීම් භාවිතා කරයි. route/ifconfig භාවිතා කිරීමෙන් ස්ථාපිත මාර්ග නොපෙන්වයි. ඒ වෙනුවට ip රීතිය භාවිතා කරන්න, iptables -t mangle -L + OpenVPN නැවත සම්බන්ධ වන විට VPN සම්බන්ධතාවකට ආපසු නොයන්න. + ස්ථීර ටුන් + OpenVPN ලොගය + අනුමත කරන්න + විදුලි කෝෂය + මගේ පුද්ගලික පරීක්ෂණ වලදී OpenVPN හි අධික බැටරි පරිභෝජනයට ප්‍රධාන හේතුව වන්නේ Keepalive පැකට් ය. බොහෝ OpenVPN සේවාදායකයන් සතුව \'keepalive 10 60\' වැනි වින්‍යාස විධානයක් ඇති අතර එමඟින් සේවාදායකයා සහ සේවාදායකයා සෑම තත්පර දහයකට වරක් තබා ගැනීමේ පැකට් හුවමාරු කර ගනී. <p> මෙම පැකට් කුඩා වන අතර වැඩි තදබදයක් භාවිතා නොකරන අතර, ඒවා ජංගම ගුවන්විදුලි ජාලය කාර්යබහුල කර බලශක්ති පරිභෝජනය වැඩි කරයි. ( <a href=\"https://developer.android.com/training/efficient-downloads/efficient-network-access.html#RadioStateMachine\">The Radio State Machine | Android Developers</a>ද බලන්න) <p> මෙම Keepalive සැකසුම සේවාලාභියා මත වෙනස් කළ නොහැක. OpenVPN හි පද්ධති පරිපාලකයාට පමණක් සැකසුම වෙනස් කළ හැක. <p> අවාසනාවන්ත ලෙස UDP සමඟ තත්පර 60කට වඩා විශාල තබාගැනීමක් භාවිතා කිරීම අක්‍රිය කල් ඉකුත්වීම හේතුවෙන් සමහර NAT ද්වාරවල සම්බන්ධතාවය අත්හැරීමට හේතු විය හැක. TCP භාවිතා කිරීම දිගු කාලයක් සජීවී කාල සීමාවක් සමඟ ක්‍රියා කරයි, නමුත් TCP හරහා TCP උමං කිරීම ඉහළ පැකට් අලාභයක් සහිත සම්බන්ධතා මත අතිශයින් දුර්වල ලෙස ක්‍රියා කරයි. ( <a href=\"http://sites.inka.de/bigred/devel/tcp-tcp.html\">බලන්න TCP හරහා TCP නරක අදහසක්</a>) + Android Tethering විශේෂාංගය (WiFi, USB හෝ Bluetooth හරහා) සහ VPNService API (මෙම වැඩසටහන මගින් භාවිතා කරන) එකට ක්‍රියා නොකරයි. වැඩි විස්තර සඳහා <a href=\"https://github.com/schwabe/ics-openvpn/issues/34\">නිකුතුව #34</a>බලන්න + VPN සහ Tethering + සම්බන්ධවීමට නැවත උත්සාහයන් + නැවත සම්බන්ධ වීමේ සැකසුම් + සම්බන්ධතා උත්සාහයන් අතර රැඳී සිටීමට තත්පර ගණන. + සම්බන්ධතා අතර තත්පර + OpenVPN අනපේක්ෂිත ලෙස බිඳ වැටුණි. කරුණාකර ප්‍රධාන මෙනුවේ send Minidump විකල්පය භාවිතා කිරීම සලකා බලන්න + Minidump සංවර්ධකයාට යවන්න + අවසාන බිඳවැටීම පිළිබඳ නිදොස් කිරීමේ තොරතුරු සංවර්ධකයා වෙත යවයි + විවෘත අ.පු.ජා. - %s + %1$s - %2$s + %1$s - %3$s, %2$s + සම්බන්ධයෙනි + සේවාදායක පිළිතුර සඳහා රැඳී සිටිමින් + සත්‍යාපනය කිරීම + අනුග්‍රායේ වින්‍යාසය ගැන + IP ලිපින පැවරීම + මාර්ග එකතු කිරීම + සම්බන්ධයි + විසන්ධි කරන්න + නැවත සම්බන්ධ කර + පිටවීම + දුවන්නේ නැහැ + සත්කාරක නම් විසඳීම + සම්බන්ධ කිරීම (TCP) + සත්‍යාපනය අසාර්ථක විය + භාවිතා කළ හැකි ජාලයක් සඳහා රැඳී සිටිමින් + Orbot ආරම්භ වන තෙක් රැඳී සිටිමින් + ↓%2$s %1$s - ↑%4$s %3$s + සම්බන්ධ වී නැත + %s අ.පු.ජා. වෙත සම්බන්ධ වේ + %s අ.පු.ජා. වෙත සම්බන්ධ වේ + යතුරු ගබඩා සහතිකයේ නම අක්ෂරාංක නොවන අක්ෂර (හිස්, යටි ඉරි හෝ ඉරි වැනි) අඩංගු නම් Android 4.1 හි සමහර අනුවාද වල ගැටළු ඇත. විශේෂ අක්ෂර නොමැතිව සහතිකය නැවත ආනයනය කිරීමට උත්සාහ කරන්න + සංකේතාංකන කේතාංක + පැකට් සත්‍යාපනය + පැකට් සත්‍යාපන ක්‍රමය ඇතුලත් කරන්න + %sවිසින් ගොඩනගා ඇත + නිදොස් ගොඩනැගීම + නිල ගොඩනැගීම + පැතිකඩට පිටපත් කරන්න + එකතු කරන්න + වින්‍යාස ගොනුව යවන්න + සම්පූර්ණ DN + ඔබගේ ආයාත කළ වින්‍යාසය වෙනස් DN ආකෘතියක් භාවිතා කරන පැරණි DEPRECATED tls-remote විකල්පය භාවිතා කර ඇත. + RDN (පොදු නම) + RDN උපසර්ගය + tls-දුරස්ථ (අත් හරින ලද) + ඔබට https://crowdin.net/project/ics-openvpn/invite වෙත පිවිසීමෙන් පරිවර්තනයට උදවු කළ හැක + %1$s පාලනය කිරීමට උත්සාහ %2$s + ඉදිරියට යාමෙන්, ඔබ Android සඳහා OpenVPN සම්පූර්ණයෙන්ම පාලනය කිරීමට සහ සියලු ජාල තදබදයට බාධා කිරීමට යෙදුමට අවසර ලබා දෙයි.ඔබ යෙදුම විශ්වාස කරන්නේ නම් මිස පිළිගන්න එපා. එසේ නොමැතිනම්, ඔබ ඔබේ දත්ත අනිෂ්ට මෘදුකාංග මගින් අවදානමට ලක්වීමේ අවදානමක් දරයි.\" + මම මෙය විශ්වාස කරමි. + බාහිර API භාවිතා කිරීමට කිසිදු යෙදුමකට අවසර නැත + ඉඩදුන් යෙදුම්: %s + අවසර ලත් බාහිර යෙදුම් ලැයිස්තුව හිස් කරන්නද?\nදැනට අවසර දී ඇති යෙදුම් ලැයිස්තුව:\n\n%s + තිරය ක්‍රියාවිරහිත වූ විට සහ 60 ගණන්වලදී 64 kB ට වඩා අඩු දත්ත මාරු කළ විට VPN විරාම කරන්න. \"Persistent Tun\" විකල්පය සක්‍රීය කර ඇති විට VPN විරාම කිරීමෙන් ඔබගේ උපාංගයට ජාල සම්බන්ධතාවයක් නොමැත. \"Persistent Tun\" විකල්පය නොමැතිව උපාංගයට VPN සම්බන්ධතාවයක්/ආරක්ෂාවක් නොමැත. + තිරය අක්‍රිය වූ පසු VPN සම්බන්ධතාව විරාම කරන්න + තිරය අක්‍රිය තත්වයේ සම්බන්ධතාවය විරාම කිරීම: තත්පර %2$sකින් %1$s ට අඩු + අවවාදයයි: මෙම VPN සඳහා ස්ථීර tune සබල කර නැත. තිරය ක්‍රියාවිරහිත වූ විට තදබදය සාමාන්‍ය අන්තර්ජාල සම්බන්ධතාව භාවිත කරයි. + මුරපදය සුරකින්න + VPN විරාම කරන්න + VPN නැවත ආරම්භ කරන්න + VPN විරාමය පරිශීලකයා විසින් ඉල්ලා ඇත + VPN විරාම කරන ලදී - තිරය අක්‍රියයි + උපාංග විශේෂතා හැක් + සහතික තොරතුරු සංදර්ශන කළ නොහැක + යෙදුම් හැසිරීම + VPN හැසිරීම + VPN පැතිකඩ වෙත වෙනස්කම් වලට ඉඩ දෙන්න + දෘඪාංග යතුරුගඩාව: + Android සඳහා OpenVPN භාවිතා කිරීමට උත්සාහ කරන යෙදුමේ නිරූපකය + "Android 4.3 සමඟින් VPN තහවුරු කිරීම \"වැඩිරහිත යෙදුම්\" වලින් ආරක්ෂා වේ. මෙහි ප්‍රතිඵලයක් ලෙස සංවාදය ස්පර්ශ ආදානයට ප්‍රතිචාර නොදක්වයි. ඔබට උඩැතිරි භාවිතා කරන යෙදුමක් තිබේ නම් එය මෙම හැසිරීමට හේතු විය හැක. ඔබ වැරදි යෙදුමක් සොයා ගන්නේ නම්, යෙදුමේ කර්තෘ අමතන්න. මෙම ගැටළුව Android 4.3 සහ පසුව ඇති සියලුම VPN යෙදුම් වලට බලපායි. අමතර විස්තර සඳහා <a href=\"https://github.com/schwabe/ics-openvpn/issues/185\">නිකුතුව 185<a> ද බලන්න" + Vpn තහවුරු කිරීමේ සංවාදය + විකල්පයක් ලෙස ඔබට Play Store සමඟින් මට පරිත්‍යාගයක් එවිය හැක: + %s පරිත්‍යාග කිරීම ගැන ස්තුතියි! + ලොගය හිස් කරන ලදී. + මුරපදය පෙන්වන්න + KeyChain ප්‍රවේශ දෝෂය: %s + කෙටි + වේලා මුද්දර + කිසිවක් නැත + උඩුගත + බාගන්න + අ.පු.ජා. තත්ත්වය + විකල්ප බලන්න + හැසිරවිය නොහැකි ව්යතිරේකය: %1$s\n\n%2$s + %3$s: %1$s\n\n%2$s + ඔබ ඔබගේ ඇන්ඩ්‍රොයිඩ් උපාංගය රූට් කර ඇත්නම් ඔබට <a href=\"http://xposed.info/\">Xposed framework</a> සහ <a href=\"http://repo.xposed.info/module/de.blinkt.vpndialogxposed\">VPN Dialog Confirm module</a> ඔබේම අවදානමකින් ස්ථාපනය කළ හැක\" + සම්පූර්ණ බලපත්ර + දේශීය අතුරුමුහුණත්වලට සෘජුවම සම්බන්ධ වූ ජාල VPN හරහා ගමන් නොකරනු ඇත. මෙම විකල්පය තේරීමෙන් ඉවත් කිරීම දේශීය ජාල සඳහා අදහස් කරන සියලුම ගමනාගමනය VPN වෙත හරවා යවනු ඇත. + දේශීය ජාල සඳහා VPN මඟහරින්න + පරිශීලක නාමය/මුරපද ගොනුව + [ආයාත කළේ: %s] + සමහර ගොනු සොයා ගැනීමට නොහැකි විය. කරුණාකර පැතිකඩ ආයාත කිරීමට ගොනු තෝරන්න: + මෙම යෙදුම භාවිතා කිරීමට ඔබට OpenVPN සඳහා සහාය දක්වන VPN සපයන්නා/VPN ද්වාරයක් අවශ්‍ය වේ (බොහෝ විට ඔබගේ සේවායෝජකයා විසින් සපයනු ලැබේ). OpenVPN සහ ඔබේම OpenVPN සේවාදායකය සකසන්නේ කෙසේද යන්න පිළිබඳ වැඩිදුර තොරතුරු සඳහා https://community.openvpn.net/ පරීක්ෂා කරන්න. + ආයාත ලොගය: + Vpn ස්ථල විද්‍යාව \"%3$s\" නිශ්චිතව දක්වා ඇති නමුත් ifconfig %1$s %2$s ජාල ආවරණයක් සහිත IP ලිපිනයක් මෙන් පෙනේ. \"උපජාල\" ස්ථලකය උපකල්පනය කිරීම. + MSS අභිබවා යන අගය 0 සහ 9000 අතර පූර්ණ සංඛ්‍යාවක් විය යුතුය + MTU අභිබවා යන අගය 64 සහ 9000 අතර පූර්ණ සංඛ්‍යාවක් විය යුතුය + උමග හරහා ක්‍රියාත්මක වන TCP සැසි වෙත නිවේදනය කරන්න, ඔවුන් ඔවුන්ගේ යැවීමේ පැකට් ප්‍රමාණය සීමා කළ යුතු අතර, එනම් OpenVPN ඒවා කැප්සියුලර් කළ පසු, OpenVPN එහි සම වයසේ මිතුරන්ට යවන UDP පැකට් ප්‍රමාණය මෙම බයිට් ගණන නොඉක්මවනු ඇත. (පෙරනිමිය 1450) + TCP ගෙවීමේ MSS අගය අභිබවා යන්න + TCP ගෙවීමේ MSS සකසන්න + පාරිභෝගික හැසිරීම + අවසර ලත් බාහිර යෙදුම් හිස් කරන්න + පූරණයෙන්… + ඉඩදුන් අ.පු.ජා. යෙදුම්: %1$s + අවසර නොදුන් VPN යෙදුම්: %1$s + %s පැකේජය තවදුරටත් ස්ථාපනය කර නැත, එය යෙදුම් අවසර/නොහැකි ලැයිස්තුවෙන් ඉවත් කරයි + VPN සියලුම යෙදුම් සඳහා භාවිතා කරන නමුත් තෝරාගත් ඒවා බැහැර කරයි + VPN භාවිත කරනු ලබන්නේ තෝරාගත් යෙදුම් සඳහා පමණි + VPN මඟ හැරීමට යෙදුම් වලට ඉඩ දෙන්න + දුරස්ථ සේවාදායක ප්‍රවේශය ඉවත් කරන්නද? + තබා ගන්න + මකන්න + නව දුරස්ථය එකතු කරන්න + සම්බන්ධ කිරීමේදී අහඹු අනුපිළිවෙලින් සම්බන්ධතා ඇතුළත් කිරීම් භාවිතා කරන්න + ඔබ අවම වශයෙන් එක් දුරස්ථ සේවාදායකයක් අර්ථ දැක්වීමට සහ සක්‍රීය කිරීමට අවශ්‍ය වේ. + සේවාදායක ලැයිස්තුව + ඉඩදුන් යෙදුම් + වැඩිදුර සැකසුම් + ගෙවීම් විකල්ප + TLS සැකසුම් + දුරස්ථ පාලකයක් අර්ථ දක්වා නැත + VPN පැතිකඩ අනුපිටපත් කරන්න + අනුපිටපත් පැතිකඩ: %s + ලොගය පෙන්වන්න + Android සඳහා බහු OpenVPN සේවාලාභීන් පවතී. වඩාත් සුලභ ඒවා වන්නේ Android සඳහා OpenVPN (මෙම සේවාදායකයා), OpenVPN සම්බන්ධකය සහ OpenVPN සැකසීම් ය.<p>සේවාලාභීන් කණ්ඩායම් දෙකකට කාණ්ඩගත කළ හැක: Android සඳහා OpenVPN සහ OpenVPN Connect නිල VPNService API (Android 4.0+) භාවිතා කරන අතර root භාවිතා කරන root සහ OpenVPN සැකසීම් අවශ්‍ය නොවේ.<p>ඇන්ඩ්‍රොයිඩ් සඳහා OpenVPN යනු විවෘත මූලාශ්‍ර සේවාදායකයෙක් වන අතර එය Arne Schwabe විසින් වැඩි දියුණු කරන ලදී. එය වඩාත් දියුණු පරිශීලකයින් ඉලක්ක කර ඇති අතර බොහෝ සැකසුම් සහ ගොනු වලින් පැතිකඩ ආයාත කිරීමට සහ යෙදුම තුළ පැතිකඩ වින්‍යාස කිරීමට/වෙනස් කිරීමට හැකියාව ලබා දේ. සේවාලාභියා OpenVPN හි ප්‍රජා අනුවාදය මත පදනම් වේ. එය OpenVPN 2.x මූල කේතය මත පදනම් වේ. මෙම සේවාදායකයා ප්‍රජාවේ අර්ධ නිල වශයෙන් සේවාදායකයා ලෙස දැකිය හැකිය. <p>OpenVPN Connect යනු OpenVPN Technologies, Inc විසින් වැඩි දියුණු කරන ලද විවෘත මූලාශ්‍ර නොවන සේවාලාභියෙකු වේ. සේවාලාභියා සාමාන්‍ය භාවිත සේවාලාභියා බවට පත් කර ඇති අතර සාමාන්‍ය පරිශීලකයින් ඉලක්ක කර ගනිමින් OpenVPN පැතිකඩ ආයාත කිරීමට ඉඩ සලසයි. මෙම සේවාලාභියා OpenVPN ප්‍රොටෝකෝලයේ OpenVPN C++ නැවත ක්‍රියාත්මක කිරීම මත පදනම් වේ (OpenVPN Technologies, Inc, iOS OpenVPN යෙදුමක් ප්‍රකාශ කිරීමට මෙය අවශ්‍ය විය). මෙම සේවාලාභියා OpenVPN තාක්ෂණයන්හි නිල සේවාලාභියා වේ <p> OpenVPN සැකසුම් පැරණිතම සේවාදායකයා වන අතර විවෘත මූලාශ්‍ර OpenVPN සඳහා වන UI ද වේ. Android සඳහා OpenVPN වලට ප්‍රතිවිරුද්ධව එයට root අවශ්‍ය වන අතර VPNService API භාවිතා නොකරයි. එය Android 4.0+ මත රඳා නොපවතී + OpenVPN Android සේවාලාභීන් අතර වෙනස්කම් + බහු විකාශන මාර්ගය නොසලකා හැරීම: %s + Android VPN වෙත CIDR මාර්ග සඳහා පමණක් සහය දක්වයි. CIDR නොවන මාර්ග කිසි විටෙක භාවිතා නොකරන බැවින්, Android සඳහා OpenVPN CIDR නොවන මාර්ග සඳහා /32 භාවිතා කර අනතුරු ඇඟවීමක් නිකුත් කරයි. + VPN සක්‍රියව පවතින අතරතුර ටෙදරින් ක්‍රියා කරයි. සම්බන්ධිත සම්බන්ධතාවය VPN භාවිතා නොකරනු ඇත. + මුල් KitKat අනුවාදය TCP සම්බන්ධතා මත වැරදි MSS අගයක් සකසා ඇත (#61948). මෙම දෝෂය මඟහරවා ගැනීමට mssfix විකල්පය සක්‍රීය කිරීමට උත්සාහ කරන්න. + DNS සේවාදායකයන් සකසා නොමැති විට Android ජංගම/Wi-Fi සම්බන්ධතාව සඳහා නිශ්චිතව දක්වා ඇති ඔබේ ප්‍රොක්සි සැකසුම් දිගටම භාවිත කරයි. ඇන්ඩ්‍රොයිඩ් සඳහා OpenVPN ලොගයේ මේ ගැන ඔබට අනතුරු අඟවයි.

VPN එකක් DNS සේවාදායකයක් සකසන විට Android ප්‍රොක්සියක් භාවිතා නොකරනු ඇත. VPN සම්බන්ධතාවයක් සඳහා ප්‍රොක්සියක් සැකසීමට API නොමැත.

+ වින්‍යාසගත සේවාදායක IP සහ එහි ජාල ආවරණයේ ඇති IPs VPN වෙත යොමු නොකෙරේ. OpenVPN මෙම දෝෂය වටා ක්‍රියා කරන්නේ සේවාදායක IP සහ එහි ජාල ආවරණයට අනුරූප වන මාර්ගයක් පැහැදිලිව එක් කිරීමෙනි. + තවත් ටුන් උපාංගයක් සක්‍රියව පවතින විට ටුන් උපාංගයක් විවෘත කිරීම, එය persist-tun සහාය සඳහා භාවිතා කරයි, උපාංගයේ VPNServices බිඳ වැටේ. VPN නැවත ක්‍රියා කිරීමට නැවත පණගැන්වීමක් අවශ්‍ය වේ. ඇන්ඩ්‍රොයිඩ් සඳහා වන OpenVPN ටුන් උපාංගය නැවත විවෘත කිරීම වළක්වා ගැනීමට උත්සාහ කරන අතර ඇත්ත වශයෙන්ම අවශ්‍ය නම්, බිඳ වැටීම වැළැක්වීම සඳහා නව TUN උපාංගය විවෘත කිරීමට පෙර වත්මන් TUN වසා දමයි. මෙය VPN නොවන සම්බන්ධතාව හරහා පැකට් යවන කෙටි කවුළුවකට මඟ පෑදිය හැක. මෙම විසඳුම සමඟ පවා VPNServices සමහර විට බිඳ වැටෙන අතර උපාංගය නැවත ආරම්භ කිරීම අවශ්‍ය වේ. + VPN ද්විතියික පරිශීලකයින් සඳහා කිසිසේත්ම ක්‍රියා නොකරයි. + "VPN යෙදුම භාවිත කරන අතරතුර ජංගම සම්බන්ධතාව/ජංගම දත්ත සම්බන්ධතාව නිතර අත්හරින බව බහු පරිශීලකයින් වාර්තා කරයි. හැසිරීම සමහර ජංගම සැපයුම්කරුවන්ගේ/උපාංග සංයෝජනයකට පමණක් බලපාන බව පෙනෙන අතර මෙතෙක් දෝෂය සඳහා කිසිදු හේතුවක්/විසඳුමක් හඳුනා ගැනීමට නොහැකි විය. " + VPN නොමැතිව ළඟා විය හැකි VPN හරහා පමණක් ගමනාන්තයට ළඟා විය හැකිය. IPv6 VPNs කිසිසේත්ම ක්‍රියා නොකරයි. + CIDR නොවන මාර්ග + VPN සඳහා ප්‍රොක්සි හැසිරීම + %s සහ ඊට පෙර + %s හි පිටපත + වින්‍යාසගත IP ලිපිනය වෙත ගමන් කරන්න + VPN සම්බන්ධතාවය සඳහා වැරදි MSS අගය + ද්විතියික ටැබ්ලට් භාවිතා කරන්නන් + අභිරුචි සම්බන්ධතා විශේෂිත විකල්ප සඳහන් කරන්න. පරිස්සමෙන් පාවිච්චි කරන්න + අභිරුචි විකල්ප + සම්බන්ධතා ප්‍රවේශය ඉවත් කරන්න + ජංගම ජාලයෙන් අහඹු ලෙස විසන්ධි වේ + දුරස්ථ ජාල වෙත ළඟා විය නොහැක + දිගටම පවතින ටුන් මාදිලිය + %s සහ පසුව + SSL23_GET_SERVER_HELLO සමඟ සම්බන්ධතා අසාර්ථක වේ:sslv3 ඇඟවීම් අතට අත දීම අසාර්ථකයි + ඇන්ඩ්‍රොයිඩ් අනුවාද සඳහා නව OpenVPN (0.6.29/මාර්තු 2015) අවසර දී ඇති කේතාංක කට්ටල සඳහා වඩාත් ආරක්ෂිත පෙරනිමියක් භාවිතා කරයි (tls-cipher \"DEFAULT:!EXP:!PSK:!SRP:!kRSA\"). අවාසනාවන්ත ලෙස, අඩු ආරක්‍ෂිත කේතාංක කට්ටල සහ අපනයන කේතාංක කට්ටල අත්හැරීම, විශේෂයෙන් පරිපූර්ණ ඉදිරි රහස්‍යභාවය (Diffie-Hellman) සඳහා සහාය නොදක්වන කේතාංක කට්ටල මඟ හැරීම සමහර ගැටලු ඇති කරයි. මෙය සාමාන්‍යයෙන් සිදු වන්නේ සර්වරය මත tls-cipher සැකසීමෙන් හෝ ඉවත් කරන ලද SSL (උදා: MikroTik) සහිත සමහර කාවැද්දූ OS මඟින් TLS ආරක්ෂාව ශක්තිමත් කිරීමට හොඳ චේතනාවෙන් නමුත් දුර්වල ලෙස ක්‍රියාත්මක කරන ලද උත්සාහයක් මගිනි.\nමෙම ගැටළුව විසඳීම සඳහා, සේවාදායකයේ tls-කේතාංකන සැකසීම් tls-cipher \"DEFAULT:!EXP:!PSK:!SRP:!kRSA\" වැනි සාධාරණ පෙරනිමියට සකසන්න. සේවාදායකයාගේ ගැටලුව විසඳීමට ඇන්ඩ්‍රොයිඩ් සේවාලාභියා මත අභිරුචි විකල්පය tls-cipher DEFAULT එක් කරන්න. + මෙම පැතිකඩ බාහිර යෙදුමකින් (%s) එක් කර ඇති අතර පරිශීලකයාට සංස්කරණය කළ නොහැකි ලෙස සලකුණු කර ඇත. + සහතික අවලංගු කිරීමේ ලැයිස්තුව + OpenVPN සේවාව නැවත ආරම්භ කිරීම (යෙදුම බිඳවැටීම සමහරවිට මතක පීඩනය නිසා බිඳ වැටීමට හෝ මිය ගොස් ඇත) + වින්‍යාසය ආයාත කිරීමෙන් දෝෂයක් ඇති විය, එය සුරැකිය නොහැක + සොයන්න + (අවසාන ඩම්ප් එක පැය %1$d:%2$dපැරණි (%3$s)) + නව සම්බන්ධතාවයේ ලොගය ඉවත් කරන්න + කල් ඉකුත්වීම සම්බන්ධ කරන්න + අවසර ලත් යෙදුමක් එක් කර නැත. සියලුම යෙදුම් වලට ඉඩ නොදීම සඳහා අවසර දී ඇති යෙදුම් ලැයිස්තුවේ අවම වශයෙන් එක් යෙදුමක් තිබීමට අපවම (%s) එකතු කිරීම + Android සඳහා OpenVPN හට ස්වයංක්‍රීයව sdcard හි නැතිවූ ගොනු(ය) සොයා ගැනීමට උත්සාහ කළ හැක. අවසර ඉල්ලීම ආරම්භ කිරීමට මෙම පණිවිඩය තට්ටු කරන්න. + කෙටුම්පත + සබල කර ඇත + VPN අවසරය OS මගින් අවලංගු කරන ලදී (උදා. වෙනත් VPN වැඩසටහනක් ආරම්භ විය), VPN නතර කිරීම + Push Peer තොරතුරු + සේවාදායකයට අමතර තොරතුරු යවන්න, උදා: SSL අනුවාදය සහ Android අනුවාදය + %1$sඅවශ්‍යයි + කරුණාකර පැතිකඩ %1$sසඳහා මුරපදය ඇතුළත් කරන්න + පේළිගත දත්ත භාවිතා කරන්න + වින්‍යාස ගොනුව අපනයනය කරන්න + tls-auth ගොනුව අතුරුදහන් + පරිශීලක සහතිකය හෝ පරිශීලක සහතික යතුරු ගොනුව අස්ථානගත වී ඇත + සහතිකය අවලංගු කිරීමේ ලැයිස්තුව (විකල්ප) + ලොග් හැඹිලි ගොනුවෙන් (%d) ලොග් අයිතම නැවත කියවන්න + Samsung ජංගම දුරකථන වැඩිපුරම අලෙවි වන Android දුරකථන අතර වුවද, Samsung හි ස්ථිරාංග ද දෝෂ සහිත Android ස්ථිරාංග අතර වේ. දෝෂ මෙම උපාංගවල VPN මෙහෙයුමට පමණක් සීමා නොවන නමුත් ඒවායින් බොහොමයක් විසඳා ගත හැකිය. පහත දැක්වෙන මෙම දෝෂ සමහරක් විස්තර කර ඇත.\n\nVPN පරාසයේ DNS සේවාදායකය මිස DNS ක්‍රියා නොකරයි.\n\nබොහෝ Samsung 5.x උපාංගවල අවසර/නොදී ඇති යෙදුම් විශේෂාංගය ක්‍රියා නොකරයි.\nSamsung 6.x හි VPN යෙදුම Powersave විශේෂාංගවලින් නිදහස් කරන්නේ නම් මිස VPN ක්‍රියා නොකරන බව වාර්තා වේ. + සැම්සුන් දුරකථන + VPN තෝරා නැත. + පෙරනිමි අ.පු.ජා. + පෙරනිමි VPN අවශ්‍ය ස්ථානවල VPN භාවිත කරයි. සෑම විටම ක්‍රියාත්මක සහ ඉක්මන් සැකසුම් ටයිල් සඳහා මේවා දැනට ආරම්භයේ ඇත. + දැනට තෝරාගත් VPN: \'%s\' + නැවත සම්බන්ධ වන්න + VPN ටොගල් කරන්න + %s ට සම්බන්ධ වන්න + %s විසන්ධි කරන්න + සම්බන්ධතා උත්සාහයන් අතර උපරිම කාලය ඇතුළත් කරන්න. අසාර්ථක සම්බන්ධතා උත්සාහයකින් පසුව OpenVPN එහි පොරොත්තු කාලය මෙම අගය දක්වා සෙමින් වැඩි කරයි. 300 දක්වා පෙරනිමි. + සම්බන්ධතා උත්සාහයන් අතර උපරිම කාලය + සම්බන්ධතා උත්සාහය අතර තත්පර %sක් රැඳී සිටීම + Networks more .. -> VPNS යටතේ පරීක්ෂා කරන්න]]> + OpenVPN වෙත සම්බන්ධතාවය වසා ඇත (%s) + වර්ග කිරීම වෙනස් කරන්න + වර්ග කරන්න + අවසන් වරට භාවිතා කළ පැතිකඩ අනුව වර්ග කරන ලදී + පැතිකඩ නම් අනුව වර්ග කර ඇත + වින්‍යාසය 2.3 හි අත් හරින ලද සහ අවසානයේ 2.4 හි ඉවත් කරන ලද tls-remote විකල්පය භාවිතා කරයි. + AUTH_FAILED මත හැසිරීම + ප්‍රස්තාරය + ලඝුගණක පරිමාණය භාවිතා කරන්න + අඩංගු දත්ත නැත + පැයකට සාමාන්යය + මිනිත්තුවකට සාමාන්යය + අවසාන විනාඩි 5 + තුළ + පිටතට + බිටු/ත %.0f + කිබිටු/ත %.1f + මෙබිටු/ත %.1f + ගිබිටු/ත %.1f + <p>OpenSSL අනුවාදය 1.1 සමඟින් පටන් ගෙන, OpenSSL + MD5 වැනි සහතිකවල දුර්වල අත්සන් ප්‍රතික්ෂේප කරයි. අමතරව OpenSSL 3.0 සමග SHA1 සමග අත්සන් ද ප්‍රතික්ෂේප වේ.</p><p> + SHA1 නුදුරු අනාගතයේ + වෙනත් වේදිකාවල තවදුරටත් ක්‍රියා නොකරන බැවින් ඔබ හැකි ඉක්මනින් VPN සහතික යාවත්කාලීන කළ යුතුය.</p> + <p>ඔබට සැබවින්ම පැරණි සහ කැඩුණු සහතික භාවිතා කිරීමට අවශ්‍ය නම්, පැතිකඩෙහි සත්‍යාපනය/සංකේතනය යටතේ TLS ආරක්ෂක පැතිකඩ සඳහා \"අනාරක්ෂිත\" තෝරන්න</p> + + බ. %.0f + කි.බ. %.1f + මෙ.බ. %.1f + ගි.බ. %.1f + සම්බන්ධතාවේ සංඛ්යා ලේඛන + ස්ථාපිත OpenVPN සම්බන්ධතාවයේ පවතින සංඛ්‍යාලේඛන + සම්බන්ධතා තත්ත්වය වෙනස් වීම + OpenVPN සම්බන්ධතාවයේ තත්ව වෙනස්කම් (සම්බන්ධ කිරීම, සත්‍යාපනය කිරීම,…) + සහතික අත්සනෙහි දුර්වල (MD5) හැෂ් (SSL_CTX_use_certificate md ඉතා දුර්වලයි) + OpenSSL වේග පරීක්ෂණය + OpenSSL කේතාංක නම් + OpenSSL Crypto වේග පරීක්ෂණය + OpenSSL දෝෂයක් ලබා දුන්නේය + අත්හදාබැලීම සිදුවෙමින්… + තෝරාගත් ඇල්ගොරිතම පරීක්ෂා කරන්න + බාහිර යෙදුමක් %sපාලනය කිරීමට උත්සාහ කරයි. ප්‍රවේශය ඉල්ලන යෙදුම නිර්ණය කළ නොහැක. මෙම යෙදුමට ඉඩ දීමෙන් සියලුම යෙදුම් වලට ප්‍රවේශය ලබා දේ. + OpenVPN 3 C++ ක්‍රියාත්මක කිරීම ස්ථිතික යතුරු සඳහා සහය නොදක්වයි. කරුණාකර සාමාන්‍ය සැකසුම් යටතේ OpenVPN 2.x වෙත වෙනස් කරන්න. + OpenVPN 3 C++ ක්‍රියාත්මක කිරීම සමඟ සෘජුවම PKCS12 ගොනු භාවිතා කිරීම සහය නොදක්වයි. කරුණාකර pkcs12 ගොනු Android යතුරු ගබඩාව වෙත ආයාත කරන්න හෝ සාමාන්‍ය සැකසුම් යටතේ OpenVPN 2.x වෙත වෙනස් කරන්න. + ප්‍රොක්සි + කිසිවක් නැත + ටෝර් (ඕර්බෝට්) + OpenVPN 3 C++ ක්‍රියාත්මක කිරීම Socks proxy හරහා සම්බන්ධ වීමට සහාය නොදක්වයි + Orbot යෙදුම සොයාගත නොහැක. කරුණාකර Orbot ස්ථාපනය කරන්න හෝ අතින් Socks v5 ඒකාබද්ධ කිරීම භාවිතා කරන්න. + දුරස්ථ යෙ.ක්‍ර. අ.මු. + Android සඳහා OpenVPN දුරස්ථ API දෙකක් සඳහා සහය දක්වයි, AIDL භාවිතා කරන නවීන API (git repository හි remoteEXample) සහ Intents භාවිතා කරන සරල එකක්. <p>adb shell සහ අභිප්‍රායන් භාවිතා කරන උදාහරණ. ඔබේ පැතිකඩ නම<p><p> adb shell am start-activity -a android.intent.action.MAIN de.blinkt.openvpn/.api.DisconnectVPN<p> adb shell am start-activity -a android.intent.action.MAIN - සමඟ පැතිකඩ නාමය ප්‍රතිස්ථාපනය කරන්න. e de.blinkt.openvpn.api.profileName Blinkt de.blinkt.openvpn/.api.ConnectVPN + Proxy Authentication සබල කරන්න + අමතර http-proxy-option ප්‍රකාශය සහ Orbot ඒකාබද්ධ කිරීම එකවර භාවිතා කළ නොහැක + සේවාදායකයෙන් තොරතුරු: \'%s\' + පරිශීලක අන්තර්ක්‍රියා අවශ්‍යයි + OpenVPN සම්බන්ධතාවයට පරිශීලක ආදානයක් අවශ්‍ය වේ, උදා සාධක + සත්‍යාපනය + + VPN සත්‍යාපනය දිගටම කරගෙන යාමට URL විවෘත කරන්න + VPN සත්‍යාපනය දිගටම කරගෙන යාමට අභියෝගයට පිළිතුරු දෙන්න + සත්‍යාපනය පොරොත්තුවෙන් + බාහිර සත්‍යාපකය + වින්‍යාසගත කරන්න + බාහිර සත්‍යාපකය වින්‍යාසගත කර නැත + VPN නොවන සම්බන්ධතාව අවහිර කරන්න (\"Killswitch\") + VPN නොමැතිව සම්බන්ධතා අවහිර කිරීමට බොහෝ විට අවශ්ය වේ. වෙනත් යෙදුම් බොහෝ විට මෙම විශේෂාංගය සඳහා \"Killswitch\" හෝ \"Seamless tunnel\" වැනි සලකුණු කිරීමේ පද භාවිතා කරයි. OpenVPN සහ මෙම යෙදුම මෙම ක්‍රියාකාරිත්වය ක්‍රියාත්මක කිරීමේ විශේෂාංගයක් වන persist-tun ලබා දෙයි.<p>යෙදුම් විසින් පිරිනමනු ලබන මෙම සියලු ක්‍රමවල ගැටලුව නම් ඒවාට හොඳම උත්සාහය පමණක් සැපයිය හැකි අතර සම්පූර්ණ විසඳුම් නොමැති වීමයි. ආරම්භයේදී, යෙදුම් බිඳවැටීම් සහ වෙනත් මුල්ලක අවස්ථා වලදී මෙම VPN නොවන සම්බන්ධතා අවහිර කිරීම ක්‍රියා කරන බව යෙදුමට සහතික කළ නොහැක. එබැවින් පරිශීලකයාට ආරක්ෂාව පිළිබඳ ව්යාජ හැඟීමක් ලබා දෙයි.<p>VPN නොවන සම්බන්ධතා අවහිර කර ඇති බව සහතික කිරීම සඳහා <b>පමණක්</b> විශ්වාසදායක ක්‍රමය වන්නේ Android 8.0 හෝ ඊට පසු භාවිතා කිරීම සහ Android > සඳහා සැකසීම් > Network & Internet > Advanced/VPN > OpenVPN යටතේ සොයා ගත හැකි \"VPN නොමැතිව බ්ලොක් සම්බන්ධතා\" සැකසීමයි. සැමවිටම VPN මත සබල කරන්න, VPN නොමැතිව බ්ලොක් සම්බන්ධතා සබල කරන්න + VPN කිසිදු IPv4 හෝ IPv6 ලිපිනයක් සකසා නොමැති නම්, මෙම විකල්පය Android හට ප්‍රොටෝකෝල (IPv4/IPv6) ඉඩ නොදෙන ලෙස උපදෙස් දෙයි. + VPN විසින් භාවිතා නොකරන්නේ නම් IPv6 (හෝ IPv4) අවහිර කරන්න + නව සහතිකයක් ස්ථාපනය කරන්න + AS සේවාදායක නාමය + සේවාදායක URL + ස්වයංක්‍රීය පිවිසුම් පැතිකඩ ඉල්ලන්න + දුරස්ථ සේවාදායකයෙන් පැතිකඩ ආයාත කරන්න + පෙරනිමි VPN සකසා නැත. මෙම විකල්පය සබල කිරීමට පෙර කරුණාකර පෙරනිමි VPN සකසන්න. + අභ්යන්තර WebView + නිශ්චිත තත්ත්වය අනුව මෙම පණිවිඩයේ යම් වෙනස්කම් තිබේ. සේවාදායකයාට සහ සේවාදායකයාට පොදු කේතාංකයකට එකඟ විය නොහැකි බව ඔවුන් සියල්ලන්ටම පොදුය. ප්‍රධාන හේතු වනුයේ: <ul><li> ඔබ තවමත් රඳා පවතින්නේ පෙරනිමි වින්‍යාසය තුළ OpenVPN 2.4 සහ ඊට වඩා පැරණි BF-CBC අවසර දී ඇති බව (--cipher සකසා නොමැති නම්). OpenVPN 2.5 එය <a href=\"https://community.openvpn.net/openvpn/wiki/SWEET32\">කැඩුණු/යල් පැන ගිය කේතාංක</a>ක් බැවින් එය තවදුරටත් පෙරනිමියට ඉඩ නොදේ.</li><li>සේවාදායකය OpenVPN 2.3 (හෝ ඊටත් වඩා පැරණි) --enable-small (අවම වශයෙන් අවුරුදු 4-5 ක් පැරණි OpenVPN) සමඟින් ධාවනය කරයි</li><li></ul>කැඩුණු වින්‍යාසය (උදා, සේවාදායක සහ සේවාදායකයේ දත්ත-කේතාංක නොගැලපීම)</li> <p> OpenVPN <a href=\"https://github.com/OpenVPN/openvpn/blob/master/doc/man-sections/cipher-negotiation.rst\">කේතාංක සාකච්ඡා පිළිබඳ අත්පොත කොටස</a> කේතාංක සාකච්ඡාවල විවිධ අවස්ථා සහ මෙම තත්ත්වයන් තුළ කළ යුතු දේ ඉතා හොඳින් පැහැදිලි කරයි. TP-Link උපාංග<p>ක් 2019/2020 මාදිලිවල පවා ඔවුන්ගේ උපාංගවල අවම වශයෙන් අවුරුදු 5ක් පැරණි OpenVPN 2.3.x අනුවාදයක් (සමහරවිට පැරණි) භාවිත කරයි.<p>අවසාන වශයෙන් නොව, ප්‍රමිතියට නොගැලපෙන හිමිකාර කේතාංක සාකච්ඡා පැච් එකක් නිර්මාණය කිරීම හොඳ අදහසක් යැයි එහි සංවර්ධකයා සිතූ නිසා \'BF-CBC\' භාවිතා කරන බව සැමවිටම පවසන කැඩුණු සේවාදායකයක් ඇති ජනප්‍රිය VPN සපයන්නෙකු සිටී. OpenVPN.<p>සාරාංශයක් ලෙස: සියලුම මනරම් වින්‍යාසයන් මෙම දෝෂ ලබා නොගත යුතුය. නමුත් (බිඳුණු VPN සපයන්නාගේ සේවාදායකය හැර) තවමත් සම්බන්ධ වීමට සේවාදායකයාට ඒත්තු ගැන්විය හැකිය (රෝග ලක්ෂණය නිවැරදි කිරීම මිස සැබෑ ගැටළුව නොවේ). පැරණි සේවාදායකයන් වෙත සම්බන්ධ වන විට VPN හි මූලික සැකසුම් තුළ ඇති ගැළපුම් මාදිලියේ විකල්පය පොදු ගැළපුම් ගැටළු බොහොමයක් විසඳීමට සමත් විය යුතුය. + සම වයසේ සහතික ඇඟිලි සලකුණ පරීක්ෂා කරන්න + (සේවාදායක සහතිකයේ (ය) SHA256 ඇඟිලි සලකුණ ඇතුළත් කරන්න) + ආරම්භයේදී VPN සබල කිරීමට කරුණාකර Android හි සැම විටම ක්‍රියාත්මක විශේෂාංගය භාවිතා කරන්න. + VPN සැකසුම් විවෘත කරන්න + අමතර අවශ්‍ය සත්‍යාපනය ඇතුළු කිරීමට කවුළුවක් විවෘත කරන්න මෙතන ඔබන්න + අනුකූලතා මාදිලිය + අනුකූලතා මාදිලිය + OpenSSL ලෙගසි සැපයුම්කරු පූරණය කරන්න + පැතිකඩ OpenSSL ලෙගසි සපයන්නා මත රඳා පවතින BF-CBC භාවිතා කරයි (සක්‍රීය කර නැත). + ප්‍රජා දායක පරිවර්තන වලට ඉඩ දෙන්න + ප්‍රජාව විසින් දායක වූ පරිවර්තන සමඟින් යෙදුමට පරිවර්තනය කිරීමට ඉඩ දෙන්න. සක්‍රිය කිරීමට යෙදුම නැවත ආරම්භ කිරීම අවශ්‍ය වේ. + TLS ආරක්ෂක පැතිකඩ +
diff --git a/main/src/ui/res/values-sk/arrays.xml b/main/src/ui/res/values-sk/arrays.xml new file mode 100644 index 00000000..531d7d5e --- /dev/null +++ b/main/src/ui/res/values-sk/arrays.xml @@ -0,0 +1,31 @@ + + + + + + Certificates + PKCS12 File + Android Certifikát + Meno/Heslo + Statické kľúče + Meno/Heslo + Certifikáty + Meno/Heslo + PKCS12 + Meno/Heslo + Android + Externý poskytovateľ autentifikácie + + + 0 + 1 + Nešpecifikované + Šifrovanie (--tls-crypt) + Krypta TLS V2 + + + Disconnect, forget password + Odpojiť, zachovať heslo + Ignorovať, skúsiť znova + + diff --git a/main/src/ui/res/values-sk/plurals.xml b/main/src/ui/res/values-sk/plurals.xml new file mode 100644 index 00000000..635b7945 --- /dev/null +++ b/main/src/ui/res/values-sk/plurals.xml @@ -0,0 +1,27 @@ + + + + Ostáva jeden mesiac + Zostávajú %d mesiace + Ostáva %d mesiacov + Zostáva %d mesiacov + + + Zostáva jeden deň + Zostáva %d dní + Zostáva %d dní + Zostáva %d dní + + + Zostáva jedna hodina + Zostáva %d hodín + Zostáva %d hodín + Zostáva %d hodín + + + Zostáva jedna minúta + Zostávajú %d minúty + Zostáva %d minút + Zostáva %d minút + + diff --git a/main/src/ui/res/values-sk/strings.xml b/main/src/ui/res/values-sk/strings.xml new file mode 100644 index 00000000..2bd11f12 --- /dev/null +++ b/main/src/ui/res/values-sk/strings.xml @@ -0,0 +1,474 @@ + + + + OpenVPN pre Android + Adresa servera: + Port servera: + Umiestnenie + Adresár sa nedá prečítať + Vyberte + Zrušiť + Žiadne údaje + LZO Kompresia + Žiadne Certifikáty + Certifikát klienta + Kľúč certifikátu klienta + PKCS12 súbor + Certifikát CA + Musíte vybrať certifikát + Zdrojový kód a riešenie problémov je k dispozícii na adrese https://github.com/schwabe/ics-openvpn/ + Tento program používa nasledujúce komponenty; pozri zdrojový kód pre podrobnosťi o licenciách + O + Profily + Typ + PKCS12 heslo + Vyberte… + Musíte vybrať súbor + Použiť TLS overovanie + TLS Smer + Zadajte IPv6 adresu / masku siete v CIDR formáte (napr. 2000:dd::23/64) + Zadajte IPv4 adresu/masku siete vo formáte CIDR (napr. 1.2.3.4/24) + IPv4 adresa + IPv6 adresa + Zadajte vlastné OpenVPN možnosti. Používajte opatrne. Tiež si všimnite, že mnoho OpenVPN nastavení súvisiacich s TUN, nemôže byť podporovaná, kvôli dizajnu VPNSettings. Ak si myslíte, že dôležitá voľba chýba, obráťte sa na autora + Heslo + Pre statickú konfiguráciu budú TLS Auth kľúče použité ako statické kľúče + Konfigurácia VPN + Pridať profil + Zadajte názov identifikujúci nový profil + Prosím, zadajte jedinečný názov profilu + Názov profilu + Musíte vybrať užívateľský certifikát + Nebola nájdená žiadna chyba + Chyba v konfigurácii + Chyba pri analýze IPv4 adresy + Chyba rozboru vlastného smerovania + (nechajte prázdne pre dotaz na vyžiadanie) + OpenVPN odkaz + Pripája sa k sieti VPN + Profil specifikovaný v zástupcovi nebol nájdený + Náhodný prefix hostiteľa + Pridá 6 náhodných znakov pred hostname + Povoliť vlastné možnosti + Určite vlastné nastavenia. Používajte opatrne! + Trasa zamietnutá + Odpojiť + Odpojiť VPN + zmazať log + Zrušiť potvrdenie + Odpojiť pripojenie VPN, alebo zrušiť pokus o pripojenie? + Odstrániť VPN + Skontroluje, či server používa certifikát s TLS Server extensions (--remote-cert-tls server) + Čaká sa na certifikát servera TLS + Kontrola DN v certifikáte vzdialeného servera + Kontrola Host certifikátu + Špecifikuj spôsob kontroly DN v certifikáte vzdialeného servera (pr. C=DE, L=Paderborn, OU=Avian IP Carriers, CN=openvpn.blinkt.de)\n\nŠpecifikuj kompletné DN alebo RDN (openvpn.blinkt.de v príklade) alebo RDN prefix pre verifikáciu.\n\nPri použití RDN prefixu, \"Server\" sedí na \"Server-1\" i \"Server-2\"\n\nAk je RDN pole prázdne, kontroluje sa proti mene servera.\n\nPre viac detailov, pozri manuálovú stránku OpenVPN 2.3.1+, prepínač —verify-x509-name + Vzdialený certifikát + Použiť overovanie TLS kľúča + TLS Auth súbor + Použiť IP adresu, smerovanie a časovanie prijaté od servera. + Žiadne informácie od servera nepožadovať. Nastavenie je potrebné zadať nižšie. + Získajte informácie + DNS + Prepísať nastavenia DNS servera + Použiť vlastné DNS servery + hľadať doménu + Adresa primárneho DNS servera + Primárny DNS server + Adresa záložného DNS servera, ak sa nemôže pripojiť k primárnemu. + Záložný DNS server + ignorovať prijaté + Ignorovať smerovanie, ktoré zaslal server. + Presmeruje všetku komunikáciu cez VPN + Použiť ako predvolené + Zadať vlastné smerovanie. Zadaj ciele v CIDR formáte. \"10.0.0.0/8 2002::/16\" nasmeruje siete 10.0.0.0/8 a 2002::/16 skrz VPN. + Trasy, ktoré nemajú byť smerované cez VPN. Použi rovnaký syntax ako pre zahrnuté trasy. + Vlastné smerovanie + Vylúčené siete + Ukecanosť logu + Povoľ Párované pakety z ľubovoľnej IP + Povoľ plávajúcí server + Vlastné nastavenia + Zmeniť nastavenia VPN + Odstrániť VPN profil \'%s\'? + Na niektorých ICS systémoch môže byť oprávnenia pre /dev/ton zle nastavené, alebo ton modul môže úplne chýbať. Pre systém s CM9 skús využiť opravy vlastníctva vo všeobecnom nastavení + Chyba pri otváraní ton zariadení + "Chyba: " + Vymazať + Otvorenie rozhrania ton: + Miestne IPv4: %1$s/%2$d IPv6: %3$s MTU: %4$d + DNS server: %1$s, Doména: %2$s + Trasy: %1$s %2$s + Vylúčené trasy: %1$s %2$s + Nainštalované VpnService smerovania: %1$s %2$s + Získané informácie o rozhraní %1$s a %2$s, za predpokladu, že druhá adresa je adresa vzdialeného kolegami. používam /32 masku pre miestnú IP adresu. Mód OpenVPN je \"%3$s\". + %1$s a %2$s ako IP adresy s CIDR maskou nedávajú zmysel, používam, /32 ako masku. + Smerovanie opravené z %1$s/%2$s na %3$s/%2$s + Nemôže získať prístup k Android Keychain certifikáty. To môže byť spôsobené firmware upgrade alebo obnovení zálohy z aplikácie alebo aplikácie nastavenia. Upravte VPN a znova vyberte certifikát podľa základného nastavenia obnoviť povolenie na prístup k certifikátu. + %1$s %2$s + Odoslať log súbor + Odoslať + ICS OpenVPN log súbor + Kopírovať log + Tap Mode + TAP režim nie je možné bez root VPN API. Preto táto žiadosť nemôže poskytnúť podporu tap + Opäť? Robíš si srandu? Nie, tap mód naozaj nie je podporovaný a ďalšie maily na tom nič nezmení. + Tretíkrát? V skutočnosti, išlo by napísať emulátor tap zariadení pomocou ton, ktoré by patrične spracovávalo informácie z druhej vrstvy. Ale tento emulátor by tiež musel implementovať ARP a DHCP. Nie som si vedomý, že by niekto týmto smerom niečo podnikol. Kontaktuj ma, ak máš záujem toto naprogramovať. + FAQ + Kopírovanie log protokolu + Pre skopírovanie jedného záznamu stačí dlho stlačiť požadovaný záznam. Pre skopírovanie/odoslanie celého logu použi možnosť Odoslať súbor s logom. Pokiaľ nie je tlačidlo viditené v užívateľskom rozhraní, skús použiť to hardvérové. + Skratka na spustenie + Môžeš umiestniť zástupca pre spustenie OpenVPN na plochu. V závislosti na úvodnej obrazovke budeš musieť pridať buď zástupcu alebo widget. + Tvoj obrázok nie je podporovaný rozhraním VPNService API, je mi ľuto :( + Šifrovanie + Zadajte metódu šifrovania + Zadaj algoritmus pre autentifikáciu. Nechaj prázdne pre predvolený algoritmus. + Overenia/šifrovania + prehliadač súbor + Vložený súbor + Chyba pri importe súboru + Nemôžem importovať súbor zo súborového systému + [[Vložené dáta]] + Odmietam otvoriť ton zariadení bez informácie o IP + Importovať profil zo súboru ovpn + Import + Nemôžem prečítať profil na import + Chyba pri čítaní konfiguračného súboru + pridať profil + Nemôžem nájsť súbor %1$s spomínaný v importovanom profile + Importujem nastavení z %1$s + V konfigurácii bolo niekoľko nastavení, ktoré nie sú namapovaná na užívateľské rozhranie. Toto nastavenie bolo pridané ako vlastné konfigurácie. Vlastná konfigurácia je zobrazená nižšie: + Dočítal som konfiguračný súbor. + Neviazať sa k miestnej adresy a portu + Žiadne miestne viazanie + Importovať nastavenia zo súboru + Úvaha o bezpečnosti + \"Pretože OpenVPN je citlivá na bezpečnosť je na mieste niekoľko poznámok. Všetky dáta na SD karte sú už z princípu nezabezpečená. Každá aplikácia ich môže čítať (napríklad ani tento program nepotrebuje žiadne speciǎlní práva pre SD kartu). Dáta tejto aplikácie môže prečítať len aplikácie sama. Použitím importu pre certifikáty/kľúče sú dáta uložené do VPN profilu. VPN profily sú prístupné len pre túto aplikáciu. (Nezabudni ale potom zmazať kópie z SD karty.) ale aj keď sú dáta čitateľné len touto aplikáciou, nie sú nijako šifrovaná. Je -Li zariadenie rootnuté alebo nejako inak upravené, existuje možnosť získať tieto dáta. Uložené heslá sú tiež v čitateľnej podobe. Pre PKCS12 certifikáty je veľmi odporúča využiť importu do androidího úložiska. + Import + Chyba pri zobrazení výbere certifikátu + Výnimka pri pokuse zobraziť Android 4.0+ dialógu pre výber certifikátu. Toto je štandardné funkcie Androidu 4.0+, takže k tejto chybe nemalo vôbec dôjsť, možno je chyba v podpore certifikátov v tvojom systéme. + IPv4 + IPv6 + Čakám na správu o stave... + importovaný profil + importovaný profil %d + Rozbité obrázky + <p> Oficiálne HTC obrazy sú známe tým, že majú konkrétne problémy so smerovaním sieťového tok skrz tunel (pozri tiež < href=\"http://code.google.com/p/ics-openvpn/issues/detail?id=18\" > problém 18 </a> v bug trackeru.)</p> <p> Staršie oficiálne obrazy SONY Xperia Arc S a Xperia Ray úplne chýbala VPNService. (pozri tiež < href=\"http://code.google.com/p/ics-openvpn/issues/detail?id=29\" > problém 29 </a> v bug trackeru.)</p> <p> Na vlastných obrazoch Tun modul môže chýbať alebo mať zle nastavená práva. Niektoré obrazy CM9 potrebujú povolenej \"Opraviť vlastníctva\" v nastavení.</p> <p>Najdôležitejšie: Ak má zariadenie poškodený Android obraz, oznám to výrobcovia. Čím viac ľudí oznámi problém výrobcovi, tým väčšia je pravdepodobnosť, že to opraví.</p> + Šifrovací kľúč PKCS12 + Heslo k súkromnému kľúču + Heslo + ikona súboru + TLS autentizácia/šifrovanie + Vygenerované nastavenia + Nastavenie + Pokúsiť sa nastaviť vlastníka /dev/ton zariadení. Na niektorých systémoch s CM9 je toto potrebné pre sprevádzkovanie VPNService API. Vyžaduje root zariadenie. + Opraviť vlastníctvo /dev/ton + Zobrazí vygenerované nastavenia OpenVPN + Úprava \"%s\" + Vytváram konfiguráciu ... + Zapnutím tejto voľby bude vynútené opätovné pripojenie, ak sa zmení stav siete (napr. Z WiFi na mobilnú sieť a späť) + Opätovne pripojiť pri zmene siete + Stav siete: %s + CA certifikát je zvyčajne získaný z Androidího úložiska. Zadaj samostatný certifikát, ak dostávaš chybu pri verifikácii. + Vyber + Žiadny CA certifikát nebol získaný z úložiska, autentikácie pravdepodobne zlyhá. + Zobraziť okno s logom pri pripájaní. okno možno vždy otvoriť z notifikácia. + Zobraziť okno s logom + %10$s %9$s spustené na %3$s %1$s (%2$s), Android %6$s (%7$s) API %4$d, ABI %5$s, (%8$s) + Chyba pri podpisovaní kľúčom %1$s: %2$s + Chyba vo vlákne s externou autentickosti aplikácie + VPN varovanie pri pripájaní oznamujúce o možnosti presmerovania všetkého prevádzky je vynútené systémom, aby sa zabránilo zneužitiu VPNService API.\nNotifikace (symbol s kľúčom) je tiež vynútená systémom, aby signalizovala odchádzajúce VPN spojenie. Na niektorých systémoch prehráva notifikácia aj zvuk.\nAndroid zaviedol tieto dialógy pre tvoju osobnú bezpečnosť a uistil sa, že nejdú obísť. (Niekedy to bohužiaľ zahŕňa aj zvuk notifikácia.) + Varovanie pri pripojení a zvuková notifikácia + Slovenský preklad zpracoval mickkymouse <tobiaschannel11@gmail.com> + IP a DNS + Základné + Smerovanie + Skryté OpenVPN voľby. Normálne nie sú nutné. + Pokročilé + Konfigurácia ICS Openvpn + Žiadne DNS servery nie sú použité. Preklad mien nemusí fungovať. Zváž nastavenie vlastných DNS serverov. Tiež dbaj na to, že Android bude naďalej používať nastavenia proxy určené pre mobilné/Wi-Fi pripojenie, ak nie sú nastavené žiadne servery DNS. + Nemôžem pridať DNS server \"%1$s\", odmietnuté systémom: %2$s + Nie je možné nastaviť IP adresu \"%1$s\", odmietnuté systémom: %2$s + <p>Získaj fungujúci nastavenia (otestované na tvojom počítači alebo stiahnuté od poskytovateľa/zamestnávateľa).</p><p>Ak je to jeden súbor bez extra pem/pks12 súborov, môžeš ho poslať emailom ako prílohu. Ak je súborov viac, ulož ich na SD kartu.</p><p>Klikni na prílohu mailu/Použi ikonu adresára v zozname VPN pre import nastavenie.</p><p>Ak sa zobrazí chyby o chýbajúcich súboroch, ulož ich na SD kartu.</p><p>Pre pridanie importované VPN do zoznamu, klikni na symbol pre uloženie.</p><p>Pre pripojenie k VPN klikni na jej meno.</p><p>Ak sa v logu objavia varovanie alebo chyby, pokus sa im porozumieť a opraviť nastavenia.</p> + Rýchly štart + Pokus sa nahrať jadrový modul tun.ko pred pokusom o pripojenie. Vyžaduje rootnuté zariadenia. + Nahrať ton modul + Importovať PKCS12 z konfigurácie do Androidného úložiska + Chyba pri zisťovaní nastavení proxy: %s + Používam proxy %1$s %2$s + Použiť systémovú proxy + Na pripojenie použiť systémové nastavenie pre HTTP/HTTPS. + OpenVPN sa automaticky pripojí k vybranej VPN po štarte systému. Prosím venujte pozornosť upozornenie vo FAQ pre verziu Android < 5.0. + Pripojiť po spustení systému + Ignorovať + Reštartovať + Zmena nastavení začne platiť až po reštarte VPN. Reštartovať teraz? + Nastavenie zmenené + Nemôžem zistiť naposledy pripojený profil k úprave + Zdvojená notifikácia + Ak je Android pod veľkým tlakom (na RAM pamäť), aplikácie a služby, ktoré nie sú práve potrebné, sú odstránené z aktívnej pamäti. To ukončí odchádzajúce VPN spojenie. Na zaistenie, že OpenVPN spojenie prežije, služba beží s vysokou prioritou. Aby mohla služba bežať s vysokou prioritou, musí zobraziť notifikáciu. Notifikácia s kľúčom je vynútená systémom (ako je popísané v inom oddiele) a nepočíta sa ako aplikačný notifikácia na účely behu s vysokou prioritou. + Nie je definovaný VPN profil. + Použi ikonu <img src=\"ic_menu_add\"/> na pridanie novej VPN + použi ikonu <img src=\"ic_menu_archive\"/> k Importe existujúceho (.ovpn alebo .conf) profilu z SD karty. + Uisti sa, že si si prečítal FAQ. Je tu nápoveda pre rýchly štart. + Nastavenie smerovania/rozhrania + Smerovanie a konfigurácia rozhrania nie je vykonaná pomocou tradičných príkazov ifconfig/route, ale pomocou VPNService API. To má za následok odlišnú konfiguráciu smerovania, než na iných operačných systémoch. Konfigurácia VPN tunela sa skladá z IP adresy a siete, ktorá má byť smerovaná cez toto rozhranie. Najmä nie je potreba adresa protistrany alebo brány. Špeciálny smerovania pre dosiahnutie VPN servera (napríklad v prípade použitia redirect-gataway direktívy) tiež nie je potreba. Aplikácia bude toto nastavenie pri importe konfigurácie ignorovať. Aplikácia pomocou VPNService API zaisťuje, že spojenie k VPN servera nie je smerované cez tunel. Povolené je len špecifikovanie sietí, ktoré sa majú smerovať skrze tunel. Aplikácia sa snaží detekovať siete, ktoré by nemali prechádzať tunelom (napr. Route x.x.x.x y.y.y.y net_gateway) a vypočítava nastavenie smerovania tak, aby emuloval správne chované ako na ostatných platformách. Logovacie okno ukazuje konfiguráciu VPNService pri nadviazaní spojenia. + Nevracaj sa k spojeniu mimo VPN, zatiaľ čo sa OpenVPN pripája. + Trvalý ton + OpenVPN Log + Importovať OpenVPN nastavenia + Spotreba batérie + V testoch sa ako hlavný dôvod vysokej spotreby batérie ukázali keepalive pakety. Väčšina OpenVPN serverov má v konfigurácii niečo ako \'keepalive 10 60\', čo znamená posielanie paketov každých desať sekúnd. <p> Tieto pakety sú malé a neznamenajú veľký prevádzku, ale udržujú mobilnú sieť aktívna a zvyšujú spotrebu energie. (Pozri tiež <ahref=\"http://developer.android.com/training/efficient-downloads/efficient-network-access.html#RadioStateMachine\">The Radio State Machine | Android Developers</a>)<p> Toto nastavenie sa nedá zmeniť na klientskej strane. Len administrátor OpenVPN môže toto nastavenie zmeniť. <p> Bohužiaľ používanie keepalive hodnôt väčších ako 60 sekúnd spolu s UDP môže spôsobovať problémy s niektorými Naty, ktoré ukončujú po krátkom čase spojenia. Použitie TCP s dlhým keepalive funguje, ale má problém \"TCP cez TCP\" (Pozri <a href=\"http://sites.inka.de/bigred/devel/tcp-tcp.html\">Prečo je TCP cez TCP zlý nápad</a>) + Androidi funkcie tetheringu (cez WiFi, USB, alebo Bluetooth) a VPService API (používajú týmto programom) spolu nepracujú. Viac detailov viď <a href=\"http://code.google.com/p/ics-openvpn/issues/detail?id=34\">problem #34</a> + Zdieľanie siete VPN + Opakované pripojenie + Nastavenie obnovenia + Počet sekúnd medzi pokusmi o pripojenie. + Sekúnd medzi pripojeniami + Sekúnd medzi pripojením OpenVPN neočakávane havarovalo. Zváž možnosť použitia voľby poslať Minidump z hlavného menu +  + Poslať Minidump vývojári + Poslať ladiace informácie o poslednej havárii vývojári + OpenVPN - %s + %1$s - %2$s + %1$s - %3$s, %2$s + Pripájam sa + Čakanie na odpoveď servera + Overujem autorizáciu + Sťahujem konfiguráciu klienta + Nastavujem IP adresu + Pridávanie trás + Pripojené + Odpojiť + Obnovujem pripojenie + Odísť + Nie je spustený + Preklad názvov + Pripájam (TCP) + Overenie zlyhalo + Čaká sa na použiteľnú sieť + Čaká sa, kým sa začne Orbot + ↓%2$s %1$s - ↑%4$s %3$s + Nepripojený + Pripája sa k sieti VPN %s + Pripája sa k sieti VPN %s + Niektoré verzie systému Android 4.1 majú problémy, ak názov certifikátu skladu kľúčov obsahuje alfanumerické znaky (napríklad medzery, podčiarknutia alebo pomlčky). Skúste znova importovať certifikát bez špeciálnych znakov + Šifrovacia šifra + autentifikácia paketov + Zadajte metódu autentifikácie paketov + zostavené od %s + ladiaca verzia + oficiálna verzia + Skopírovať do profilu + havarijný výpis + Pridať + Odoslať konfiguračný súbor + Kompletné DN + Tvoja importovaná konfigurácia používa ZASTARANÉ nastavenie tls-remote, ktoré používa iný formát DN. + RDN (bežné meno) + RDN prefix + tls-remote (ZASTARANÉ) + Môžeš pomôcť s prekladom, navštív http://crowdin.net/project/ics-openvpn/invite + %1$s sa pokúša o kontrolu %2$s + Pokračovaním dávaš aplikácií privilégiá pre kompletnú kontrolu OpenVPN a na zachytávanie všetkého sieťovej prevádzky.Nepotvrdzuj, ak neveríš aplikácií. V opačnom prípade riskuješ napadnutia nebezpečným softvérom + Verím tejto aplikácii. + Žiadne aplikácii nie je povolené použiť externý API + Povolené aplikácie: %s + Vyčistiť zoznam povolených aplikácií?\nSúčasný zoznam povolených aplikácií:\n\n%s + \"Pozastaviť VPN, ak je obrazovka vypnutá a za posledných 60 sekúnd sa prenieslo menej ako 64 kB. Ak je voľba\" Trvalé TUN\" povolená, pozastavenie VPN dostane zariadenie do stavu BEZ konektivity. Bez \"Trvalé TUN\" možnosti nebude mať zariadenie VPN pripojenie (ochranu). + Pozastaviť VPN pripojenia pri vypnutí obrazovky + Pozastaviť pripojenie pri vypnutej obrazovke: menej ako %1$s za %2$s sekund + Varovanie: \"Trvalý TUN\" nie je pre túto VPN povolený. Prevádzka použije pri vypnutej obrazovke normálnej internetové pripojenie. + Uložiť heslo + Pozastaviť VPN + Obnoviť VPN + Pozastavenie VPN vyžiadané užívateľom + VPN pozastavené - vypnutá obrazovka + Hacky špecifické pre zariadenie + Nie je možné zobraziť informácie o certifikáte + Správanie aplikácie + Správanie VPN + Povoliť zmeny VPN profilov + Hardvérové úložisko: + Ikona aplikácie snažiaci sa použiť OpenVPN pre Android + "Počnúc Androidom 4.3, VPN konfirmácia je chránená proti \"prekryvným aplikáciám\". Výsledkom je dialóg nereagujúca na dotyk. Pokiaľ máš aplikáciu používajúci prekryv, môže to spôsobiť toto správanie. Ak nájdeš škodlivú aplikáciu, kontaktuj jej autora. Tento problém ovplyvňuje všetky VPN aplikácie na Androide 4.3 a vyššie. pozri tiež <a href=\"http://code.google.com/p/ics-openvpn/issues/detail?id=185\">Problem 185<a> pre ďalšie detaily." + VPN potvrdzovací dialóg na Androide 4.3 a vyššie + Prípadne ma môžete sponzorovať cez Play Store: + Vďaka za sponzorovanie %s! + Log vyčistený. + ukázať heslo + Chyba prístupu ku KeyChain: %s + Krátky + ISO + Časové značky + Žiadny + Nahrávanie + Sťahovanie + VPN stav + Zobraziť možnosti + Neošetrená výnimka: %1$s\n\n%2$s + %3$s: %1$s\n\n%2$s + Ak máš rootnuté zariadenie, môžeš nainštalovať <a href=\"http://xposed.info/\">Xposed framework</a> a <a href=\"http://repo.xposed.info/module/de.blinkt.vpndialogxposed\">VPN potvrdzovací modul</a> na vlastné nebezpečenstvo\" + Plné licencie + Sieť môže byť pripojená na lokálne rozhranie nebude možné smerovanými skrze VPN. Odznačením této volby bude přesměrován každý lokálny provoz do VPN. + Nepoužívať VPN pre lokálne siete + Súbor pre Meno/Heslo + [Importované z: %s] + Niektoré súbory nemohli byť nájdené. Prosím vyber profil, ktorý chceš importovať: + Pre používanie tejto aplikácie je potreba VPN poskytovateľ/brána, ktorá podporuje OpenVPN (často je to zamestnávateľ). Pre viac informácií a návod na nastavenie OpenVPN serveru navštív http://community.openvpn.net/ + Import logu: + Vpn topológia \"%3$s\" špecifikovaná, ale ifconfig %1$s %2$s vyzerá skôr ako IP adresa so sieťovou maskou. Predpokladám \"podsieťová\" topológiu. + mssfix hodnota musí byť celé číslo medzi 0 a 9000 + MTU hodnota musí byť celé číslo medzi 64 a 9000 + Oznámiť TCP sedením bežiacom skrze tunel, že majú limitovať veľkosť odosielaných paketov tak, aby potom, čo je OpenVPN zabalí, bola výsledná veľkosť UDP paketu, ktoré OpenVPN posiela menší než tento počet bytov. (Predvolený je 1450) + Prepísať hodnotu MSS pre TCP obsah + Nastaviť MSS pre TCP obsah + Správanie klienta + Zrušiť povolene externé aplikácie + Načítanie... + Povolené VPN aplikácie: %1$s + Zakázané VPN aplikácie: %1$s + Balíček %s už nie je nainštalovaný, odstraňujem ho zo zoznamu povolených/zakázaných aplikácií + VPN je používaná pre všetky aplikácie, okrem + VPN je používaná je pre vybrané aplikácie + Dovoľ aplikáciám obísť VPN + Odstrániť položku vzdialeného servera? + Zachovať + Zmazať + Pridať nové vzdialené miesto + Použiť položky na pripojenie v náhodnom poradí + Je potrebné definovať a povoliť aspoň jeden vzdialený server. + Zoznam serverov + Povolené aplikácie + Pokročilé nastavenia + Možnosti dát + Nastavenie TLS + Nedefinovaná protistrana + Duplicitný VPN profil + Duplicitný profil: %s + Zobraziť log + Existuje viac klientov OpenVPN pre Android. Najbežnejšie sú OpenVPN pre Android (tento klient), OpenVPN Connect a OpenVPN Settings.<p>Klienti môžu byť zoskupení do dvoch skupín: OpenVPN pre Android a OpenVPN Connect používajú oficiálne API VPNService (Android 4.0+) a nevyžadujú žiadne nastavenia root a OpenVPN, ktoré používajú root.<p>OpenVPN pre Android je klient s otvoreným zdrojom a vyvinutý spoločnosťou Arne Schwabe. Je zameraná na pokročilejších používateľov a ponúka veľa nastavení a možnosť importovať profily zo súborov a konfigurovať / meniť profily v aplikácii. Klient je založený na komunitnej verzii OpenVPN. Je založený na zdrojovom kóde OpenVPN 2.x. Tento klient môže byť videný ako polooficiálny klient komunity. <p>OpenVPN Connect je klient s otvoreným zdrojovým kódom, ktorý vyvinula spoločnosť OpenVPN Technologies, Inc. Klient je označený ako klient so všeobecným použitím a je viac zameraný na priemerného používateľa a umožňuje import profilov OpenVPN. Tento klient je založený na reimplementácii protokolu OpenVPN C ++ protokolu OpenVPN (Vyžadovalo sa to, aby mohla spoločnosť OpenVPN Technologies, Inc zverejniť aplikáciu iOS OpenVPN). Tento klient je oficiálnym klientom technológií OpenVPN. <p> Nastavenia OpenVPN sú najstaršími klientmi a tiež používateľským rozhraním pre otvorený zdroj OpenVPN. Na rozdiel od OpenVPN pre Android vyžaduje root a nepoužíva API VPNService. Nezávisí to od systému Android 4.0 alebo novšieho + Rozdiely medzi OpenVPN klientov pre Android + Ignorovanie trasy multicast: %s + Android podporuje iba trasy CIDR k sieti VPN. Pretože trasy, ktoré nie sú CIDR, sa takmer nikdy nepoužívajú, OpenVPN pre Android použije / 32 pre trasy, ktoré nie sú CIDR, a vydá varovanie. + Tethering funguje, keď je VPN aktívna. Zdieľané pripojenie NEPOUŽÍVA VPN. + Staršia verzia KitKat nastavila nesprávnu hodnotu MSS na pripojeniach TCP (# 61948). Pokúste sa povoliť možnosť mssfix na obídenie tejto chyby. + Ak nie sú nastavené žiadne servery DNS, systém Android bude naďalej používať vaše nastavenia servera proxy určené pre mobilné pripojenie / pripojenie Wi-Fi. OpenVPN pre Android vás na to upozorní v denníku.

Keď VPN nastaví DNS server, Android nebude používať proxy. Neexistuje žiadne rozhranie API na nastavenie servera proxy pre pripojenie VPN.

+ Konfigurovaná adresa IP klienta a adresy IP v jeho sieťovej maske nie sú smerované do VPN. OpenVPN obíde túto chybu tým, že explicitne pridá cestu, ktorá sa zhoduje s IP adresou klienta a jeho sieťovou maskou + Otvorenie tunového zariadenia, zatiaľ čo je aktívne iné tunerové zariadenie, ktoré sa používa na podporu pretrvávajúceho tuningu, zrúti služby VPNS na zariadení. Aby sieť VPN opäť fungovala, je potrebný reštart. OpenVPN pre Android sa snaží vyhnúť sa opätovnému otvoreniu tunového zariadenia a ak je to skutočne potrebné, najskôr zatvorí aktuálny TUN pred otvorením nového TUN zariadenia, aby nedošlo k zlyhaniu. To môže viesť k krátkemu oknu, v ktorom sa pakety odosielajú cez pripojenie iné ako VPN. Aj pri tomto riešení sa niekedy služby VPNS zlyhajú a vyžadujú reštart zariadenia. + VPN pre sekundárnych používateľov vôbec nefunguje. + „Viacerí používatelia hlásia, že pri používaní aplikácie VPN je často prerušené mobilné pripojenie / mobilné dátové pripojenie. Zdá sa, že správanie ovplyvňuje iba kombináciu mobilných operátorov a zariadení a doteraz sa nedala zistiť príčina / riešenie chyby.“ + Cez VPN je možné dosiahnuť iba cieľ, ktorý je dostupný bez VPN. VPN VPN typu IPv6 vôbec nefungujú. + Nie-CIDR trasy + Proxy správania pre VPN + %s a staršie + Kópia %s + Trasa k nastavenej IP adrese + Zlá hodnota MSS pre VPN spojenie + Používatelia sekundárnych tabletov + Zadajte vlastné špecifické možnosti na pripojenie. Používajte opatrne + Vlastné možnosti + Odstrániť položku pripojenie + Náhodné odpájaní od mobilnej siete + Vzdialená sieť nie je dostupná + Zotrvať v režime ton + %s a neskôr + Pripojenie zlyhalo SSL23_GET_SERVER_HELLO:sslv3 upozorniť na zlyhanie handshake + Novšie verzie OpenVPN pre verzie systému Android (0.6.29 / marec 2015) používajú bezpečnejšie predvolené nastavenia povolených šifrovacích balíkov (tls-cipher \"DEFAULT:! EXP:! PSK:! SRP:! KRSA\"). Bohužiaľ, vynechanie menej bezpečných šifrovacích súborov a export šifrovacích súborov, najmä vynechanie šifrovacích súborov, ktoré nepodporujú Perfect Forward Secrecy (Diffie-Hellman), spôsobuje určité problémy. Toto je zvyčajne spôsobené dobre mieneným, ale zle vykonaným pokusom o posilnenie bezpečnosti TLS nastavením tls-šifry na serveri alebo v niektorých zabudovaných OS s odstráneným SSL (napr. MikroTik).\nAk chcete vyriešiť tento problém, nastavte nastavenia tls-šifry na serveri na predvolené predvolené hodnoty, napríklad tls-šifra \"DEFAULT:! EXP:! PSK:! SRP:! KRSA\". Na vyriešenie problému na klientovi pridajte na klientovi Android vlastnú voľbu tls-cipher DEFAULT. + Tento profil bol pridaný z externej aplikácie (%s) a bol označený ako užívateľsky nezmeniteľný. + Zoznam zrušených certifikátov + Reštartovanie služby OpenVPN (aplikácia pravdepodobne havarovala, alebo bola ukončená kvôli nedostatku pamäte) + Importovanie konfigurácie spôsobilo chybu, nemožno ho uložiť + Hľadať + (Posledný výpis je %1$d: %2$dh starý (%3$s)) + Vymazať log pri novom pripojení + Časový limit pripojenia + Neboli pridané žiadne povolené aplikácie. Ak do zoznamu povolených aplikácií pridáte sami seba (%s), povolíte tak aspoň jednu aplikáciu, ktorá nepovolí všetky aplikácie + Aplikácia OpenVPN pre systém Android sa môže pokúsiť automaticky zistiť chýbajúci súbor (y) na sdcard. Kliknutím na túto správu spustite žiadosť o povolenie. + Protokol + Povolené + Povolenie VPN zrušené OS (napr. Spustený iný program VPN), zastavovanie VPN + Push Peer info + Odoslať na server ďalšie informácie, napr. Verziu SSL a verziu systému Android + Potrebujete %1$s + Prosím zadajte heslo pre profil %1$s + Použiť vložené údaje + Exportovať konfiguračný súbor + súbor tls-auth chýba + Chýba certifikát používateľa alebo súbor certifikovaný používateľom + Zoznam zrušených certifikátov (voliteľné) + Znovu načítať (%d) položky protokolu zo súboru vyrovnávacej pamäte protokolu + Aj keď telefóny Samsung patria medzi najpredávanejšie telefóny s Androidom, firmvér spoločnosti Samsung patrí medzi najobľúbenejšie firmvéry systému Android. Chyby sa neobmedzujú iba na operáciu VPN na týchto zariadeniach, ale mnohé z nich možno vyriešiť. V nasledujúcom texte sú popísané niektoré z týchto chýb.\n\nDNS nefunguje, ak DNS server v rozsahu VPN.\n\nNa mnohých zariadeniach Samsung 5.x nefunguje funkcia povolených / zakázaných aplikácií.\nNa serveri Samsung 6.x VPN sa uvádza, že nefunguje, pokiaľ nie je aplikácia VPN vyňatá z funkcií Powersave. + Telefóny Samsung + Nie je vybratá žiadna sieť VPN. + Predvolená VPN + Sieť VPN sa používa na miestach, kde je potrebná predvolená sieť VPN. Momentálne sú na štarte, pre Always-On a Quick Settings Tile. + Aktuálne vybratá sieť VPN: \'%s\' + Znovu pripojiť + Prepnúť VPN + Pripojiť k %s + Odpojiť %s + Zadajte maximálny čas medzi pokusmi o pripojenie. OpenVPN bude pomaly zvyšovať svoju čakaciu dobu po neúspešnom pokuse o pripojenie na túto hodnotu. Predvolená hodnota je 300 s. + Maximálny čas medzi pokusmi o pripojenie + Čakanie %ss sekúnd medzi pokusom o pripojenie + Siete viac .. -> VPNS]]> + Pripojenie k OpenVPN zatvorené (%s) + Zmeniť triedenie + Triediť + Profily zoradené podľa naposledy použitých + Profily zoradené podľa názvu + Config používa voľbu tls-remote, ktorá bola zastaraná v 2.3 a nakoniec odstránená v 2.4 + Správanie na AUTH_FAILED + Graf + Použiť logaritmickú stupnicu + Nedostatok dát + Priemer za hodinu + Priemer za minutu + Posledných 5 minút + Vstup + Výstup + %.0f bit/s + %.1f kbit/s + %.1f Mbit/s + %.1f Gbit/s + %.0f B + %.1f kB + %.1f MB + %.1f GB + Štatistika o spojenie + Priebežná štatistika založeného spojenie s OpenVPN + Zmena stavu spojenia + Stav spojení s OpenVPN sa mení (Pripaja, overujem, ...) + Slabé (MD5) kontrolnej sumy v podpisu certifikátu (SSL_CTX_use_certificate md too weak) + Rýchlostný test OpenSSL + Mená OpenSSL šifer + Rýchlostný krypto test OpnSSL + OpenSSL vrátilo chybu + Test beží... + Testuj vybrané algoritmy + Externá aplikácia sa pokúša ovládať %s. Aplikáciu požadujúcu prístup nie je možné určiť. Povolením tejto aplikácie získate prístup k VŠETKÝM aplikáciám. + Implementácia OpenVPN 3 C ++ nepodporuje statické kľúče. V rámci všeobecných nastavení zmeňte na OpenVPN 2.x. + Priame použitie súborov PKCS12 s implementáciou OpenVPN 3 C ++ nie je podporované. Importujte súbory pkcs12 do úložiska kľúčov Android alebo ich zmeňte na OpenVPN 2.x v rámci všeobecných nastavení. + Proxy + Bez + Tor (Orbot) + Implementácia OpenVPN 3 C ++ nepodporuje pripojenie cez proxy Socks + Aplikácia Orbot sa nedá nájsť. Nainštalujte si Orbot alebo použite manuálnu integráciu Socks v5. + Vzdialené API + OpenVPN pre Android podporuje dve vzdialené API, sofistikované API využívajúce AIDL (remoteEXample v úložisku git) a jednoduché pomocou Intents. <p>Príklady použitia škrupiny adb a zámerov. Nahraďte profilovým menom profilové meno<p><p> adb shell am start-activity -a android.intent.action.MAIN de.blinkt.openvpn / .api.DisconnectVPN<p> adb shell am start-activity -a android.intent.action.MAIN - e de.blinkt.openvpn.api.profileName Blinkt de.blinkt.openvpn / .api.ConnectVPN + Zapni overenie s proxy + Nie je možné použiť dodatočný príkaz http-proxy-option a integráciu Orbotu súčasneO + Informácie zo servera: \'%s\' + Vstup od užívateľa je nutný + Pripojenie OpenVPN vyžaduje vstup používateľa, napr. Overenie dvoma faktormi + + + Ak chcete pokračovať v autentifikácii VPN, otvorte webovú adresu + Očakáva sa overenie + Externý autentifikátor + Nastaviť + Nie je nakonfigurovaný externý autorizátor +
diff --git a/main/src/ui/res/values-sl/strings.xml b/main/src/ui/res/values-sl/strings.xml index 100b0fae..2aac1ecf 100644 --- a/main/src/ui/res/values-sl/strings.xml +++ b/main/src/ui/res/values-sl/strings.xml @@ -354,7 +354,6 @@ Deljenje mobilnega interneta deluje, ko je VPN dejaven. Deljena povezava NE bo uporabila VPN-a. Zgodnja različica KitKata je nastavila napačno vrednost MSS ob povezavah TCP (#61948). OpenVPN bo samodejno omogočil možnost mssfix, da zaobide ta hrošč. Android bo še naprej uporabljal nastavitve posredniškega strežnika, ki so določene za mobilno povezavo/Wi-Fi, ko ni nastavljenih strežnikov DNS. OpenVPN za Android vas bo o tem opozoril v dnevniku.

Ko VPN nastavi strežnik DNS, Android ne bo uporabil posredniškega strežnika. API, ki nastavi posredniški strežnik za povezavo VPN, ne obstaja.

- Programi VPN lahko prenehajo delovati, ko se jih odstrani in ponovno namesti. Za podrobnosti glejte #80074. IP nastavljenega odjemalca in IP-ji v njegovi maski omrežja se ne usmerijo v VPN. OpenVPN zaobide tega hrošča z izrecnim dodajanjem poti, ki ustreza IP-ju odjemalca in njegovi maski omrežja. Odpiranje naprave TUN, ko je dejavna druga naprava, kar se uporablja za podporo vztrajnega TUN-a, sesuje storitve VPN na napravi. Za ponovno delovanje VPN-a je zahtevan ponovni zagon. OpenVPN za Android bo poizkusil ponovno odpreti napravo TUN in če je zelo potrebno, pred tem zaprl trenutni TUN, da se izogne sesutju. To lahko privede do kratkega postanka, kjer se paketi pošljejo preko običajne povezave. Tudi pri tem zaobidenju se storitve VPN včasih sesujejo in je zahtevan ponovni zagon naprave. VPN sploh ne deluje za sekundarne uporabnike. @@ -362,7 +361,6 @@ Preko VPN-a so dosegljivi samo cilji, ki so dosegljivi tudi brez njega. VPN-i IPv6 sploh ne delujejo. Poti brez načina CIDR Vedenje posredniškega strežnika za VPN-e - Ponovno nameščenje programov VPN %s in prejšnji Kopija %s Pot do nastavljenega naslova IP diff --git a/main/src/ui/res/values-sr-rSP/arrays.xml b/main/src/ui/res/values-sr-rSP/arrays.xml new file mode 100644 index 00000000..855eccaf --- /dev/null +++ b/main/src/ui/res/values-sr-rSP/arrays.xml @@ -0,0 +1,31 @@ + + + + + + Сертификати + ПКЦС12 Датотека + Андроид Потврда + Корисничко име / Лозинка + Статични кључеви + Корисник/ПВ + сертификати + Корисник/ПВ + ПКЦС12 + Корисник/ПВ + Андроид + Екстерни пружалац услуге аутентификације + + + 0 + 1 + Неодређено + Шифровање (--tls-crypt) + TLS Crypt V2 + + + Прекини везу, заборави лозинку + Перкини везу, задржи лозинку + Занемарите, покушајте + + diff --git a/main/src/ui/res/values-sr-rSP/plurals.xml b/main/src/ui/res/values-sr-rSP/plurals.xml new file mode 100644 index 00000000..4c9f7e79 --- /dev/null +++ b/main/src/ui/res/values-sr-rSP/plurals.xml @@ -0,0 +1,23 @@ + + + + Преостао је један минут + Преостало је %d месеци + Преостало %d месеци + + + Преостао је један дан + Преостало је %d дана + Преостало је %d дана + + + Преостао је један сат + Преостало је %d сати + Преостало је %d сати + + + Преостао је један минут + Преостало је %d минута + Преостало је %d минута + + diff --git a/main/src/ui/res/values-sr-rSP/strings.xml b/main/src/ui/res/values-sr-rSP/strings.xml new file mode 100644 index 00000000..578a973e --- /dev/null +++ b/main/src/ui/res/values-sr-rSP/strings.xml @@ -0,0 +1,474 @@ + + + + ОпенВПН за Андроид + IPv4 адреса: + Листа сервера: + Локација + Није могуће прочитати директориј + Изабрати + Отказати + Нема података + LZO компресија + Без сертификата + Сертификат клијента + Кључ сертификата клијента + PKCS12 датотека + CA Сертификат + Морате изабрати сертификат + Изворни код и трагач проблема доступан на http://code.google.com/p/ics-openvpn/ + Овај програм користи следеће компоненте; погледајте изворни код за све детаље о лиценци + О... + Профили + Тип + PKCS12 Лозинка + Изабери… + Морате изабрати датотеку + Користи TLS аутентификацију + TLS смер + Унесите ИПв6 адресу / мрежну маску у ЦИДР формату (нпр. 2000: дд :: 23/64) + Унесите ИПв4 адресу / мрежну маску у ЦИДР формату (нпр. 1.2.3.4/24) + IPv4 адреса + IPv6 адреса + Унесите прилагођене опције ОпенВПН. Користите опрезно. Такође имајте на уму да многа ОпенВПН подешавања не могу да буду подржана дизајном ВПНСеттингс. Ако мислите да недостаје важна опција, обратите се аутору + Username (leave empty for no auth) + Лозинка + За статичку конфигурацију користиће се ТЛС Аутх кључеви као статички кључеви + Подешавање VPN-а + Додај Профил + Унесите име за идентификацију новог профила + Унесите јединствено име профила + Име профила + Морате да изаберете кориснички сертификат + Нема грешке + Грешка у конфигурацији + Грешка анализе IPv4 адресе + Грешка при рашчлањивању прилагођене путеве + (оставите празно за упит на захтев) + OpenVPN пречица + Спајање на ВПН… + Профил наведен у пречици није пронађен + Насумичан префикс хоста + Испред имена хоста додај 6 случајних знакова + Омогући прилагођене опције + Наведи прилагођене опције. Користити пажљиво! + Путању је Андроид одбио + Прекини везу + Прекини ВПН везу + Обриши дневник + Откажи потврду + Прекините повезани ВПН / откажите покушај повезивања? + Уклоните ВПН + Провера да ли сервер користи сертификат са екстензијама ТЛС сервера (--ремоте-церт-тлс сервер) + Очекујте ТЛС сертификат + Провјерава субјект цертификата удаљеног сервера ДН + Провера сертификата хоста + Наведите проверу која се користи за верификацију удаљеног ДН цертификата (нпр. Ц = ДЕ, Л = Падерборн, ОУ = авијски ИП носачи, ЦН = опенвпн.блинкт.де)\n\nНаведите комплетну ДН или РДН (опенвпн.блинкт.де у пример) или РДН префикс за верификацију.\n\nКада користите РДН префикс „Сервер“ се подудара са „Сервер-1“ и „Сервер-2“\n\nАко текстуално поље остави празно, РДН ће проверити у односу на име главног сервера.\n\nЗа више детаља погледајте ОпенВПН 2.3.1+ манпаге под —верифи-к509-наме + Удаљени предмет цертификата + Омогућава провјеру аутентичности ТЛС кључа + Ауторска датотека ТЛС + Захтијева ИП адресе, руте и опције времена од сервера. + Информације се не захтевају од сервера. Подешавања морају бити наведена у наставку. + Повуците Подешавања + ДНС + Препишиј ДНС подешавања од стране сервера + Користите своје ДНС сервере + претражи домен + ДНС сервер који се користи. + ДНС Сервер + Секундарни ДНС сервер који се користи ако се не може доћи до нормалног ДНС сервера. + РЕзервни ДНС сервер + Занемарите потиснуте руте + Занемари усмеравање које је сервер послао. + Преусмерава сав промет преко ВПН-а + Користите подразумевану руту + Унесите прилагођене руте. Унесите одредиште само у ЦИДР формату. \"10.0.0.0/8 2002 :: / 16\" би усмеравао мреже 10.0.0.0/8 и 2002 :: / 16 преко ВПН-а. + Руте које НЕ МОГУ бити усмерене преко ВПН-а. Користите исту синтаксу као и за укључене руте. + Прилагођене руте + Изузете мреже + Ниво исписа дневника + Омогућава аутентификоване пакете са било којег ИП-а + Дозволи плутајући сервер + Прилагођене опције + Измените ВПН поставке + Уклонити ВПН профил \'%s\'? + На неким прилагођеним ИЦС сликама дозвола за укључење / дев / тун можда није у реду или је модул тун потпуно изостао. За ЦМ9 слике испробајте опцију исправка власништва под општим подешавањима + Отварање интерфејса тун није успело + "Грешка:" + Очисти + Отварање тун интерфејса: + Локалне ИПв4: %1$s/%2$d за ИПв6: %3$s МТУ: %4$d + DNS сервер: %1$s, Домен: %2$s + Руте: %1$s %2$s + Искључене путеве: %1$s %2$s + Инсталиране ВпнСервице руте: %1$s %2$s + Добијене информације о интерфејсу %1$s и %2$s, под претпоставком да је друга адреса удаљена вршњачка адреса. Кориштење / 32 мрежне маске за локални ИП. Режим ОпенВПН-а је \"%3$s\". + Немају смисла %1$s и %2$s као ИП руту са ЦИДР мрежном маском, користећи / 32 као мрежну маску. + Исправљена роуте %1$s/%2$s до %3$s/%2$s + Није могуће приступити цертификатима Андроид Keychain. Ово може бити узроковано надоградњом управљачког софтвера или враћањем сигурносне копије поставки апликације / апликације. Уредите ВПН и поново изаберите сертификат под основним подешавањима да бисте поново створили дозволу за приступ сертификату. + %1$s %2$s + Пошаљи датотеку дневника + Слање + ИЦС ОпенВПН датотека записа + Копиран унос дневника у меморију + Тап начин рада + Тап начин рада није могућ са некоријенским ВПН АПИ-јем. Стога ова апликација не може пружити подршку за славину + Опет? Шалиш се? Не, режим додирања заиста није подржан, а слање више порука с питањем да ли ће бити подржано неће помоћи. + Трећи пут? Заправо, могло би се написати емулатор такта заснован на туну који би додао информације о слоју2 о слању и информацији о слоју2 на пријему. Али овај емулатор славине такође би морао да имплементира АРП и евентуално ДХЦП клијент. Нисам свестан да нико ради било који посао у овом правцу. Контактирајте ме ако желите да започнете кодирање на овоме. + Често постављана питања + Копирање уноса у дневник + Да бисте копирали унос једног дневника, притисните и држите ставку дневника. За копирање / слање целог дневника користите опцију Пошаљи дневник. Употребите дугме менија хардвера ако тастер није видљив у ГУИ-ју. + Пречица за почетак + Можете да поставите пречицу за покретање ОпенВПН-а на радној површини. У зависности од програма почетног екрана, мораћете да додате пречицу или виџет. + Ваша слика не подржава АПИ ВПНСервице, извините :( + Шифровање + Унесите методу шифровања + Унесите проверу идентитета који се користи за ОпенВПН. Оставите празно да бисте користили подразумевани преглед. + Аутентификација / шифрирање + Управљање датотекама + Инлине датотека + Грешка при увозу датотеке + Није могуће увести датотеку из датотечног система + [[Инлине дата филе] + Одбија да отвори тун уређај без ИП података + Увези профил из овпн датотеке + Увоз + Није могуће прочитати Профил на увоз + Грешка при читању конфигурационе датотеке + додај Профил + Није могуће пронаћи датотеку %1$s спомиње у увезеној конфигурацијској датотеци + Увоз конфигурационе датотеке из извора %1$s + Ваша конфигурација имала је неколико опција конфигурације које нису пресликане у конфигурације корисничког сучеља. Ове опције су додате као прилагођене опције конфигурације. Прилагођена конфигурација је приказана испод: + Готово читање датотеке. + Не везујте се за локалну адресу и порт + Нема локалног везивања + Увоз конфигурационе датотеке + Питања безбедности + "Пошто је ОпенВПН безбедносно осетљив, неколико напомена о безбедности је приметно. Сви подаци на сдцард картици су инхерентно несигурни. Свака апликација их може прочитати (на пример, овај програм не захтева посебна права на СД картицу). Подаци ове апликације могу се читати само помоћу саме апликације Употребом опције увоза за цацерт / церт / тастер у дијалошком оквиру датотека подаци се чувају у ВПН профилу. ВПН профиле су доступни само овом апликацијом. (Не заборавите да обришете копије на сд-у картица након тога). Иако су доступни само овом апликацијом, подаци су и даље нешифрирани. Укорјењивањем телефона или другим експлоатацијама могуће је преузимање података. Сачуване лозинке похрањују се и у обичан текст. За пкцс12 датотеке топло се препоручује да их увезете у продавницу тастера са андроидом. " + Увоз + Погрешка при приказивању избора сертификата + Добио сам изузетак који покушава да прикаже дијалог за избор сертификата Андроид 4.0+. То се никада не би требало догодити јер је ово стандардна функција Андроида 4.0+. Можда вам је покренута подршка за Андроид РОМ за чување сертификата + ИПв4 + ИПв6 + Чека се порука стања… + увезени профил + увезени профил %d + Неисправна слика + <p>Званични ХТЦ слике је познато да имају чудан рутирање проблем изазива саобраћај не тече кроз тунел (Види такође <a href=\"https://github.com/schwabe/ics-openvpn/issues/18\">Издање 18</a> у Буг Трацкер.)</p><p>Старији званичне СОНИ слике из Кспериа Арц С и Кспериа Раи су пријављене у недостаје ВПНСервице у потпуности са слике. (Погледајте такође <a href=\"https://github.com/schwabe/ics-openvpn/issues/29\">издање 29</a> у програму за праћење грешака.)</p><p>На прилагођеним сликама израде тун модул можда недостаје или су права / дев / тун можда погрешна. Неким ЦМ9 сликама је потребна опција „Поправи власништво“ под „Омогућени уређаји за хаке“.</p><p>Најважније: Ако ваш уређај има покварену Андроид слику, пријавите то свом продавцу. Што више људи пријави проблем продавцу, већа је вероватноћа да ће га решити.</p> + ПКЦС12 кључ за шифровање датотека + Лозинка приватног кључа + Лозинка + икона датотеке + ТЛС Аутентификација / Шифрирање + Генерисана конфигурација + Подешавања + Покушава да постави власника / дев / тун на систем. Неким ЦМ9 сликама је ово потребно да би ВПНСервице АПИ радио. Захтијева роот. + Поправите власништво над / дев / тун + Приказује генерисану ОпенВПН конфигурациону датотеку + Уређивање \"%s\" + Изградња конфигурације… + Ако укључите ову опцију, поново ћете се повезати ако се промени стање мреже (нпр. ВиФи у / са мобилног) + Поново се повежите на промену мреже + Статус мреже: %s + ЦА церт се обично враћа из Андроид продавнице тастера. Наведите засебан цертификат ако добијете грешке у верификацији сертификата. + Изабрати + Током читања са Андроид тастатуре није враћен ЦА цертификат. Аутентификација вероватно неће успети. + Приказује прозор дневника при повезивању. Прозору дневника увијек се може приступити из статуса обавијести. + Прикажи прозор дневника + %10$s %9$s ради на %3$s %1$s (%2$s), Андроид %6$s (%7$s) АПИ %4$d, АБИ %5$s, (%8$s) + Погрешка приликом потписивања са Андроид типком %1$s: %2$s + Грешка приликом потписивања са апликацијом за екстерну провјеру аутентичности (%3$s): %1$s: %2$s + Упозорење ВПН везе која вам говори да ова апликација може пресрести сав саобраћај који систем намеће да би спречио злоупотребу ВПНСервице АПИ-ја.\nАндроид систем намеће и обавештење о ВПН вези (симбол кључа) ради сигнализације текуће ВПН везе. На неким сликама ово обавештење репродукује звук.\nАндроид је представио ове дијалошке системе ради ваше сигурности и осигурао да их се не може заобићи. (На неким сликама ово нажалост укључује звук обавештења) + Звук упозорења и обавештења о вези + Енглески превод Arne Schwabe<arne@rfc2549.org> + IP и DNS + Основно + Усмеравање + Замените ОпенВПН поставке. Нормално није потребан. + Напредно + ИЦС Опенвпн конфигурација + ДНС сервери се не користе. Резолуција имена можда неће радити. Размислите о подешавању прилагођених ДНС сервера. Такође имајте на уму да ће Андроид наставити да користи подешавања прокија која су наведена за вашу мобилну / Ви-Фи везу када нису постављени ДНС сервери. + Није могуће додати ДНС сервер „%1$s“, систем га је одбацио: %2$s + Није могуће конфигурисати ИП адресу \"%1$s\", систем је одбацио: %2$s + <p>Набавите исправну конфигурацију (тестирану на рачунару или преузмите од свог добављача / организације)</p><p>Ако се ради о једној датотеци без додатних пем / пкцс12 датотека, можете је сами послати е-поштом и отворити прилог. Ако имате више датотека ставите их на своју СД картицу.</p><p>Кликните на прилог е-поште / Користите икону мапе на впн листи да бисте увезли конфигурациону датотеку.</p><p>Ако постоје грешке у вези датотека које недостају, ставите датотеке које недостају на вашу СД картицу.</p><p>Кликните на симбол за спремање да бисте увели ВПН у своју ВПН листу</p><p>Повежите ВПН кликом на име ВПН</p><p>Ако у дневнику постоје грешке или упозорења, покушајте да схватите упозорења / грешке и покушајте да поправите их</p> + Брзо покретање + Пре покушаја повезивања покушајте да учитате кернел модул тун.ко. Потребни су укоријењени уређаји. + Учитавање тун модула + Увезите ПКЦС12 из конфигурације у Андроид Keystore + Грешка при добијању подешавања прокија: %s + Коришћење проксија %1$s %2$s + Користи системки прокси + Користите конфигурацију широм система за повезивање ХТТП / ХТТПС проксија. + ОпенВПН ће повезати специфицирани ВПН ако је био активан при покретању система. Молимо вас да прочитате питања упозорења веза пре употребе ове опције на Андроид < 5.0. + Повежите се при покретању + Игнориши + Рестарт + Промјене конфигурације примјењују се након поновног покретања ВПН-а. (Поново) покренути ВПН сада? + Конфигурација промењена + Није могуће одредити последњи повезани профил за уређивање + Дупликат обавештења + Ако је Андроид под притиском системске меморије (РАМ-а), апликације и услуга који тренутно нису потребни уклањају се из активне меморије. Овим се прекида тренутна ВПН веза. Да би се осигурало да веза / ОпенВПН опстаје, сервис ради са већим приоритетом. Да би се покренуо са већим приоритетом, апликација мора приказати обавештење. Систем наметне кључну икону обавештења како је описано у претходном уносу ФАК-а. То се не рачуна као обавештење о апликацији у сврху покретања са већим приоритетом. + Није дефинисан ВПН профил. + Употријебите икону <img src=\"ic_menu_add\"/> да бисте додали нови ВПН + Употријебите икону <img src=\"ic_menu_archive\"/> да бисте увезли постојећи (.овпн или .цонф) профил са своје СДЦард. + Обавезно погледајте и ФАК. Постоји брзи водич за почетак. + Усмеравање / конфигурација интерфејса + Усмеравање и конфигурација интерфејса не врши се путем традиционалних наредби ифцонфиг / роуте већ помоћу ВПНСервице АПИ-ја. То резултира другачијом конфигурацијом усмјеравања него у осталим ОС-овима. \nКонфигурација ВПН тунела састоји се од ИП адресе и мрежа које би требале бити усмерене преко овог интерфејса. Нарочито, није потребна или потребна адреса пеер партнера или адреса приступника. Нису потребне ни посебне руте за достизање ВПН сервера (на пример, додато када се користи гатеваи за преусмеравање). Апликација ће после тога занемарити ове поставке приликом увоза конфигурације. Апликација осигурава помоћу АПИ-ја ВПНСервице да веза са сервером није преусмерена кроз ВПН тунел.\nВПНСервице АПИ не дозвољава специфицирање мрежа које не би требале бити усмјерене путем ВПН-а. Као заобилазно решење, апликација покушава открити мреже које не би требале бити преусмерене преко тунела (нпр. Роуте кккк ииии нет_гатеваи) и израчунава скуп рута које искључују ове руте како би опонашале понашање других платформи. Прозори дневника приказују конфигурацију ВПНС услуге након успостављања везе.\nИза кулиса: Андроид 4.4+ користи усмјеравање правила. Кориштење роуте / ифцонфиг неће приказивати инсталиране руте. Уместо тога, користите ип правило, иптаблес -т мангле -Л + Не враћајте се на ВПН везу кад се ОпенВПН поново повеже. + Упорни тун + ОпенВПН дневник + Увези ОпенВПН конфигурацију + Потрошња батерије + У мојим личним тестовима главни разлог велике потрошње ОпенВПН батерије су кеепаливе пакети. Већина ОпенВПН сервера има конфигурациону директиву попут \'кеепаливе 10 60\' због које клијент и сервер размењују кеепаливе пакете сваких десет секунди. <p> Иако су ови пакети мали и не користе много промета, они држе мобилну радио мрежу заузетом и повећавају потрошњу енергије. (Погледајте такође <a href=\"http://developer.android.com/training/efficient-downloads/efficient-network-access.html#RadioStateMachine\">Радио Стате Мацхине | Андроид Девелоперс</a>) <p> Ове поставке чувања програма не можете променити на клијенту. Само системски администратор ОпенВПН-а може да промени подешавање. <p> Нажалост, коришћење кеепаливе-а већег од 60 секунди са УДП-ом може проузроковати да неки НАТ приступници испусте везу због времена неактивности. Кориштење ТЦП-а с дуготрајним задржавањем у животу дјелује, али тунелирање ТЦП-а преко ТЦП-а дјелује изузетно лоше на везама са великим губитком пакета. (Погледајте <a href=\"http://sites.inka.de/bigred/devel/tcp-tcp.html\">зашто је ТЦП преко ТЦП-а лоша идеја</a>) + Функција Андроид Тетхеринг (преко ВиФи, УСБ или Блуетоотх везе) и ВПНСервице АПИ (који користи овај програм) не раде заједно. За више детаља погледајте број <a href=\"https://github.com/schwabe/ics-openvpn/issues/34\"># 34</a> + ВПН и Тетхеринг + Покушаји везе + Подешавања поновне везе + Број секунди за чекање између покушаја повезивања. + Секунде између веза + ОпенВПН се неочекивано срушио. Размислите о употреби опције Минидумп за слање у главном менију + Пошаљите Минидумп програмеру + Информације за уклањање грешака о последњем паду шаље програмеру + OpenVPN - %s + %1$s - %2$s + %1$s - %3$s, %2$s + Спајање + Чека се одговор сервера + Аутентификација + Добијање конфигурације клијента + Додељивање ИП адреса + Додавање рута + Повезано + Искључено + Поновно повезивање + Напуштање + Не ради + Решавање имена домаћина + Повезивање (ТЦП) + Аутентификација није успела + Чекајући употребљиве мреже + Чека да се Орбот покрене + ↓%2$s %1$s - ↑%4$s %3$s + Није повезано + Привезивање на VPN %s + Привезивање на VPN %s + Неке верзије Андроида 4.1 имају проблема ако назив сертификата за складиштење кључева садржи не алфанумеричке знакове (као што су размаци, подвлаке или цртице). Покушајте поново да увезете сертификат без посебних знакова + Шифровање шифре + Аутентификација пакета + Унесите начин провјере аутентичности пакета + саградио %s + дебуг буилд + званична градња + Копирајте у профил + Crashdump + Додати + Пошаљите конфигурациону датотеку + Комплетна ДН + Увезена конфигурација користила је стару ДЕПРЕЦАТЕД тлс-ремоте опцију која користи други ДН формат. + РДН (опште име) + РДН префикс + тлс-даљински (ДЕПРЕЦАТЕД) + Можете помоћи преводу ако посетите хттп://цровдин.нет/пројецт/ицс-опенвпн/инвите + %1$s покушаја контроле %2$s + Настављајући, апликацији дајете дозволу за потпуну контролу ОпенВПН-а за Андроид и пресретање целог мрежног саобраћаја.НЕ прихватајте ако не верујете апликацији. У супротном, ризикујете да ваши подаци буду угрожени злонамјерним софтвером. \" + Верујем овој апликацији. + Ниједној апликацији није дозвољено коришћење екстерног АПИ-ја + Дозвољене апликације: %s + Избришите листу дозвољених спољних апликација?\nТренутна листа дозвољених апликација:\n\n%s + Паузирајте ВПН кад је екран искључен и мање од 64 кБ пренесених података у 60-има. Када је омогућена опција „Упорни Тун“ паузирање ВПН-а оставиће ваш уређај без НО мреже. Без опције \"Трајни Тун\" уређај неће имати ВПН везу / заштиту. + Паузирајте ВПН везу након искључивања екрана + Паузирање везе у стању искљученог екрана: мање од %1$s у %2$sс + Упозорење: Стални тун није омогућен за овај ВПН. Саобраћај ће користити нормалну интернетску везу када је екран искључен. + Сачувај лозинку + Паузирајте ВПН + Уклоните ВПН + ВПН пауза коју тражи корисник + ВПН је паузиран - екран искључен + Специфичности уређаја Хацкс + Подаци сертификата не могу да се прикажу + Понашање апликације + ВПН понашање + Допусти промене ВПН профила + Хардваре Кеисторе: + Икона апликације која покушава да користи ОпенВПН за Андроид + "Почевши од Андроида 4.3, потврда ВПН-а заштићена је од\" преклапања апликација \". То резултира тиме да дијалог не реагује на додир уноса. Ако имате апликацију која користи слојеве, то може проузроковати ово понашање. Ако нађете увредљиву апликацију, контактирајте аутора ове апликације. Овај проблем погађа све ВПН апликације на Андроид 4.3 и новијим верзијама. Такође погледајте <a href=\"https://github.com/schwabe/ics-openvpn/issues/185\">издање 185<a> за додатне детаље " + Впн дијалог за потврду + Можете ми послати и донацију са Play Store: + Хвала на донацији %s! + Дневник је обрисан. + Покажи лозинку + Грешка приступа КеиЦхаин: %s + Кратко + ИСО + Временске ознаке + Ниједан + Отпремити + Преузимање + Впн статус + Погледајте опције + Издвојено изузеће: %1$s\n\n%2$s + %3$s: %1$s\n\n%2$s + Ако сте уградили свој Андроид уређај, можете на свој ризик инсталирати <a href=\"http://xposed.info/\">Кспосед оквир</a> и модул</a> потврду <a href=\"http://repo.xposed.info/module/de.blinkt.vpndialogxposed\">ВПН дијалога \" + Потпуне лиценце + Мреже директно повезане с локалним сучељима неће бити усмјерене преко ВПН-а. Ако искључите ову опцију, сав промет намењен локалним мрежама преусмерит ће на ВПН. + Заобиђите ВПН за локалне мреже + Датотека са корисничким именом / лозинком + [Увезено од: %s] + Неке датотеке није могуће пронаћи. Изаберите датотеке за увоз профила: + Да бисте користили ову апликацију, потребан вам је ВПН провајдер / ВПН гатеваи који подржава ОпенВПН (често га обезбеђује ваш послодавац). Погледајте хттп://цоммунити.опенвпн.нет/ за више информација о ОпенВПН и како да подесите сопствени ОпенВПН сервер. + Дневник увоза: + Наведена Впн топологија „%3$s“, али ифцонфиг %1$s %2$s више личи на ИП адресу са мрежном маском. Под претпоставком топологије \"подмреже\". + Вредност преписа МСС мора да буде цели број између 0 и 9000 + Поништавање вредности МТУ мора да буде цели број између 64 и 9000 + Најавите ТЦП сесијама које трче преко тунела да би требале ограничити величине својих пакета за слање тако да након што их ОпенВПН инкапсулира, резултирајућа величина УДП пакета коју ОпенВПН шаље свом пееру неће прелазити овај број бајтова. (подразумевано је 1450) + Превазилазите МСС вредност ТЦП корисног оптерећења + Подесите МСС ТЦП корисног оптерећења + Клијентско понашање + Очистите дозвољене спољне апликације + Учитавање… + Дозвољене ВПН апликације: %1$s + Забрањене ВПН апликације: %1$s + Пакет %s више није инсталиран, уклања га са листе дозвола / забране апликације + ВПН се користи за све апликације, осим изабраних + ВПН се користи само за одабране апликације + Дозволи апликацијама да заобиђу ВПН + Уклонити удаљени унос сервера? + Задржати + Избриши + Додајте нови даљинац + Користите ставке повезивања насумичним редоследом при повезивању + Морате дефинисати и омогућити најмање један удаљени сервер. + Листа сервера + Дозвољене апликације + Напредна подешавања + Опције корисног оптерећења + ТЛС подешавања + Није дефинисано даљинско + Дупликат ВПН профила + Умножавање профила: %s + Прикажи логовање + Постоји више ОпенВПН клијената за Андроид. Најчешћи су ОпенВПН за Андроид (овај клијент), ОпенВПН Цоннецт и ОпенВПН подешавања.<p>Клијенти се могу груписати у две групе: ОпенВПН за Андроид и ОпенВПН Цоннецт користе званични ВПНСервице АПИ (Андроид 4.0+) и не захтевају никакав роот и ОпенВПН подешавања која користи роот.<p>ОпенВПН за Андроид је клијент отвореног кода који је развио Арне Сцхвабе. Намењен је напреднијим корисницима и нуди многа подешавања и могућност увоза профила из датотека и подешавања / промене профила унутар апликације. Клијент се заснива на заједничкој верзији ОпенВПН-а. Заснован је на изворном коду ОпенВПН 2.к. Овај клијент се може сматрати полу службеним клијентом заједнице. <p>ОпенВПН Цоннецт није клијент отвореног кода који је развио ОпенВПН Тецхнологиес, Инц. Клијент је разведен као клијент за општу употребу и више је усмерен на просечног корисника и омогућава увоз ОпенВПН профила. Овај клијент је заснован на поновној имплементацији ОпенВПН протокола ОпенВПН Ц ++ (Ово је било потребно да би ОпенВПН Тецхнологиес, Инц могао да објави иОС ОпенВПН апликацију). Овај клијент је званични клијент ОпенВПН технологија. <p> ОпенВПН поставке су најстарије од клијената, а такође и корисничко сучеље за ОпенВПН отвореног кода. За разлику од ОпенВПН-а за Андроид, он захтева роот и не користи ВПНСервице АПИ. Не зависи од Андроид 4.0+ + Разлике између клијената ОпенВПН Андроид + Занемаривање руте за вишеструко слање: %s + Андроид подржава само ЦИДР руте до ВПН-а. Пошто се руте које нису ЦИДР готово никада не користе, ОпенВПН за Андроид ће користити а / 32 за руте које нису ЦИДР и издати упозорење. + Тетхеринг ради док је ВПН активан. Привезана веза НЕ користи ВПН. + Рана верзија КитКат-а поставила је погрешну МСС вредност на ТЦП везама (# 61948). Покушајте да омогућите опцију мссфик да заобиђете ову грешку. + Андроид ће наставити да користи подешавања прокија која су одређена за мобилну / Ви-Фи везу када нису постављени ДНС сервери. ОпенВПН за Андроид ће вас упозорити на то у дневнику.

Када ВПН постави ДНС сервер, Андроид неће користити проки. Нема АПИ-ја за постављање прокија за ВПН везу.

+ Конфигурирани клијентски ИП и ИП-ови у његовој мрежној маски не преусмјеравају се на ВПН. ОпенВПН ради око ове грешке експлицитним додавањем руте која нагриза клијентову ИП адресу и њену мрежну маску + Отварање тун уређаја док је активан још један тун уређај, који се користи за подршку трајног подешавања, руши ВПНС услуге на уређају. За поновно покретање ВПН-а потребно је поновно покретање. ОпенВПН за Андроид покушава да избегне поновно отварање тун уређаја и ако је заиста потребан, прво затвара тренутни ТУН пре отварања новог ТУН уређаја како не би дошло до рушења. Ово може довести до кратког прозора где се пакети шаљу преко не-ВПН везе. Чак и уз ово решење ВПНСервицес се понекад руши и захтева поновно покретање уређаја. + ВПН не ради уопште за секундарне кориснике. + "Више корисника пријављује да се мобилна веза / веза за пренос података често прекида док се користи ВПН апликација. Чини се да понашање дјелује само на неке комбинације мобилног провајдера / уређаја и за сада није могуће утврдити узрок / заобилажење грешке." + До одредишта се може доћи преко ВПН-а који је доступан без ВПН-а. ИПв6 ВПН-ови уопште не раде. + Не ЦИДР руте + Прокси понашање за ВПН-ове + %s и раније + Копија од %s + Пут до конфигурисане ИП адресе + Погрешна МСС вредност за ВПН везу + Корисници секундарних таблета + Наведите прилагођене могућности специфичне везе. Користите пажљиво + Прилагођене опције + Уклоните унос везе + Насумично прекида везу са мобилном мрежом + Удаљене мреже нису доступне + Персист тун мод + %s и касније + Веза није успела са ССЛ23_ГЕТ_СЕРВЕР_ХЕЛЛО: неуспех при руковању сслв3 упозорењем + Новији ОпенВПН за верзије Андроида (0.6.29 / март 2015.) користе сигурнију подразумевану вредност за дозвољене шифарске скупове (тлс-ципхер \"ДЕФАУЛТ:! ЕКСП:! ПСК:! СРП:! КРСА\"). Нажалост, изостављање мање сигурних шифарских пакета и извоз шифарских пакета, посебно изостављање шифарских пакета који не подржавају Перфецт Форвард Сецреци (Диффие-Хеллман) узрокује неке проблеме. Ово је обично узроковано добронамерним, али лоше изведеним покушајем да се ојача ТЛС сигурност постављањем тлс-ципхера на сервер или неким уграђеним ОС-овима са одузетим ССЛ-ом (нпр. МикроТик).\nДа бисте решили овај проблем, подесите поставке тлс-шифре на серверу на разумне вредности као што је тлс-ципхер \"ДЕФАУЛТ:! ЕКСП:! ПСК:! СРП:! КРСА\". Да бисте решили проблем на клијенту, додајте прилагођену опцију тлс-ципхер ДЕФАУЛТ на Андроид клијенту. + Овај профил је додат из екстерне апликације (%s) и означен је као да корисник не може да се уређује. + Листа за опозив цертификата + Поново покрените ОпенВПН услугу (апликација се срушила вероватно се срушила или погинула због притиска у меморији) + Увоз конфигурације створио је грешку, не може је сачувати + Претрага + (Последњи dump је стар %1$d:%2$dх (%3$s)) + Очистите дневник код нове везе + Повежите временски прекид + Није дозвољена апликација. Додавање себе (%s) да имамо најмање једну апликацију на листи дозвољених апликација да не дозволимо све апликације + ОпенВПН за Андроид може аутоматски да открије недостајуће датотеке или датотеке на СДЦард картици. Тапните на ову поруку да бисте покренули захтев за дозволу. + Протокол + Омогућено + ВПН је дозволу одузео од стране ОС-а (нпр. Покренут је други ВПН програм) заустављајући ВПН + Пусх Пеер инфо + Пошаљите додатне информације серверу, нпр. ССЛ верзија и Андроид верзија + Требате %1$s + Унесите лозинку за профил %1$s + Користите инлине податке + Извоз конфигурационе датотеке + тлс-аутх датотека недостаје + Недостаје кориснички цертификат или датотека кључа корисника + Листа опозива цертификата (необавезно) + Прочитајте (%d) ставке дневника из датотеке кеш записа + Иако су Самсунг телефони међу најпродаванијим Андроид телефонима, Самсунгов фирмваре такође је међу најгушнијим Андроид фирмвареа. Грешке нису ограничене на ВПН рад на овим уређајима, али многи од њих могу се заобићи. У наставку су описане неке од ових грешака.\n\nДНС не ради осим ако је ДНС сервер у распону ВПН-а.\n\nНа многим Самсунг 5.к уређајима функција дозвољених / забрањених апликација не ради.\nНа Самсунг 6.к ВПН-у се не ради ако апликација ВПН није изузета од Поверсаве функција. + Самсунг телефони + Није изабран ВПН. + Подразумевани ВПН + ВПН користи се на местима где је потребан подразумевани ВПН. Тренутно се покрећу, за Алваис-Он и плочице за брзе поставке. + Тренутно изабрани ВПН: \'%s\' + Поново повежите + Пребаци ВПН + Повежите се са %s + Прекини везу %s + Унесите максимално време између покушаја повезивања. ОпенВПН ће полако повећавати време чекања након неуспешног покушаја повезивања до ове вредности. Задане вредности су 300-те. + Максимално време између покушаја повезивања + Чекате %sсекунди између покушаја везе + Мреже више .. -> ВПНС]]> + Веза са ОпенВПН је затворена (%s) + Промените сортирање + Врста + Профили разврстани по последњим недавно коришћеним + Профили сортирани по имену + Конфигурација користи опцију тлс-ремоте која је застарјела у 2.3 и коначно уклоњена у 2.4 + Понашање AUTH_FAILED + Графикон + Користите логаритамску скалу + Нема довољно података + Просечно по сату + Просечно у минуту + Последњих 5 минута + Улаз + Излаз + %.0f бит / с + %.1f кбит / с + %.1f Мбит / с + %.1f Гбит / с + %.0f Б + %.1f кБ + %.1f МБ + %.1f ГБ + Статистика повезивања + У току је статистика успостављене ОпенВПН везе + Промјена статуса везе + Промјене статуса ОпенВПН везе (Повезивање, аутентификација,…) + Слаби (МД5) сложени су у потпису сертификата (ССЛ_ЦТКС_усе_цертифицате мд сувише слаб) + ОпенССЛ тест брзине + ОпенССЛ имена шифре + ОпенССЛ тест крипто брзине + ОпенССЛ је вратио грешку + Тестирање… + Испитајте одабране алгоритме + Спољна апликација покушава да контролише %s. Апликација која захтева приступ не може се утврдити. Омогућавање ове апликације дозвољава СВИМ апликацијама приступ. + Имплементација ОпенВПН 3 Ц ++ не подржава статичке кључеве. Промените на ОпенВПН 2.к под општим подешавањима. + Коришћење датотека ПКЦС12 директно са ОпенВПН 3 Ц ++ имплементацијом није подржано. Увезите пкцс12 датотеке у Андроид кеисторе или промените у ОпенВПН 2.к под општим подешавањима. + Заступник + Ниједан + Тор (Орбот) + Имплементација ОпенВПН 3 Ц ++ не подржава повезивање путем проки Соцкс + Апликацију Орбот није могуће пронаћи. Инсталирајте Орбот или користите ручну интеграцију Соцкс в5. + Удаљени АПИ + ОпенВПН за Андроид подржава два удаљена АПИ-ја, софистицирани АПИ који користи АИДЛ (ремотеЕКСампле у гит репозиторијуму) и једноставан који користи Интентс. <p>Остали примери адб схелл и намере. Замените назив профила својим именом профила<p><p> адб схелл ам-старт-ацтивити -а андроид.интент.ацтион.МАИН де.блинкт.опенвпн / .апи.ДисцоннецтВПН<p> адб схелл ам-старт-ацтивити -а андроид.интент.ацтион.МАИН - е де.блинкт.опенвпн.апи.профилеНаме Блинкт де.блинкт.опенвпн / .апи.ЦоннецтВПН + Омогући провјеру аутентичности прокија + Не могу истовремено користити додатни исказ опције хттп-проки и интеграцију ОрботаО + Информације са сервера: \'%s\' + Потребна је интеракција корисника + ОпенВПН веза захтева кориснички унос, нпр. Два фактора + потврђивање + + Отворите УРЛ да бисте наставили ВПН аутентификацију + Аутентификација је у току + Екстерни проверавач + Конфигуришите + Спољни проверавач није конфигурисан +
diff --git a/main/src/ui/res/values-sv/strings.xml b/main/src/ui/res/values-sv/strings.xml index beaf40f7..68085935 100644 --- a/main/src/ui/res/values-sv/strings.xml +++ b/main/src/ui/res/values-sv/strings.xml @@ -356,7 +356,6 @@ Internetdelning fungerar medans VPNet är aktivt. Den delade anslutningen kommer INTE gå via VPNet. Tidigt KitKat version anger fel MSS värdet på TCP-anslutningar (# 61.948). Försök att göra det möjligt för mssfix möjlighet att kringgå denna bugg. Android kommer att använda de proxyinställningar som har ställts in för anslutningen över mobilnät/trådlöst när inga DNS-servrar är inställda. OpenVPN kommer att varna för detta i loggen.

När en VPN-anslutning anger en DNS-server, kommer Android att hoppa över proxyn. Det finns inget API för att ange en proxy för en VPN-anslutning.

- VPN appar kan sluta fungera när avinstalleras och installeras igen. För mer information se # 80074 Det konfigurerade klient-IPt och de IP-nummer som omfattas av dess nätmask är inte ruttade via VPNet. OpenVPN kommer att motarbeta denna bugg genom att explicit lägga till en rutt som omfattar klient-IPt och dess nätmask Att öppna en tun-enhet medans en annan tun-enhet är aktiv, och denna används för ihållande tun, kommer att krascha VPN-funktionen på enheten. Detta innebär att enheten måste startas om för att VPN skall fungera igen. OpenVPN för Android försöker undvika att öppna tun-enheten på nytt, och om det verkligen behövs, då stänga befintliga tun-anslutningar innan den öppnar den nya tun-enheten för att undvika denna krasch. Detta kan leda till ett litet tidsfönster där paket kan läcka ut utanför VPN-anslutningen. Även med denna fix, så kraschar ibland VPN-funktionen, och kräver då att enheten startas om. VPN fungerar inte över huvud taget för extra användarkonton. @@ -364,7 +363,6 @@ Bara destination kan nås över VPN som kan nås utan VPN. IPv6-VPN fungerar inte alls. Icke CIDR rutter Proxy beteende för VPN - Installera om VPN appar %s och tidigare Kopia av %s Rutt till den konfigurerade IP-adressen diff --git a/main/src/ui/res/values-tr/arrays.xml b/main/src/ui/res/values-tr/arrays.xml index b62fb8ab..09e68928 100644 --- a/main/src/ui/res/values-tr/arrays.xml +++ b/main/src/ui/res/values-tr/arrays.xml @@ -35,4 +35,16 @@ Bağlantıyı kes, parolayı sakla Yoksay, yeniden dene + + Modern varsayılanlar + OpenVPN 2.5.x eşleri + OpenVPN 2.4.x eşleri + OpenVPN 2.3.x ve daha eski eşleri + + + güvensiz (önerilmez, güvensiz kriptoya izin verir) + eski (varsayılan) + tercih edilen (önerilen ancak sınırlı uyumluluk) + Suite B (yalnızca NIST onaylı eliptik eğriler) + diff --git a/main/src/ui/res/values-tr/strings.xml b/main/src/ui/res/values-tr/strings.xml index 7c6f2830..36e62ceb 100644 --- a/main/src/ui/res/values-tr/strings.xml +++ b/main/src/ui/res/values-tr/strings.xml @@ -34,6 +34,7 @@ IPv4 Adresi IPv6 Adresi Özel OpenVPN seçeneklerini girin. Dikkatli kullanın. Ayrıca tun ile ilgili OpenVPN ayarları VPNSettings tasarımı nedeniyle program tarafından desteklenmiyor. Önemli bir seçeneğin eksik olduğunu düşünüyorsanız geliştirici ile iletişime geçin + Kullanıcı adı (no auth için boş bırakın) Parola Statik yapılandırma için TLS Kimlik Doğrulama Anahtarları statik anahtar olarak kullanılacak VPN\'i Yapılandır @@ -42,6 +43,7 @@ Benzersiz bir profil adı girin Profil Adı Bir kullanıcı sertifikası seçmelisiniz + Bir CA sertifikası seçmeli veya eş parmak izi kontrolünü etkinleştirmelisiniz Hiçbir hata bulunamadı Yapılandırmada Hata IPv4 adresi ayrıştırma hatası @@ -125,6 +127,7 @@ Kalıbınız VPNService API\'sini desteklemiyor, üzgünüm :( Şifreleme Şifreleme yöntemini gir + OpenVPN tarafından kullanılan veri şifreleme şifreleme algoritmalarını : (--data-ciphers) ile ayırarak girin. AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305 varsayılanını kullanmak için boş bırakın. OpenVPN için kullanılan kimlik doğrulama özetini girin. Varsayılan özeti kullanmak için boş bırakın. Kimlik Doğrulama/Şifreleme Dosya Gezgini @@ -356,7 +359,6 @@ Paylaşım sadece VPN etkinken çalışır. Paylaşılan bağlantı VPN\'i KULLANMAYACAKTIR. Önceki KitKat sürümü TCP bağlantılarında MSS değerini yanlış ayarladı (#61948). Bu sorunu geçici olarak çözebilmek için mssfix seçeneğini etkinleştirmeyi deneyin. Hiçbir DNS sunucusu ayarlanmadığında Android mobil/kablosuz bağlantı için belirtilmiş vekil sunucu ayarlarını kullanmaya devam edecek. Android için OpenVPN, günlüğünde bunu size gösterecek.

VPN bir DNS sunucusu ayarladığında, Android vekil sunucuyu kullanmayacak. Bir VPN bağlantısı için vekil sunucu ayarlamak üzere bir API bulunmamaktadır.

- VPN uygulamaları kaldırılıp tekrar yüklendiklerinde çalışmayabilirler. Ayrıntılar için bkz. #80074 Yapılandırılan istemci IP ve ağ maskesindeki IP adresleri VPN\'e yönlendirilmemektedir. OpenVPN bu sorunu istemci IP ve ağ maskesine çözümlenen bir rote ekleyerek çözmektedir Persist-tun desteği için kullanılmak üzere bir tun aygıtı etkin iken başka bir tun aygını açmak cihazdaki VPN hizmetlerinin çökmesine neden olur. VPN\'in tekrar çalışması için yeniden başlatma gereklidir. Android için OpenVPN, tun aygıtını yeniden açmayı önlemeye çalışır, ancak gerçekten gerekli olduğunda çökmeyi önlemek için yeni TUN aygıtı açmadan önce geçerli TUN aygıtını kapatır. Bu VPN olmayan bağlantılar üzerinde paketlerin gönderildiği kısa bir aralığa sebep olabilir. Bu çözüme rağmen VPN hizmetleri hala çökmekte ve aygıtınızın yeniden başlatılmasını gerektirir. VPN ikincil kullanıcılar için hiç çalışmamaktadır. @@ -364,7 +366,6 @@ VPN\'siz ulaşılabilen hedefe sadece VPN üzerinde ulaşılabilir. IPv6 VPN\'leri hiç çalışmıyor. CIDR Olmayan Rotalar VPN\'ler için Vekil Sunucu davranışı - VPN uygulamalarını yeniden yükleme %s ve önceki %s kopyası Yapılandırılmış IP adresine yönlendir @@ -435,6 +436,12 @@ %.1f kbit/s %.1f Mbit/s %.1f Gbit/s + <p>OpenSSL sürüm 1.1 ile başlayarak, OpenSSL, + MD5 gibi sertifikalardaki zayıf imzaları reddeder. Ek olarak OpenSSL 3.0 ile SHA1 imzaları da reddedilir.</p><p> + SHA1 yakın gelecekte diğer platformlarda da çalışmayacağı için VPN sertifikalarını mümkün olan en kısa sürede + güncellemelisiniz.</p> + <p>Gerçekten eski ve bozuk sertifikaları kullanmak istiyorsanız, Profilin Doğrulaması/Şifrelemesi altında TLS güvenlik profili için \"güvensiz\" seçeneğini seçin</p> + %.0f B %.1f kB %.1f MB @@ -474,8 +481,34 @@ doğrulama
VPN kimlik doğrulamasına devam etmek için URL\'yi açın + VPN kimlik doğrulamasına devam etmek için sorgulamayı yanıtlayın Kimlik doğrulama beklemede Harici Kimlik Doğrulayıcı Yapılandır Harici kimlik doğrulayıcı yapılandırılmamış + VPN olmayan bağlantıyı engelle (\"Killswitch\") + Genellikle VPN olmadan bağlantıların engellenmesi istenir. Diğer uygulamalar genellikle bu özellik için \"Killswitch\" veya \"Seamless tünel\" gibi işaretleme terimleri kullanır. OpenVPN ve bu uygulama, bu işlevi uygulamak için bir özellik olan persist-tun sunar.<p>Uygulamalar tarafından sunulan tüm bu yöntemlerle ilgili sorun, yalnızca en iyi çabayı gösterebilmeleri ve eksiksiz çözümler olmamasıdır. Açılışta, uygulama kilitlenir ve diğer uç durumları oluşabilir, uygulama bu VPN olmayan bağlantı bloğunun çalışmasını sağlayamayabilir. Böylece kullanıcıya yanlış bir güvenlik hissi verir.<p>VPN olmayan bağlantılarını engelleyebilmek için <b>tek</b> güvenilir yol Android 8.0 veya sonrasını kullanmak ve Ayarlar > Ağ & İnternet > Gelişmiş/>VPN > Android için OpenVPN içinde bulunan > Her Zaman Açık VPN\'i Etkinleştir, VPN Olmayan Bağlantıları Engelle\'yi Etkinleştir ile \"VPN olmayan bağlantıları engelle\" kullanmaktır. + Bu seçenek, VPN herhangi bir IPv4 veya IPv6 adresi ayarlamazsa Android\'e protokollere (IPv4/IPv6) izin vermemesi talimatını verir. + VPN tarafından kullanılmıyorsa IPv6\'yı (veya IPv4) engelle + Yeni sertifika yükle + AS sunucu adı + Sunucu URL\'si + Otomatik oturum açma profili iste + Uzak Sunucudan Profili İçe Aktar + Varsayılan VPN ayarlanmadı. Bu seçeneği etkinleştirmeden önce lütfen Varsayılan VPN\'i ayarlayın. + Dahili Web Görünümü + Kesin duruma bağlı olarak bu mesajın bazı varyasyonları vardır. Hepsinin ortak noktası, sunucu ve istemcinin ortak bir şifre üzerinde anlaşamamasıdır. Ana nedenler şunlardır: >ul<>li< Hala OpenVPN 2.4 ve daha eski sürümlerin varsayılan yapılandırmada BF-CBC\'ye izin verdiği gerçeğine güveniyorsunuz (eğer --cipher ayarlanmamışsa). >a href=\"https://community.openvpn.net/openvpn/wiki/SWEET32\"<bozuk/eskimiş bir cipher olduğundan>/a< varsayılan olarak buna artık izin vermiyor.>/li<>li<Sunucu, --enable-small (en az 4-5 yıllık OpenVPN) ile OpenVPN 2.3 (veya daha eski) çalıştırıyor>/li<>li<>/ul<Bozuk yapılandırma (örneğin, istemci ve sunucudaki yanlış data-cipher\'ları)>/li< >p< >a href=\"https://github.com/OpenVPN/openvpn/blob/master/doc/man-sections/cipher-negotiation.rst\"<OpenVPN kılavuzu cipher anlaşması>/a< bölümü, şifre anlaşmasının farklı senaryolarını ve bu durumda ne yapılması gerektiğini çok iyi açıklamaktadır.>p<TP-Link cihazı, 2019/2020 modellerinde bile cihazlarında en az 5 yıllık OpenVPN 2.3.x sürümünü (muhtemelen daha eski) kullanır.>p<Son olarak, geliştiricisi OpenVPN standardı ile uyumlu olmayan özel bir cipher anlaşma yaması oluşturmanın iyi bir fikir olacağını düşündüğü için her zaman \'BF-CBC\' kullandığını söyleyen bozuk bir sunucusu olan popüler bir VPN sağlayıcısı var.>p<Özetle: tüm mantıklı konfigürasyonlar bu hataları almamalıdır. Ancak (bozuk VPN sağlayıcısının sunucusu dışında) istemci hala bağlanmaya ikna edilebilir (asıl sorunu değil, semptomu düzelterek). Eski sunuculara bağlanırken, bir VPN\'nin temel ayarlarındaki uyumluluk modu seçeneği, yaygın uyumluluk sorunlarının çoğunu çözebilmelidir. + Eş sertifika parmak izini kontrol edin + (Sunucu sertifikalarının SHA256 parmak izini girin) + HTTP Vekil: %1$s %2$d + Önyükleme sırasında VPN\'yi etkinleştirmek için lütfen Android\'in Her Zaman Açık Özelliğini kullanın. + VPN Ayarlarını Aç + Ek gerekli kimlik doğrulamasını girmek için buraya basarak bir pencere açın + Uyumluluk Modu + Uyumluluk modu + OpenSSL eski sağlayıcısını yükle + Profiller, OpenSSL eski sağlayıcısına (etkinleştirilmemiş) bağlı olan BF-CBC\'yi kullanır. + Topluluğun katkıda bulunduğu çevirilere izin ver + Uygulamanın, topluluk tarafından sağlanan çevirilerle çevrilmesine izin verir. Etkinleştirmek için uygulamanın yeniden başlatılmasını gerektirir. + TLS Güvenlik Profili diff --git a/main/src/ui/res/values-uk/arrays.xml b/main/src/ui/res/values-uk/arrays.xml index bc985de2..d795e753 100644 --- a/main/src/ui/res/values-uk/arrays.xml +++ b/main/src/ui/res/values-uk/arrays.xml @@ -14,18 +14,30 @@ Користувач/Пароль + Сертифікати Користувач/Пароль + PKCS12 Користувач/Пароль + Android - Зовнішній постачальник послуг авторизації + Зовнішня перевірка авторизації провайдера 0 1 - Не визначені + Без різниці Шифрування (--tls-crypt) TLS Crypt V2 - Від\'єднати, забути пароль - Відключитися, зберегти пароль + Роз\'єднати, забути + Роз\'єднати, зберегти Ігнорувати, спробувати ще раз + + Сумісні вихідні данні + OpenVPN версія 2.5.x + OpenVPN версія 2.4.x + OpenVPN версії 2.3.x та попередні + + + ненадіний (не рекомендований, можливе надійне криптування) + Звичний (похідний) + Обраний (рекомендовано але з обмеженнями) + Набір B (тільки еліптичні криві, затверджені NIST) + diff --git a/main/src/ui/res/values-uk/plurals.xml b/main/src/ui/res/values-uk/plurals.xml index 2f9f253f..b5fbe4fb 100644 --- a/main/src/ui/res/values-uk/plurals.xml +++ b/main/src/ui/res/values-uk/plurals.xml @@ -4,23 +4,23 @@ Залишився один місяць Залишось %d місяці Залишився один місяць - Залишилось % d місяць + Залишилось %d місяців - Залишилось % днів + Залишився один день Залишилось %d дні Залишилося % днів Залишилось %d днів Залишилась одна година - Залишилося% d годин - Залишилося% d годин - Залишилося% d годин + Залишилось %d години + Залишилось %d годин + Залишилось %d годин - Залишилося одну хвилину - Залишилося %d хвилин + Залишилася одна хвилина + Залишилось %d хвилини Залишилося %d хвилин Залишилось %d хвилин diff --git a/main/src/ui/res/values-uk/strings.xml b/main/src/ui/res/values-uk/strings.xml index 013fbb97..3f99fe31 100644 --- a/main/src/ui/res/values-uk/strings.xml +++ b/main/src/ui/res/values-uk/strings.xml @@ -34,6 +34,7 @@ IPv4-адреси IPv6-адреса Введіть додаткові параметри OpenVPN. Використовуйте цю можливість з великою обережністю. Якщо ви вважаєте, що відсутній важливий параметр, то зв\'яжіться з автором + Ім\'я користувача (залиште порожнім щоб минути авторизацію) Пароль Для статичної конфігурації ключі авторизації TLS будуть використовуватися як статичні ключі Налаштувати VPN @@ -42,6 +43,7 @@ Введіть унікальне ім\'я профілю Ім\'я профілю Потрібно вибрати сертифікат користувача + Необхідно вибрати сертифікат ЦС або ввімкнути перевірку відбитків Помилок не знайдено Помилка конфігурації Помилка при розборі адреси IPv4 @@ -125,6 +127,7 @@ Ваша прошивка не підтримує VPNService API, вибачте :( Шифрування Введіть метод шифрування + Введіть алгоритми шифрування, що використовуються OpenVPN, розділяючи їх двокрапкою (--data-ciphers). Залиште порожнім, щоб використовувати шифри за замовчуванням (AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305). Введіть the authentication digest для OpenVPN. Залиште порожнім для використання стандартних значень. Автентифікація/Шифрування Провідник файлів @@ -182,7 +185,7 @@ Помилка підпису із зовнішнім програмою автентифікації (%3$s): %1$s: %2$s Попередження VPN з\'єднання повідомляє вам, що цей додаток може перехоплювати весь мережевий трафік, і повідомляється системою попереджень VPNService API. \nСповіщення про VPN з\'єднання (символ \"Ключа\") також формується системою Android для сигналізації про вихідне VPN з\'єднання. У деяких прошивках це сповіщення супроводжується сигналом. \nAndroid використовує ці cповіщення для вашої власної безпеки і їх не можна обійти. (На жаль, на деяких прошивках також сповіщення супроводжується звуком) Повідомлення про підключення та звук сповіщеня - Переклад українською виконан спільнотою code.google.com + Переклад українською виконано спільнотою IP-адреса та DNS Основне Маршрутизація @@ -285,27 +288,27 @@ Призупинити VPN Відновити VPN VPN пауза на вимогу користувача - VPN призупинено - screen off - Хак для цього пристрою + VPN призупинено – вимкнено екран + Обхідні методи для цього пристрою Неможливо відобразити інформацію про сертифікат Поведінка програми Поведінка VPN Дозволити зміни в профілі VPN Апаратне сховище ключів: - Іконка додатка намагається використовувати OpenVPN для Android + Іконка програми, яка намагається використовувати \"OpenVPN for Android\" "Починаючи з Android 4.3, запит підтвердження VPN-з\'єднання захищено від програм, які \"накладаються поверх екрану\". Це призводить до того, що діалогове вікно підтвердження не реагує на сенсорні натискання. Якщо у вас є програма, що використовує накладення, то це може викликати таке поведінку. Якщо ви виявите де-небудь таку програмe, зв\'яжіться з автором програми Ця проблема зачіпає всі VPN програми на Android 4.3 та пізніших версіях Дивіться також <a href=\"http://code.google.com/p/ics-openvpn/issues/detail?id=185\">Issue 185<a> для отримання додаткової інформації" Вікно підтвердження VPN - Також Ви можете висловити подяку у вигляді пожертвувань на Play Store: + Крім того, ви можете надіслати мені пожертвування через Play Store: Дякуємо за пожертвування %s! Журнал очищено. Показати пароль - Помилка при доступі до сховища ключів:%s + Помилка доступу до ланцюжка ключів: %s Стисло ISO Часові позначки Нема Вивантажено - Завантажити + Завантажено Vpn Статус Подивитися налаштування Невідома помилка: %1$s\n\n%2$s @@ -314,7 +317,7 @@ Повні ліцензії Мережі, безпосередньо доступні через локальний інтерфейс не направлятимуться на VPN. Відключіть цю опцію щоб направити увесь трафік через VPN. Не використовувати VPN для локальних мереж - Файл з Ім\'ям користувача та Паролєм + Файл з ім\'ям/паролем [Імпортовано з: %s] Деякі файли не були знайдені. Будь ласка, виберіть файли для імпорту профілю: Щоб користуватися цією програмою, Вам знадобиться VPN провайдер/шлюз з підтримкою OpenVPN (часто наданий роботодавцем). Для отримання інформації з налаштування власного OpenVPN сервера: http://community.openvpn.net/ @@ -356,7 +359,6 @@ Загальний доступ до підключення (WiFi точки/модему) працює як VPN активний, але НЕ використовує VPN. Рання версія KitKat встановлюе невірне значення MSS з\'єднань TCP (#61948). OpenVPN активує опцію mssfix щоб обійти цю проблему. Android буде продовжувати використовувати налаштування проксі-сервера для мобільного зв\'язку/Wi-Fi, коли немає встановленого DNS-сервера. OpenVPN for Android попередить вас про це в журналі.

Коли VPN встановить DNS-сервер Android не буде використовувати проксі-сервер. Зараз немає API для використання проксі-серверу для VPN-підключення.

- VPN програма може перестати працювати, як вона була видалена і перевстановлена знову. Більш детальну інформацію дивіться #80074 Налаштований клієнтом IP і IP-адреси в цій мережевій масці не направляються до VPN. OpenVPN обробляє цю помилку явно додаючи маршрут, який відповідає IP клієнта і його маскою мережі Відкриття tun пристрію поки інший tun пристрій активний, який використовує persist-tun, приводе до аварії VPNServices на пристрої. Потрібне перезавантаження, щоб VPN запрацював знову. OpenVPN for Android намагається уникнути повторне відкриття tun пристрію, а якщо дійсно необхідно в першу чергу закриває поточний TUN перед відкриттям нового TUN пристрої, щоб уникнути помилки. Це може призвести до виникнення короткого вікна, в якому пакети пересилаються по мережі без VPN. Навіть це тимчасове рішення іноді призводить до краху VPNServices і вимагає перезавантаження пристрою. VPN не працює для других користувачів. @@ -364,7 +366,6 @@ Тільки призначення, які досяжні без VPN, також доступні по VPN. IPv6 VPN не працює взагалі. Несумісні CIDR маршрути Поведінка проксі для VPN - Перевстановлення VPN-програми %s і раніше Копія %s Шлях до налаштованого VPN IP адреса @@ -435,6 +436,12 @@ %.1f Кбіт/с %.1f Мбіт/с %.1f Гбіт/с + <p>Починаючи з OpenSSL версії 1.1, відхиляються слабкі підписи в сертифікатах, такі як + MD5. Крім того, з OpenSSL 3.0 підписи з SHA1 також відхиляються.</p><p> + Вам слід якнайшвидше оновити сертифікати VPN, оскільки SHA1 також більше не буде працювати на інших платформах у + найближчому майбутньому.</p> + <p>Якщо ви дійсно хочете використовувати старі та пошкоджені сертифікати, виберіть \"небезпечний\" для профілю безпеки TLS в розділі \"Аутентифікація/Шифрування\" профілю</p> + %.0f Б %.1f КБ %.1f МБ @@ -468,8 +475,34 @@ аутентифікація Відкрийте URL-адресу, щоб продовжити аутентифікацію VPN + Відповісти на запит, щоб продовжити аутентифікацію VPN Очікується аутентифікація Зовнішній аутентифікатор Налаштувати Зовнішній аутентифікатор не налаштований + Блокувати з\'єднання без VPN (\"Killswitch\") + Часто бажано блокувати з\'єднання без VPN. Інші програми часто використовують маркетингові терміни, такі як \"Killswitch\" або \"Безшовний тунель\". OpenVPN і ця програма пропонують використовувати persist-tun для реалізації цієї функції.<p>Проблема з усіма цими методами, реалізованими на стороні програм, полягає в тому, що вони не можуть забезпечити надійність. При завантаженні, збої програми та інших складних випадках програма не може гарантувати, що таке блокування підключень без VPN спрацює. Таким чином, даючи користувачеві помилкове почуття безпеки.<b>Єдиний</b> надійний спосіб забезпечити блокування з’єднань, які не не проходять через VPN, — це використовувати Android 8.0 або новішої версії та налаштування \"Блокувати підключення не через VPN\", яке можна знайти в Налаштування > Мережа й Інтернет > Розширені/VPN > OpenVPN for Android > Увімкнути \"Постійна мережа VPN\" і \"Блокувати підключення не через VPN\" + Цей параметр дає вказівку Android не дозволяти протоколи (IPv4/IPv6), якщо VPN не встановлює адрес IPv4 або IPv6. + Блокувати IPv6 (або IPv4), якщо не використовується VPN + Установить новий сертифікат + Ім\'я сервера AS + URL сервера + Запит профіля автоматичного входу + Імпорт профілю з сервера + Не заданий VPN за замовчуванням. Перед включенням цієї функції встановіть VPN за замовчуванням. + Системний WebView + Існують декілька варіантів цього повідомлення в залежності від конкретної ситуації. Всіх їх об\'єднує те, що сервер і клієнт не змогли домовитися про спільний шифр. Основними причинами є: <ul><li> Ви все ще розраховуєте на той факт, що OpenVPN версії 2.4 і нижче дозволяє BF-CBC в конфігурації за замовчуванням (якщо не був заданий --chipher). Але починаючи з OpenVPN 2.5 це не так, оскільки даний шифр <a href=\"https://community.openvpn.net/openvpn/wiki/SWEET32\">зламаний/застарілий</a>.</li><li> Сервер використовує OpenVPN 2.3 (або навіть старше) з --enable-small (OpenVPN серверу не менше 4-5 років)</li><li></ul>Некоректна конфігурація (наприклад, невідповідність шифрів на клієнті і сервері)</li> <p> <a href=\"https://github.com/OpenVPN/openvpn/blob/master/doc/man-sections/cipher-negotiation.rst\">Розділ керівництва OpenVPN про узгодження шифрів</a> дуже добре пояснює різноманітні сценарії узгодження шифрів і що робити в цій ситуації.<p> Пристрої TP-Link використовують на своїх пристроях версію OpenVPN 2.3.x, 5-річної давності (можливо, старіші), навіть у моделях 2019/2020 року.<p> І останнє, але не менш важливе, у популярного провайдера VPN невірно налаштований сервер, який завжди говорить, що він використовує \"BF-CBC\", тому що його розробник подумав, що було б непогано створити патч для узгодження шифрування, несумісний зі стандартним OpenVPN.<p>Підсумовуючи: всі адекватні конфігурації не повинні видавати такі помилки. Але (крім невірно налаштованого сервера VPN-провайдера) клієнт можна примусити підключитися (Усунувши наслідок, а не реальну проблему). При підключенні до старих серверів опція \"Режиму сумісності\", в основних налаштуваннях VPN, повинна допомогти при вирішенні більшості поширених проблем сумісності. + Перевіряти відбиток сертифіката учасника (peer) + (Введіть SHA256-відбиток сертифікату(ів) сервера) + HTTP-проксі: %1$s %2$d + Використовуйте параметр \"Постійна мережа VPN\" в налаштуваннях Android, для автоматичного ввімкнення VPN після перезавантаження пристрою. + Налаштування Open VPN + Натисніть тут, щоб відкрити вікно введення додаткових даних, необхідних для аутентифікації + Режим сумісності + Режим сумісності + Завантаження традиційного провайдера OpenSSL + Профілі використовують BF-CBC, який залежить від застарілого OpenSSL (не включено). + Використовувати переклад (запропонований спільнотою) + Використовувати переклад програми наданий спільнотою. Необхідний перезапуск програми. + Профіль безпеки TLS diff --git a/main/src/ui/res/values-vi/arrays.xml b/main/src/ui/res/values-vi/arrays.xml index 66adcfe5..bed01614 100644 --- a/main/src/ui/res/values-vi/arrays.xml +++ b/main/src/ui/res/values-vi/arrays.xml @@ -28,4 +28,16 @@ Ngắt kết nối, không giữ mật khẩu Bỏ qua, thử lại + + Mặc định hiện đại + OpenVPN 2.5.x ngang hàng + OpenVPN 2.4.x ngang hàng + OpenVPN 2.3.x và các đồng nghiệp cũ hơn + + + không an toàn (không được khuyến nghị, cho phép tiền điện tử không an toàn) + kế thừa (mặc định) + ưu tiên (được khuyến nghị nhưng khả năng tương thích hạn chế) + Suite B (chỉ các đường cong elip được NIST phê duyệt) + diff --git a/main/src/ui/res/values-vi/strings.xml b/main/src/ui/res/values-vi/strings.xml index 2d313b2a..c0fa2ee0 100644 --- a/main/src/ui/res/values-vi/strings.xml +++ b/main/src/ui/res/values-vi/strings.xml @@ -34,6 +34,7 @@ Địa chỉ IPv4 Địa chỉ IPv6 Nhập tùy chọn cá nhân Open VPN. Sử dụng thận trọng. Lưu ý các thiết lập OpenVPN không thể hỗ trợ bởi thiết kế cấu hình của VPN. Nếu bạn thấy tùy chọn quan trọng hoặc mất mát, bạn có thể liên hệ với tác giả + Username (để không lại cho không xác thực) Mật khẩu Đối với cấu hình tĩnh thì khóa TLS sẽ được dùng như khóa tĩnh Cấu hình VPN @@ -42,6 +43,7 @@ Vui lòng nhập một tên hồ sơ duy nhất Tên hồ sơ Bạn phải chọn một chứng chỉ người dùng + Bạn phải chọn cái CA Chứng nhận hoặc bật kiểm tra vân tay ngang hàng Không tìm thấy lỗi Lỗi trong cấu hình Lỗi phân tích cú pháp địa chỉ IPv4 @@ -125,6 +127,7 @@ Hình ảnh của bạn không hỗ trợ dịch vụ VPN API, xin lỗi :( Mã hóa Nhập phương thức mã hóa + Nhập các thuật toán mật mã mã hóa dữ liệu được OpenVPN sử dụng, phân tách bằng: (--data-ciphers). Để trống để sử dụng mặc định của AES-256-GCM: AES-128-GCM: CHACHA20-POLY1305. Nhập cấu hình xác thực dùng cho OpenVPN. Để trống nếu sử dụng cấu hình mặc định. Xác thực/Mã hóa Duyệt tập tin @@ -356,7 +359,6 @@ Tethering hoạt động trong khi VPN đang kích hoạt. Các kết nối Tetherd sẽ KHÔNG sử dụng VPN. Các phiên bản trước KitKat thiết lập giá trị MSS trên kết nối TCP (#61948). OpenVPN sẽ tự động kích hoạt tùy chỉnh mssfix để xử lý lỗi này. Android sẽ sử dụng cấu hình proxy của bạn để kết nối điện thoại/Wifi khi không có máy chủ DNS được đặt. OpenVPN cho Android sẽ cảnh báo bạn về điều này trong bản ghi.

Khi VPN thiết đặt máy chủ DNS Android sẽ không kèm proxy. Không có API nào thiết đặt cho proxy trong kết nối VPN.

- Ứng dụng VPN có thể dừng hoạt động khi gỡ cài đặt và cài đặt lại lần nữa. Chi tiết xem tại #80074 Cấu hình IP của máy trạm và IP trong mặt nạ mạng thì không định tuyến đến VPN. OpenVPN hoạt động bởi sự cố này bằng cách thêm định tuyến mà chuyển đến địa chỉ IP máy trạm và mặt nạ mạng của nó Mở một thiết bị tun khi một thiết bị tun khác đang hoạt động, có thể dùng để hỗ trợ tun, sự cố trên dịch vụ VPN. Cần khởi động lại để VPN hoạt động. OpenVPN cho Android cố gắng mở lại thiết bị tun và thực sự cần thiết để đóng TUN hiện tại trước khi mở TUN mới để tránh sự cố. Điều này có thể dẫn đến một cửa sổ nơi các gói tin được gửi qua kết nối không dây VPN. Ngay cả việc giải quyết dịch vụ VPN này thỉnh thoảng vẫn gặp sự cố và cần phải khởi động lại thiết bị. VPN không làm việc cho tất cả người dùng phổ thông. @@ -364,7 +366,6 @@ Chỉ có nguồn đích mới có thể truy cập vượt qua VPN mà không cần VPN. IPv6 không hoạt động cho tất cả. Không định tuyến CIDR Proxy chuyển tiếp cho VPN - Đang cài đặt lại ứng dụng VPN %s và trước đó Bản sao của %s Định tuyến đến cấu hình địa chỉ IP @@ -435,6 +436,12 @@ %.1f kbit/giây %.1f Mbit/giây %.1f Gbit/giây + <p>Bắt đầu với OpenSSL phiên bản 1.1, OpenSSL từ chối chữ ký yếu trong các chứng chỉ như + MD5. Ngoài ra, chữ ký OpenSSL 3.0 với SHA1 cũng bị từ chối.</p><p> + Bạn nên cập nhật chứng chỉ VPN càng sớm càng tốt vì SHA1 cũng sẽ không còn hoạt động trên các nền tảng khác trong + tương lai gần.</p> + <p>Nếu bạn thực sự muốn sử dụng các chứng chỉ cũ và hỏng, hãy chọn \"không an toàn\" cho cấu hình bảo mật TLS trong Xác thực / Mã hóa của cấu hình</p> + %.0f B %.1f kB %.1f MB @@ -468,8 +475,34 @@ xác thực Mở URL để tiếp tục xác thực VPN + Trả lời thách thức để tiếp tục xác thực VPN Đang chờ xác thực Trình xác thực bên ngoài Cấu hình Bộ điều khiển từ bên ngoài không được cấu hình + Chặn kết nối không phải VPN trong (\"Killswitch\") cho tự động ngắt kết nối của bạn từ kết nối internet của bạn để đảm bảo sự riêng tư của bạn vẫn còn nguyên vẹn cho đến khi VPN kết nối của bạn được phục hồi + Người ta thường muốn chặn các kết nối mà không có VPN. Các ứng dụng khác thường sử dụng các thuật ngữ đánh dấu như \"Killswitch\" hoặc \"Đường hầm liền mạch\" cho tính năng này. OpenVPN và ứng dụng này cung cấp kiên trì, một tính năng để triển khai chức năng này.<p>Vấn đề với tất cả các phương pháp này được cung cấp bởi các ứng dụng là chúng chỉ có thể cung cấp nỗ lực tốt nhất và không có giải pháp hoàn chỉnh. Khi khởi động, ứng dụng bị treo và các trường hợp góc khác, ứng dụng không thể đảm bảo rằng khối kết nối không phải VPN này hoạt động. Do đó tạo cho người dùng một cảm giác an toàn giả tạo.<p>Cách đáng tin cậy duy nhất <b></b> để đảm bảo các kết nối không phải VPN bị chặn là sử dụng Android 8.0 trở lên và sử dụng cài đặt \"chặn kết nối không có VPN\" có thể tìm thấy trong Cài đặt > Mạng & Internet > Nâng cao / VPN > OpenVPN cho Android > Bật Luôn BẬT VPN, Bật Kết nối Chặn mà không cần VPN + Tùy chọn này hướng dẫn Android không cho phép giao thức (IPv4 / IPv6) nếu VPN không đặt bất kỳ địa chỉ IPv4 hoặc IPv6 nào. + Chặn IPv6 (hoặc IPv4) nếu không được VPN sử dụng + Cài đặt chứng chỉ mới + AS tên máy chủ + URL máy chủ + Yêu cầu đăng nhập đăng nhập + Nhập hồ sơ từ máy chủ từ xa + VPN mặc định chưa được đặt. Vui lòng đặt VPN mặc định trước khi bật tùy chọn này. + WebView nội bộ + Có một số biến thể của thông báo này tùy thuộc vào tình huống chính xác. Tất cả chúng đều có điểm chung là máy chủ và máy khách không thể thống nhất về một mật mã chung. Các lý do chính là: <ul><li> Bạn vẫn đang dựa vào thực tế là OpenVPN 2.4 trở lên cho phép BF-CBC trong cấu hình mặc định (nếu không có --cipher được đặt). OpenVPN 2.5 không cho phép nó theo mặc định nữa vì nó là <a href=\"https://community.openvpn.net/openvpn/wiki/SWEET32\">bị hỏng / lỗi thời</a>.</li><li>Máy chủ chạy OpenVPN 2.3 (hoặc thậm chí cũ hơn) với --enable-small (OpenVPN ít nhất 4-5 năm tuổi)</li><li></ul>Cấu hình bị hỏng (ví dụ: không khớp dữ liệu-mật mã trên máy khách và máy chủ)</li> <p> <a href=\"https://github.com/OpenVPN/openvpn/blob/master/doc/man-sections/cipher-negotiation.rst\">OpenVPN phần thủ công về thương lượng mật mã</a> giải thích rất rõ các tình huống khác nhau của thương lượng mật mã và những việc cần làm trong tình huống này.<p>thiết bị TP-Link sử dụng phiên bản OpenVPN 2.3.x ít nhất 5 năm tuổi (có thể cũ hơn) trên thiết bị của họ, ngay cả trong các mẫu 2019/2020.<p>Cuối cùng nhưng không kém phần quan trọng, có một nhà cung cấp VPN phổ biến có một máy chủ bị hỏng luôn nói rằng họ đang sử dụng \'BF-CBC\' vì nhà phát triển của họ nghĩ rằng đó là một ý tưởng hay nếu tạo một bản vá thương lượng mật mã độc quyền không tương thích với tiêu chuẩn. OpenVPN.<p>Tóm lại: tất cả các cấu hình lành mạnh sẽ không mắc phải những lỗi này. Nhưng (ngoại trừ máy chủ của nhà cung cấp VPN bị hỏng), khách hàng có thể được thuyết phục vẫn kết nối (sửa lỗi chứ không phải sự cố thực sự). Khi kết nối với các máy chủ cũ hơn, tùy chọn chế độ comaptiblity trong cài đặt cơ bản của VPN sẽ có thể giải quyết hầu hết các vấn đề phổ biến về tính tương thích. + Kiểm tra tệp tham chiếu chứng chỉ ngang hàng + (Nhập tệp tham chiếu SHA256 của (các) chứng chỉ máy chủ) + HTTP Proxy: %1$s %2$d + Vui lòng sử dụng Tính năng luôn bật của Android để bật VPN tại thời điểm khởi động. + Cài đặt Open VPN + Nhấn vào đây để mở một cửa sổ để nhập xác thực bắt buộc bổ sung + Chế độ tương thích + Chế độ tương thích + Tải nhà cung cấp kế thừa OpenSSL + Hồ sơ sử dụng BF-CBC phụ thuộc vào nhà cung cấp kế thừa OpenSSL (không được bật). + Cho phép các bản dịch do cộng đồng đóng góp + Cho phép cái app dụng được dịch với các bản dịch do cộng đồng đóng góp. Yêu cầu khởi động lại ứng dụng để kích hoạt. + Hồ sơ bảo mật TLS diff --git a/main/src/ui/res/values-zh-rCN/arrays.xml b/main/src/ui/res/values-zh-rCN/arrays.xml index f669c916..6acddb48 100644 --- a/main/src/ui/res/values-zh-rCN/arrays.xml +++ b/main/src/ui/res/values-zh-rCN/arrays.xml @@ -28,4 +28,16 @@ 断开,保存密码 忽略,重试 + + 较新 OpenVpn 版本默认值 + OpenVPN 2.5.x 对端 + OpenVPN 2.4.x 对端 + OpenVPN 2.3.x 和更旧版本的对端 + + + 不安全(不推荐,允许不安全的加密) + 旧式(默认) + 首选(推荐但兼容性有限) + Suite B(仅限 NIST 批准的椭圆曲线) + diff --git a/main/src/ui/res/values-zh-rCN/strings.xml b/main/src/ui/res/values-zh-rCN/strings.xml index 8f84caa9..e43e4547 100644 --- a/main/src/ui/res/values-zh-rCN/strings.xml +++ b/main/src/ui/res/values-zh-rCN/strings.xml @@ -361,7 +361,6 @@ VPN处于活跃状态时,网络共享可以正常工作。共享连接将不使用VPN。 早期的KitKat版本在TCP连接上设置了错误的MSS值 (#61948)。尝试启用mssfix选项来临时解决这个bug。 在没有设置DNS服务器时,Android会继续使用您为移动/Wi-Fi连接指定的代理设置。安卓 OpenVPN会在日志中警告你。

当VPN设置了DNS服务器时,Android不会使用代理。没有为VPN连接设置代理的API。

- 在被卸载或重新安装时,VPN程序会停止工作;详细信息请参看 #80074 配置的客户端IP及其网络掩码中的IP地址的流量不会路由到VPN。 OpenVPN通过显式地添加一个与客户端IP及其网络掩码相对应的路由来提供这个bug的一个临时应变方法。 当另一个tun设备处于活动状态时打开一个tun设备(用于持久tun支持),将导致设备上的VPNServices崩溃。需要重新启动才能使VPN重新工作。安卓 OpenVPN 试图避免重新打开tun设备,如果真的需要,首先关闭当前的tun再打开新的tun设备,以避免崩溃。这可能导致短暂窗口期,期间数据包通过非vpn连接发送。即使采用这种方法,VPNServices有时也会崩溃,需要重新启动设备。 对于二级用户,VPN是不会起作用的。 @@ -369,7 +368,6 @@ 只有目标可以通过VPN,可以到达VPN没有达到。 IPv6的VPN不能在所有工作。 非CIDR路由 VPNs的代理行为 - 正在重新安装VPN应用 %s及更早版本 %s 的副本 到已配置IP地址的路由 @@ -440,6 +438,13 @@ %.1f kbit/s %.1f Mbit/s %.1f Gbit/s + <p> 从 OpenSSL 1.1 版开始,OpenSSL 拒绝证书中的弱签名算法,例如 + MD5。此外,OpenSSL 3.0 拒绝 SHA1 算法的签名 。</p><p> + 您应该尽快更新 VPN 证书,因为 SHA1 在 + 不久的将来也将不再适用于其他平台。</p> + <p> 如果您真想使用旧证书,请在配置文件的 “身份验证/加密” 部分为 TLS 安全配置选择“不安全”</p> + + %.0f B %.1f kB %.1f MB @@ -489,6 +494,7 @@ 从远程服务器导入配置文件 未设置默认 VPN。请在启用此选项之前设置默认 VPN。 内部 WebView + There are some variation of this message depending on the exact situation. They all have in common that server and client could not agree on a common cipher. The main reasons are: <ul><li> You are still relying on the fact that OpenVPN 2.4 and older allowed BF-CBC in the default configuration (if no --cipher was set). OpenVPN 2.5 does not allow it per default anymore since it is a <a href=\"https://community.openvpn.net/openvpn/wiki/SWEET32\">broken/outdated cipher</a>.</li><li>The server runs OpenVPN 2.3 (or even older) with --enable-small (at least 4-5 year old OpenVPN)</li><li></ul>Broken configuration (e.g., mismatching data-ciphers on client and server)</li> <p> The <a href=\"https://github.com/OpenVPN/openvpn/blob/master/doc/man-sections/cipher-negotiation.rst\">OpenVPN manual section on cipher negotiation</a> explains the different scenarios of cipher negotiation very well and what to do in these situation.<p>TP-Link devices use a at least 5 year old OpenVPN 2.3.x version (possibly older) on their devices, even in the 2019/2020 models.<p>Last but not least, there is a popular VPN provider that has a broken server that always says it is using \'BF-CBC\' because its developer thought it would be a good idea to create a proprietary cipher negotiation patch that is incompatible with standard OpenVPN.<p>In summary: all sane configurations should not get these errors. But (apart from the broken VPN provider\'s server) the client can be persuaded to still connect (fixing the sympton and not the real problem). When connecting to older servers the comaptiblity mode option in the basic settings of a VPN should be able to address most of the common compatiblity problems. 检查对端证书指纹 (输入服务器证书的 SHA256 指纹) HTTP 代理: %1$s %2$d @@ -501,4 +507,5 @@ 配置文件使用 BF-CBC,它依赖于 OpenSSL legacy provider(未启用)。 允许社区贡献的翻译 允许应用程序使用翻译社区贡献的翻译。需要重新启动应用程序才能激活。 + TLS 安全配置 diff --git a/main/src/ui/res/values-zh-rTW/arrays.xml b/main/src/ui/res/values-zh-rTW/arrays.xml index 35a3626b..9df98a6c 100644 --- a/main/src/ui/res/values-zh-rTW/arrays.xml +++ b/main/src/ui/res/values-zh-rTW/arrays.xml @@ -28,4 +28,16 @@ 中斷連接,記住密碼 忽略,然後重試 + + 現代默認值 + OpenVPN 2.5.x peers + OpenVPN 2.4.x 對等體 + OpenVPN 2.3.x and older peers + + + 不安全(不推薦,允許不安全的加密) + legacy (default) + preferred (recommended but limited compabbility) + Suite B (only NIST approved elliptic curves) + diff --git a/main/src/ui/res/values-zh-rTW/strings.xml b/main/src/ui/res/values-zh-rTW/strings.xml index ded9f69f..a64a1ec1 100644 --- a/main/src/ui/res/values-zh-rTW/strings.xml +++ b/main/src/ui/res/values-zh-rTW/strings.xml @@ -34,6 +34,7 @@ IPv4 位址 IPv6 位址 輸入自訂 OpenVPN 選項。請謹慎使用。另外請注意,VPNSettings 設計上無法支援許多 TUN 通道相關的 OpenVPN 設定 。如果您認為有遺漏重要的設定選項,請聯絡作者。 + Username (leave empty for no auth) 密碼 對於靜態設定,TLS 認證金鑰將會用作靜態金鑰。 設定 VPN @@ -356,7 +357,6 @@ VPN 啟用時,網路共用仍可運作。網路共用的連線不會使用 VPN。 早期的 Android 4.4(KitKat)版本,對於 TCP 連線設定了錯誤的最大分段大小值(MSS)(#61948)。可嘗試開啟 mssfix 選項來迴避這個問題。 Android 在沒有設定 DNS 伺服器時,會繼續使用行動網路/Wi-Fi 連線中的 Proxy 設定。OpenVPN for Android 會對此在紀錄中做出警告。

Android 在有設定 DNS 伺服器時不會使用 Proxy。沒有 API 可以為 VPN 連線設定 Proxy。

- 當解除安裝或重新安裝,VPN 應用程式也會停止運作。詳細資訊參見 #80074 設定好的客戶端 IP,以及在其子網路遮罩底下的 IP 不會被路由到 VPN。OpenVPN 明確地新增一個對應到客戶端 IP 和其子網路遮罩的路由,以迴避這個問題。 在其它「保持 TUN 通道」的 TUN 裝置啟用時,開啟另一個 TUN 裝置會讓裝置上的 VPNServices 當掉,需要重開機才能讓 VPN 重新運作。OpenVPN for Android 會避免重新開啟 TUN 裝置,若真的需要則會在開啟新 TUN 裝置前先把當前的 TUN 裝置關閉,以避免當掉。這可能會導致封包有一小段時間透過非 VPN 連線傳送。即使用了這個方法迴避問題,VPNServices 有時候仍然會當掉,而需要將裝置重開機。 VPN 對於二級使用者不起任何作用。 @@ -364,7 +364,6 @@ 透過 VPN 只能連線到沒有 VPN 才能連線到的目標位址。IPv6 VPN 完全無法運作。 非 CIDR 路由 VPN 的 Proxy 行為 - 正在重新安裝 VPN 應用程式 %s 及更早版本 %s 的副本 路由到設定的 IP 位址 @@ -472,4 +471,5 @@ 外部身份驗證器 設定 未設定外部身份驗證器 + 通常希望在沒有 VPN 的情況下阻止連接。其他應用程序通常為此功能使用“Killswitch”或“無縫隧道”等標記術語。 OpenVPN 和這個應用程序提供了persist-tun,一個實現這個功能的特性。<p>應用程序提供的所有這些方法的問題在於它們只能提供最大的努力,而不是完整的解決方案。在啟動、應用程序崩潰和其他極端情況下,應用程序無法確保此非 VPN 連接塊正常工作。從而給用戶一種虛假的安全感。<p>確保非 VPN 連接被阻止的唯一 <b></b> 可靠方法是使用 Android 8.0 或更高版本,並使用可在設置下找到的“阻止沒有 VPN 的連接”設置 > 網絡 & 互聯網 > 高級/VPN > 適用於 Android > 的 OpenVPN啟用始終開啟 VPN,啟用沒有 VPN 的阻止連接Translate all -- cgit v1.2.3 From c71db5fc5a9715490a69ef8ef248668883bf5a13 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Tue, 1 Nov 2022 16:20:16 +0100 Subject: Update remoteExample to current API --- remoteExample/build.gradle | 4 ++-- remoteExample/src/main/AndroidManifest.xml | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/remoteExample/build.gradle b/remoteExample/build.gradle index 453dd529..a6adbaaa 100644 --- a/remoteExample/build.gradle +++ b/remoteExample/build.gradle @@ -7,11 +7,11 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 30 + compileSdkVersion 33 defaultConfig { minSdkVersion 15 - targetSdkVersion 30 + targetSdkVersion 33 versionCode 1 versionName "1.0" } diff --git a/remoteExample/src/main/AndroidManifest.xml b/remoteExample/src/main/AndroidManifest.xml index 8ba7ec79..c5b955f5 100644 --- a/remoteExample/src/main/AndroidManifest.xml +++ b/remoteExample/src/main/AndroidManifest.xml @@ -17,6 +17,7 @@ android:label="@string/app_name" android:theme="@style/AppTheme" > -- cgit v1.2.3 From ea13917b41ed161f8a385ed438ee8fd3742f557b Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Tue, 1 Nov 2022 18:35:16 +0100 Subject: Add OpenSSL version in about screen --- main/src/main/cpp/CMakeLists.txt | 4 +- main/src/main/cpp/ovpnutil/jniglue.c | 3 +- main/src/main/cpp/ovpnutil/osslutil.cpp | 153 +++++++++++++++++++++ main/src/main/cpp/ovpnutil/rsapss.cpp | 146 -------------------- .../java/de/blinkt/openvpn/core/NativeUtils.java | 22 ++- .../de/blinkt/openvpn/fragments/AboutFragment.java | 4 + main/src/ui/res/layout/about.xml | 8 +- 7 files changed, 182 insertions(+), 158 deletions(-) create mode 100644 main/src/main/cpp/ovpnutil/osslutil.cpp delete mode 100644 main/src/main/cpp/ovpnutil/rsapss.cpp diff --git a/main/src/main/cpp/CMakeLists.txt b/main/src/main/cpp/CMakeLists.txt index 3ffdc4c2..3dc1370f 100644 --- a/main/src/main/cpp/CMakeLists.txt +++ b/main/src/main/cpp/CMakeLists.txt @@ -109,8 +109,8 @@ target_compile_definitions(ovpnutil PRIVATE -DTARGET_ARCH_ABI=\"${ANDROID_ABI}\" ) target_link_libraries(ovpnutil log) -add_library(rsapss SHARED ovpnutil/rsapss.cpp) -target_link_libraries(rsapss log crypto ssl) +add_library(osslutil SHARED ovpnutil/osslutil.cpp) +target_link_libraries(osslutil log crypto ssl) if (NOT ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} MATCHES "build/intermediates/cmake/.*skeleton.*/") add_library(osslspeedtest SHARED ovpnutil/sslspeed.c) diff --git a/main/src/main/cpp/ovpnutil/jniglue.c b/main/src/main/cpp/ovpnutil/jniglue.c index 65a13406..b70deac0 100644 --- a/main/src/main/cpp/ovpnutil/jniglue.c +++ b/main/src/main/cpp/ovpnutil/jniglue.c @@ -3,7 +3,6 @@ #include #include - #include "jniglue.h" jint JNI_OnLoad(JavaVM *vm, void *reserved) { @@ -37,4 +36,4 @@ jstring Java_de_blinkt_openvpn_core_NativeUtils_getOpenVPN3GitVersion(JNIEnv *en { return (*env)->NewStringUTF(env, OPENVPN3_GIT_REVISION); -} +} \ No newline at end of file diff --git a/main/src/main/cpp/ovpnutil/osslutil.cpp b/main/src/main/cpp/ovpnutil/osslutil.cpp new file mode 100644 index 00000000..6a33338e --- /dev/null +++ b/main/src/main/cpp/ovpnutil/osslutil.cpp @@ -0,0 +1,153 @@ +/* Adapted from OpenSSL's rsa_pss.c from OpenSSL 3.0.1 */ + +/* + * Copyright 2005-2021 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ +#include "jni.h" + +#include +#include +#include +#include + +#include + + +extern "C" jstring Java_de_blinkt_openvpn_core_NativeUtils_getOpenSSLVersionString(JNIEnv *env, jclass jo) +{ + return env->NewStringUTF(OPENSSL_VERSION_TEXT); +} + +static const unsigned char zeroes[] = {0, 0, 0, 0, 0, 0, 0, 0}; + +static char opensslerr[1024]; +extern "C" jbyteArray Java_de_blinkt_openvpn_core_NativeUtils_rsapss(JNIEnv *env, + jclass, + jint hashtype, + jint MSBits, + jint rsa_size, + jbyteArray from) { + + /* + unsigned char *EM, + const unsigned char *mHash, + const EVP_MD *Hash, const EVP_MD *mgf1Hash, + int sLen) +*/ + + jbyte *data = env->GetByteArrayElements(from, nullptr); + int datalen = env->GetArrayLength(from); + + const auto *mHash = reinterpret_cast(data); + + const EVP_MD *Hash; + + if (hashtype == 0) { + Hash = EVP_md5(); + } else if (hashtype == 1) { + Hash = EVP_sha1(); + } else if (hashtype == 2) { + Hash = EVP_sha224(); + } else if (hashtype == 3) { + Hash = EVP_sha256(); + } else if (hashtype == 4) { + Hash = EVP_sha384(); + } else if (hashtype == 5) { + Hash = EVP_sha512(); + } + + const EVP_MD *mgf1Hash = Hash; + + int ret = 0; + int maskedDBLen, emLen; + unsigned char *H, *salt = nullptr, *p; + EVP_MD_CTX *ctx = nullptr; + + int hLen = EVP_MD_get_size(Hash); + int sLen = hLen; /* RSA_PSS_SALTLEN_DIGEST */ + + std::array buf{}; + unsigned char *EM = buf.data(); + + if (hLen < 0) + goto err; + + emLen = rsa_size; + if (MSBits == 0) { + *EM++ = 0; + emLen--; + } + if (emLen < hLen + 2) { + goto err; + } + if (sLen == RSA_PSS_SALTLEN_MAX) { + sLen = emLen - hLen - 2; + } else if (sLen > emLen - hLen - 2) { + goto err; + } + + if (sLen > 0) { + salt = (unsigned char *) OPENSSL_malloc(sLen); + if (salt == nullptr) { + goto err; + } + if (RAND_bytes_ex(nullptr, salt, sLen, 0) <= 0) + goto err; + } + maskedDBLen = emLen - hLen - 1; + H = EM + maskedDBLen; + ctx = EVP_MD_CTX_new(); + if (ctx == nullptr) + goto err; + if (!EVP_DigestInit_ex(ctx, Hash, nullptr) + || !EVP_DigestUpdate(ctx, zeroes, sizeof(zeroes)) + || !EVP_DigestUpdate(ctx, mHash, hLen)) + goto err; + if (sLen && !EVP_DigestUpdate(ctx, salt, sLen)) + goto err; + if (!EVP_DigestFinal_ex(ctx, H, nullptr)) + goto err; + + /* Generate dbMask in place then perform XOR on it */ + if (PKCS1_MGF1(EM, maskedDBLen, H, hLen, mgf1Hash)) + goto err; + + p = EM; + + /* + * Initial PS XORs with all zeroes which is a NOP so just update pointer. + * Note from a test above this value is guaranteed to be non-negative. + */ + p += emLen - sLen - hLen - 2; + *p++ ^= 0x1; + if (sLen > 0) { + for (int i = 0; i < sLen; i++) + *p++ ^= salt[i]; + } + if (MSBits) + EM[0] &= 0xFF >> (8 - MSBits); + + /* H is already in place so just set final 0xbc */ + + EM[emLen - 1] = 0xbc; + + ret = 1; + + err: + EVP_MD_CTX_free(ctx); + OPENSSL_clear_free(salt, (size_t) sLen); /* salt != NULL implies sLen > 0 */ + + + jbyteArray jb; + + jb = env->NewByteArray(emLen); + + env->SetByteArrayRegion(jb, 0, emLen, (jbyte *) EM); + + return jb; +} \ No newline at end of file diff --git a/main/src/main/cpp/ovpnutil/rsapss.cpp b/main/src/main/cpp/ovpnutil/rsapss.cpp deleted file mode 100644 index 112c2fe4..00000000 --- a/main/src/main/cpp/ovpnutil/rsapss.cpp +++ /dev/null @@ -1,146 +0,0 @@ -/* Adapted from OpenSSL's rsa_pss.c from OpenSSL 3.0.1 */ - -/* - * Copyright 2005-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ -#include "jni.h" - -#include -#include -#include - -#include - -static const unsigned char zeroes[] = {0, 0, 0, 0, 0, 0, 0, 0}; - -static char opensslerr[1024]; -extern "C" jbyteArray Java_de_blinkt_openvpn_core_NativeUtils_rsapss(JNIEnv *env, - jclass, - jint hashtype, - jint MSBits, - jint rsa_size, - jbyteArray from) { - - /* - unsigned char *EM, - const unsigned char *mHash, - const EVP_MD *Hash, const EVP_MD *mgf1Hash, - int sLen) -*/ - - jbyte *data = env->GetByteArrayElements(from, nullptr); - int datalen = env->GetArrayLength(from); - - const auto *mHash = reinterpret_cast(data); - - const EVP_MD *Hash; - - if (hashtype == 0) { - Hash = EVP_md5(); - } else if (hashtype == 1) { - Hash = EVP_sha1(); - } else if (hashtype == 2) { - Hash = EVP_sha224(); - } else if (hashtype == 3) { - Hash = EVP_sha256(); - } else if (hashtype == 4) { - Hash = EVP_sha384(); - } else if (hashtype == 5) { - Hash = EVP_sha512(); - } - - const EVP_MD *mgf1Hash = Hash; - - int ret = 0; - int maskedDBLen, emLen; - unsigned char *H, *salt = nullptr, *p; - EVP_MD_CTX *ctx = nullptr; - - int hLen = EVP_MD_get_size(Hash); - int sLen = hLen; /* RSA_PSS_SALTLEN_DIGEST */ - - std::array buf{}; - unsigned char *EM = buf.data(); - - if (hLen < 0) - goto err; - - emLen = rsa_size; - if (MSBits == 0) { - *EM++ = 0; - emLen--; - } - if (emLen < hLen + 2) { - goto err; - } - if (sLen == RSA_PSS_SALTLEN_MAX) { - sLen = emLen - hLen - 2; - } else if (sLen > emLen - hLen - 2) { - goto err; - } - - if (sLen > 0) { - salt = (unsigned char *) OPENSSL_malloc(sLen); - if (salt == nullptr) { - goto err; - } - if (RAND_bytes_ex(nullptr, salt, sLen, 0) <= 0) - goto err; - } - maskedDBLen = emLen - hLen - 1; - H = EM + maskedDBLen; - ctx = EVP_MD_CTX_new(); - if (ctx == nullptr) - goto err; - if (!EVP_DigestInit_ex(ctx, Hash, nullptr) - || !EVP_DigestUpdate(ctx, zeroes, sizeof(zeroes)) - || !EVP_DigestUpdate(ctx, mHash, hLen)) - goto err; - if (sLen && !EVP_DigestUpdate(ctx, salt, sLen)) - goto err; - if (!EVP_DigestFinal_ex(ctx, H, nullptr)) - goto err; - - /* Generate dbMask in place then perform XOR on it */ - if (PKCS1_MGF1(EM, maskedDBLen, H, hLen, mgf1Hash)) - goto err; - - p = EM; - - /* - * Initial PS XORs with all zeroes which is a NOP so just update pointer. - * Note from a test above this value is guaranteed to be non-negative. - */ - p += emLen - sLen - hLen - 2; - *p++ ^= 0x1; - if (sLen > 0) { - for (int i = 0; i < sLen; i++) - *p++ ^= salt[i]; - } - if (MSBits) - EM[0] &= 0xFF >> (8 - MSBits); - - /* H is already in place so just set final 0xbc */ - - EM[emLen - 1] = 0xbc; - - ret = 1; - - err: - EVP_MD_CTX_free(ctx); - OPENSSL_clear_free(salt, (size_t) sLen); /* salt != NULL implies sLen > 0 */ - - - jbyteArray jb; - - jb = env->NewByteArray(emLen); - - env->SetByteArrayRegion(jb, 0, emLen, (jbyte *) EM); - - return jb; -} \ No newline at end of file diff --git a/main/src/main/java/de/blinkt/openvpn/core/NativeUtils.java b/main/src/main/java/de/blinkt/openvpn/core/NativeUtils.java index 72b2b784..9bfa5e67 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/NativeUtils.java +++ b/main/src/main/java/de/blinkt/openvpn/core/NativeUtils.java @@ -30,18 +30,28 @@ public class NativeUtils { public static native String getOpenVPN3GitVersion(); - static boolean rsspssloaded = false; + private static native String getOpenSSLVersionString(); + + public static String getOpenSSLVersion() { + loadOsslUtil(); + return getOpenSSLVersionString(); + } + + static boolean osslutilloaded = false; public static byte[] addRssPssPadding(int hashtype, int MSBits, int rsa_size, byte[] from) { - if (!rsspssloaded) { - rsspssloaded = true; - System.loadLibrary("rsapss"); - } - + loadOsslUtil(); return rsapss(hashtype, MSBits, rsa_size, from); } + private static void loadOsslUtil() { + if (!osslutilloaded) { + osslutilloaded = true; + System.loadLibrary("osslutil"); + } + } + private static native byte[] rsapss(int hashtype, int MSBits, int rsa_size, byte[] from); public final static int[] openSSLlengths = { diff --git a/main/src/ui/java/de/blinkt/openvpn/fragments/AboutFragment.java b/main/src/ui/java/de/blinkt/openvpn/fragments/AboutFragment.java index 240fbe06..182c1a56 100644 --- a/main/src/ui/java/de/blinkt/openvpn/fragments/AboutFragment.java +++ b/main/src/ui/java/de/blinkt/openvpn/fragments/AboutFragment.java @@ -83,9 +83,13 @@ public class AboutFragment extends Fragment implements View.OnClickListener { TextView verO2 = v.findViewById(R.id.version_ovpn2); TextView verO3 = v.findViewById(R.id.version_ovpn3); + TextView osslVer = v.findViewById(R.id.openssl_version); verO2.setText(String.format(Locale.US, "OpenVPN version: %s", NativeUtils.getOpenVPN2GitVersion())); verO3.setText(String.format(Locale.US, "OpenVPN3 core version: %s", NativeUtils.getOpenVPN3GitVersion())); + osslVer.setText(String.format(Locale.US, "OpenSSL version: %s", NativeUtils.getOpenSSLVersion())); + + /* recreating view without onCreate/onDestroy cycle */ TextView translation = (TextView) v.findViewById(R.id.translation); diff --git a/main/src/ui/res/layout/about.xml b/main/src/ui/res/layout/about.xml index fb2497ff..cd482996 100644 --- a/main/src/ui/res/layout/about.xml +++ b/main/src/ui/res/layout/about.xml @@ -45,9 +45,13 @@ android:id="@+id/version_ovpn3" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginBottom="12sp" tools:text="OpenVPN3 core version 8df8718283" /> - + Date: Tue, 1 Nov 2022 18:36:03 +0100 Subject: Log reason why a VPN process was started --- .../src/main/java/de/blinkt/openvpn/LaunchVPN.java | 58 ++++++++++++---------- .../java/de/blinkt/openvpn/OnBootReceiver.java | 2 +- .../main/java/de/blinkt/openvpn/VpnProfile.java | 16 ++---- .../blinkt/openvpn/activities/DisconnectVPN.java | 3 +- .../blinkt/openvpn/api/ExternalOpenVPNService.java | 4 +- .../java/de/blinkt/openvpn/api/RemoteAction.java | 1 + .../de/blinkt/openvpn/core/OpenVPNService.java | 13 ++++- .../de/blinkt/openvpn/core/VPNLaunchHelper.java | 4 +- .../java/de/blinkt/openvpn/OpenVPNTileService.java | 1 + .../blinkt/openvpn/activities/CreateShortcuts.java | 6 +-- .../de/blinkt/openvpn/fragments/LogFragment.java | 1 + .../blinkt/openvpn/fragments/VPNProfileList.java | 4 +- 12 files changed, 62 insertions(+), 51 deletions(-) diff --git a/main/src/main/java/de/blinkt/openvpn/LaunchVPN.java b/main/src/main/java/de/blinkt/openvpn/LaunchVPN.java index 86eef35a..90ea053a 100644 --- a/main/src/main/java/de/blinkt/openvpn/LaunchVPN.java +++ b/main/src/main/java/de/blinkt/openvpn/LaunchVPN.java @@ -73,6 +73,7 @@ public class LaunchVPN extends Activity { public static final String EXTRA_KEY = "de.blinkt.openvpn.shortcutProfileUUID"; public static final String EXTRA_NAME = "de.blinkt.openvpn.shortcutProfileName"; public static final String EXTRA_HIDELOG = "de.blinkt.openvpn.showNoLogWindow"; + public static final String EXTRA_START_REASON = "de.blinkt.openvpn.start_reason"; public static final String CLEARLOG = "clearlogconnect"; @@ -85,6 +86,7 @@ public class LaunchVPN extends Activity { private boolean mCmfixed = false; private String mTransientAuthPW; private String mTransientCertOrPCKS12PW; + private String mSelectedProfileReason; @Override public void onCreate(Bundle icicle) { @@ -99,7 +101,6 @@ public class LaunchVPN extends Activity { IServiceStatus service = IServiceStatus.Stub.asInterface(binder); try { if (mTransientAuthPW != null) - service.setCachedPassword(mSelectedProfile.getUUIDString(), PasswordCache.AUTHPASSWORD, mTransientAuthPW); if (mTransientCertOrPCKS12PW != null) service.setCachedPassword(mSelectedProfile.getUUIDString(), PasswordCache.PCKS12ORCERTPASSWORD, mTransientCertOrPCKS12PW); @@ -126,38 +127,41 @@ public class LaunchVPN extends Activity { final String action = intent.getAction(); // If the intent is a request to create a shortcut, we'll do that and exit + if (!Intent.ACTION_MAIN.equals(action)) { + return; + } + // Check if we need to clear the log + if (Preferences.getDefaultSharedPreferences(this).getBoolean(CLEARLOG, true)) + VpnStatus.clearLog(); - if (Intent.ACTION_MAIN.equals(action)) { - // Check if we need to clear the log - if (Preferences.getDefaultSharedPreferences(this).getBoolean(CLEARLOG, true)) - VpnStatus.clearLog(); - - // we got called to be the starting point, most likely a shortcut - String shortcutUUID = intent.getStringExtra(EXTRA_KEY); - String shortcutName = intent.getStringExtra(EXTRA_NAME); - mhideLog = intent.getBooleanExtra(EXTRA_HIDELOG, false); + // we got called to be the starting point, most likely a shortcut + String shortcutUUID = intent.getStringExtra(EXTRA_KEY); + String shortcutName = intent.getStringExtra(EXTRA_NAME); + String startReason = intent.getStringExtra(EXTRA_START_REASON); + mhideLog = intent.getBooleanExtra(EXTRA_HIDELOG, false); - VpnProfile profileToConnect = ProfileManager.get(this, shortcutUUID); - if (shortcutName != null && profileToConnect == null) { - profileToConnect = ProfileManager.getInstance(this).getProfileByName(shortcutName); - if (!(new ExternalAppDatabase(this).checkRemoteActionPermission(this, getCallingPackage()))) { - finish(); - return; - } + VpnProfile profileToConnect = ProfileManager.get(this, shortcutUUID); + if (shortcutName != null && profileToConnect == null) { + profileToConnect = ProfileManager.getInstance(this).getProfileByName(shortcutName); + if (!(new ExternalAppDatabase(this).checkRemoteActionPermission(this, getCallingPackage()))) { + finish(); + return; } + } - if (profileToConnect == null) { - VpnStatus.logError(R.string.shortcut_profile_notfound); - // show Log window to display error - showLogWindow(); - finish(); - } else { - mSelectedProfile = profileToConnect; - launchVPN(); - } + if (profileToConnect == null) { + VpnStatus.logError(R.string.shortcut_profile_notfound); + // show Log window to display error + showLogWindow(); + finish(); + } else { + mSelectedProfile = profileToConnect; + mSelectedProfileReason = startReason; + launchVPN(); } + } private void askForPW(final int type) { @@ -251,7 +255,7 @@ public class LaunchVPN extends Activity { if (!mhideLog && showLogWindow) showLogWindow(); ProfileManager.updateLRU(this, mSelectedProfile); - VPNLaunchHelper.startOpenVpn(mSelectedProfile, getBaseContext()); + VPNLaunchHelper.startOpenVpn(mSelectedProfile, getBaseContext(), mSelectedProfileReason); finish(); } } else if (resultCode == Activity.RESULT_CANCELED) { diff --git a/main/src/main/java/de/blinkt/openvpn/OnBootReceiver.java b/main/src/main/java/de/blinkt/openvpn/OnBootReceiver.java index 3facacc5..4827bf10 100644 --- a/main/src/main/java/de/blinkt/openvpn/OnBootReceiver.java +++ b/main/src/main/java/de/blinkt/openvpn/OnBootReceiver.java @@ -36,6 +36,6 @@ public class OnBootReceiver extends BroadcastReceiver { } void launchVPN(VpnProfile profile, Context context) { - VPNLaunchHelper.startOpenVpn(profile, context.getApplicationContext()); + VPNLaunchHelper.startOpenVpn(profile, context.getApplicationContext(), "on Boot receiver"); } } diff --git a/main/src/main/java/de/blinkt/openvpn/VpnProfile.java b/main/src/main/java/de/blinkt/openvpn/VpnProfile.java index 3163bf27..0da09eb0 100644 --- a/main/src/main/java/de/blinkt/openvpn/VpnProfile.java +++ b/main/src/main/java/de/blinkt/openvpn/VpnProfile.java @@ -809,18 +809,6 @@ public class VpnProfile implements Serializable, Cloneable { return parts[0] + " " + netmask; } - public Intent prepareStartService(Context context) { - Intent intent = getStartServiceIntent(context); - - // TODO: Handle this?! -// if (mAuthenticationType == VpnProfile.TYPE_KEYSTORE || mAuthenticationType == VpnProfile.TYPE_USERPASS_KEYSTORE) { -// if (getKeyStoreCertificates(context) == null) -// return null; -// } - - return intent; - } - public void writeConfigFileOutput(Context context, OutputStream out) throws IOException { OutputStreamWriter cfg = new OutputStreamWriter(out); cfg.write(getConfigFile(context, false)); @@ -828,12 +816,14 @@ public class VpnProfile implements Serializable, Cloneable { cfg.close(); } - public Intent getStartServiceIntent(Context context) { + public Intent getStartServiceIntent(Context context, String startReason) { String prefix = context.getPackageName(); Intent intent = new Intent(context, OpenVPNService.class); intent.putExtra(prefix + ".profileUUID", mUuid.toString()); intent.putExtra(prefix + ".profileVersion", mVersion); + if (startReason != null) + intent.putExtra(prefix + ".startReason", startReason); return intent; } diff --git a/main/src/main/java/de/blinkt/openvpn/activities/DisconnectVPN.java b/main/src/main/java/de/blinkt/openvpn/activities/DisconnectVPN.java index 01dacfcd..6cc170fa 100644 --- a/main/src/main/java/de/blinkt/openvpn/activities/DisconnectVPN.java +++ b/main/src/main/java/de/blinkt/openvpn/activities/DisconnectVPN.java @@ -27,7 +27,7 @@ import de.blinkt.openvpn.core.VpnStatus; */ public class DisconnectVPN extends Activity implements DialogInterface.OnClickListener, DialogInterface.OnCancelListener { private IOpenVPNServiceInternal mService; - private ServiceConnection mConnection = new ServiceConnection() { + private final ServiceConnection mConnection = new ServiceConnection() { @@ -86,6 +86,7 @@ public class DisconnectVPN extends Activity implements DialogInterface.OnClickLi } else if (which == DialogInterface.BUTTON_NEUTRAL) { Intent intent = new Intent(this, LaunchVPN.class); intent.putExtra(LaunchVPN.EXTRA_KEY, VpnStatus.getLastConnectedVPNProfile()); + intent.putExtra(LaunchVPN.EXTRA_START_REASON, "Reconnect button pressed."); intent.setAction(Intent.ACTION_MAIN); startActivity(intent); } diff --git a/main/src/main/java/de/blinkt/openvpn/api/ExternalOpenVPNService.java b/main/src/main/java/de/blinkt/openvpn/api/ExternalOpenVPNService.java index 690c349e..8573af79 100644 --- a/main/src/main/java/de/blinkt/openvpn/api/ExternalOpenVPNService.java +++ b/main/src/main/java/de/blinkt/openvpn/api/ExternalOpenVPNService.java @@ -139,16 +139,18 @@ public class ExternalOpenVPNService extends Service implements StateListener { * Check if we need to ask for username/password */ int neddPassword = vp.needUserPWInput(null, null); + String startReason = "external OpenVPN service by uid: " + Binder.getCallingUid(); if(vpnPermissionIntent != null || neddPassword != 0){ Intent shortVPNIntent = new Intent(Intent.ACTION_MAIN); shortVPNIntent.setClass(getBaseContext(), de.blinkt.openvpn.LaunchVPN.class); shortVPNIntent.putExtra(de.blinkt.openvpn.LaunchVPN.EXTRA_KEY, vp.getUUIDString()); shortVPNIntent.putExtra(de.blinkt.openvpn.LaunchVPN.EXTRA_HIDELOG, true); + shortVPNIntent.putExtra(de.blinkt.openvpn.LaunchVPN.EXTRA_START_REASON, startReason); shortVPNIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(shortVPNIntent); } else { - VPNLaunchHelper.startOpenVpn(vp, getBaseContext()); + VPNLaunchHelper.startOpenVpn(vp, getBaseContext(), startReason); } } diff --git a/main/src/main/java/de/blinkt/openvpn/api/RemoteAction.java b/main/src/main/java/de/blinkt/openvpn/api/RemoteAction.java index 0554b88c..22110ad0 100644 --- a/main/src/main/java/de/blinkt/openvpn/api/RemoteAction.java +++ b/main/src/main/java/de/blinkt/openvpn/api/RemoteAction.java @@ -93,6 +93,7 @@ public class RemoteAction extends Activity { } else { Intent startVPN = new Intent(this, LaunchVPN.class); startVPN.putExtra(LaunchVPN.EXTRA_KEY, profile.getUUID().toString()); + startVPN.putExtra(LaunchVPN.EXTRA_START_REASON, ".api.ConnectVPN call"); startVPN.setAction(Intent.ACTION_MAIN); startActivity(startVPN); } diff --git a/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java b/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java index 910dc43e..88c253ec 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java +++ b/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java @@ -23,7 +23,6 @@ import android.content.pm.ShortcutManager; import android.content.res.Configuration; import android.content.res.Resources; import android.net.ConnectivityManager; -import android.net.IpPrefix; import android.net.ProxyInfo; import android.net.Uri; import android.net.VpnService; @@ -40,6 +39,7 @@ import android.system.OsConstants; import android.text.TextUtils; import android.util.Base64; import android.util.Log; +import android.util.Pair; import android.widget.Toast; import androidx.annotation.NonNull; @@ -519,9 +519,13 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac private VpnProfile fetchVPNProfile(Intent intent) { + String startReason; if (intent != null && intent.hasExtra(getPackageName() + ".profileUUID")) { String profileUUID = intent.getStringExtra(getPackageName() + ".profileUUID"); int profileVersion = intent.getIntExtra(getPackageName() + ".profileVersion", 0); + startReason = intent.getStringExtra(getPackageName() + ".startReason"); + if (startReason == null) + startReason = "(unknown)"; // Try for 10s to get current version of the profile mProfile = ProfileManager.get(this, profileUUID, profileVersion, 100); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1) { @@ -531,10 +535,13 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac } else { /* The intent is null when we are set as always-on or the service has been restarted. */ mProfile = ProfileManager.getLastConnectedProfile(this); + startReason = "Using last connected profile (started with null intent, always-on or restart after crash)"; VpnStatus.logInfo(R.string.service_restarted); /* Got no profile, just stop */ if (mProfile == null) { + startReason = "could not get last connected profile, using default (started with null intent, always-on or restart after crash)"; + Log.d("OpenVPN", "Got no last connected profile on null intent. Assuming always on."); mProfile = ProfileManager.getAlwaysOnVPN(this); @@ -546,6 +553,10 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac /* Do the asynchronous keychain certificate stuff */ mProfile.checkForRestart(this); } + String name = "(null)"; + if (mProfile != null) + name = mProfile.getName(); + VpnStatus.logDebug(String.format("Fetched VPN profile (%s) triggered by %s", name, startReason)); return mProfile; } diff --git a/main/src/main/java/de/blinkt/openvpn/core/VPNLaunchHelper.java b/main/src/main/java/de/blinkt/openvpn/core/VPNLaunchHelper.java index c859e845..bc04bc5e 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/VPNLaunchHelper.java +++ b/main/src/main/java/de/blinkt/openvpn/core/VPNLaunchHelper.java @@ -100,8 +100,8 @@ public class VPNLaunchHelper { } - public static void startOpenVpn(VpnProfile startprofile, Context context) { - Intent startVPN = startprofile.prepareStartService(context); + public static void startOpenVpn(VpnProfile startprofile, Context context, String startReason) { + Intent startVPN = startprofile.getStartServiceIntent(context, startReason); if (startVPN != null) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) //noinspection NewApi diff --git a/main/src/ui/java/de/blinkt/openvpn/OpenVPNTileService.java b/main/src/ui/java/de/blinkt/openvpn/OpenVPNTileService.java index 1c5dd0e5..9cb69a3d 100644 --- a/main/src/ui/java/de/blinkt/openvpn/OpenVPNTileService.java +++ b/main/src/ui/java/de/blinkt/openvpn/OpenVPNTileService.java @@ -88,6 +88,7 @@ public class OpenVPNTileService extends TileService implements VpnStatus.StateLi Intent startVpnIntent = new Intent(Intent.ACTION_MAIN); startVpnIntent.setClass(context, LaunchVPN.class); startVpnIntent.putExtra(LaunchVPN.EXTRA_KEY, profile.getUUIDString()); + startVpnIntent.putExtra(LaunchVPN.EXTRA_START_REASON, "QuickTile"); startVpnIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startVpnIntent.putExtra(LaunchVPN.EXTRA_HIDELOG, true); diff --git a/main/src/ui/java/de/blinkt/openvpn/activities/CreateShortcuts.java b/main/src/ui/java/de/blinkt/openvpn/activities/CreateShortcuts.java index e1cb8862..82455895 100644 --- a/main/src/ui/java/de/blinkt/openvpn/activities/CreateShortcuts.java +++ b/main/src/ui/java/de/blinkt/openvpn/activities/CreateShortcuts.java @@ -51,9 +51,6 @@ import java.util.Vector; public class CreateShortcuts extends ListActivity implements OnItemClickListener { - private static final int START_VPN_PROFILE= 70; - - private ProfileManager mPM; private VpnProfile mSelectedProfile; @@ -128,7 +125,8 @@ public class CreateShortcuts extends ListActivity implements OnItemClickListener Intent shortcutIntent = new Intent(Intent.ACTION_MAIN); shortcutIntent.setClass(this, LaunchVPN.class); - shortcutIntent.putExtra(LaunchVPN.EXTRA_KEY,profile.getUUID().toString()); + shortcutIntent.putExtra(LaunchVPN.EXTRA_KEY, profile.getUUID().toString()); + shortcutIntent.putExtra(LaunchVPN.EXTRA_START_REASON, "shortcut"); // Then, set up the container intent (the response to the caller) diff --git a/main/src/ui/java/de/blinkt/openvpn/fragments/LogFragment.java b/main/src/ui/java/de/blinkt/openvpn/fragments/LogFragment.java index 611e10e9..c5c48b0e 100644 --- a/main/src/ui/java/de/blinkt/openvpn/fragments/LogFragment.java +++ b/main/src/ui/java/de/blinkt/openvpn/fragments/LogFragment.java @@ -538,6 +538,7 @@ public class LogFragment extends ListFragment implements StateListener, SeekBar. (dialog1, which) -> { Intent intent = new Intent(getActivity(), LaunchVPN.class); intent.putExtra(LaunchVPN.EXTRA_KEY, profile.getUUIDString()); + intent.putExtra(LaunchVPN.EXTRA_START_REASON, "restart from logwindow"); intent.setAction(Intent.ACTION_MAIN); startActivity(intent); }); diff --git a/main/src/ui/java/de/blinkt/openvpn/fragments/VPNProfileList.java b/main/src/ui/java/de/blinkt/openvpn/fragments/VPNProfileList.java index 8c84a913..32ae0093 100644 --- a/main/src/ui/java/de/blinkt/openvpn/fragments/VPNProfileList.java +++ b/main/src/ui/java/de/blinkt/openvpn/fragments/VPNProfileList.java @@ -239,9 +239,10 @@ public class VPNProfileList extends ListFragment implements OnClickListener, Vpn @RequiresApi(Build.VERSION_CODES.N_MR1) ShortcutInfo createShortcut(VpnProfile profile) { Intent shortcutIntent = new Intent(Intent.ACTION_MAIN); - shortcutIntent.setClass(getActivity(), LaunchVPN.class); + shortcutIntent.setClass(requireContext(), LaunchVPN.class); shortcutIntent.putExtra(LaunchVPN.EXTRA_KEY, profile.getUUID().toString()); shortcutIntent.setAction(Intent.ACTION_MAIN); + shortcutIntent.putExtra(LaunchVPN.EXTRA_START_REASON, "shortcut"); shortcutIntent.putExtra("EXTRA_HIDELOG", true); PersistableBundle versionExtras = new PersistableBundle(); @@ -562,6 +563,7 @@ public class VPNProfileList extends ListFragment implements OnClickListener, Vpn Intent intent = new Intent(getActivity(), LaunchVPN.class); intent.putExtra(LaunchVPN.EXTRA_KEY, profile.getUUID().toString()); + intent.putExtra(LaunchVPN.EXTRA_START_REASON, "main profile list"); intent.setAction(Intent.ACTION_MAIN); startActivity(intent); } -- cgit v1.2.3 From 10f15bcb601aa200a9162ea984b7030cfb6ed1e4 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Tue, 1 Nov 2022 18:37:08 +0100 Subject: Update OpenVPN, OpenVPN3 and OpenSSL --- main/build.gradle.kts | 4 ++-- main/src/main/cpp/openssl | 2 +- main/src/main/cpp/openvpn | 2 +- main/src/main/cpp/openvpn3 | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/main/build.gradle.kts b/main/build.gradle.kts index 315546c5..247668ab 100644 --- a/main/build.gradle.kts +++ b/main/build.gradle.kts @@ -21,8 +21,8 @@ android { defaultConfig { minSdk = 21 targetSdk = 33 - versionCode = 196 - versionName = "0.7.41" + versionCode = 197 + versionName = "0.7.42" externalNativeBuild { cmake { } diff --git a/main/src/main/cpp/openssl b/main/src/main/cpp/openssl index 5a6a7d0c..ebef1f3e 160000 --- a/main/src/main/cpp/openssl +++ b/main/src/main/cpp/openssl @@ -1 +1 @@ -Subproject commit 5a6a7d0c955b168ccaecbd16d5a8ae4d20304ff4 +Subproject commit ebef1f3e1bac24605353ecb171e24ac9a9fc5bb1 diff --git a/main/src/main/cpp/openvpn b/main/src/main/cpp/openvpn index 28cb5982..8434109b 160000 --- a/main/src/main/cpp/openvpn +++ b/main/src/main/cpp/openvpn @@ -1 +1 @@ -Subproject commit 28cb5982db1e83a74af2dc087b69975992f59204 +Subproject commit 8434109b172a5863492009fb9a3190307daf308c diff --git a/main/src/main/cpp/openvpn3 b/main/src/main/cpp/openvpn3 index db71df23..907b8aa6 160000 --- a/main/src/main/cpp/openvpn3 +++ b/main/src/main/cpp/openvpn3 @@ -1 +1 @@ -Subproject commit db71df2380e4ecb8a71c0c1fcc2cec94e3520ae6 +Subproject commit 907b8aa6c9b1338cb3dacbd1efee667b5f598ee0 -- cgit v1.2.3 From c2924c6da1bbac9a29d2d276165f28dd399971ba Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Wed, 14 Dec 2022 13:47:53 +0100 Subject: Update dependencies --- build.gradle.kts | 6 +++--- main/build.gradle.kts | 16 ++++++++-------- main/src/ui/java/de/blinkt/openvpn/fragments/Utils.kt | 1 + 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 3ac14289..b77de274 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,14 +8,14 @@ buildscript { var kotlin_version: String by extra var fragment_version: String by extra - kotlin_version = "1.5.30" - fragment_version = "1.3.3" + kotlin_version = "1.7.22" + fragment_version = "1.5.5" repositories { google() mavenCentral() } dependencies { - classpath("com.android.tools.build:gradle:7.3.0") + classpath("com.android.tools.build:gradle:7.3.1") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version") } } diff --git a/main/build.gradle.kts b/main/build.gradle.kts index 247668ab..a366ad8f 100644 --- a/main/build.gradle.kts +++ b/main/build.gradle.kts @@ -165,9 +165,9 @@ dependencies { // https://maven.google.com/web/index.html // https://developer.android.com/jetpack/androidx/releases/core val preferenceVersion = "1.2.0" - val coreVersion = "1.7.0" - val materialVersion = "1.5.0" - val fragment_version = "1.4.1" + val coreVersion = "1.9.0" + val materialVersion = "1.7.0" + val fragment_version = "1.5.5" implementation("androidx.annotation:annotation:1.3.0") @@ -175,11 +175,11 @@ dependencies { // Is there a nicer way to do this? - dependencies.add("uiImplementation", "androidx.constraintlayout:constraintlayout:2.1.3") - dependencies.add("uiImplementation", "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21") + dependencies.add("uiImplementation", "androidx.constraintlayout:constraintlayout:2.1.4") + dependencies.add("uiImplementation", "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.22") dependencies.add("uiImplementation", "androidx.cardview:cardview:1.0.0") dependencies.add("uiImplementation", "androidx.recyclerview:recyclerview:1.2.1") - dependencies.add("uiImplementation", "androidx.appcompat:appcompat:1.4.1") + dependencies.add("uiImplementation", "androidx.appcompat:appcompat:1.5.1") dependencies.add("uiImplementation", "com.github.PhilJay:MPAndroidChart:v3.1.0") dependencies.add("uiImplementation", "com.squareup.okhttp3:okhttp:4.9.3") dependencies.add("uiImplementation", "androidx.core:core:$coreVersion") @@ -189,8 +189,8 @@ dependencies { dependencies.add("uiImplementation", "androidx.preference:preference-ktx:$preferenceVersion") dependencies.add("uiImplementation", "com.google.android.material:material:$materialVersion") dependencies.add("uiImplementation", "androidx.webkit:webkit:1.4.0") - dependencies.add("uiImplementation", "androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.1") - dependencies.add("uiImplementation", "androidx.lifecycle:lifecycle-runtime-ktx:2.4.1") + dependencies.add("uiImplementation", "androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1") + dependencies.add("uiImplementation", "androidx.lifecycle:lifecycle-runtime-ktx:2.5.1") dependencies.add("uiImplementation","androidx.security:security-crypto:1.0.0") diff --git a/main/src/ui/java/de/blinkt/openvpn/fragments/Utils.kt b/main/src/ui/java/de/blinkt/openvpn/fragments/Utils.kt index 4fdd50ba..8db487e7 100644 --- a/main/src/ui/java/de/blinkt/openvpn/fragments/Utils.kt +++ b/main/src/ui/java/de/blinkt/openvpn/fragments/Utils.kt @@ -90,6 +90,7 @@ object Utils { i.type = "text/plain" supportedMimeTypes.add("text/plain") } + else -> null } val mtm = MimeTypeMap.getSingleton() for (ext in extensions) { -- cgit v1.2.3 From 00097e479ba05462da3b0cc4794952ebfe1fea73 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Wed, 14 Dec 2022 13:48:50 +0100 Subject: Do not use IpPrefix constructor on older APIs This method is not part of the official API but most devices still have it but some don't (closes #1558) --- main/src/main/java/de/blinkt/openvpn/core/NetworkSpace.java | 6 +++++- main/src/main/java/de/blinkt/openvpn/core/NetworkUtils.java | 6 +----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/main/src/main/java/de/blinkt/openvpn/core/NetworkSpace.java b/main/src/main/java/de/blinkt/openvpn/core/NetworkSpace.java index 9c8cf363..da53831b 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/NetworkSpace.java +++ b/main/src/main/java/de/blinkt/openvpn/core/NetworkSpace.java @@ -5,11 +5,13 @@ package de.blinkt.openvpn.core; +import android.annotation.TargetApi; import android.net.IpPrefix; +import android.os.Build; import androidx.annotation.NonNull; -import java.lang.reflect.Array; +import java.lang.annotation.Target; import java.math.BigInteger; import java.net.Inet4Address; import java.net.Inet6Address; @@ -132,6 +134,7 @@ public class NetworkSpace { } + @NonNull @Override public String toString() { //String in = included ? "+" : "-"; @@ -210,6 +213,7 @@ public class NetworkSpace { } + @TargetApi(Build.VERSION_CODES.TIRAMISU) public IpPrefix getPrefix() throws UnknownHostException { if (isV4){ /* add 0x01 00 00 00 00, so that all representations are 5 byte otherwise diff --git a/main/src/main/java/de/blinkt/openvpn/core/NetworkUtils.java b/main/src/main/java/de/blinkt/openvpn/core/NetworkUtils.java index 67cdb243..f104d3b0 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/NetworkUtils.java +++ b/main/src/main/java/de/blinkt/openvpn/core/NetworkUtils.java @@ -56,11 +56,7 @@ public class NetworkUtils { else ipaddress = new NetworkSpace.IpAddress(new CIDRIP(la.getAddress().getHostAddress(), la.getPrefixLength()), true); - try { - nets.add(ipaddress.getPrefix().toString()); - } catch (UnknownHostException ia) { - VpnStatus.logError("getLocalNetworks error: " + ipaddress + " " + ia.getLocalizedMessage()); - } + nets.add(ipaddress.toString()); } } } -- cgit v1.2.3 From d9ef18f4fa02e56d013fec9ef918d66073b7b99a Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Wed, 14 Dec 2022 13:49:07 +0100 Subject: Warn more explicit about file:/// URLs --- main/src/ui/java/de/blinkt/openvpn/activities/ConfigConverter.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/main/src/ui/java/de/blinkt/openvpn/activities/ConfigConverter.kt b/main/src/ui/java/de/blinkt/openvpn/activities/ConfigConverter.kt index fa786dcb..b85eaa26 100644 --- a/main/src/ui/java/de/blinkt/openvpn/activities/ConfigConverter.kt +++ b/main/src/ui/java/de/blinkt/openvpn/activities/ConfigConverter.kt @@ -811,8 +811,10 @@ class ConfigConverter : BaseActivity(), FileSelectCallback, View.OnClickListener // We got a file:/// URL and have no permission to read it. Technically an error of the calling app since // it makes an assumption about other apps being able to read the url but well ... - if (data != null && "file" == data.scheme) + if (data != null && "file" == data.scheme) { + log("An external app instructed OpenVPN for Android to open a file:// URI. This kind of URI have been deprecated since Android 7 and no longer work on modern Android versions at all.") doRequestSDCardPermission(PERMISSION_REQUEST_READ_URL) + } } -- cgit v1.2.3 From f07066d047562f1fae9618ffc5af1f940d733967 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Wed, 14 Dec 2022 13:51:10 +0100 Subject: Update OpenVPN 2 and 3 This changes the OpenVPN version number to 2.7 since we branched off 2.6 from master. --- main/src/main/cpp/openvpn | 2 +- main/src/main/cpp/openvpn-config/config.h | 16 ++-------------- main/src/main/cpp/openvpn3 | 2 +- .../ui/java/de/blinkt/openvpn/core/OpenVPNThreadv3.java | 2 ++ 4 files changed, 6 insertions(+), 16 deletions(-) diff --git a/main/src/main/cpp/openvpn b/main/src/main/cpp/openvpn index 8434109b..d861a123 160000 --- a/main/src/main/cpp/openvpn +++ b/main/src/main/cpp/openvpn @@ -1 +1 @@ -Subproject commit 8434109b172a5863492009fb9a3190307daf308c +Subproject commit d861a123bb592b07d9c8f97ea2d033d08d9430ee diff --git a/main/src/main/cpp/openvpn-config/config.h b/main/src/main/cpp/openvpn-config/config.h index ca33c91e..989e439a 100644 --- a/main/src/main/cpp/openvpn-config/config.h +++ b/main/src/main/cpp/openvpn-config/config.h @@ -21,27 +21,15 @@ /* Use dmalloc memory debugging library */ /* #undef DMALLOC */ -/* Dimension to use for empty array declaration */ -#define EMPTY_ARRAY_SIZE 0 - -/* Enable client capability only */ -#define ENABLE_CLIENT_ONLY 1 - /* Enable debugging support */ #define ENABLE_DEBUG 1 /* Enable internal fragmentation support */ #define ENABLE_FRAGMENT 1 -/* Enable HTTP proxy support */ -#define ENABLE_HTTP_PROXY 1 - /* Enable management server capability */ #define ENABLE_MANAGEMENT 1 -/* Enable multi-homed UDP server capability */ -#define ENABLE_MULTIHOME 0 - /* Allow --askpass and --auth-user-pass passwords to be read from a file */ #define ENABLE_PASSWORD_SAVE 1 @@ -450,13 +438,13 @@ #define PACKAGE_NAME "OpenVPN" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "OpenVPN 2.6-icsopenvpn" +#define PACKAGE_STRING "OpenVPN 2.7-icsopenvpn" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "openvpn" /* Define to the version of this package. */ -#define PACKAGE_VERSION "2.6_master" +#define PACKAGE_VERSION "2.7_master" /* Define to the necessary symbol if this constant uses a non-standard name on your system. */ diff --git a/main/src/main/cpp/openvpn3 b/main/src/main/cpp/openvpn3 index 907b8aa6..ed321315 160000 --- a/main/src/main/cpp/openvpn3 +++ b/main/src/main/cpp/openvpn3 @@ -1 +1 @@ -Subproject commit 907b8aa6c9b1338cb3dacbd1efee667b5f598ee0 +Subproject commit ed32131597ecd7ed8330dcd64c76d995bf3decff diff --git a/main/src/ui/java/de/blinkt/openvpn/core/OpenVPNThreadv3.java b/main/src/ui/java/de/blinkt/openvpn/core/OpenVPNThreadv3.java index 75093e14..ad7a7c28 100644 --- a/main/src/ui/java/de/blinkt/openvpn/core/OpenVPNThreadv3.java +++ b/main/src/ui/java/de/blinkt/openvpn/core/OpenVPNThreadv3.java @@ -189,12 +189,14 @@ public class OpenVPNThreadv3 extends ClientAPI_OpenVPNClient implements Runnable config.setExternalPkiAlias("extpki"); config.setCompressionMode("asym"); + config.setHwAddrOverride(NetworkUtils.getFakeMacAddrFromSAAID(mService)); config.setInfo(true); config.setAllowLocalLanAccess(mVp.mAllowLocalLAN); boolean retryOnAuthFailed = mVp.mAuthRetry == AUTH_RETRY_NOINTERACT; config.setRetryOnAuthFailed(retryOnAuthFailed); config.setEnableLegacyAlgorithms(mVp.mUseLegacyProvider); + /* We want the same app internal route emulation for OpenVPN 2 and OpenVPN 3 */ config.setEnableRouteEmulation(false); if (mVp.mCompatMode > 0 && mVp.mCompatMode < 20500) config.setEnableNonPreferredDCAlgorithms(true); -- cgit v1.2.3 From 5d559d400d70995dcf9da5bb38e77fe94d8dde11 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Wed, 14 Dec 2022 15:17:40 +0100 Subject: Version 0.7.43 --- main/build.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main/build.gradle.kts b/main/build.gradle.kts index a366ad8f..ae06c637 100644 --- a/main/build.gradle.kts +++ b/main/build.gradle.kts @@ -21,8 +21,8 @@ android { defaultConfig { minSdk = 21 targetSdk = 33 - versionCode = 197 - versionName = "0.7.42" + versionCode = 198 + versionName = "0.7.43" externalNativeBuild { cmake { } -- cgit v1.2.3 From 3f6ca2baf84dccc832712a80c96a613e1cda3232 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Tue, 4 Apr 2023 14:32:20 +0200 Subject: Update OpenSSL license to Apache 2.0 --- main/src/main/assets/full_licenses.html | 323 ++++++++++++++++++++------------ 1 file changed, 206 insertions(+), 117 deletions(-) diff --git a/main/src/main/assets/full_licenses.html b/main/src/main/assets/full_licenses.html index a32190df..fd87dd49 100644 --- a/main/src/main/assets/full_licenses.html +++ b/main/src/main/assets/full_licenses.html @@ -167,120 +167,209 @@ DEALINGS IN THE SOFTWARE.

END OF TERMS AND CONDITIONS

OpenSSL

-

The OpenSSL toolkit stays under a dual license, i.e. both the conditions of - the OpenSSL License and the original SSLeay license apply to the toolkit. - See below for the actual license texts. Actually both licenses are BSD-style - Open Source licenses. In case of any license issues related to OpenSSL - please contact openssl-core@openssl.org.

- -

/* ==================================================================== -
* Copyright (c) 1998-2003 The OpenSSL Project. All rights reserved. -
* -
* Redistribution and use in source and binary forms, with or without -
* modification, are permitted provided that the following conditions -
* are met: -
* -
* 1. Redistributions of source code must retain the above copyright -
* notice, this list of conditions and the following disclaimer. -
* -
* 2. Redistributions in binary form must reproduce the above copyright -
* notice, this list of conditions and the following disclaimer in -
* the documentation and/or other materials provided with the -
* distribution. -
* -
* 3. All advertising materials mentioning features or use of this -
* software must display the following acknowledgment: -
* "This product includes software developed by the OpenSSL Project -
* for use in the OpenSSL Toolkit. (http://www.openssl.org/)" -
* -
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to -
* endorse or promote products derived from this software without -
* prior written permission. For written permission, please contact -
* openssl-core@openssl.org. -
* -
* 5. Products derived from this software may not be called "OpenSSL" -
* nor may "OpenSSL" appear in their names without prior written -
* permission of the OpenSSL Project. -
* -
* 6. Redistributions of any form whatsoever must retain the following -
* acknowledgment: -
* "This product includes software developed by the OpenSSL Project -
* for use in the OpenSSL Toolkit (http://www.openssl.org/)" -
* -
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR -
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -
* OF THE POSSIBILITY OF SUCH DAMAGE. -
* ==================================================================== -
* -
* This product includes cryptographic software written by Eric Young -
* (eay@cryptsoft.com). This product includes software written by Tim -
* Hudson (tjh@cryptsoft.com). -
* -
*/ - -

Original SSLeay License

-
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) -
* All rights reserved. -
* -
* This package is an SSL implementation written -
* by Eric Young (eay@cryptsoft.com). -
* The implementation was written so as to conform with Netscapes SSL. -
* -
* This library is free for commercial and non-commercial use as long as -
* the following conditions are aheared to. The following conditions -
* apply to all code found in this distribution, be it the RC4, RSA, -
* lhash, DES, etc., code; not just the SSL code. The SSL documentation -
* included with this distribution is covered by the same copyright terms -
* except that the holder is Tim Hudson (tjh@cryptsoft.com). -
* -
* Copyright remains Eric Young's, and as such any Copyright notices in -
* the code are not to be removed. -
* If this package is used in a product, Eric Young should be given attribution -
* as the author of the parts of the library used. -
* This can be in the form of a textual message at program startup or -
* in documentation (online or textual) provided with the package. -
* -
* Redistribution and use in source and binary forms, with or without -
* modification, are permitted provided that the following conditions -
* are met: -
* 1. Redistributions of source code must retain the copyright -
* notice, this list of conditions and the following disclaimer. -
* 2. Redistributions in binary form must reproduce the above copyright -
* notice, this list of conditions and the following disclaimer in the -
* documentation and/or other materials provided with the distribution. -
* 3. All advertising materials mentioning features or use of this software -
* must display the following acknowledgement: -
* "This product includes cryptographic software written by -
* Eric Young (eay@cryptsoft.com)" -
* The word 'cryptographic' can be left out if the rouines from the library -
* being used are not cryptographic related :-). -
* 4. If you include any Windows specific code (or a derivative thereof) from -
* the apps directory (application code) you must include an acknowledgement: -
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" -
* -
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND -
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -
* SUCH DAMAGE. -
* -
* The licence and distribution terms for any publically available version or -
* derivative of this code cannot be changed. i.e. this code cannot simply be -
* copied and put under another distribution licence -
* [including the GNU Public Licence.] -
*/ +

+ + Apache License +

+

Version 2.0, January 2004

+

https://www.apache.org/licenses/

+ +

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

+

1. Definitions. +

+

+ "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. +

+

+ "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. +

+

+ "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. +

+

+ "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. +

+

+ "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. +

+

+ "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. +

+

+ "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). +

+

+ "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. +

+

+ "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." +

+

+ "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. +

+

+ 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. +

+

+ 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. +

+

+ + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: +

+

+ (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and +

+

+ (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and +

+

+ (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and +

+

+ (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. +

+

+ You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. +

+

+ + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. +

+

+ 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. +

+

+ + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. +

+

+ + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. +

+

+ + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS -- cgit v1.2.3 From e3d7059bc3305f27bf95ea730fe4e01aa7415c87 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Thu, 6 Apr 2023 10:00:20 +0200 Subject: Convert MainActivity to Kotlin --- .../de/blinkt/openvpn/activities/MainActivity.java | 141 --------------------- .../de/blinkt/openvpn/activities/MainActivity.kt | 100 +++++++++++++++ 2 files changed, 100 insertions(+), 141 deletions(-) delete mode 100644 main/src/ui/java/de/blinkt/openvpn/activities/MainActivity.java create mode 100644 main/src/ui/java/de/blinkt/openvpn/activities/MainActivity.kt diff --git a/main/src/ui/java/de/blinkt/openvpn/activities/MainActivity.java b/main/src/ui/java/de/blinkt/openvpn/activities/MainActivity.java deleted file mode 100644 index a6d5ecc4..00000000 --- a/main/src/ui/java/de/blinkt/openvpn/activities/MainActivity.java +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Copyright (c) 2012-2016 Arne Schwabe - * Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt - */ - -package de.blinkt.openvpn.activities; - -import android.content.Intent; -import android.net.Uri; -import android.view.Menu; -import android.view.MenuItem; -import android.widget.Toast; - -import androidx.appcompat.app.ActionBar; -import androidx.viewpager.widget.ViewPager; - -import com.google.android.material.tabs.TabLayout; - -import de.blinkt.openvpn.R; -import de.blinkt.openvpn.fragments.AboutFragment; -import de.blinkt.openvpn.fragments.FaqFragment; -import de.blinkt.openvpn.fragments.GeneralSettings; -import de.blinkt.openvpn.fragments.GraphFragment; -import de.blinkt.openvpn.fragments.ImportRemoteConfig; -import de.blinkt.openvpn.fragments.LogFragment; -import de.blinkt.openvpn.fragments.SendDumpFragment; -import de.blinkt.openvpn.fragments.VPNProfileList; -import de.blinkt.openvpn.views.ScreenSlidePagerAdapter; - - -public class MainActivity extends BaseActivity { - - private static final String FEATURE_TELEVISION = "android.hardware.type.television"; - private static final String FEATURE_LEANBACK = "android.software.leanback"; - private TabLayout mTabs; - private ViewPager mPager; - private ScreenSlidePagerAdapter mPagerAdapter; - - protected void onCreate(android.os.Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - setContentView(R.layout.main_activity); - - - // Instantiate a ViewPager and a PagerAdapter. - mPager = findViewById(R.id.pager); - mPagerAdapter = new ScreenSlidePagerAdapter(getSupportFragmentManager(), this); - - /* Toolbar and slider should have the same elevation */ - disableToolbarElevation(); - - - mPagerAdapter.addTab(R.string.vpn_list_title, VPNProfileList.class); - mPagerAdapter.addTab(R.string.graph, GraphFragment.class); - - mPagerAdapter.addTab(R.string.generalsettings, GeneralSettings.class); - mPagerAdapter.addTab(R.string.faq, FaqFragment.class); - - if (SendDumpFragment.getLastestDump(this) != null) { - mPagerAdapter.addTab(R.string.crashdump, SendDumpFragment.class); - } - - - if (isAndroidTV()) - mPagerAdapter.addTab(R.string.openvpn_log, LogFragment.class); - - mPagerAdapter.addTab(R.string.about, AboutFragment.class); - mPager.setAdapter(mPagerAdapter); - } - - - private void disableToolbarElevation() { - ActionBar toolbar = getSupportActionBar(); - toolbar.setElevation(0); - } - - @Override - protected void onResume() { - super.onResume(); - Intent intent = getIntent(); - if (intent != null) { - String action = intent.getAction(); - if (Intent.ACTION_VIEW.equals(action)) - { - Uri uri = intent.getData(); - if (uri != null) - checkUriForProfileImport(uri); - } - String page = intent.getStringExtra("PAGE"); - if ("graph".equals(page)) { - mPager.setCurrentItem(1); - } - setIntent(null); - } - } - - private void checkUriForProfileImport(Uri uri) { - if ("openvpn".equals(uri.getScheme()) && "import-profile".equals(uri.getHost())) - { - String realUrl = uri.getEncodedPath() + "?" + uri.getEncodedQuery(); - if (!realUrl.startsWith("/https://")) - { - Toast.makeText(this, "Cannot use openvpn://import-profile/ URL that does not use https://", Toast.LENGTH_LONG).show(); - return; - } - realUrl = realUrl.substring(1); - startOpenVPNUrlImport(realUrl); - } - } - - private void startOpenVPNUrlImport(String url) { - ImportRemoteConfig asImportFrag = ImportRemoteConfig.newInstance(url); - asImportFrag.show(getSupportFragmentManager(), "dialog"); - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - getMenuInflater().inflate(R.menu.main_menu, menu); - return super.onCreateOptionsMenu(menu); - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - if (item.getItemId() == R.id.show_log) { - Intent showLog = new Intent(this, LogWindow.class); - startActivity(showLog); - } - return super.onOptionsItemSelected(item); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, Intent data) { - super.onActivityResult(requestCode, resultCode, data); - - System.out.println(data); - - - } - - -} diff --git a/main/src/ui/java/de/blinkt/openvpn/activities/MainActivity.kt b/main/src/ui/java/de/blinkt/openvpn/activities/MainActivity.kt new file mode 100644 index 00000000..68117b52 --- /dev/null +++ b/main/src/ui/java/de/blinkt/openvpn/activities/MainActivity.kt @@ -0,0 +1,100 @@ +/* + * Copyright (c) 2012-2016 Arne Schwabe + * Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt + */ +package de.blinkt.openvpn.activities + +import android.content.Intent +import android.net.Uri +import android.os.Bundle +import android.view.Menu +import android.view.MenuItem +import android.widget.Toast +import androidx.viewpager.widget.ViewPager +import com.google.android.material.tabs.TabLayout +import de.blinkt.openvpn.R +import de.blinkt.openvpn.fragments.* +import de.blinkt.openvpn.fragments.ImportRemoteConfig.Companion.newInstance +import de.blinkt.openvpn.views.ScreenSlidePagerAdapter + +class MainActivity : BaseActivity() { + private lateinit var mPager: ViewPager + private lateinit var mPagerAdapter: ScreenSlidePagerAdapter + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.main_activity) + + + // Instantiate a ViewPager and a PagerAdapter. + mPager = findViewById(R.id.pager) + mPagerAdapter = ScreenSlidePagerAdapter(supportFragmentManager, this) + + /* Toolbar and slider should have the same elevation */disableToolbarElevation() + mPagerAdapter.addTab(R.string.vpn_list_title, VPNProfileList::class.java) + mPagerAdapter.addTab(R.string.graph, GraphFragment::class.java) + mPagerAdapter.addTab(R.string.generalsettings, GeneralSettings::class.java) + mPagerAdapter.addTab(R.string.faq, FaqFragment::class.java) + if (SendDumpFragment.getLastestDump(this) != null) { + mPagerAdapter.addTab(R.string.crashdump, SendDumpFragment::class.java) + } + if (isAndroidTV) + mPagerAdapter.addTab(R.string.openvpn_log, LogFragment::class.java) + mPagerAdapter.addTab(R.string.about, AboutFragment::class.java) + mPager.setAdapter(mPagerAdapter) + } + + private fun disableToolbarElevation() { + supportActionBar?.elevation = 0f + } + + override fun onResume() { + super.onResume() + val intent = intent + if (intent != null) { + val action = intent.action + if (Intent.ACTION_VIEW == action) { + val uri = intent.data + uri?.let { checkUriForProfileImport(it) } + } + val page = intent.getStringExtra("PAGE") + if ("graph" == page) { + mPager.currentItem = 1 + } + setIntent(null) + } + } + + private fun checkUriForProfileImport(uri: Uri) { + if ("openvpn" == uri.scheme && "import-profile" == uri.host) { + var realUrl = uri.encodedPath + "?" + uri.encodedQuery + if (!realUrl.startsWith("/https://")) { + Toast.makeText( + this, + "Cannot use openvpn://import-profile/ URL that does not use https://", + Toast.LENGTH_LONG + ).show() + return + } + realUrl = realUrl.substring(1) + startOpenVPNUrlImport(realUrl) + } + } + + private fun startOpenVPNUrlImport(url: String) { + val asImportFrag = newInstance(url) + asImportFrag.show(supportFragmentManager, "dialog") + } + + override fun onCreateOptionsMenu(menu: Menu): Boolean { + menuInflater.inflate(R.menu.main_menu, menu) + return super.onCreateOptionsMenu(menu) + } + + override fun onOptionsItemSelected(item: MenuItem): Boolean { + if (item.itemId == R.id.show_log) { + val showLog = Intent(this, LogWindow::class.java) + startActivity(showLog) + } + return super.onOptionsItemSelected(item) + } +} \ No newline at end of file -- cgit v1.2.3 From 9e5986073c9b7636572fecdb56231d4b484345a1 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Thu, 6 Apr 2023 10:00:51 +0200 Subject: Silence warning when running with UpsideDownCake beta --- main/src/ui/java/de/blinkt/openvpn/fragments/VPNProfileList.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main/src/ui/java/de/blinkt/openvpn/fragments/VPNProfileList.java b/main/src/ui/java/de/blinkt/openvpn/fragments/VPNProfileList.java index 32ae0093..fa9438cb 100644 --- a/main/src/ui/java/de/blinkt/openvpn/fragments/VPNProfileList.java +++ b/main/src/ui/java/de/blinkt/openvpn/fragments/VPNProfileList.java @@ -668,9 +668,9 @@ public class VPNProfileList extends ListFragment implements OnClickListener, Vpn public Drawable getDrawable(String source) { Drawable d = null; if ("ic_menu_add".equals(source)) - d = requireActivity().getResources().getDrawable(R.drawable.ic_menu_add_grey); + d = requireActivity().getResources().getDrawable(R.drawable.ic_menu_add_grey, requireActivity().getTheme()); else if ("ic_menu_archive".equals(source)) - d = requireActivity().getResources().getDrawable(R.drawable.ic_menu_import_grey); + d = requireActivity().getResources().getDrawable(R.drawable.ic_menu_import_grey, requireActivity().getTheme()); if (d != null) { -- cgit v1.2.3 From 3c160282b4a4d450810baa28f1a757bba82ce6bb Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Thu, 13 Apr 2023 13:40:57 +0200 Subject: Allow setting a certificate alias via restriction API. --- .../de/blinkt/openvpn/api/AppRestrictions.java | 37 ++++++++++++++++++---- main/src/main/res/values/untranslatable.xml | 2 ++ main/src/main/res/xml/app_restrictions.xml | 6 ++++ 3 files changed, 39 insertions(+), 6 deletions(-) diff --git a/main/src/main/java/de/blinkt/openvpn/api/AppRestrictions.java b/main/src/main/java/de/blinkt/openvpn/api/AppRestrictions.java index c06b01b3..573dd070 100644 --- a/main/src/main/java/de/blinkt/openvpn/api/AppRestrictions.java +++ b/main/src/main/java/de/blinkt/openvpn/api/AppRestrictions.java @@ -33,7 +33,6 @@ public class AppRestrictions { final static int CONFIG_VERSION = 1; static boolean alreadyChecked = false; private static AppRestrictions mInstance; - private RestrictionsManager mRestrictionsMgr; private BroadcastReceiver mRestrictionsReceiver; private AppRestrictions(Context c) { @@ -76,10 +75,10 @@ public class AppRestrictions { } private void applyRestrictions(Context c) { - mRestrictionsMgr = (RestrictionsManager) c.getSystemService(Context.RESTRICTIONS_SERVICE); - if (mRestrictionsMgr == null) + RestrictionsManager restrictionsMgr = (RestrictionsManager) c.getSystemService(Context.RESTRICTIONS_SERVICE); + if (restrictionsMgr == null) return; - Bundle restrictions = mRestrictionsMgr.getApplicationRestrictions(); + Bundle restrictions = restrictionsMgr.getApplicationRestrictions(); if (restrictions == null) return; @@ -116,6 +115,7 @@ public class AppRestrictions { String uuid = p.getString("uuid"); String ovpn = p.getString("ovpn"); String name = p.getString("name"); + String certAlias = p.getString("certificate_alias"); if (uuid == null || ovpn == null || name == null) { VpnStatus.logError("App restriction profile misses uuid, ovpn or name key"); @@ -134,12 +134,15 @@ public class AppRestrictions { if (vpnProfile != null) { // Profile exists, check if need to update it - if (ovpnHash.equals(vpnProfile.importedProfileHash)) + if (ovpnHash.equals(vpnProfile.importedProfileHash)) { + addCertificateAlias(vpnProfile, certAlias); + // not modified skip to next profile continue; - + } } addProfile(c, ovpn, uuid, name, vpnProfile); + addCertificateAlias(vpnProfile, certAlias); } Vector profilesToRemove = new Vector<>(); @@ -181,6 +184,28 @@ public class AppRestrictions { } } + /** + * If certAlias is non-null will modify the profile type to use the keystore variant of + * the authentication method and will also set the keystore alias + */ + private void addCertificateAlias(VpnProfile vpnProfile, String certAlias) { + if (certAlias == null) + return; + + switch (vpnProfile.mAuthenticationType) + { + case VpnProfile.TYPE_PKCS12: + case VpnProfile.TYPE_CERTIFICATES: + vpnProfile.mAuthenticationType = VpnProfile.TYPE_KEYSTORE; + break; + case VpnProfile.TYPE_USERPASS_CERTIFICATES: + case VpnProfile.TYPE_USERPASS_PKCS12: + vpnProfile.mAuthenticationType = VpnProfile.TYPE_USERPASS_KEYSTORE; + break; + } + vpnProfile.mAlias = certAlias; + } + private String prepare(String config) { String newLine = System.getProperty("line.separator"); if (!config.contains(newLine) && !config.contains(" ")) { diff --git a/main/src/main/res/values/untranslatable.xml b/main/src/main/res/values/untranslatable.xml index cde0d8a5..651af1d3 100644 --- a/main/src/main/res/values/untranslatable.xml +++ b/main/src/main/res/values/untranslatable.xml @@ -73,6 +73,8 @@ Name List of VPN configurations VPN configuration + Certificate Alias + Alias of a certificate in the Android keystore to use. Leave empty to not use the certificate store. Version of the managed configuration schema (Currently always 1) UUID of the profile that should be selected as default profile in the app The app OpenVPN for Android does not communicate to any server other than the OpenVPN servers provided in configuration files. The author himself does not collect any data and no therefore also no data is saved. For the privacy policy for the OpenVPN server/VPN service you are using (or other services related to the project like GitHub), please refer to their respective privacy policy. diff --git a/main/src/main/res/xml/app_restrictions.xml b/main/src/main/res/xml/app_restrictions.xml index 167e48e8..0451fd25 100644 --- a/main/src/main/res/xml/app_restrictions.xml +++ b/main/src/main/res/xml/app_restrictions.xml @@ -44,6 +44,12 @@ android:description="@string/apprest_ovpn_desc" android:restrictionType="string"/> + + xmlns:tools="http://schemas.android.com/tools"> + xmlns:tools="http://schemas.android.com/tools"> - + diff --git a/tlsexternalcertprovider/build.gradle b/tlsexternalcertprovider/build.gradle index ddf7cafd..59930696 100644 --- a/tlsexternalcertprovider/build.gradle +++ b/tlsexternalcertprovider/build.gradle @@ -38,6 +38,10 @@ android { lint { abortOnError false } + namespace 'de.blinkt.externalcertprovider' + buildFeatures { + aidl true + } // This is just a demo package, don't care about it being perfect } diff --git a/tlsexternalcertprovider/src/main/AndroidManifest.xml b/tlsexternalcertprovider/src/main/AndroidManifest.xml index 47e15ac5..c524c203 100644 --- a/tlsexternalcertprovider/src/main/AndroidManifest.xml +++ b/tlsexternalcertprovider/src/main/AndroidManifest.xml @@ -4,8 +4,7 @@ ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt --> - + Date: Mon, 17 Apr 2023 15:23:07 +0200 Subject: Update OpenVPN, OpenVPN3 and OpenSSL --- main/src/main/cpp/openssl | 2 +- main/src/main/cpp/openvpn | 2 +- main/src/main/cpp/openvpn3 | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/main/src/main/cpp/openssl b/main/src/main/cpp/openssl index ebef1f3e..ed67b5f0 160000 --- a/main/src/main/cpp/openssl +++ b/main/src/main/cpp/openssl @@ -1 +1 @@ -Subproject commit ebef1f3e1bac24605353ecb171e24ac9a9fc5bb1 +Subproject commit ed67b5f080696de5b85ef466f26e138d4938a8e9 diff --git a/main/src/main/cpp/openvpn b/main/src/main/cpp/openvpn index d861a123..6d29ef2b 160000 --- a/main/src/main/cpp/openvpn +++ b/main/src/main/cpp/openvpn @@ -1 +1 @@ -Subproject commit d861a123bb592b07d9c8f97ea2d033d08d9430ee +Subproject commit 6d29ef2bb05d26feac6d73d66bf6f1c2b1d2cf12 diff --git a/main/src/main/cpp/openvpn3 b/main/src/main/cpp/openvpn3 index ed321315..037fda05 160000 --- a/main/src/main/cpp/openvpn3 +++ b/main/src/main/cpp/openvpn3 @@ -1 +1 @@ -Subproject commit ed32131597ecd7ed8330dcd64c76d995bf3decff +Subproject commit 037fda05213a2ea28fdb5ffd139d9dc61a3b641c -- cgit v1.2.3 From 540ae17adbaaef1dda55d4f52003c033c67721cc Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Mon, 17 Apr 2023 15:30:41 +0200 Subject: Fix github builds --- .github/workflows/build.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 449907eb..ccc5e8a9 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -11,6 +11,11 @@ jobs: name: "Release ${{ matrix.target }}" runs-on: ubuntu-latest steps: + - name: set up JDK 17 + uses: actions/setup-java@v3 + with: + distribution: 'zulu' + java-version: 17 - name: Use debug signing run: mkdir -p ~/.gradle && echo -e "icsopenvpnDebugSign=true\norg.gradle.jvmargs=-Xmx2048M" > ~/.gradle/gradle.properties - name: Checkout the code -- cgit v1.2.3 From 50f96a23409362174816f4416f0322fb091d814b Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Mon, 17 Apr 2023 16:03:08 +0200 Subject: Upgrade roboElectric to fix unittest with JDK 17+ --- main/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main/build.gradle.kts b/main/build.gradle.kts index c8d3a737..9dd87d50 100644 --- a/main/build.gradle.kts +++ b/main/build.gradle.kts @@ -201,6 +201,6 @@ dependencies { testImplementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21") testImplementation("junit:junit:4.13.2") testImplementation("org.mockito:mockito-core:3.9.0") - testImplementation("org.robolectric:robolectric:4.5.1") + testImplementation("org.robolectric:robolectric:4.10") testImplementation("androidx.test:core:1.4.0") } -- cgit v1.2.3 From 4638defbec5b9ac620ff90e9ebaac6143d688a47 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Mon, 17 Apr 2023 17:05:57 +0200 Subject: Update ASIO dependency --- main/src/main/cpp/asio | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main/src/main/cpp/asio b/main/src/main/cpp/asio index 4915cfd8..f693a3eb 160000 --- a/main/src/main/cpp/asio +++ b/main/src/main/cpp/asio @@ -1 +1 @@ -Subproject commit 4915cfd8a1653c157a1480162ae5601318553eb8 +Subproject commit f693a3eb7fe72a5f19b975289afc4f437d373d9c -- cgit v1.2.3 From f01075341032da733d857cc072f2984fb3a22401 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Tue, 18 Apr 2023 12:04:24 +0200 Subject: Save artificats from github build and cache gradle deps --- .github/workflows/build.yaml | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index ccc5e8a9..79243a92 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -11,18 +11,25 @@ jobs: name: "Release ${{ matrix.target }}" runs-on: ubuntu-latest steps: - - name: set up JDK 17 - uses: actions/setup-java@v3 - with: - distribution: 'zulu' - java-version: 17 - name: Use debug signing run: mkdir -p ~/.gradle && echo -e "icsopenvpnDebugSign=true\norg.gradle.jvmargs=-Xmx2048M" > ~/.gradle/gradle.properties - name: Checkout the code uses: actions/checkout@v2 with: submodules: true + - name: set up JDK 17 + uses: actions/setup-java@v3 + with: + distribution: 'zulu' + java-version: 17 + cache: 'gradle' - name: Build the app run: ./gradlew assemble${{ matrix.target }}Release - name: Run Unit tests - run: ./gradlew test${{ matrix.target }}ReleaseUnitTest \ No newline at end of file + run: ./gradlew test${{ matrix.target }}ReleaseUnitTest + + - name: Archive apk artifact + uses: actions/upload-artifact@v3 + with: + name: build-${{matrix.target}}-release-apk + path: main/build/outputs/apk/**/*universal*.apk -- cgit v1.2.3 From ba6ff09670679affd97cb410e5416f976c3cac0c Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Tue, 18 Apr 2023 13:15:58 +0200 Subject: Fix typo in request for notifications --- main/src/main/res/values/strings.xml | 1 + main/src/ui/res/layout/vpn_profile_list.xml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/main/src/main/res/values/strings.xml b/main/src/main/res/values/strings.xml index da32ec9e..f68d6983 100755 --- a/main/src/main/res/values/strings.xml +++ b/main/src/main/res/values/strings.xml @@ -505,5 +505,6 @@ Allows the app to be translated with translations contributed by the community. Requires a restart of the app to activate. TLS Security Profile Try to encrypt profiles on storage (if supported by Android OS) + Notification permission missing. This is used to display the status of the VPN and to notify about required user interaction like multi factor authorisation.\n\nClick this message to give the app notification permissions diff --git a/main/src/ui/res/layout/vpn_profile_list.xml b/main/src/ui/res/layout/vpn_profile_list.xml index 7dd2eb36..a4e1b809 100644 --- a/main/src/ui/res/layout/vpn_profile_list.xml +++ b/main/src/ui/res/layout/vpn_profile_list.xml @@ -24,7 +24,7 @@ android:drawablePadding="@dimen/stdpadding" tools:visibility="visible" android:visibility="gone" - android:text="Notification permission missing. This is used to display the status of the VPN and go notify about required user interaction like multi factor authorisation.\n\nClick this message to give the app notification permissions" /> + android:text="@string/missing_notification_permission" /> Date: Tue, 18 Apr 2023 14:02:57 +0200 Subject: Use special use foregroundServiceType This seems to be the only type we are left with to use. See also https://issuetracker.google.com/issues/278572216 --- main/src/main/AndroidManifest.xml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/main/src/main/AndroidManifest.xml b/main/src/main/AndroidManifest.xml index 1afe859e..4a8348e1 100644 --- a/main/src/main/AndroidManifest.xml +++ b/main/src/main/AndroidManifest.xml @@ -8,6 +8,7 @@ + @@ -52,11 +53,13 @@ android:name=".core.OpenVPNService" android:exported="true" android:permission="android.permission.BIND_VPN_SERVICE" - android:foregroundServiceType="connectedDevice" + android:foregroundServiceType="specialUse" android:process=":openvpn"> + + Date: Tue, 18 Apr 2023 14:03:36 +0200 Subject: Improve padding on import dialog --- main/src/ui/res/layout/config_converter.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/main/src/ui/res/layout/config_converter.xml b/main/src/ui/res/layout/config_converter.xml index d4e1f820..591de858 100644 --- a/main/src/ui/res/layout/config_converter.xml +++ b/main/src/ui/res/layout/config_converter.xml @@ -35,6 +35,7 @@ android:visibility="gone" /> Date: Wed, 19 Apr 2023 12:35:44 +0200 Subject: Do not show expection of CN parsing in log --- main/src/main/java/de/blinkt/openvpn/core/X509Utils.java | 6 +++--- .../ui/java/de/blinkt/openvpn/fragments/KeyChainSettingsFragment.kt | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/main/src/main/java/de/blinkt/openvpn/core/X509Utils.java b/main/src/main/java/de/blinkt/openvpn/core/X509Utils.java index eeb54675..e5ca561e 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/X509Utils.java +++ b/main/src/main/java/de/blinkt/openvpn/core/X509Utils.java @@ -80,7 +80,7 @@ public class X509Utils { try { X509Certificate cert = (X509Certificate) getCertificatesFromFile(filename)[0]; String friendlycn = getCertificateFriendlyName(cert); - friendlycn = getCertificateValidityString(cert, c.getResources()) + friendlycn; + friendlycn = getCertificateValidityString(cert, c.getResources()) + ", " + friendlycn; return friendlycn; } catch (Exception e) { @@ -146,9 +146,9 @@ public class X509Utils { friendlyName= (String) toString.invoke(subjectName,true,defaultSymbols); - } catch (ClassNotFoundException | IllegalAccessException | NoSuchFieldException | NoSuchMethodException e) { + } catch (ClassNotFoundException | IllegalAccessException | NoSuchFieldException e) { exp =e ; - } catch (InvocationTargetException e) { + } catch (InvocationTargetException | NoSuchMethodException e) { /* Ignore this. Modern Android versions do not expose this */ exp = null; } diff --git a/main/src/ui/java/de/blinkt/openvpn/fragments/KeyChainSettingsFragment.kt b/main/src/ui/java/de/blinkt/openvpn/fragments/KeyChainSettingsFragment.kt index 2444fb25..8430d788 100644 --- a/main/src/ui/java/de/blinkt/openvpn/fragments/KeyChainSettingsFragment.kt +++ b/main/src/ui/java/de/blinkt/openvpn/fragments/KeyChainSettingsFragment.kt @@ -128,6 +128,7 @@ internal abstract class KeyChainSettingsFragment : Settings_Fragment(), View.OnC } if (cert != null) { certstr += X509Utils.getCertificateValidityString(cert, resources) + certstr += ", " certstr += X509Utils.getCertificateFriendlyName(cert) } -- cgit v1.2.3 From 0aa5df0b6e7c61a631bfee6513eb97512aac075f Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Wed, 19 Apr 2023 13:22:04 +0200 Subject: Version 0.7.44 --- main/build.gradle.kts | 2 ++ main/src/main/java/de/blinkt/openvpn/api/AppRestrictions.java | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/main/build.gradle.kts b/main/build.gradle.kts index 9dd87d50..2ef28714 100644 --- a/main/build.gradle.kts +++ b/main/build.gradle.kts @@ -27,6 +27,8 @@ android { targetSdk = 33 versionCode = 198 versionName = "0.7.43" + versionCode = 199 + versionName = "0.7.44" externalNativeBuild { cmake { } diff --git a/main/src/main/java/de/blinkt/openvpn/api/AppRestrictions.java b/main/src/main/java/de/blinkt/openvpn/api/AppRestrictions.java index 573dd070..6815f234 100644 --- a/main/src/main/java/de/blinkt/openvpn/api/AppRestrictions.java +++ b/main/src/main/java/de/blinkt/openvpn/api/AppRestrictions.java @@ -65,7 +65,7 @@ public class AppRestrictions { MessageDigest digest; try { digest = MessageDigest.getInstance("SHA1"); - byte utf8_bytes[] = config.getBytes(); + byte[] utf8_bytes = config.getBytes(); digest.update(utf8_bytes, 0, utf8_bytes.length); return new BigInteger(1, digest.digest()).toString(16); } catch (NoSuchAlgorithmException e) { -- cgit v1.2.3 From 4c0e72f7a213b5204f10cc030155fa26f65e9865 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Fri, 5 May 2023 16:20:44 +0200 Subject: Fix crash on certificate alias import --- .../de/blinkt/openvpn/api/AppRestrictions.java | 24 +++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/main/src/main/java/de/blinkt/openvpn/api/AppRestrictions.java b/main/src/main/java/de/blinkt/openvpn/api/AppRestrictions.java index 6815f234..c2f539ae 100644 --- a/main/src/main/java/de/blinkt/openvpn/api/AppRestrictions.java +++ b/main/src/main/java/de/blinkt/openvpn/api/AppRestrictions.java @@ -14,7 +14,6 @@ import android.text.TextUtils; import de.blinkt.openvpn.VpnProfile; import de.blinkt.openvpn.core.ConfigParser; -import de.blinkt.openvpn.core.Connection; import de.blinkt.openvpn.core.Preferences; import de.blinkt.openvpn.core.ProfileManager; import de.blinkt.openvpn.core.VpnStatus; @@ -135,14 +134,14 @@ public class AppRestrictions { if (vpnProfile != null) { // Profile exists, check if need to update it if (ovpnHash.equals(vpnProfile.importedProfileHash)) { - addCertificateAlias(vpnProfile, certAlias); + addCertificateAlias(vpnProfile, certAlias, c); // not modified skip to next profile continue; } } - addProfile(c, ovpn, uuid, name, vpnProfile); - addCertificateAlias(vpnProfile, certAlias); + vpnProfile = addProfile(c, ovpn, uuid, name, vpnProfile); + addCertificateAlias(vpnProfile, certAlias, c); } Vector profilesToRemove = new Vector<>(); @@ -188,10 +187,13 @@ public class AppRestrictions { * If certAlias is non-null will modify the profile type to use the keystore variant of * the authentication method and will also set the keystore alias */ - private void addCertificateAlias(VpnProfile vpnProfile, String certAlias) { - if (certAlias == null) + private void addCertificateAlias(VpnProfile vpnProfile, String certAlias, Context c) { + if (certAlias == null || vpnProfile == null) return; + int oldType = vpnProfile.mAuthenticationType; + String oldAlias = vpnProfile.mAlias; + switch (vpnProfile.mAuthenticationType) { case VpnProfile.TYPE_PKCS12: @@ -204,6 +206,12 @@ public class AppRestrictions { break; } vpnProfile.mAlias = certAlias; + + if (!certAlias.equals(oldAlias) || oldType != vpnProfile.mAuthenticationType) + { + ProfileManager pm = ProfileManager.getInstance(c); + pm.saveProfile(c, vpnProfile); + } } private String prepare(String config) { @@ -222,7 +230,7 @@ public class AppRestrictions { ; - private void addProfile(Context c, String config, String uuid, String name, VpnProfile vpnProfile) { + VpnProfile addProfile(Context c, String config, String uuid, String name, VpnProfile vpnProfile) { config = prepare(config); ConfigParser cp = new ConfigParser(); try { @@ -248,9 +256,11 @@ public class AppRestrictions { pm.addProfile(vp); pm.saveProfile(c, vp); pm.saveProfileList(c); + return vp; } catch (ConfigParser.ConfigParseError | IOException | IllegalArgumentException e) { VpnStatus.logException("Error during import of managed profile", e); + return null; } } -- cgit v1.2.3 From 8bb986f5149f1efdece68eec329b693795d8cf75 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Fri, 5 May 2023 16:48:44 +0200 Subject: Fix hash comparison when profile is base64 encoded. Allow going back to non-Alias config --- .../de/blinkt/openvpn/api/AppRestrictions.java | 48 +++++++++++++++++----- 1 file changed, 37 insertions(+), 11 deletions(-) diff --git a/main/src/main/java/de/blinkt/openvpn/api/AppRestrictions.java b/main/src/main/java/de/blinkt/openvpn/api/AppRestrictions.java index c2f539ae..bdab3be3 100644 --- a/main/src/main/java/de/blinkt/openvpn/api/AppRestrictions.java +++ b/main/src/main/java/de/blinkt/openvpn/api/AppRestrictions.java @@ -60,7 +60,8 @@ public class AppRestrictions { c.unregisterReceiver(mRestrictionsReceiver); } - private String hashConfig(String config) { + private String hashConfig(String rawconfig) { + String config = prepare(rawconfig); MessageDigest digest; try { digest = MessageDigest.getInstance("SHA1"); @@ -121,6 +122,10 @@ public class AppRestrictions { continue; } + /* we always use lower case uuid since Android UUID class will use present + * them that way */ + uuid = uuid.toLowerCase(Locale.US); + if (uuid.equals(defaultprofile)) defaultprofileProvisioned = true; @@ -188,22 +193,43 @@ public class AppRestrictions { * the authentication method and will also set the keystore alias */ private void addCertificateAlias(VpnProfile vpnProfile, String certAlias, Context c) { - if (certAlias == null || vpnProfile == null) + if (vpnProfile == null) return; int oldType = vpnProfile.mAuthenticationType; String oldAlias = vpnProfile.mAlias; - switch (vpnProfile.mAuthenticationType) + if (!TextUtils.isEmpty(certAlias)) { + switch (vpnProfile.mAuthenticationType) + { + case VpnProfile.TYPE_PKCS12: + case VpnProfile.TYPE_CERTIFICATES: + vpnProfile.mAuthenticationType = VpnProfile.TYPE_KEYSTORE; + break; + case VpnProfile.TYPE_USERPASS_CERTIFICATES: + case VpnProfile.TYPE_USERPASS_PKCS12: + vpnProfile.mAuthenticationType = VpnProfile.TYPE_USERPASS_KEYSTORE; + break; + } + + } else { - case VpnProfile.TYPE_PKCS12: - case VpnProfile.TYPE_CERTIFICATES: - vpnProfile.mAuthenticationType = VpnProfile.TYPE_KEYSTORE; - break; - case VpnProfile.TYPE_USERPASS_CERTIFICATES: - case VpnProfile.TYPE_USERPASS_PKCS12: - vpnProfile.mAuthenticationType = VpnProfile.TYPE_USERPASS_KEYSTORE; - break; + /* Alias is null, return to non keystore method */ + boolean pkcs12present = !TextUtils.isEmpty(vpnProfile.mPKCS12Filename); + switch (vpnProfile.mAuthenticationType) { + case VpnProfile.TYPE_USERPASS_KEYSTORE: + if (pkcs12present) + vpnProfile.mAuthenticationType = VpnProfile.TYPE_USERPASS_PKCS12; + else + vpnProfile.mAuthenticationType = VpnProfile.TYPE_USERPASS_CERTIFICATES; + break; + case VpnProfile.TYPE_KEYSTORE: + if (pkcs12present) + vpnProfile.mAuthenticationType = VpnProfile.TYPE_PKCS12; + else + vpnProfile.mAuthenticationType = VpnProfile.TYPE_CERTIFICATES; + break; + } } vpnProfile.mAlias = certAlias; -- cgit v1.2.3 From 2bb04a1f0cad2570845a96db4d1e30c441b16d09 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Mon, 8 May 2023 22:45:38 +0200 Subject: Allow setting remote control apps via managed configuration Closes ##1610 Signed-off-by: Arne Schwabe --- .../de/blinkt/openvpn/api/AppRestrictions.java | 67 ++++++++++++++++++---- .../de/blinkt/openvpn/api/ExternalAppDatabase.java | 48 ++++++++++++++-- .../de/blinkt/openvpn/core/OpenVPNService.java | 6 +- main/src/main/res/values/untranslatable.xml | 5 ++ main/src/main/res/xml/app_restrictions.xml | 66 ++++++++++++--------- .../de/blinkt/openvpn/fragments/GeneralSettings.kt | 4 ++ 6 files changed, 152 insertions(+), 44 deletions(-) diff --git a/main/src/main/java/de/blinkt/openvpn/api/AppRestrictions.java b/main/src/main/java/de/blinkt/openvpn/api/AppRestrictions.java index bdab3be3..8a5d1c71 100644 --- a/main/src/main/java/de/blinkt/openvpn/api/AppRestrictions.java +++ b/main/src/main/java/de/blinkt/openvpn/api/AppRestrictions.java @@ -14,6 +14,7 @@ import android.text.TextUtils; import de.blinkt.openvpn.VpnProfile; import de.blinkt.openvpn.core.ConfigParser; +import de.blinkt.openvpn.core.OpenVPNService; import de.blinkt.openvpn.core.Preferences; import de.blinkt.openvpn.core.ProfileManager; import de.blinkt.openvpn.core.VpnStatus; @@ -93,12 +94,61 @@ public class AppRestrictions { VpnStatus.logError(String.format(Locale.US, "App restriction version %s does not match expected version %d", configVersion, CONFIG_VERSION)); return; } - Parcelable[] profileList = restrictions.getParcelableArray(("vpn_configuration_list")); + Parcelable[] profileList = restrictions.getParcelableArray("vpn_configuration_list"); if (profileList == null) { VpnStatus.logError("App restriction does not contain a profile list (vpn_configuration_list)"); return; } + importVPNProfiles(c, restrictions, profileList); + setAllowedRemoteControl(c, restrictions); + + setMiscSettings(c, restrictions); + } + + private void setAllowedRemoteControl(Context c, Bundle restrictions) { + Parcelable[] allowedApps = restrictions.getParcelableArray("allowed_remote_access"); + ExternalAppDatabase extapps = new ExternalAppDatabase(c); + + if (allowedApps == null) + { + extapps.setFlagManagedConfiguration(false); + return; + } + + HashSet restrictionApps = new HashSet<>(); + + for (Parcelable allowedApp: allowedApps) { + if (!(allowedApp instanceof Bundle)) { + VpnStatus.logError("App restriction allowed app has wrong type"); + continue; + } + String package_name = ((Bundle) allowedApp).getString("package_name"); + restrictionApps.add(package_name); + } + + extapps.setFlagManagedConfiguration(true); + extapps.clearAllApiApps(); + + if(!extapps.getExtAppList().equals(restrictionApps)) + { + extapps.setAllowedApps(restrictionApps); + } + } + + private static void setMiscSettings(Context c, Bundle restrictions) { + SharedPreferences defaultPrefs = Preferences.getDefaultSharedPreferences(c); + + if(restrictions.containsKey("screenoffpausevpn")) + { + boolean pauseVPN = restrictions.getBoolean("screenoffpausevpn"); + SharedPreferences.Editor editor = defaultPrefs.edit(); + editor.putBoolean("screenoff", pauseVPN); + editor.apply(); + } + } + + private void importVPNProfiles(Context c, Bundle restrictions, Parcelable[] profileList) { Set provisionedUuids = new HashSet<>(); String defaultprofile = restrictions.getString("defaultprofile", null); @@ -117,7 +167,7 @@ public class AppRestrictions { String name = p.getString("name"); String certAlias = p.getString("certificate_alias"); - if (uuid == null || ovpn == null || name == null) { + if (TextUtils.isEmpty(uuid) || TextUtils.isEmpty(ovpn) || TextUtils.isEmpty(name)) { VpnStatus.logError("App restriction profile misses uuid, ovpn or name key"); continue; } @@ -125,6 +175,8 @@ public class AppRestrictions { /* we always use lower case uuid since Android UUID class will use present * them that way */ uuid = uuid.toLowerCase(Locale.US); + if (defaultprofile != null) + defaultprofile = defaultprofile.toLowerCase(Locale.US); if (uuid.equals(defaultprofile)) defaultprofileProvisioned = true; @@ -178,14 +230,6 @@ public class AppRestrictions { } } } - - if(restrictions.containsKey("screenoffpausevpn")) - { - boolean pauseVPN = restrictions.getBoolean("screenoffpausevpn"); - SharedPreferences.Editor editor = defaultPrefs.edit(); - editor.putBoolean("screenoff", pauseVPN); - editor.apply(); - } } /** @@ -196,6 +240,9 @@ public class AppRestrictions { if (vpnProfile == null) return; + if (certAlias == null) + certAlias = ""; + int oldType = vpnProfile.mAuthenticationType; String oldAlias = vpnProfile.mAlias; diff --git a/main/src/main/java/de/blinkt/openvpn/api/ExternalAppDatabase.java b/main/src/main/java/de/blinkt/openvpn/api/ExternalAppDatabase.java index 57e82778..fe0afdb6 100644 --- a/main/src/main/java/de/blinkt/openvpn/api/ExternalAppDatabase.java +++ b/main/src/main/java/de/blinkt/openvpn/api/ExternalAppDatabase.java @@ -13,11 +13,13 @@ import android.content.SharedPreferences.Editor; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.os.Binder; +import android.widget.Toast; import java.util.HashSet; import java.util.Set; import de.blinkt.openvpn.core.Preferences; +import de.blinkt.openvpn.core.VpnStatus; import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK; @@ -30,12 +32,34 @@ public class ExternalAppDatabase { } private final static String PREFERENCES_KEY = "allowed_apps"; + private final static String PREFERENCES_KEY_MANAGED_CONFIG = "allowed_apps_managed"; + + public void setFlagManagedConfiguration(boolean managed) + { + SharedPreferences prefs = Preferences.getDefaultSharedPreferences(mContext); + Editor prefedit = prefs.edit(); + + prefedit.putBoolean(PREFERENCES_KEY_MANAGED_CONFIG, managed); + increaseWorkaroundCounter(prefs, prefedit); + prefedit.apply(); + } + + public boolean isManagedConfiguration() + { + SharedPreferences prefs = Preferences.getDefaultSharedPreferences(mContext); + return prefs.getBoolean(PREFERENCES_KEY_MANAGED_CONFIG, false); + } + + private static void increaseWorkaroundCounter(SharedPreferences prefs, Editor prefedit) { + // Workaround for bug + int counter = prefs.getInt("counter", 0); + prefedit.putInt("counter", counter + 1); + } boolean isAllowed(String packagename) { Set allowedapps = getExtAppList(); - return allowedapps.contains(packagename); - + return allowedapps.contains(packagename); } public Set getExtAppList() { @@ -50,14 +74,22 @@ public class ExternalAppDatabase { saveExtAppList(allowedapps); } + public boolean checkAllowingModifyingRemoteControl(Context c) { + if (isManagedConfiguration()) { + Toast.makeText(c, "Remote control apps are manged by managed configuration, cannot change", Toast.LENGTH_LONG).show(); + VpnStatus.logError("Remote control apps are manged by managed configuration, cannot change"); + return false; + } + return true; + } + private void saveExtAppList( Set allowedapps) { SharedPreferences prefs = Preferences.getDefaultSharedPreferences(mContext); Editor prefedit = prefs.edit(); // Workaround for bug prefedit.putStringSet(PREFERENCES_KEY, allowedapps); - int counter = prefs.getInt("counter", 0); - prefedit.putInt("counter", counter + 1); + increaseWorkaroundCounter(prefs, prefedit); prefedit.apply(); } @@ -83,9 +115,9 @@ public class ExternalAppDatabase { } } catch (PackageManager.NameNotFoundException e) { // App not found. Remove it from the list - removeApp(appPackage); + if (!isManagedConfiguration()) + removeApp(appPackage); } - } throw new SecurityException("Unauthorized OpenVPN API Caller"); } @@ -105,4 +137,8 @@ public class ExternalAppDatabase { return false; } } + + public void setAllowedApps(Set restrictionApps) { + saveExtAppList(restrictionApps); + } } diff --git a/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java b/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java index 88c253ec..115d6319 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java +++ b/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java @@ -180,10 +180,14 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac } } + + @Override public void addAllowedExternalApp(String packagename) throws RemoteException { ExternalAppDatabase extapps = new ExternalAppDatabase(OpenVPNService.this); - extapps.addApp(packagename); + if(extapps.checkAllowingModifyingRemoteControl(this)) { + extapps.addApp(packagename); + } } @Override diff --git a/main/src/main/res/values/untranslatable.xml b/main/src/main/res/values/untranslatable.xml index 651af1d3..9da7f522 100644 --- a/main/src/main/res/values/untranslatable.xml +++ b/main/src/main/res/values/untranslatable.xml @@ -85,6 +85,11 @@ Failed to negotiate cipher with server URL Pause VPN when screen is off and less than 64 kB transferred data in 60s + List of apps that are allowed to use the remote AIDL. If this list is in the restrictions, the app will not allowe any changes to the list by the user. + Package name of the allow app (e.g. de.blinkt.openvpn.remoteapp) + Package + Allowed remote access app + Remote API access insecure diff --git a/main/src/main/res/xml/app_restrictions.xml b/main/src/main/res/xml/app_restrictions.xml index 0451fd25..55bc6888 100644 --- a/main/src/main/res/xml/app_restrictions.xml +++ b/main/src/main/res/xml/app_restrictions.xml @@ -1,5 +1,4 @@ - - @@ -7,49 +6,47 @@ + android:title="@string/apprest_ver" /> + android:restrictionType="bundle_array" + android:title="@string/apprest_vpnlist"> + android:restrictionType="bundle" + android:title="@string/apprest_vpnconf"> + android:title="@string/apprest_uuid" /> + /> + android:key="ovpn" + android:restrictionType="string" + android:title="@string/apprest_ovpn" /> + android:key="certificate_alias" + android:restrictionType="string" + android:title="@string/apprest_certalias" /> - + Date: Mon, 5 Jun 2023 13:21:01 +0200 Subject: Rename Onboot to always active Also try to keep that connection always active --- .../main/java/de/blinkt/openvpn/OnBootReceiver.java | 4 ++-- .../de/blinkt/openvpn/api/ExternalOpenVPNService.java | 2 +- .../java/de/blinkt/openvpn/core/ExtAuthHelper.java | 1 - .../java/de/blinkt/openvpn/core/OpenVPNService.java | 19 ++++++++++++++++++- .../java/de/blinkt/openvpn/core/ProfileManager.java | 2 +- main/src/main/res/values/strings.xml | 4 ++-- .../de/blinkt/openvpn/fragments/GeneralSettings.kt | 6 ++++-- .../de/blinkt/openvpn/fragments/SendDumpFragment.java | 7 ++++++- main/src/ui/res/xml/general_settings.xml | 4 ++-- 9 files changed, 36 insertions(+), 13 deletions(-) diff --git a/main/src/main/java/de/blinkt/openvpn/OnBootReceiver.java b/main/src/main/java/de/blinkt/openvpn/OnBootReceiver.java index 4827bf10..58c954c9 100644 --- a/main/src/main/java/de/blinkt/openvpn/OnBootReceiver.java +++ b/main/src/main/java/de/blinkt/openvpn/OnBootReceiver.java @@ -23,8 +23,8 @@ public class OnBootReceiver extends BroadcastReceiver { final String action = intent.getAction(); SharedPreferences prefs = Preferences.getDefaultSharedPreferences(context); - boolean useStartOnBoot = prefs.getBoolean("restartvpnonboot", false); - if (!useStartOnBoot) + boolean alwaysActive = prefs.getBoolean("restartvpnonboot", false); + if (!alwaysActive) return; if(Intent.ACTION_BOOT_COMPLETED.equals(action) || Intent.ACTION_MY_PACKAGE_REPLACED.equals(action)) { diff --git a/main/src/main/java/de/blinkt/openvpn/api/ExternalOpenVPNService.java b/main/src/main/java/de/blinkt/openvpn/api/ExternalOpenVPNService.java index 8573af79..c6a4339a 100644 --- a/main/src/main/java/de/blinkt/openvpn/api/ExternalOpenVPNService.java +++ b/main/src/main/java/de/blinkt/openvpn/api/ExternalOpenVPNService.java @@ -341,7 +341,7 @@ public class ExternalOpenVPNService extends Service implements StateListener { - class UpdateMessage { + static class UpdateMessage { public String state; public String logmessage; public ConnectionStatus level; diff --git a/main/src/main/java/de/blinkt/openvpn/core/ExtAuthHelper.java b/main/src/main/java/de/blinkt/openvpn/core/ExtAuthHelper.java index d102dce2..39151646 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/ExtAuthHelper.java +++ b/main/src/main/java/de/blinkt/openvpn/core/ExtAuthHelper.java @@ -42,7 +42,6 @@ public class ExtAuthHelper { public static void setExternalAuthProviderSpinnerList(Spinner spinner, String selectedApp) { Context c = spinner.getContext(); - final PackageManager pm = c.getPackageManager(); ArrayList extProviders = getExternalAuthProviderList(c); int selectedPos = -1; diff --git a/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java b/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java index 9e42378b..39aaef57 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java +++ b/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java @@ -20,6 +20,7 @@ import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; +import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.content.pm.ShortcutManager; import android.content.res.Configuration; @@ -228,8 +229,22 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac endVpnService(); } + private boolean isAlwaysActiveEnabled() + { + SharedPreferences prefs = Preferences.getDefaultSharedPreferences(this); + return prefs.getBoolean("restartvpnonboot", false); + } + + boolean isVpnAlwaysOnEnabled() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + return isAlwaysOn(); + } + return false; + } + + private void endVpnService() { - if (!isAlwaysOn()) { + if (!isVpnAlwaysOnEnabled() && !isAlwaysActiveEnabled()) { /* if we should be an always on VPN, keep the timer running */ keepVPNAlive.unscheduleKeepVPNAliveJobService(this); } @@ -883,6 +898,8 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac /* On Tiramisu we install the routes exactly like promised */ VpnStatus.logDebug(R.string.routes_debug, TextUtils.join(", ", positiveIPv4Routes), TextUtils.join(", ", positiveIPv6Routes)); } + //VpnStatus.logInfo(String.format("Always active %s", isAlwaysOn() ? "on" : "off")); + setAllowedVpnPackages(builder); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) { // VPN always uses the default network diff --git a/main/src/main/java/de/blinkt/openvpn/core/ProfileManager.java b/main/src/main/java/de/blinkt/openvpn/core/ProfileManager.java index 9f5c3ab5..1f12c2fa 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/ProfileManager.java +++ b/main/src/main/java/de/blinkt/openvpn/core/ProfileManager.java @@ -51,7 +51,7 @@ public class ProfileManager { return instance.profiles.get(key); } - private static void checkInstance(Context context) { + private synchronized static void checkInstance(Context context) { if (instance == null) { instance = new ProfileManager(); ProfileEncryption.initMasterCryptAlias(); diff --git a/main/src/main/res/values/strings.xml b/main/src/main/res/values/strings.xml index f68d6983..a83d091b 100755 --- a/main/src/main/res/values/strings.xml +++ b/main/src/main/res/values/strings.xml @@ -203,8 +203,8 @@ Using proxy %1$s %2$s Use system proxy Use the system wide configuration for HTTP/HTTPS proxies to connect. - OpenVPN will connect the specified VPN if it was active on system boot. Please read the connection warning FAQ before using this option on Android < 5.0. - Connect on boot + OpenVPN will connect the specified VPN on system boot and will try to keep the VPN connected. + Keep VPN connected Ignore Restart Configuration changes are applied after restarting the VPN. (Re)start the VPN now? diff --git a/main/src/ui/java/de/blinkt/openvpn/fragments/GeneralSettings.kt b/main/src/ui/java/de/blinkt/openvpn/fragments/GeneralSettings.kt index 3c878d4d..6ba7c6fd 100644 --- a/main/src/ui/java/de/blinkt/openvpn/fragments/GeneralSettings.kt +++ b/main/src/ui/java/de/blinkt/openvpn/fragments/GeneralSettings.kt @@ -73,8 +73,10 @@ class GeneralSettings : PreferenceFragmentCompat(), Preference.OnPreferenceClick findPreference("restartvpnonboot") as CheckBoxPreference if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { - val vpn:VpnService = VpnService() - startOnBoot.isChecked = vpn.isAlwaysOn + val vpn = VpnService() + if (vpn.isAlwaysOn) + /* This is not reliable when the VPN is not active */ + startOnBoot.isChecked } startOnBoot.onPreferenceChangeListener = diff --git a/main/src/ui/java/de/blinkt/openvpn/fragments/SendDumpFragment.java b/main/src/ui/java/de/blinkt/openvpn/fragments/SendDumpFragment.java index 6d4d2968..ae90f3d5 100644 --- a/main/src/ui/java/de/blinkt/openvpn/fragments/SendDumpFragment.java +++ b/main/src/ui/java/de/blinkt/openvpn/fragments/SendDumpFragment.java @@ -36,7 +36,12 @@ public class SendDumpFragment extends Fragment { if (c.getCacheDir() == null) return null; - for (File f : c.getCacheDir().listFiles()) { + File[] filesList = c.getCacheDir().listFiles(); + + if (filesList == null) + return null; + + for (File f : filesList) { if (!f.getName().endsWith(".dmp")) continue; diff --git a/main/src/ui/res/xml/general_settings.xml b/main/src/ui/res/xml/general_settings.xml index 55eedb94..a1920aaf 100644 --- a/main/src/ui/res/xml/general_settings.xml +++ b/main/src/ui/res/xml/general_settings.xml @@ -39,8 +39,8 @@ + android:summary="@string/keep_vpn_connected_summary" + android:title="@string/keep_vpn_connected"/> Date: Mon, 5 Jun 2023 16:59:35 +0200 Subject: Update translations --- main/src/ui/res/values-ar/plurals.xml | 2 +- main/src/ui/res/values-ar/strings.xml | 3 +- main/src/ui/res/values-be/strings.xml | 2 - main/src/ui/res/values-ca/strings.xml | 2 - main/src/ui/res/values-cs/strings.xml | 2 - main/src/ui/res/values-da/strings.xml | 104 +++++++++++++++--------------- main/src/ui/res/values-de/strings.xml | 10 +-- main/src/ui/res/values-el/strings.xml | 2 - main/src/ui/res/values-es/arrays.xml | 18 +++--- main/src/ui/res/values-es/plurals.xml | 4 +- main/src/ui/res/values-es/strings.xml | 2 - main/src/ui/res/values-et/strings.xml | 2 - main/src/ui/res/values-fa/plurals.xml | 2 +- main/src/ui/res/values-fa/strings.xml | 3 +- main/src/ui/res/values-fr/arrays.xml | 6 +- main/src/ui/res/values-fr/strings.xml | 5 +- main/src/ui/res/values-he/strings.xml | 5 +- main/src/ui/res/values-hu/strings.xml | 40 ++++++++++-- main/src/ui/res/values-in/strings.xml | 2 - main/src/ui/res/values-it/strings.xml | 3 +- main/src/ui/res/values-ja/strings.xml | 2 - main/src/ui/res/values-ko/strings.xml | 2 - main/src/ui/res/values-nl/arrays.xml | 2 +- main/src/ui/res/values-nl/strings.xml | 2 - main/src/ui/res/values-no/strings.xml | 1 - main/src/ui/res/values-pl/arrays.xml | 4 +- main/src/ui/res/values-pl/strings.xml | 8 ++- main/src/ui/res/values-pt-rBR/arrays.xml | 4 +- main/src/ui/res/values-pt-rBR/strings.xml | 4 +- main/src/ui/res/values-pt/strings.xml | 1 - main/src/ui/res/values-ro/strings.xml | 2 - main/src/ui/res/values-ru/arrays.xml | 4 +- main/src/ui/res/values-ru/strings.xml | 17 +++-- main/src/ui/res/values-si/strings.xml | 2 - main/src/ui/res/values-sk/strings.xml | 2 - main/src/ui/res/values-sl/strings.xml | 2 - main/src/ui/res/values-sr-rSP/arrays.xml | 6 ++ main/src/ui/res/values-sr-rSP/strings.xml | 2 - main/src/ui/res/values-sv/arrays.xml | 16 ++++- main/src/ui/res/values-sv/strings.xml | 38 ++++++++++- main/src/ui/res/values-tr/strings.xml | 3 +- main/src/ui/res/values-uk/strings.xml | 3 +- main/src/ui/res/values-vi/strings.xml | 2 - main/src/ui/res/values-zh-rCN/strings.xml | 3 +- main/src/ui/res/values-zh-rTW/arrays.xml | 2 +- main/src/ui/res/values-zh-rTW/strings.xml | 9 ++- 46 files changed, 206 insertions(+), 156 deletions(-) diff --git a/main/src/ui/res/values-ar/plurals.xml b/main/src/ui/res/values-ar/plurals.xml index 8bdb3d29..1dfa5da3 100644 --- a/main/src/ui/res/values-ar/plurals.xml +++ b/main/src/ui/res/values-ar/plurals.xml @@ -1,7 +1,7 @@ - %d + %d months left شهر واحد متبقي متبقي شهرين %d شهر متبقي diff --git a/main/src/ui/res/values-ar/strings.xml b/main/src/ui/res/values-ar/strings.xml index 65bba1ff..acc98475 100644 --- a/main/src/ui/res/values-ar/strings.xml +++ b/main/src/ui/res/values-ar/strings.xml @@ -204,8 +204,6 @@ استخدام الخادم الوكيل البروكسي %1$s %2$s استخدام بروكسي النظام استخدام تكوين النظام على نطاق واسع لوكلاء HTTP/HTTPS للاتصال. - سيقوم OpenVPN بتوصيل VPN المحدد إذا كان نشطًا في تمهيد النظام. يرجى قراءة الأسئلة الشائعة الخاصة بتحذير الاتصال قبل استخدام هذا الخيار على Android < 5.0. - الاتصال عند تشغيل الجهاز تجاهل إعادة التشغيل يتم تطبيق تغييرات التكوين بعد إعادة تشغيل VPN. (إعادة) بدء VPN الآن؟ @@ -508,4 +506,5 @@ السماح بالترجمات التي يساهم بها المجتمع للسماح للتطبيق بالترجمة مع الترجمات التي يساهم بها المجتمع. يتطلب إعادة تشغيل التطبيق للتفعيل. ملف تعريف أمان TLS + Try to encrypt profiles on storage (if supported by Android OS) diff --git a/main/src/ui/res/values-be/strings.xml b/main/src/ui/res/values-be/strings.xml index bb776730..5ab837f8 100644 --- a/main/src/ui/res/values-be/strings.xml +++ b/main/src/ui/res/values-be/strings.xml @@ -201,8 +201,6 @@ Выкарыстоўваецца проксі-сервер %1$s %2$s Выкарыстоўваць сістэмны проксі Скарыстайцеся сістэмнай канфігурацыяй проксі HTTP/HTTPS для злучэння. - OpenVPN падлучыць азначаны VPN, калі ён быў актыўны падчас загрузкі сістэмы. Калі ласка, прачытайце ў радзеле \"Частыя пытанні\" пра папярэджанні пры злучэнні перад тым, як выкарыстоўваць гэты параметр на Android < 5.0. - Злучаць пры загрузцы Ігнараваць Перазапуск Змены ў канфігурацыі адбудуцца толькі пасля перазапуску VPN. (Пера)запусціць VPN? diff --git a/main/src/ui/res/values-ca/strings.xml b/main/src/ui/res/values-ca/strings.xml index 6751130a..977a9aae 100644 --- a/main/src/ui/res/values-ca/strings.xml +++ b/main/src/ui/res/values-ca/strings.xml @@ -132,8 +132,6 @@ Avançat Inici rapid Utiliza el proxy del sistema - OpenVPN es conectarà a la VPN especificada si està actiu durant l\'inici del sistema. Si us plau, llegiu el FAQ de l\'advertència de conexió abans de fer servir aquesta opció en Android < 5.0. - Conecta al reiniciar Ignorar Reinicia Els canvis de configuració s\'apliquen desprès de reinicar la VPN. (Re)inicar la VPN ara? diff --git a/main/src/ui/res/values-cs/strings.xml b/main/src/ui/res/values-cs/strings.xml index 7e02c0e2..2d26b8f8 100644 --- a/main/src/ui/res/values-cs/strings.xml +++ b/main/src/ui/res/values-cs/strings.xml @@ -201,8 +201,6 @@ Používám proxy %1$s %2$s Použít systémovou proxy K připojení použít systémové nastavení pro HTTP/HTTPS. - OpenVPN se automaticky připojí k vybrané VPN po startu systému. Prosím věnujte pozornost upozornění ve FAQ pro verzi Android < 5.0. - Připojit po spuštění systému Ignorovat Restartovat Změna nastavení začne platit až po restartu VPN. Restartovat teď? diff --git a/main/src/ui/res/values-da/strings.xml b/main/src/ui/res/values-da/strings.xml index fccd2937..67bdc845 100644 --- a/main/src/ui/res/values-da/strings.xml +++ b/main/src/ui/res/values-da/strings.xml @@ -5,51 +5,51 @@ --> OpenVPN til Android - Server Adresse: - Server Port: + Serveradresse: + Serverport: Placering - Kan ikke læse mappen + Mappe kan ikke læses Vælg - Annuller + Afbryd Ingen data - LZO komprimering + LZO-komprimering Intet certifikat Klientcertifikat - Klientcertifikat nøgle - PKCS12 fil - CA Certifikat - Du skal vælge et certifikat - Kildekode og fejl tracker findes på http://code.google.com/p/ics-openvpn/ - Dette program bruger følgende komponenter (se kildekoden for detaljer om licenserne) + Klientcertifikatnøgle + PKCS12-fil + CA-certifikat + Valg af certifikat er obligatorisk + Kildekode- og problematik-tracker findes på http://code.google.com/p/ics-openvpn/ + Dette program bruger flg. komponenter (se kildekoden for alle oplysninger om licenserne) Om Profiler Type - PKCS12 kodeord + PKCS12-adgangskode Vælg… - Du skal vælge en fil + Valg af fil er obligatorisk Brug TLS-godkendelse - TLS retning - Indtast IPv6-adresse /netmaske i CIDR format (fx 2000:dd::23/64) - Indtast IPv4-adresse/netmaske i CIDR format (f.eks 1.2.3.4/24) - IPv4 adresse - IPv6 adresse - Angiv brugerdefinerede OpenVPN indstillinger. Benyt med forsigtighed. Bemærk også, at mange af tun relateret OpenVPN indstillinger ikke kan understøttes af VPNSettings. Hvis du syntes en vigtig indstilling mangler, så kontakt os + TLS-retning + Angiv IPv6-adresse/-netmaske i CIDR-formatet (f.eks. 2000:dd::23/64) + Angiv IPv4-adresse/-netmaske i CIDR-formatet (f.eks 1.2.3.4/24) + IPv4-adresse + IPv6-adresse + Angiv tilpassede OpenVPN-indstillinger. Benyt med omtanke. Bemærk også, at mange af de tun-relateret OpenVPN-indstillinger ikke kan understøttes af VPNSettings. Kontakt forfatteren, hvis man mener, at en vigtig indstilling mangler Brugernavn (tomt for ingen godkendelse) - Kodeord - For statisk konfiguration vil TLS autentifikations nøglerne blive brugt som statiske nøgler - Konfigurer VPN + Adgangskode + Ved statisk opsætning bruges TLS Auth-nøglerne som statiske nøgler + Opsæt VPN\'et Tilføj profil - Indtast et navn, der identificerer den nye profil - Indtast venligst et unikt profilnavn + Angiv et navn til den nye profil + Angiv et unikt profilnavn Profilnavn - Du skal vælge et bruger certifikat - Vælg et CA-certifikat eller aktivér peer-fingeraftrykskontrol (obligatorisk) + Valg af Brugercertifikat er obligatorisk + Obligatorisk valg af CA-certifikat eller aktivering af peer-fingeraftrykstjek Ingen fejl fundet - Fejl ved konfiguration + Fejl i opsætning Fejl ved tolkning af IPv4-adresse - Fejl med den brugerdefinerede rute - (efterlad tomt for forespørgsel efter efterspørgsel) - OpenVPN genvej + Fejl ved tolkning af de tilpassede ruter + (lad stå tomt for forespørgsel efter behov) + OpenVPN-genvej Opretter forbindelse til VPN… Profil angivet i genvejen ikke fundet Tilfældig værts præfiks @@ -68,33 +68,33 @@ Kontrollerer Remote Server Certificate Subject DN Kontrol af Certifikat Værtsnavn Angiv hvilket check der anvendes til at verificere det eksterne certifikat DN (e.g. C=DE, L=Paderborn, OU=Avian IP Carriers, CN=openvpn.blinkt.de)\n\nAngiv den komplette DN eller RDN (f.eks. openvpn.blinkt.de) eller et RDN-præfiks til verificering.\n\nNår der anvendes RDN-præfiks vil \"Server\" matche \"Server-1\" og \"Server-2\"\n\nEfterlades feltet tomt vil RDN tjekkes mod serverens værtsnavn.\n\nFor flere detaljer, se OpenVPN 2.3.1+ manpage\'en under —verify-x509-name - Fjerncertifikat emne + Fjerncertifikatemne Aktiverer TLS Key-godkendelse - TLS godkendelses fil - Anmoder IP-adresser, ruter og tidsindstillingerne fra serveren. - Ingen oplysninger anmodes fra serveren. Indstillinger skal angives nedenfor. + TLS Auth-fil + Anmoder om IP-adresser, rutninger og tidsindstillingerne fra serveren. + Ingen oplysninger anmodet fra serveren. Indstillinger skal angives nedenfor. Pull-indstillinger DNS - Tilsidesæt DNS-indstillinger fra Server - Brug dine egne DNS-servere + Tilsidesæt DNS-indstillinger efter Server + Brug egne DNS-servere søgeDomæne - DNS-server, som skal anvendes. + DNS-serveren, der skal anvendes. DNS-server - Sekundær DNS-Server som bruges, hvis den normale DNS-serveren ikke kan nås. - Backup DNS-server - Ignorer modtagne routes - Ignorer ruter modtaget fra serveren. - Omdiriger al trafik over VPN\'en + Sekundær DNS-Server der bruges, hvis den normale DNS-server er utilgængelig. + Reserve DNS-server + Ignorér pushede rutninger + Ignorér rutninger pushet fra serveren. + Omdirigerer al trafik over VPN\'et Brug standard Rute - Indtast brugerdefinerede ruter. Skriv kun destinationen i CIDR format. \"10.0.0.0/8 2002::/16\" vil dirigere netværkene 10.0.0.0/8 og 2002::/16 gennem VPN\'en. - Ruter der IKKE skal dirigeres gennem VPN\'en. Brug samme syntax som til de inkluderede ruter. - Brugerdefinerede ruter - Ekskluderede netværk - Log informationsniveau - Tillad bekræftede pakker fra alle IP\'er + Angiv tilpassede rutninger. Angiv kun destinationen i CIDR-format. \"10.0.0.0/8 2002::/16\" vil dirigere netværkene 10.0.0.0/8 og 2002::/16 gennem VPN\'et. + Rutninger, som IKKE skal dirigeres gennem VPN\'et. Brug samme syntax som til de inkluderede ruter. + Tilpassede rutninger + Udelukkede netværk + Detaljegrad for logindhold + Tillader bekræftede pakker fra alle IP\'er Tillad flydende server - Brugerdefinerede indstillinger - Rediger VPN-indstillinger + Tilpassede indstillinger + Redigér VPN-indstillinger Fjern VPN-profilen \'%s\'? På nogle brugerdefinerede ICS images kan rettighederne til /dev/tun være forkerte, eller tun modulet kan mangle fuldstændigt. Til CM9 images kan du prøve \"fix ejerskab\" valgmuligheden under generelle indstillinger Kunne ikke åbne tun grænsefladen @@ -204,8 +204,6 @@ Anvender proxy %1$s %2$s Anvend system-proxy Anvend systemets globale konfiguration til forbindelse af HTTP/HTTPS proxy\'er. - OpenVPN vil forbinde til den angivne VPN hvis den var aktiv under system opstart. Læs venligst forbindelses advarsel FAQ før du bruger demme valgmulighed på Android < 5.0. - Forbind ved opstart Ignorer Genstart Konfigurationsændringer træder i kræft efter VPN\'en genstartes. (Gen)start VPN\'en nu? @@ -490,6 +488,7 @@ Importér profil fra ekstern server Standard VPN ikke opsat. Opsæt standard-VPN, før denne mulighed aktiveres. Internt WebView + Der findes variationer af denne meddelelse afhængigt af den nøjagtige situation. De har alle det til fælles, at server og klient ikke kunne enes om en fælles chiffer. Hovedårsagerne er: <ul><li> Der er stadig ikke tillid til det faktum, at OpenVPN 2.4 og ældre tillader BF-CBC i standardopsætningen (ved ingen angivet --cipher). OpenVPN 2.5 tillader som standard ikke dette længere, da det er en <a href=\"https://community.openvpn.net/openvpn/wiki/SWEET32\">defekt/forældet chiffer</a>.</li&gt ;<li>Serveren kører OpenVPN 2.3 (eller endnu ældre) med --enable-small (mindst 4-5 år gammel OpenVPN)</li><li></ul>defekt opsætning (f.eks. ikke-matchende data-chifre på klient og server)</li> <p> <a href=\"https://github.com/OpenVPN/openvpn/blob/master/doc/man-sections/cipher-negotiation.rst\">OpenVPN manualsektionen om chifferforhandling</a> forklarer de forskellige scenarier for chifferforhandling ganske godt, samt hvad der skal gøres i disse situationer.<p>TP-Link-enheder bruger en mindst 5 år gammel OpenVPN 2.3.x-version (muligvis ældre) på deres enheder, selv i 2019-/ 2020-modeller.<p>Sidst, men ikke mindst, er der en populær VPN-udbyder, der har en ødelagt server, der altid annoncerer, at den bruger \'BF-CBC\', fordi dens udvikler mente, at det ville være en god idé at oprette en proprietær chiffer-forhandlings patch, der er inkompatibel med standard OpenVPN.<p> Sammenfattende: Alle raske opsætninger bør ikke få disse fejl, men (bortset fra den ødelagte VPN-udbyderserver) kan klienten overtales til stadig at oprette forbindelse (fikser symptomet, men ikke det egentlige problem). Når der oprettes forbindelse til ældre servere, bør muligheden for kompatibilitetstilstand i basisindstillingerne for et VPN være i stand til at løse de fleste af de alm. kompatibilitetsproblemer. Tjek peer-certifikatfingeraftryk (Angiv servercertifikat(ets/ernes) SHA256-fingeraftryk) HTTP Proxy: %1$s %2$d @@ -503,4 +502,5 @@ Tillad fællesskabsbidraget oversættelser Tillader app-oversættelser bidraget af fællesskabet. Kræver en genstart af appen for effektuering. TLS-sikkerhedsprofil + Prøv at kryptere lagrede profiler (hvis understøttet af Android OS) diff --git a/main/src/ui/res/values-de/strings.xml b/main/src/ui/res/values-de/strings.xml index 223b2ab5..85e7882e 100644 --- a/main/src/ui/res/values-de/strings.xml +++ b/main/src/ui/res/values-de/strings.xml @@ -204,8 +204,8 @@ Verwende Proxy %1$s %2$s System-Proxys verwenden Systemweite Einstellungen für HTTP- und HTTPS-Proxys beim Verbinden verwenden. - Beim Systemstart das angegebene VPN verbinden. Auf Geräten mit Android 5.0 und höher bitte vor der Verwendung dieser Option die FAQ zum Bestätigungsdialog lesen. - Beim Gerätestart verbinden + OpenVPN stellt beim Systemstart eine Verbindung zum angegebenen VPN her und versucht, die VPN-Verbindung aufrechtzuerhalten. + VPN-Verbindung immer aktiv Ignorieren Neu verbinden Konfigurationsänderungen werden erst nach einem Neustart des VPNs aktiv. Jetzt neu verbinden? @@ -417,7 +417,7 @@ Maximale Zeit zwischen Verbindungsversuchen Warte %ss Sekunden zwischen zwei Verbindungsversuchen Netzwerke oder Verbindungen -> mehr... oder weitere ...-> VPN]]> - Verbindung zu OpenVPN getrennt (%s) + Verbindung zu OpenVPN Prozess verloren (%s) Sortierung ändern Sortieren Profile nach letzter Verwendung sortiert @@ -441,7 +441,7 @@ %.1f kB %.1f MB %.1f GB - Verbindungsstatistiken + Verbindungsstatistik Laufende Statistik der OpenVPN-Verbindung Verbindungsstatus Änderungen Statusänderungen der OpenVPN-Verbindung (Verbindung, Authentifizierung,...) @@ -498,4 +498,6 @@ Community-Übersetzungen zulassen Erlaubt die Übersetzung der App mit Übersetzungen, die von der Community beigetragen wurden. Zur Aktivierung ist ein Neustart der App erforderlich. TLS-Sicherheitsprofil + Try to encrypt profiles on storage (if supported by Android OS) + Berechtigung für Benachrichtigungen fehlt. Diese wird verwendet, um den Status des VPN anzuzeigen und über erforderliche Benutzerinteraktionen wie eine Multi-Faktor-Autorisierung zu informieren.\n\nKlicken Sie auf diese Nachricht, um der App die Berechtigung zu erteilen diff --git a/main/src/ui/res/values-el/strings.xml b/main/src/ui/res/values-el/strings.xml index 5db362e6..952878bf 100644 --- a/main/src/ui/res/values-el/strings.xml +++ b/main/src/ui/res/values-el/strings.xml @@ -201,8 +201,6 @@ Χρησιμοποιείται διακομιστής μεσολάβησης %1$s %2$s Χρήστη διαμεσολαβητή του συστήματος Χρήση των καθολικών ρυθμίσεων για διαμεσολαβητές HTTP/HTTPS για σύνδεση. - To OpenVPN θα συνδεθεί με το συγκεκριμένο VPN αν ήταν ενεργό κατά την εκκίνηση του συστήματος. Παρακαλώ διαβάστε το FAQ με τις προειδοποιήσεις σύνδεσης πριν χρησιμοποιήσετε αυτή την επιλογή σε συσκευή με Android < 5.0. - Σύνδεση κατά την εκκίνηση Αγνόηση Επανεκκίνηση Οι αλλαγές στις ρυθμίσεις εφαρμόζονται μετά την επανεκκίνηση του VPN. (Επαν)εκκίνηση τώρα; diff --git a/main/src/ui/res/values-es/arrays.xml b/main/src/ui/res/values-es/arrays.xml index aee380af..7d2a5336 100644 --- a/main/src/ui/res/values-es/arrays.xml +++ b/main/src/ui/res/values-es/arrays.xml @@ -21,7 +21,7 @@ 1 No especificado Cifrado (--tls-crypt) - TLS Crypt V2 + TLS Cripta V2 Desconectar, olvidar contraseña @@ -29,15 +29,15 @@ Ignorar, volver a intentar - Estándares modernos - Versión OpenVPN 2.5.x - Versión OpenVPN 2.4.x - OpenVPN 2.3.x y antiguas versiones + Moderna detalles + Versión OpenVPN 2.5. X + Versión OpenVPN 2.4. X + OpenVPN 2.3. X y antiguas versiones - Inseguro (No es recomendado, debido a que se usara un cifrado poco seguro) - legacy (estándar) - Sugerido (Es recomendado pero la compatibilidad es limitada) - Perfil de cifrado \"Suite B\" (Solo el método de cifrado por curvas elípticas es aprobado por NIST (National Institute of Standards and Technology) ) + insecure (not recommend, allows insecure crypto) + Legal (estándar) + Preferiré (recomienden bus límites compatible) + Suite B (onda NIST aprobé eclíptico curves) diff --git a/main/src/ui/res/values-es/plurals.xml b/main/src/ui/res/values-es/plurals.xml index 773d5422..c151ade7 100644 --- a/main/src/ui/res/values-es/plurals.xml +++ b/main/src/ui/res/values-es/plurals.xml @@ -13,7 +13,7 @@ %d horas restantes - %d minuto restante - %d minutos restantes + %d Minuto restante + %d Minutos restantes diff --git a/main/src/ui/res/values-es/strings.xml b/main/src/ui/res/values-es/strings.xml index 96476024..d516213b 100644 --- a/main/src/ui/res/values-es/strings.xml +++ b/main/src/ui/res/values-es/strings.xml @@ -205,8 +205,6 @@ hacia/de Móvil) Using proxy %1$s %2$s Usar el proxy del sistema Utilice la configuración del sistema para los proxies HTTP/HTTPS al conectar. - OpenVPN se conectará la VPN se especifica si está activa en el arranque del sistema. Por favor, lea las preguntas frecuentes de aviso de conexión antes de utilizar esta opción en Android < 5.0. - Volver a conectar al reiniciar Ignorar Reiniciar Los cambios de configuración se aplican después de reiniciar la VPN. ¿(Re)iniciar la VPN ahora? diff --git a/main/src/ui/res/values-et/strings.xml b/main/src/ui/res/values-et/strings.xml index f98feb85..3f89f590 100644 --- a/main/src/ui/res/values-et/strings.xml +++ b/main/src/ui/res/values-et/strings.xml @@ -202,8 +202,6 @@ Kasutusel proxy %1$s %2$s Kasuta süsteemset proxy\'t Kasuta ühendumisel süsteemse HTTP/HTTPS proxy konfiguratsiooni. - OpenVPN ühendab määratud VPN kui see oli süsteemi käivitumisel aktiivne. Palun tutvuge, enne Android < 5.0 peal selle võimaluse kasutamist, KKK hoiatusega ühendumise kohta. - Ühenda käivitamisel Ignoreeri Uuestilaadimine Konfiguratsioonimuudatused rakendatakse peale VPN uuestilaadimist. Kas soovite VPN kohe (uuesti)laadida? diff --git a/main/src/ui/res/values-fa/plurals.xml b/main/src/ui/res/values-fa/plurals.xml index 97e86a48..6b3e4815 100644 --- a/main/src/ui/res/values-fa/plurals.xml +++ b/main/src/ui/res/values-fa/plurals.xml @@ -10,7 +10,7 @@ یک ساعت باقی مانده - یک ساعت باقی مانده + %d saat kaldı یک دقیقه باقی مانده است diff --git a/main/src/ui/res/values-fa/strings.xml b/main/src/ui/res/values-fa/strings.xml index 53629161..9a2b3959 100644 --- a/main/src/ui/res/values-fa/strings.xml +++ b/main/src/ui/res/values-fa/strings.xml @@ -204,8 +204,6 @@ در حال استفاده از پراکسی %1$s %2$s استفاده از پروکسی سیستم از پیکربندی گسترده سیستم برای پروکسی های HTTP / HTTPS برای اتصال استفاده کنید. - OpenVPN VPN مشخص شده را در صورت فعال بودن در بوت سیستم، متصل می کند. لطفا قبل از استفاده از این گزینه در Android < 5.0، FAQ را بخوانید. - اتصال در بوت چشم پوشی راه اندازی مجدد تغییرات پیکربندی بعد از راه اندازی مجدد VPN اعمال می شود. (دوباره) VPN را شروع کنید? @@ -505,4 +503,5 @@ Allow community contributed translations Allows the app to be translated with translations contributed by the community. Requires a restart of the app to activate. TLS Security Profile + Try to encrypt profiles on storage (if supported by Android OS) diff --git a/main/src/ui/res/values-fr/arrays.xml b/main/src/ui/res/values-fr/arrays.xml index 18c4b337..1f42183e 100644 --- a/main/src/ui/res/values-fr/arrays.xml +++ b/main/src/ui/res/values-fr/arrays.xml @@ -35,9 +35,9 @@ OpenVPN 2.3.x et anciens pairs - non sécurisé (déconseillé, autorise une cryptographie non sécurisée) - legacy (default) - préféré (recommandé mais compatibilité limitée) + insecure (not recommend, allows insecure crypto) + Légats (défaut) + Préfère (recommandé but l\' imiter commuabilités) Suite B (uniquement les courbes elliptiques approuvées par le NIST) diff --git a/main/src/ui/res/values-fr/strings.xml b/main/src/ui/res/values-fr/strings.xml index e2bcbd09..51e928db 100644 --- a/main/src/ui/res/values-fr/strings.xml +++ b/main/src/ui/res/values-fr/strings.xml @@ -205,8 +205,6 @@ Sur certaines ROM, cette notification joue un son.\nAndroid a introduit ces noti Utilisation du proxy %1$s %2$s Utiliser le proxy système Utiliser la configuration générale du système pour que les proxy HTTP / HTTPS se connectent. - OpenVPN connectera le VPN spécifié si l\'application est active au démarrage du système. Veuillez lire la FAQ d\'avertissement de connexion avant d\'utiliser cette option sur Android < 5.0. - Se connecter au redémarrage Ignorer Redémarrer Les changements de configuration sont appliqués après redémarrage du VPN. (Re)démarrer le VPN maintenant ? @@ -477,6 +475,7 @@ Sur certaines ROM, cette notification joue un son.\nAndroid a introduit ces noti Configurer Authentificateur externe non configuré Bloquer les connexions non VPN (\"Killswitch\") + Il est souvent souhaité de bloquer les connexions sans VPN. D\'autres applications utilisent souvent des termes de marketing tels que \"Killswitch\" ou \"Seamless tunnel\" pour cette fonctionnalité. OpenVPN et cette application offrent persist-tun, une fonctionnalité pour implémenter cette fonctionnalité.<p>Le problème avec toutes ces méthodes proposées par les applications est qu\'elles ne peuvent fournir que le meilleur effort et ne constituent pas des solutions complètes. Au démarrage, en cas de plantage de l\'application et d\'autres cas particuliers, l\'application ne peut pas garantir que ce bloc de connexion non VPN fonctionne. Donnant ainsi à l\'utilisateur un faux sentiment de sécurité.<p>Le <b>seul</b> fiable de s\'assurer que les connexions non VPN sont bloquées est d\'utiliser Android 8.0 ou version ultérieure et d\'utiliser le paramètre \"bloquer les connexions sans VPN\" qui se trouve sous Paramètres > Réseau & Internet > Avancé/VPN > OpenVPN pour Android > Activer le VPN toujours activé, activer les connexions bloquées sans VPN Cette option indique à Android de ne pas autoriser les protocoles (IPv4/IPv6) si le VPN ne définit aucune adresse IPv4 ou IPv6. Bloquer IPv6 (ou IPv4) s\'il n\'est pas utilisé par le VPN Installer un nouveau certificat @@ -486,6 +485,7 @@ Sur certaines ROM, cette notification joue un son.\nAndroid a introduit ces noti Importer le profil depuis le serveur distant VPN par défaut non défini. Veuillez définir le VPN par défaut avant d\'activer cette option. WebView interne + Il existe des variations de ce message en fonction de la situation exacte. Ils ont tous en commun que le serveur et le client ne peuvent pas s\'entendre sur un chiffrement commun. Les principales raisons sont : <ul><li> Vous comptez toujours sur le fait qu\'OpenVPN 2.4 et les versions antérieures autorisent BF-CBC dans la configuration par défaut (si aucun --cipher n\'a été défini). OpenVPN 2.5 ne l\'autorise plus par défaut car il s\'agit d\'un chiffrement <a href=\"https://community.openvpn.net/openvpn/wiki/SWEET32\">cassé/obsolète</a>.</li><li>Le serveur</ul><li>2.3 (ou même plus ancien) avec</li> - <p> (au moins 4-5 <a href=\"https://github.com/OpenVPN/openvpn/blob/master/doc/man-sections/cipher-negotiation.rst\">d\'</li>) La section du manuel sur la négociation de chiffrement</a> explique très bien les différents scénarios de négociation de chiffrement et ce qu\'il faut faire dans ces situations.<p>appareils TP-Link utilisent une version OpenVPN 2.3.x d\'au moins 5 ans (éventuellement plus ancienne) sur leurs appareils, même dans les modèles 2019/2020.<p>Enfin et surtout, il y a un fournisseur de VPN populaire qui a un serveur en panne qui dit toujours qu\'il utilise \'BF-CBC\' parce que son développeur a pensé que ce serait une bonne idée de créer un correctif de négociation de chiffrement propriétaire qui est incompatible avec la norme OpenVPN.<p>En résumé : toutes les configurations saines ne devraient pas avoir ces erreurs. Mais (mis à part le serveur du fournisseur VPN en panne), le client peut être persuadé de continuer à se connecter (corriger le symptôme et non le vrai problème). Lors de la connexion à des serveurs plus anciens, l\'option de mode de compatibilité dans les paramètres de base d\'un VPN devrait pouvoir résoudre la plupart des problèmes de compatibilité courants. Vérifier l\'empreinte digitale du certificat homologue (Entrez l\'empreinte SHA256 du ou des certificats de serveur) Proxy HTTP : %1$s %2$d @@ -499,4 +499,5 @@ Sur certaines ROM, cette notification joue un son.\nAndroid a introduit ces noti Autoriser les traductions fournies par la communauté Autoriser l\'application à être traduite avec les traductions apportées par la communauté. Nécessite un redémarrage de l\'application pour s\'activer. Profil de sécurité TLS + Essayez de chiffrer les profils sur le stockage (si pris en charge par Android OS) diff --git a/main/src/ui/res/values-he/strings.xml b/main/src/ui/res/values-he/strings.xml index 3a2e1cf4..3848baff 100644 --- a/main/src/ui/res/values-he/strings.xml +++ b/main/src/ui/res/values-he/strings.xml @@ -9,7 +9,7 @@ יציאת שרת: מיקום לא ניתן לקרוא את התיקייה - בחר + בחירה ביטול אין נתונים דחיסת LZO @@ -205,8 +205,6 @@ שימוש בפרוקסי %1$s %2$s להשתמש במתווך המערכת השתמש בתצורה הרחבה של המערכת עבור פרוקסי HTTP/HTTPS כדי להתחבר. - OpenVPN יחבר את ה-VPN שצוין אם הוא היה פעיל באתחול המערכת. אנא קרא את השאלות הנפוצות בנושא אזהרת חיבור לפני השימוש באפשרות זו ב-אנדרואיד < 5.0. - התחברות עם ההפעלה התעלם הפעלה מחדש שינויי תצורה מוחלים לאחר הפעלה מחדש של ה-VPN. (מחדש) להפעיל את ה-VPN עכשיו? @@ -505,4 +503,5 @@ אפשר תרגומים שתרמו מהקהילה מאפשר לתרגם את האפליקציה עם תרגומים שנתרמו על ידי הקהילה. דורש הפעלה מחדש של האפליקציה כדי להפעיל אותה. פרופיל אבטחה של TLS + לנסות להצפין פרופילים באחסון (אם נתמך על ידי מערכת ה־Android) diff --git a/main/src/ui/res/values-hu/strings.xml b/main/src/ui/res/values-hu/strings.xml index 1673a68c..00e862de 100644 --- a/main/src/ui/res/values-hu/strings.xml +++ b/main/src/ui/res/values-hu/strings.xml @@ -34,6 +34,7 @@ IPv4 Cím IPv6 Cím Egyéni OpenVPN opciók megadása. Körültekintéssel használja! Vegye figyelembe, hogy a tun-nal kapcsolatos OpenVPN beállítások nem támogatottak a VPNSettings felépítéséből adódóan. Ha úgy gondolja, hogy egy fontos opció hiányzik, lépjen kapcsolatba a fejlesztőkkel + Felhasználónév (hagyja üresen hitelesítés nélkül) Jelszó A statikus konfigurációhoz a TLS Auth Key-ek statikus kulcsokként lesznek használva A VPN beállítása @@ -42,6 +43,7 @@ Kérem, egyedi profilnevet válasszon Profil név Válasszon egy felhasználói tanúsítványt + You must select a CA certificate or enable peer fingerprint check Hiba nem található Hiba a beállításokban Hiba az IPv4 cím elemzésekor @@ -125,6 +127,7 @@ Az image-ed nem támogatja a VPNService API-t, elnézést :( Titkosítás Adja meg a titkosítási módszert + Adja meg az OpenVPN által használt adattitkosítási titkosítási algoritmusokat, a következővel elválasztva: (--data-ciphers). Hagyja üresen az alapértelmezett AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305 használatához. Adja meg az OpenVPN által használt authentication digest-et. Hagyja üresen az alapértelmezett digest-hez. Hitelesítés/Titkosítás Fájlkezelő @@ -201,8 +204,6 @@ %1$s %2$s proxy használata Rendszerproxy használata Rendszerszintű konfiguráció használata a HTTP/HTTPS proxy csatlakozáshoz. - Az OpenVPN csatlakozni fog a VPN-hez, ha az a rendszer indulásakor aktív. Kérem, olvassa el a csatlakozás figyelmeztető GYIK-et mielőtt ezt az opciót Android < 5.0-n használná. - Csatlakozás rendszerindításkor Figyelmen kívül hagy Újraindítás A konfiguráció változások a VPN újraindítása után lépnek életbe. (Újra)indítja most a VPN-t? @@ -372,14 +373,14 @@ Egyéni beállítások Kapcsolat bejegyzés eltávolítása Véletlenszerű lecsatlakozások a mobil hálózatról - A távoli hálózat nem elérhető + Copy of %s Megmaradó tun mód - %s vagy újabb + %s і больш познія Kapcsolódás sikertelen SSL23_GET_SERVER_HELLO:sslv3 alert handshake hibával Újabb OpenVPN for Android verziók (0.6.29/2015 március) biztonságosabb alapértelmezést használnak az engedélyezett rejtjelező kísérletekhez (tls-cipher \"DEFAULT:!EXP:!PSK:!SRP:!kRSA\"). Sajnos a kevésbé biztonságos és export rejtjelező kísérletek kihagyása, különösen azoknak a rejtjelező kísérleteknek a kihagyása amik nem támogatják a Perfect Forward Security-t (Diffie-Hellman), néhány problémát okoz. Ezt általában egy jószándékú de gyengén végrehajtott TLS biztonság fokozás okozza a szerveren vagy néhány beágyazott OS-nél lecsupaszított SSL-el (pl.: MikroTik).\nA probléma megoldásához állítsa a tls-rejtjelezés alapértelmezését ésszerűbbre a szerveren, mint például tls-cipher \"DEFAULT:!EXP:!PSK:!SRP:!kRSA\". A probléma kliensen történő kiküszöböléséhez adja hozzá az Android kliensben az egyedi opciókhoz hogy tls-cipher DEFAULT. Ez a profil egy külső alkalmazásból (%s) lett hozzáadva és a felhasználó által nem szerkeszthetőnek lett jelölve. Tanúsítvány Visszavonási Lista - OpenVPN Service újraindítása (az alkalmazás valószínűleg összeomlott vagy memória nyomásra bezárták) + Restarting OpenVPN Service (App crashed probably crashed or killed for memory pressure) A konfiguráció importálása akadályba ütközött, nem lehet menteni Keresés (Utolsó dump %3$s (%1$d:%2$d)) @@ -433,6 +434,12 @@ %.1f kbit/s %.1f Mbit/s %.1f Gbit/s + <p>Az OpenSSL 1.1-es verziójától kezdve az OpenSSL elutasítja a gyenge aláírásokat az olyan tanúsítványokban, mint + MD5. Ezenkívül az OpenSSL 3.0 esetén az SHA1-es aláírások is elutasításra kerülnek.</p><p> + A lehető leghamarabb frissítse a VPN-tanúsítványokat, mivel az SHA1 a + már nem fog működni más platformokon.</p> + <p>Ha valóban régi és hibás tanúsítványokat szeretne használni, válassza a \"nem biztonságos\" lehetőséget a TLS biztonsági profilhoz a profil hitelesítése/titkosítása alatt.</p> + %.0f B %.1f kB %.1f MB @@ -474,8 +481,31 @@ hitelesítést Nyissa meg az URL-t a VPN-hitelesítés folytatásához + Answer challenge to continue VPN authentication Hitelesítés függőben Külső Hitelesítő Beállítás A külső hitelesítő nincs konfigurálva + Nem VPN kapcsolat blokkolása (\"Killswitch\") + It is often desired to block connections without VPN. Other apps often use markting terms like \"Killswitch\" or \"Seamless tunnel\" for this feature. OpenVPN and this app offer persist-tun, a feature to implement this functionality.<p>The problem with all these methods offered by apps is that they can only provide best effort and are no complete solutions. On boot, app crashing and other corner cases the app cannot ensure that this block of non VPN connection works. Thus giving the user a false sense of security.<p>The <b>only</b> reliable way to ensure non VPN connections are blocked is to use Android 8.0 or later and use the \"block connections without VPN\" setting that can be found under Settings > Network & Internet > Advanced/VPN > OpenVPN for Android > Enable Always ON VPN, Enable Block Connections without VPN + Ez a beállítás arra utasítja az Androidot, hogy ne engedélyezze a protokollokat (IPv4/IPv6), ha a VPN nem állít be IPv4- vagy IPv6-címeket. + IPv6 (vagy IPv4) blokkolása, ha a VPN nem használja + Új tanúsítvány telepítése + AS szervernév + Szerver URL + automatikus bejelentkezési profil kérése + Profil importálása a távoli szerverről + Az alapértelmezett VPN nincs beállítva. Kérjük, állítsa be az alapértelmezett VPN-t mielőtt engedélyezné ezt az opciót. + Belső WebView + There are some variation of this message depending on the exact situation. They all have in common that server and client could not agree on a common cipher. The main reasons are: <ul><li> You are still relying on the fact that OpenVPN 2.4 and older allowed BF-CBC in the default configuration (if no --cipher was set). OpenVPN 2.5 does not allow it per default anymore since it is a <a href=\"https://community.openvpn.net/openvpn/wiki/SWEET32\">broken/outdated cipher</a>.</li><li>The server runs OpenVPN 2.3 (or even older) with --enable-small (at least 4-5 year old OpenVPN)</li><li></ul>Broken configuration (e.g., mismatching data-ciphers on client and server)</li> <p> The <a href=\"https://github.com/OpenVPN/openvpn/blob/master/doc/man-sections/cipher-negotiation.rst\">OpenVPN manual section on cipher negotiation</a> explains the different scenarios of cipher negotiation very well and what to do in these situation.<p>TP-Link devices use a at least 5 year old OpenVPN 2.3.x version (possibly older) on their devices, even in the 2019/2020 models.<p>Last but not least, there is a popular VPN provider that has a broken server that always says it is using \'BF-CBC\' because its developer thought it would be a good idea to create a proprietary cipher negotiation patch that is incompatible with standard OpenVPN.<p>In summary: all sane configurations should not get these errors. But (apart from the broken VPN provider\'s server) the client can be persuaded to still connect (fixing the sympton and not the real problem). When connecting to older servers the comaptiblity mode option in the basic settings of a VPN should be able to address most of the common compatiblity problems. + HTTP Proxy: %1$s %2$d + Open VPN Beállítások + Kompatibilitási Mód + Kompatibilitási mód + OpenSSL legacy szolgáltató betöltése + A profilok BF-CBC-t használnak ami függ az Open SSL legacy szolgáltatótol (nincs engedélyezve). + Közösségi fordítások engedélyezése + Engedélyezze az app számára, hogy közösség általi fordításokat használjon. Az aktiváláshoz az alkalmazást újra kell indítani. + TSL Biztonsági Profil + Próbálja meg titkosítani a tárhelyen lévő profilokat (ha az Android OS által támogatva van) diff --git a/main/src/ui/res/values-in/strings.xml b/main/src/ui/res/values-in/strings.xml index 6fd33819..80bffdb1 100644 --- a/main/src/ui/res/values-in/strings.xml +++ b/main/src/ui/res/values-in/strings.xml @@ -204,8 +204,6 @@ Menggunakan proxy %1$s %2$s Gunakan sistem proxy Gunakan konfigurasi lebih luas untuk menyambung system melalui proxy HTTP/HTTPS - OpenVPN akan menghubungkan VPN ditentukan apakah itu aktif di sistem boot. Silakan baca koneksi peringatan FAQ sebelum menggunakan opsi ini pada Android < 5.0. - Minatosuki Abaikan Restart Perubahan konfigurasi baru diterapkan setelah restart VPN. Restart VPN sekarang? diff --git a/main/src/ui/res/values-it/strings.xml b/main/src/ui/res/values-it/strings.xml index a8928cad..e76e4159 100644 --- a/main/src/ui/res/values-it/strings.xml +++ b/main/src/ui/res/values-it/strings.xml @@ -205,8 +205,6 @@ Usa il tasto hardware Menù se non è visibile nella GUI. Utilizzo del proxy %1$s %2$s Utilizza il proxy di sistema Utilizza la configurazione generale del sistema relativa ai proxy HTTP/HTTPS per connettersi. - OpenVPN connetterà la VPN specificata se è attiva durante l\'avvio del sistema. Leggi le domande di avviso di connessione prima di utilizzare questa opzione in Android < 5.0. - Connessione all\'avvio Ignora Riavvia Le modifiche sarannoi applicate dopo aver riavviato la connessione VPN. Riavviare ora la connessione? @@ -504,4 +502,5 @@ Usa il tasto hardware Menù se non è visibile nella GUI. Consenti le traduzioni fornite dalla community Consente la traduzione dell\'app con le traduzioni fornite dalla community. Richiede il riavvio dell\'app per l\'attivazione. Profilo di sicurezza TLS + Prova a criptare i profili sullo spazio di archiviazione (se supportato dal sistema operativo Android) diff --git a/main/src/ui/res/values-ja/strings.xml b/main/src/ui/res/values-ja/strings.xml index 75f36be1..67717413 100644 --- a/main/src/ui/res/values-ja/strings.xml +++ b/main/src/ui/res/values-ja/strings.xml @@ -218,8 +218,6 @@ Androidはあなた自身の安全性のために、これらを迂回できな プロキシを使用します %1$s %2$s システムのプロキシ設定を使用する 接続にシステム全体の構成の HTTP/HTTPS プロキシを使用します。 - 有効にすると、OpenVPNはシステムの起動時に指定されたVPNに接続します。Android 5.0より前のバージョンでこのオプションを使用する場合は、接続時の警告に関する「よくある質問」を読んでください。 - システム起動時に接続 無視 再起動 設定の変更はVPNの再起動後に反映されます。VPNを(再)起動しますか? diff --git a/main/src/ui/res/values-ko/strings.xml b/main/src/ui/res/values-ko/strings.xml index 40191324..00f6884c 100644 --- a/main/src/ui/res/values-ko/strings.xml +++ b/main/src/ui/res/values-ko/strings.xml @@ -201,8 +201,6 @@ %1$s 시스템 프록시를 사용 연결할 HTTP/HTTPS 프록시로 시스템 범위의 설정을 사용합니다. - OpenVPN이 시스템 부팅시에 활성화되면 지정된 VPN에 연결합니다. 안드로이드 5.0 이전 버전에 이 옵션을 사용하기 전에 연결 경고 FAQ를 읽어 보시기 바랍니다. - 부팅시 연결 무시 다시 시작 VPN을 다시 시작한 후 구성 변경 내용이 적용됩니다. VPN을 지금 (재)시작? diff --git a/main/src/ui/res/values-nl/arrays.xml b/main/src/ui/res/values-nl/arrays.xml index de25dc10..0583fd28 100644 --- a/main/src/ui/res/values-nl/arrays.xml +++ b/main/src/ui/res/values-nl/arrays.xml @@ -31,7 +31,7 @@ Modern defaults OpenVPN 2.5.x peers - OpenVPN 2.4.x peers + OpenVPN 2.4.x-peers OpenVPN 2.3.x and older peers diff --git a/main/src/ui/res/values-nl/strings.xml b/main/src/ui/res/values-nl/strings.xml index f0628645..4bbcd622 100644 --- a/main/src/ui/res/values-nl/strings.xml +++ b/main/src/ui/res/values-nl/strings.xml @@ -201,8 +201,6 @@ Proxy %1$s %2$s is in gebruik Gebruik systeemproxy Gebruik de systeemconfiguratie voor HTTP/HTTPS proxies om te verbinden. - OpenVPN verbindt met de opgegeven VPN als deze actief was bij het opstarten van het systeem. Lees de FAQ over verbindingswaarschuwingen voordat u deze optie gebruikt op Android < 5.0. - Verbinden bij opstarten Negeren Opnieuw starten Configuratiewijzigingen worden toegepast na het herstarten van de VPN. (Her)start het VPN nu? diff --git a/main/src/ui/res/values-no/strings.xml b/main/src/ui/res/values-no/strings.xml index 3a6632c8..20ea61df 100644 --- a/main/src/ui/res/values-no/strings.xml +++ b/main/src/ui/res/values-no/strings.xml @@ -196,7 +196,6 @@ Benytter proxyen %1$s %2$s Bruk systemet proxy Bruk global systemkonfigurasjon for HTTP/HTTPS proxy for å koble til. - Koble til ved oppstart Ignorer Start på nytt Konfigurasjonsendringene vil brukes etter at VPN\'en er startet på nytt. Restarte VPN nå? diff --git a/main/src/ui/res/values-pl/arrays.xml b/main/src/ui/res/values-pl/arrays.xml index 367976c6..b2949ee1 100644 --- a/main/src/ui/res/values-pl/arrays.xml +++ b/main/src/ui/res/values-pl/arrays.xml @@ -8,13 +8,13 @@ Certyfikaty Plik PKCS12 - Certyfikat Android + Certyfikat Androida Nazwa użytkownika/Hasło Klucze statyczne Użytkownik/Hasło + Certyfikaty Użytkownik/Hasło + PKCS12 Użytkownik/Hasło + Android - External Auth Provider + Zewnętrzny dostawca uwierzytelniania 0 diff --git a/main/src/ui/res/values-pl/strings.xml b/main/src/ui/res/values-pl/strings.xml index 62899021..f089422d 100644 --- a/main/src/ui/res/values-pl/strings.xml +++ b/main/src/ui/res/values-pl/strings.xml @@ -204,8 +204,6 @@ Korzystanie z serwera proxy %1$s %2$s Użyj proxy systemowego Połącz używając systemowej konfiguracji proxy HTTP/HTTPS. - OpenVPN połączy się z wybranym VPN jeżeli będzie aktywny podczas startu systemu. Przeczytaj FAQ dotyczący połączeń przed zastosowaniem tej opcji na Androidzie < 5.0. - Połącz przy starcie Ignoruj Uruchom ponownie Zmiany konfiguracji będą zatwierdzone po restarcie VPN. Uruchomić ponowie teraz? @@ -484,8 +482,13 @@ OpenVPN dla Androida ostrzeże Cię o tym w logu.

Kiedy VPN ustawi serwer DNS Zainstaluj nowy certyfikat JAKO nazwa_serwera Serwer URL + Poproś o automatyczne logowanie do profilu Importuj profil ze zdalnego serwera Domyślna sieć VPN nie jest ustawiona. Przed włączeniem tej opcji ustaw domyślną sieć VPN. + Wewnętrzny WebView + Sprawdź odcisk palca certyfikatu peera + (Wprowadź odcisk palca SHA256 certyfikatu serwera) + Proxy HTTP: %1$s %2$d Użyj funkcji Always-On Androida, aby umożliwić włączenie VPN wraz ze startem systemu. Otwórz ustawienia VPN Kliknij tutaj, aby otworzyć okno, aby wprowadzić dodatkowe wymagane uwierzytelnienie @@ -496,4 +499,5 @@ OpenVPN dla Androida ostrzeże Cię o tym w logu.

Kiedy VPN ustawi serwer DNS Zezwalaj na tłumaczenia współtworzone przez społeczność Zezwól na tłumaczenie aplikacji, wykorzystując propozycje użytkowników. Do aktywacji wymaga ponownego uruchomienie aplikacji. Profil bezpieczeństwa TLS + Spróbuj zaszyfrować profile w pamięci masowej (jeśli jest to obsługiwane przez system operacyjny Android) diff --git a/main/src/ui/res/values-pt-rBR/arrays.xml b/main/src/ui/res/values-pt-rBR/arrays.xml index 1153b6d3..8f618a71 100644 --- a/main/src/ui/res/values-pt-rBR/arrays.xml +++ b/main/src/ui/res/values-pt-rBR/arrays.xml @@ -37,7 +37,7 @@ inseguro (não recomendado, permite criptografia insegura) legacy (default) - preferred (recommended but limited compabbility) - Suite B (only NIST approved elliptic curves) + preferencial (compatibilidade recomendada, mas limitada) + Suite B (somente curvas elípticas aprovadas pelo NIST) diff --git a/main/src/ui/res/values-pt-rBR/strings.xml b/main/src/ui/res/values-pt-rBR/strings.xml index 89ff26fd..bccd0ee9 100644 --- a/main/src/ui/res/values-pt-rBR/strings.xml +++ b/main/src/ui/res/values-pt-rBR/strings.xml @@ -204,8 +204,6 @@ Usando o proxy %1$s %2$s Utilizar proxy do sistema Utiliza a configuração proxy HTTP/HTTPS do sistema para a conexão. - O OpenVPN irá se conectar ao VPN especificado no boot do sistema caso esteje ativo. Por favor leia o aviso de conexão no FAQ antes de utilizar esta opção no Android < 5.0. - Conectar na inicialização Ignorar Reiniciar As alterações de configuração são aplicadas depois de reiniciar o VPN. (Re) iniciar o VPN agora? @@ -489,5 +487,7 @@ URL do servidor Solicitar perfil de login automático Importar perfil do servidor remoto + Francisco + Brasil Por favor, use o recurso Always-On do Android para habilitar a VPN no momento da inicialização. diff --git a/main/src/ui/res/values-pt/strings.xml b/main/src/ui/res/values-pt/strings.xml index e9de4072..63b9631c 100644 --- a/main/src/ui/res/values-pt/strings.xml +++ b/main/src/ui/res/values-pt/strings.xml @@ -190,7 +190,6 @@ Carregar o módulo tun Erro ao obter definições proxy %s Usar a proxy do sistema - Ligar no arranque Ignorar Reiniciar As alterações de configuração são aplicadas depois de reiniciar a VPN. Reiniciar a VPN agora? diff --git a/main/src/ui/res/values-ro/strings.xml b/main/src/ui/res/values-ro/strings.xml index a5b9ed6b..479a7b01 100644 --- a/main/src/ui/res/values-ro/strings.xml +++ b/main/src/ui/res/values-ro/strings.xml @@ -204,8 +204,6 @@ Utilizarea proxy-ului %1$s %2$s Foloseşte proxy sistem Foloseşte configurarea sistem pentru proxy HTTP/HTTPS folosit la conectare. - OpenVPN va conecta VPN-ul specificat dacă vs fi activ la pornirea sistemului. Citiți întrebările frecvente privind avertizare de conexiune înainte de a utiliza această opțiune pe Android < 5.0. - Conectare la pornire Ignora Restart Schimbările de configurare vor fi aplicate după restartarea VPN-ului. (Re)startaţi VPN-ul acum? diff --git a/main/src/ui/res/values-ru/arrays.xml b/main/src/ui/res/values-ru/arrays.xml index e3f3786b..0d57fcce 100644 --- a/main/src/ui/res/values-ru/arrays.xml +++ b/main/src/ui/res/values-ru/arrays.xml @@ -29,13 +29,13 @@ Игнорировать, повторить - Современные значения + Современные значения по умолчанию OpenVPN 2.5.x OpenVPN 2.4.x OpenVPN 2.3.x и старее - небезопасный (не рекомендуется, допускает небезопасное шифрование) + незащищённый (не рекомендуется, допускает небезопасное шифрование) традиционный (по умолчанию) предпочтительный (рекомендуется, но ограничивает совместимость) набор B (только эллиптические кривые, одобренные NIST) diff --git a/main/src/ui/res/values-ru/strings.xml b/main/src/ui/res/values-ru/strings.xml index c498bc0c..435250d0 100644 --- a/main/src/ui/res/values-ru/strings.xml +++ b/main/src/ui/res/values-ru/strings.xml @@ -8,7 +8,7 @@ Адрес сервера: Порт сервера: Расположение - Невозможно прочитать папку + Невозможно прочитать каталог Выбрать Отмена Нет данных @@ -204,8 +204,6 @@ Используется прокси %1$s %2$s Использовать системный прокси Использовать системные настройки для подключения HTTP/HTTPS прокси. - OpenVPN будет подключаться к указанному VPN, если она активна при загрузке системы. Прочитайте Вопросы и Ответы о предупреждении при подключении перед тем как использовать эту функцию на Android < 5.0. - Подключаться при загрузке системы Игнорировать Перезагрузка Изменения конфигурации действительны после перезапуска VPN. (Пере)запустить VPN сейчас? @@ -272,7 +270,7 @@ API VPNService не позволяет указывать сети, которы Добавить Отправить файл конфигурации Полный DN - Ваши импортированные параметры использовали старую УСТАРЕВШУЮ опцию tls-remote, которая использует другой формат DN. + Импортированная конфигурация использует УСТАРЕВШУЮ функцию tls-remote, которая имеет другой формат DN. RDN (обычное имя) Префикс RDN tls-remote (УСТАРЕЛО) @@ -359,7 +357,7 @@ API VPNService не позволяет указывать сети, которы Показать журнал Существуют различные клиенты OpenVPN для Android. Самые распространённые — OpenVPN для Android (этот клиент), OpenVPN Connect и OpenVPN Settings.<p>Клиенты можно разделить на две группы: OpenVPN для Android и OpenVPN Connect используют официальный VPNService API (Android 4.0+) и не требуют root-доступ, и OpenVPN Settings, который требует root.<p>OpenVPN для Android — клиент с открытым исходным кодом, который разработал Arne Schwabe. Он предназначен для более опытных пользователей и предоставляет много настроек, возможность импорта конфигураций из файлов и настраивать/изменять конфигурации внутри приложения. Этот клиент основан на общественной версии OpenVPN. А именно на исходном коде OpenVPN 2.x. Этот клиент можно представить как полуофициальный клиент сообщества. <p>OpenVPN Connect — клиент с закрытым исходным кодом, который разрабатывается OpenVPN Technologies, Inc. Он призван для обычного использования и предназначен для простых пользователей, и позволяет импортировать конфигурации OpenVPN. Этот клиент основан на OpenVPN C++, другой реализации протокола OpenVPN (Это потребовалось OpenVPN Technologies, Inc, чтобы опубликовать приложение OpenVPN на iOS). Этот клиент — официальный клиент OpenVPN technologies <p> OpenVPN Settings — старейший из клиентов, он также UI для OpenVPN с открытым исходным кодом. В отличие от OpenVPN для Android, он требует root-прав и не использует VPNService API. Он не зависит от Android 4.0+ Различия между клиентами OpenVPN для Android - Игнорирование многоадресного маршрута: %s + Игнорирование многоадресной маршрутизации: %s Android поддерживает только CIDR-маршруты к VPN. Поскольку маршруты без CIDR почти никогда не используются, «OpenVPN для Android» будет использовать /32 для маршрутов без CIDR и выдавать предупреждение. Вы можете раздавать интернет при активном VPN, но это соединение НЕ будет использовать VPN. Ранние версии KitKat устанавливают неправильное значение MSS для TCP-соединений (#61948). Попробуйте включить функцию mssfix, чтобы обойти эту ошибку. @@ -376,7 +374,7 @@ API VPNService не позволяет указывать сети, которы Маршрутизация на настроенный IP-адрес Неправильное значение MSS для VPN-подключения Дополнительные пользователи планшетов - Укажите пользовательские параметры подключения. Используйте с осторожностью + Укажите индивидуальные параметры подключения. Используйте с осторожностью Пользовательские параметры Удалить запись о подключении Случайные отключения от мобильной сети @@ -400,7 +398,7 @@ API VPNService не позволяет указывать сети, которы Включено Разрешение VPN отозвано ОС (например, запущена другая программа VPN), остановка VPN Получить информацию об участнике - Отправьте на сервер дополнительную информацию, например dерсия SSL и версия Android + Отправлять дополнительную информацию на сервер, например, версию SSL и версию Android Требуется: %1$s Введите пароль для конфигурации %1$s Использовать встроенные данные @@ -445,8 +443,8 @@ DNS не работает, если сервер DNS не в диапазоне Исходящие %.0f бит/с %.1f кбит/с - %.1f мбит/с - %.1f гбит/с + %.1f Мбит/с + %.1f Гбит/с <p>Начиная с OpenSSL версии 1.1, отклоняются слабые подписи сертификатов, такие как MD5. Кроме того, с OpenSSL версии 3.0, подписи с SHA1 также отклоняются.</p><p>Вам следует как можно скорее обновить сертификаты VPN, поскольку в ближайшем будущем SHA1 перестанет работать на и других платформах.</p><p>Если вы действительно хотите использовать устаревшие и повреждённые сертификаты, выберите «Небезопасный» для профиля безопасности TLS в разделе «Аутентификация/Шифрование».</p> %.0f Б %.1f кБ @@ -509,4 +507,5 @@ DNS не работает, если сервер DNS не в диапазоне Использовать локализацию Использовать локализацию приложения с помощью перевода, выполненного сообществом. Потребуется перезапуск приложения. Профиль безопасности TLS + Пробовать шифровать профили в хранилище (если поддерживается ОС Android) diff --git a/main/src/ui/res/values-si/strings.xml b/main/src/ui/res/values-si/strings.xml index bd41e202..897372f0 100644 --- a/main/src/ui/res/values-si/strings.xml +++ b/main/src/ui/res/values-si/strings.xml @@ -202,8 +202,6 @@ ප්‍රොක්සි %1$s %2$sභාවිතා කිරීම පද්ධති ප්‍රොක්සි භාවිතා කරන්න සම්බන්ධ වීමට HTTP/HTTPS ප්‍රොක්සි සඳහා පද්ධති පුළුල් වින්‍යාසය භාවිතා කරන්න. - OpenVPN එය පද්ධති ආරම්භයේදී සක්‍රිය නම් නිශ්චිත VPN සම්බන්ධ කරයි. Android < 5.0 මත මෙම විකල්පය භාවිතා කිරීමට පෙර කරුණාකර සම්බන්ධතා අනතුරු ඇඟවීමේ නිතර අසන පැන කියවන්න. - ආරම්භයේදී සම්බන්ධ කරන්න නොසලකන්න නැවත ආරම්භ කරන්න VPN නැවත ආරම්භ කිරීමෙන් පසු වින්‍යාස කිරීමේ වෙනස්කම් යොදනු ලැබේ. (නැවත) VPN දැන් ආරම්භ කරන්නද? diff --git a/main/src/ui/res/values-sk/strings.xml b/main/src/ui/res/values-sk/strings.xml index 2bd11f12..f9b8b421 100644 --- a/main/src/ui/res/values-sk/strings.xml +++ b/main/src/ui/res/values-sk/strings.xml @@ -201,8 +201,6 @@ Používam proxy %1$s %2$s Použiť systémovú proxy Na pripojenie použiť systémové nastavenie pre HTTP/HTTPS. - OpenVPN sa automaticky pripojí k vybranej VPN po štarte systému. Prosím venujte pozornosť upozornenie vo FAQ pre verziu Android < 5.0. - Pripojiť po spustení systému Ignorovať Reštartovať Zmena nastavení začne platiť až po reštarte VPN. Reštartovať teraz? diff --git a/main/src/ui/res/values-sl/strings.xml b/main/src/ui/res/values-sl/strings.xml index 2aac1ecf..94c8bae9 100644 --- a/main/src/ui/res/values-sl/strings.xml +++ b/main/src/ui/res/values-sl/strings.xml @@ -200,8 +200,6 @@ Napaka pri dobivanju nastavitev posredniškega strežnika: %s Uporabi sis. pos. str. Za povezavo uporabi nastavitve celega sistema za posredniške strežnike HTTP/HTTPS. - OpenVPN bo povezal navedeni VPN, če je bil dejaven ob zagonu sistema. Preberite pogosta vprašanja o opozorilih glede povezav pred uporabo te možnosti na Androidu < 5.0. - Poveži ob zagonu Prezri Ponovno zaženi Spremembe nastavitev se bodo uporabile po ponovnem zagonu VPN-a. (Ponovno) zaženi VPN zdaj? diff --git a/main/src/ui/res/values-sr-rSP/arrays.xml b/main/src/ui/res/values-sr-rSP/arrays.xml index 855eccaf..4793c67c 100644 --- a/main/src/ui/res/values-sr-rSP/arrays.xml +++ b/main/src/ui/res/values-sr-rSP/arrays.xml @@ -28,4 +28,10 @@ Перкини везу, задржи лозинку Занемарите, покушајте + + Модерне подразумеване вредности + OpenVPN 2.5.x peers + OpenVPN 2.4.x peers + OpenVPN 2.3.x and older peers + diff --git a/main/src/ui/res/values-sr-rSP/strings.xml b/main/src/ui/res/values-sr-rSP/strings.xml index 578a973e..e438fc3c 100644 --- a/main/src/ui/res/values-sr-rSP/strings.xml +++ b/main/src/ui/res/values-sr-rSP/strings.xml @@ -202,8 +202,6 @@ Коришћење проксија %1$s %2$s Користи системки прокси Користите конфигурацију широм система за повезивање ХТТП / ХТТПС проксија. - ОпенВПН ће повезати специфицирани ВПН ако је био активан при покретању система. Молимо вас да прочитате питања упозорења веза пре употребе ове опције на Андроид < 5.0. - Повежите се при покретању Игнориши Рестарт Промјене конфигурације примјењују се након поновног покретања ВПН-а. (Поново) покренути ВПН сада? diff --git a/main/src/ui/res/values-sv/arrays.xml b/main/src/ui/res/values-sv/arrays.xml index 451242e8..fe8e194b 100644 --- a/main/src/ui/res/values-sv/arrays.xml +++ b/main/src/ui/res/values-sv/arrays.xml @@ -24,8 +24,20 @@ TLS Crypt V2 - Koppla bort, glöm lösenordet - Koppla bort, behåll lösenordet + Koppla ner, glöm lösenordet + Koppla ner, behåll lösenordet Ignorera, försök igen + + Moderna standardinställningar + OpenVPN 2.5.x peers + OpenVPN 2.4.x peers + OpenVPN 2.3.x och äldre peers + + + Ej säker (rekommenderas ej, tillåter osäker kryptering) + legacy (standard) + Föredraget (rekommenderas men begränsad kompatibilitet) + Svit B (endast NIST-godkända elliptiska kurvor) + diff --git a/main/src/ui/res/values-sv/strings.xml b/main/src/ui/res/values-sv/strings.xml index 68085935..6fe48fc0 100644 --- a/main/src/ui/res/values-sv/strings.xml +++ b/main/src/ui/res/values-sv/strings.xml @@ -34,6 +34,7 @@ IPv4-adress IPv6-adress Ange anpassade OpenVPN alternativ. Använd med försiktighet! Tänk också på att många av de tun relaterade OpenVPN inställningarna inte kan stödjas genom utformningen av VPNSettings. Om du anser att ett viktigt alternativ saknas kontakta författaren + Användarnamn (lämna tomt för ingen autentisering) Lösenord Vid statisk konfiguration används TLS Auth nycklarna som statiska nycklar Konfigurera VPN-anslutningen @@ -42,6 +43,7 @@ Vänligen ange ett unikt Profilnamn Profilnamn Du måste välja ett användarcertifikat + Du måste välja ett CA-certifikat eller aktivera peer fingeravtryckskontroll Inga fel hittades Fel i konfigurationen Det går inte att tolka IPv4-adressen @@ -125,6 +127,7 @@ Din ROM stöder inte VPNService API, ledsen :( Kryptering Ange krypteringsmetod + Ange datakrypteringsalgoritmerna som används av OpenVPN separerade med: (--data-chiffer). Lämna tomt för att använda standarden för AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305. Ange den autentiserings digest som används för OpenVPN. Lämna tom för att använda standard digest. Autentisering/kryptering Filutforskare @@ -201,8 +204,6 @@ Använder proxy %1$s %2$s Använd system proxy Använda systemkonfigurationen för HTTP/HTTPS proxy för att ansluta. - OpenVPN kommer att ansluta angiven VPN om den var aktivt vid systemets uppstart. Läs vanliga frågor för anslutningsvarning innan du använder det här alternativet på Android < 5.0. - Anslut vid uppstart Ignorera Starta om Konfigurationsändringar tillämpas efter omstart av VPN. Starta(om) VPN nu? @@ -433,6 +434,12 @@ %.1f kbit/s %.1f Mbit/s %.1f Gbit/s + <p>Från och med OpenSSL version 1.1, avvisar OpenSSL svaga signaturer i certifikat som + MD5. Dessutom med OpenSSL 3.0 avvisas signaturer med SHA1.</p><p> + Du bör uppdatera VPN-certifikaten så snart som möjligt eftersom SHA1 inte heller längre kommer att fungera på andra plattformar inom den + närmaste framtiden.</p> + <p>Om du verkligen vill använda gamla och trasiga certifikat väljer du \"osäker\" för TLS-säkerhetsprofilen under Autentisering/kryptering av profilen</p> + %.0f B %.1f kB %.1f MB @@ -466,8 +473,35 @@ autentisering Öppna webbadressen för att fortsätta VPN-autentisering + Svara på utmaningen att fortsätta VPN-autentiseringen Autentisering väntar Extern autentisering Konfigurera Extern autentiseringsapp inte konfigurerad + Blockera icke-VPN-anslutning (\"Killswitch\") + Det är ofta önskvärt att blockera anslutningar utan VPN. Andra appar använder ofta marknadsföringstermer som \"Killswitch\" eller \"Sömlös tunnel\" för den här funktionen. OpenVPN och denna app erbjuder persist-tun, en funktion för att implementera denna funktionalitet.<p>Problemet med alla dessa metoder som erbjuds av appar är att de bara kan ge bästa möjliga ansträngning och inte är några kompletta lösningar. Vid uppstart, appkraschar och andra hörnfall kan appen inte säkerställa att detta block av icke-VPN-anslutning fungerar. Detta ger användaren en falsk känsla av säkerhet.<p>Det <b>enda</b> pålitliga sättet att säkerställa att icke-VPN-anslutningar blockeras är att använda Android 8.0 eller senare och använda inställningen \"blockera anslutningar utan VPN\" som finns under Inställningar > Nätverk & Internet > Avancerat/VPN > OpenVPN för Android > Aktivera alltid PÅ VPN, Aktivera Blockera anslutningar utan VPN + Det här alternativet instruerar Android att inte tillåta protokoll (IPv4/IPv6) om VPN inte ställer in några IPv4- eller IPv6-adresser. + Blockera IPv6 (eller IPv4) om det inte används av VPN + Installera nytt certifikat + AS servernamn + Server URL + Begär autoinloggningsprofil + Importera profil från fjärrserver + Standard-VPN inte inställt. Ställ in standard-VPN innan du aktiverar det här alternativet. + Intern WebView + Det finns vissa variationer av detta meddelande beroende på den exakta situationen. De har alla gemensamt att server och klient inte kunde komma överens om ett gemensamt chiffer. De främsta anledningarna är: <ul><li> Du förlitar dig fortfarande på det faktum att OpenVPN 2.4 och äldre tillät BF-CBC i standardkonfigurationen (om inget --chiffer var inställt). OpenVPN 2.5 tillåter inte det som standard längre eftersom det är ett <a href=\"https://community.openvpn.net/openvpn/wiki/SWEET32\">trasigt/föråldrat chiffer</a>.</li><li>Servern kör OpenVPN 2.3 (eller ännu äldre) med --enable-small (minst 4-5 år gammal OpenVPN)</li><li></ul>Trasig konfiguration (t.ex. felaktiga data-chiffer på klient och server)</li> <p> The <a href=\"https://github.com/OpenVPN/openvpn/blob/master/doc/man-sections/cipher-negotiation.rst\">OpenVPN manualavsnittet om chifferförhandling</a> förklarar de olika scenarierna för chifferförhandling mycket väl och vad man ska göra i dessa situationer.<p>TP-Link-enheter använder en minst 5 år gammal OpenVPN 2.3.x-version (eventuellt äldre) på sina enheter, även i 2019/2020-modellerna.<p>Sist men inte minst finns det en populär VPN-leverantör som har en trasig server som alltid säger att den använder \'BF-CBC\' eftersom dess utvecklare tyckte att det skulle vara en bra idé att skapa en proprietär chifferförhandlingspatch som är inkompatibel med standarden OpenVPN.<p>Sammanfattningsvis: alla sunda konfigurationer bör inte få dessa fel. Men (bortsett från den trasiga VPN-leverantörens server) kan klienten övertalas att fortfarande ansluta (fixar symtomet och inte det verkliga problemet). När du ansluter till äldre servrar bör alternativet för kompatibilitetsläge i grundinställningarna för ett VPN kunna lösa de flesta vanliga kompatibilitetsproblem. + Kontrollera fingeravtryck för peer-certifikat + (Ange SHA256-fingeravtrycket för servercertifikatet) + HTTP-proxy: %1$s %2$d + Använd \"Alltid-På\" funktionen i Android för att aktivera VPN vid uppstart. + Öppna VPN-inställningar + Tryck här öppna ett fönster för att ange ytterligare nödvändig autentisering + Kompatibilitetsläge + Kompatibilitetsläge + Ladda OpenSSL äldre leverantör + Profiler använder BF-CBC som beror på OpenSSL legacy provider (ej aktiverat). + Tillåt översättningar som bidragit från gemenskapen + Tillåter att appen översätts med översättningar från gemenskapen. Kräver en omstart av appen för att aktiveras. + TLS säkerhetsprofil + Försök att kryptera profiler på lagring (om det stöds av Android OS) diff --git a/main/src/ui/res/values-tr/strings.xml b/main/src/ui/res/values-tr/strings.xml index 36e62ceb..e81d824c 100644 --- a/main/src/ui/res/values-tr/strings.xml +++ b/main/src/ui/res/values-tr/strings.xml @@ -204,8 +204,6 @@ %1$s %2$s vekil sunucusu kullanılıyor Sistem vekil sunucusunu kullan Bağlanmak için sistem çapındaki HTTP/HTTPS vekil sunucularını kullan. - Sistem önyüklemesi üzerinde etkinse, OpenVPN belirtilen VPN bağlantısına bağlanır. Lütfen bu seçeneği Android < 5.0 üzerinde kullanmadan önce bağlantı uyarısı için SSS bölümünü okuyun. - Önyükleme sırasında bağlan Yoksay Yeniden Başlat Yapılandırma değişiklikleri, VPN yeniden başlattıktan sonra geçerli olur. VPN (yeniden) başlatılsın mı? @@ -511,4 +509,5 @@ Topluluğun katkıda bulunduğu çevirilere izin ver Uygulamanın, topluluk tarafından sağlanan çevirilerle çevrilmesine izin verir. Etkinleştirmek için uygulamanın yeniden başlatılmasını gerektirir. TLS Güvenlik Profili + Depolama alanındaki profilleri şifrelemeyi deneyin (Android işletim sistemi tarafından destekleniyorsa) diff --git a/main/src/ui/res/values-uk/strings.xml b/main/src/ui/res/values-uk/strings.xml index 3f99fe31..6db76c81 100644 --- a/main/src/ui/res/values-uk/strings.xml +++ b/main/src/ui/res/values-uk/strings.xml @@ -204,8 +204,6 @@ Використовується проксі-сервер %1$s %2$s Використовувати системний проксі Використовувати системну конфігурацію HTTP/HTTPS проксі для з\'єднання. - OpenVPN підключатиметься до вказаного VPN, якщо він був активний при завантаженні системи. Будь ласка, прочитайте FAQ про попередження при підключенні перед використанням цієї опції на Android < 5.0. - Підключення при завантаженні Ігнорувати Перезапустити Після перезапуску VPN застосувати зміни конфігурації. (Пере)запустити VPN тепер? @@ -505,4 +503,5 @@ Використовувати переклад (запропонований спільнотою) Використовувати переклад програми наданий спільнотою. Необхідний перезапуск програми. Профіль безпеки TLS + Спробуйте зашифрувати профілі на сховищі (якщо підтримується Android) diff --git a/main/src/ui/res/values-vi/strings.xml b/main/src/ui/res/values-vi/strings.xml index c0fa2ee0..0dbcbc92 100644 --- a/main/src/ui/res/values-vi/strings.xml +++ b/main/src/ui/res/values-vi/strings.xml @@ -204,8 +204,6 @@ Đang sử dụng proxy %1$s %2$s Sử dụng proxy hệ thống Sử dụng các cấu hình hệ thống rộng cho HTTP/HTTPS proxy để kết nối. - OpenVPN sẽ kết nối VPN xác định nếu nó đã hoạt động trên hệ thống khởi động. Xin vui lòng đọc hướng dẫn cảnh báo kết nối trước khi sử dụng tùy chọn này trên Android < 5.0. - Kết nối khi khởi động Bỏ qua Khởi động lại Cấu hình sẽ được áp dụng sau khi khởi động lại VPN. (Khởi động) bắt đầu VPN lại ngay bây giờ? diff --git a/main/src/ui/res/values-zh-rCN/strings.xml b/main/src/ui/res/values-zh-rCN/strings.xml index e43e4547..e6d30715 100644 --- a/main/src/ui/res/values-zh-rCN/strings.xml +++ b/main/src/ui/res/values-zh-rCN/strings.xml @@ -205,8 +205,6 @@ 代理使用时长 %1$s %2$s 使用系统代理 使用系统级HTTP/HTTPS 代理配置来连接 - 如果在系统启动时OpenVPN处于活动状态,那么它会连接指定的VPN。在Android <5.0上使用这个选项前,请阅读连接警告的常见问题。 - 在系统启动时自动连接 忽略 重新启动 配置文件的变更将在重新连接 VPN 后生效,是否立即(重新)连接? @@ -508,4 +506,5 @@ 允许社区贡献的翻译 允许应用程序使用翻译社区贡献的翻译。需要重新启动应用程序才能激活。 TLS 安全配置 + d diff --git a/main/src/ui/res/values-zh-rTW/arrays.xml b/main/src/ui/res/values-zh-rTW/arrays.xml index 9df98a6c..2cedd21b 100644 --- a/main/src/ui/res/values-zh-rTW/arrays.xml +++ b/main/src/ui/res/values-zh-rTW/arrays.xml @@ -38,6 +38,6 @@ 不安全(不推薦,允許不安全的加密) legacy (default) preferred (recommended but limited compabbility) - Suite B (only NIST approved elliptic curves) + Suite B(僅 NIST 批准的橢圓曲線) diff --git a/main/src/ui/res/values-zh-rTW/strings.xml b/main/src/ui/res/values-zh-rTW/strings.xml index a64a1ec1..56aaafb4 100644 --- a/main/src/ui/res/values-zh-rTW/strings.xml +++ b/main/src/ui/res/values-zh-rTW/strings.xml @@ -34,7 +34,7 @@ IPv4 位址 IPv6 位址 輸入自訂 OpenVPN 選項。請謹慎使用。另外請注意,VPNSettings 設計上無法支援許多 TUN 通道相關的 OpenVPN 設定 。如果您認為有遺漏重要的設定選項,請聯絡作者。 - Username (leave empty for no auth) + 使用者名稱(留空表示不登入) 密碼 對於靜態設定,TLS 認證金鑰將會用作靜態金鑰。 設定 VPN @@ -202,8 +202,6 @@ 使用 Proxy %1$s %2$s 使用系統 Proxy 使用系統設定值的 HTTP/HTTPS Proxy 進行連線。 - OpenVPN 將會在開機被啟動時連線到指定的 VPN。在 Android < 5.0 上使用這個設定前,請閱讀連線警告的 FAQ。 - 開機時連線 忽略 重新啟動 設定值變更只會在重新啟動 VPN 後生效,現在要(重新)啟動 VPN 嗎? @@ -472,4 +470,9 @@ 設定 未設定外部身份驗證器 通常希望在沒有 VPN 的情況下阻止連接。其他應用程序通常為此功能使用“Killswitch”或“無縫隧道”等標記術語。 OpenVPN 和這個應用程序提供了persist-tun,一個實現這個功能的特性。<p>應用程序提供的所有這些方法的問題在於它們只能提供最大的努力,而不是完整的解決方案。在啟動、應用程序崩潰和其他極端情況下,應用程序無法確保此非 VPN 連接塊正常工作。從而給用戶一種虛假的安全感。<p>確保非 VPN 連接被阻止的唯一 <b></b> 可靠方法是使用 Android 8.0 或更高版本,並使用可在設置下找到的“阻止沒有 VPN 的連接”設置 > 網絡 & 互聯網 > 高級/VPN > 適用於 Android > 的 OpenVPN啟用始終開啟 VPN,啟用沒有 VPN 的阻止連接Translate all + 相容性模式 + 相容性模式 + 允許社群貢獻的翻譯 + 允許使用社群貢獻的翻譯。需要重新啟動應用程式。 + 嘗試加密儲存空間中的設定檔(如果 Android 作業系統支持) -- cgit v1.2.3 From 02f040a1d7d379c63aab224dd3f0198542e44ff2 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Mon, 5 Jun 2023 17:04:24 +0200 Subject: update asio --- main/src/main/cpp/asio | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main/src/main/cpp/asio b/main/src/main/cpp/asio index f693a3eb..c465349f 160000 --- a/main/src/main/cpp/asio +++ b/main/src/main/cpp/asio @@ -1 +1 @@ -Subproject commit f693a3eb7fe72a5f19b975289afc4f437d373d9c +Subproject commit c465349fa5cd91a64bb369f5131ceacab2c0c1c3 -- cgit v1.2.3 From 2790778dd8ad72184c09b274b6d859fe430a0533 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Mon, 5 Jun 2023 17:26:48 +0200 Subject: Update openvpn, openvpn3 and lz4 --- main/src/main/cpp/lz4 | 2 +- main/src/main/cpp/openvpn | 2 +- main/src/main/cpp/openvpn3 | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/main/src/main/cpp/lz4 b/main/src/main/cpp/lz4 index d4437184..5ff83968 160000 --- a/main/src/main/cpp/lz4 +++ b/main/src/main/cpp/lz4 @@ -1 +1 @@ -Subproject commit d44371841a2f1728a3f36839fd4b7e872d0927d3 +Subproject commit 5ff839680134437dbf4678f3d0c7b371d84f4964 diff --git a/main/src/main/cpp/openvpn b/main/src/main/cpp/openvpn index 6d29ef2b..c6f83950 160000 --- a/main/src/main/cpp/openvpn +++ b/main/src/main/cpp/openvpn @@ -1 +1 @@ -Subproject commit 6d29ef2bb05d26feac6d73d66bf6f1c2b1d2cf12 +Subproject commit c6f83950571614b6f6c7d0d6b34a5025edaaadc1 diff --git a/main/src/main/cpp/openvpn3 b/main/src/main/cpp/openvpn3 index 037fda05..5f1f207b 160000 --- a/main/src/main/cpp/openvpn3 +++ b/main/src/main/cpp/openvpn3 @@ -1 +1 @@ -Subproject commit 037fda05213a2ea28fdb5ffd139d9dc61a3b641c +Subproject commit 5f1f207bfd00ea29bbc58b48ccd4bc4d863dfdf9 -- cgit v1.2.3 From bde42c99e31f70b4a6ccf912c454a7ce3cb957d1 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Tue, 6 Jun 2023 12:56:27 +0200 Subject: Use Java 17 instead of Java 8 --- main/build.gradle.kts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/main/build.gradle.kts b/main/build.gradle.kts index 04ad1f6e..f5f06374 100644 --- a/main/build.gradle.kts +++ b/main/build.gradle.kts @@ -126,6 +126,8 @@ android { compileOptions { targetCompatibility = JavaVersion.VERSION_1_8 sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_17 + sourceCompatibility = JavaVersion.VERSION_17 } splits { -- cgit v1.2.3 From 3011e6bfa91a55a2b1aa59d55613c0819fb85574 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Tue, 6 Jun 2023 12:48:14 +0200 Subject: Release 0.7.45 --- main/build.gradle.kts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/main/build.gradle.kts b/main/build.gradle.kts index f5f06374..f19a0f77 100644 --- a/main/build.gradle.kts +++ b/main/build.gradle.kts @@ -27,10 +27,8 @@ android { minSdk = 21 targetSdk = 33 //targetSdkPreview = "UpsideDownCake" - versionCode = 198 - versionName = "0.7.43" - versionCode = 199 - versionName = "0.7.44" + versionCode = 200 + versionName = "0.7.45" externalNativeBuild { cmake { } -- cgit v1.2.3 From 4e5bfa766c51584457c292985de0f29dd8270503 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Tue, 6 Jun 2023 15:21:26 +0200 Subject: Use a different singning key for OpenVPN 2 only builds --- main/build.gradle.kts | 37 ++++++++++++++++------ .../main/java/de/blinkt/openvpn/core/LogItem.java | 19 +++++++++-- .../java/de/blinkt/openvpn/core/VpnStatus.java | 1 + main/src/main/res/values/strings.xml | 3 +- main/src/ui/res/values-ar/strings.xml | 1 - main/src/ui/res/values-be/strings.xml | 1 - main/src/ui/res/values-ca/strings.xml | 1 - main/src/ui/res/values-cs/strings.xml | 1 - main/src/ui/res/values-da/strings.xml | 1 - main/src/ui/res/values-de/strings.xml | 1 - main/src/ui/res/values-el/strings.xml | 1 - main/src/ui/res/values-es/strings.xml | 1 - main/src/ui/res/values-et/strings.xml | 1 - main/src/ui/res/values-fa/strings.xml | 1 - main/src/ui/res/values-fr/strings.xml | 1 - main/src/ui/res/values-he/strings.xml | 1 - main/src/ui/res/values-hu/strings.xml | 1 - main/src/ui/res/values-in/strings.xml | 1 - main/src/ui/res/values-it/strings.xml | 1 - main/src/ui/res/values-ja/strings.xml | 1 - main/src/ui/res/values-ko/strings.xml | 1 - main/src/ui/res/values-nl/strings.xml | 1 - main/src/ui/res/values-no/strings.xml | 1 - main/src/ui/res/values-pl/strings.xml | 1 - main/src/ui/res/values-pt-rBR/strings.xml | 1 - main/src/ui/res/values-pt/strings.xml | 1 - main/src/ui/res/values-ro/strings.xml | 1 - main/src/ui/res/values-ru/strings.xml | 1 - main/src/ui/res/values-si/strings.xml | 1 - main/src/ui/res/values-sk/strings.xml | 1 - main/src/ui/res/values-sl/strings.xml | 1 - main/src/ui/res/values-sr-rSP/strings.xml | 1 - main/src/ui/res/values-sv/strings.xml | 1 - main/src/ui/res/values-tr/strings.xml | 1 - main/src/ui/res/values-uk/strings.xml | 1 - main/src/ui/res/values-vi/strings.xml | 1 - main/src/ui/res/values-zh-rCN/strings.xml | 1 - main/src/ui/res/values-zh-rTW/strings.xml | 1 - 38 files changed, 47 insertions(+), 47 deletions(-) diff --git a/main/build.gradle.kts b/main/build.gradle.kts index f19a0f77..d709d98b 100644 --- a/main/build.gradle.kts +++ b/main/build.gradle.kts @@ -78,6 +78,20 @@ android { enableV2Signing = true } + create("releaseOvpn2") { + // ~/.gradle/gradle.properties + val keystoreO2File: String? by project + storeFile = keystoreO2File?.let { file(it) } + val keystoreO2Password: String? by project + storePassword = keystoreO2Password + val keystoreO2AliasPassword: String? by project + keyPassword = keystoreO2AliasPassword + val keystoreO2Alias: String? by project + keyAlias = keystoreO2Alias + enableV1Signing = true + enableV2Signing = true + } + } lint { @@ -86,16 +100,7 @@ android { disable += setOf("MissingTranslation", "UnsafeNativeCodeLocation") } - buildTypes { - getByName("release") { - if (project.hasProperty("icsopenvpnDebugSign")) { - logger.warn("property icsopenvpnDebugSign set, using debug signing for release") - signingConfig = android.signingConfigs.getByName("debug") - } else { - signingConfig = signingConfigs.getByName("release") - } - } - } + flavorDimensions += listOf("implementation", "ovpnimpl") productFlavors { @@ -121,6 +126,18 @@ android { } } + buildTypes { + getByName("release") { + if (project.hasProperty("icsopenvpnDebugSign")) { + logger.warn("property icsopenvpnDebugSign set, using debug signing for release") + signingConfig = android.signingConfigs.getByName("debug") + } else { + productFlavors["ovpn23"].signingConfig = signingConfigs.getByName("release") + productFlavors["ovpn2"].signingConfig = signingConfigs.getByName("releaseOvpn2") + } + } + } + compileOptions { targetCompatibility = JavaVersion.VERSION_1_8 sourceCompatibility = JavaVersion.VERSION_1_8 diff --git a/main/src/main/java/de/blinkt/openvpn/core/LogItem.java b/main/src/main/java/de/blinkt/openvpn/core/LogItem.java index 74601349..b6f51928 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/LogItem.java +++ b/main/src/main/java/de/blinkt/openvpn/core/LogItem.java @@ -13,9 +13,11 @@ import android.content.pm.Signature; import android.content.res.Resources; import android.os.Parcel; import android.os.Parcelable; +import android.text.TextUtils; import java.io.ByteArrayInputStream; import java.io.UnsupportedEncodingException; +import java.lang.reflect.Array; import java.nio.BufferOverflowException; import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; @@ -28,6 +30,7 @@ import java.util.Arrays; import java.util.FormatFlagsConversionMismatchException; import java.util.Locale; import java.util.UnknownFormatConversionException; +import java.util.Vector; import de.blinkt.openvpn.R; @@ -336,10 +339,15 @@ public class LogItem implements Parcelable { CertificateFactory cf = CertificateFactory.getInstance("X.509"); X509Certificate cert = (X509Certificate) cf.generateCertificate(new ByteArrayInputStream(raw.toByteArray())); MessageDigest md = MessageDigest.getInstance("SHA-1"); + MessageDigest mdsha256 = MessageDigest.getInstance("SHA-256"); + byte[] der = cert.getEncoded(); md.update(der); byte[] digest = md.digest(); + mdsha256.update(der); + byte[] digestSha256 = mdsha256.digest(); + if (Arrays.equals(digest, VpnStatus.officalkey)) apksign = c.getString(R.string.official_build); else if (Arrays.equals(digest, VpnStatus.officaldebugkey)) @@ -348,8 +356,15 @@ public class LogItem implements Parcelable { apksign = "amazon version"; else if (Arrays.equals(digest, VpnStatus.fdroidkey)) apksign = "F-Droid built and signed version"; - else - apksign = c.getString(R.string.built_by, cert.getSubjectX500Principal().getName()); + else if (Arrays.equals(digestSha256, VpnStatus.officialO2Key)) + apksign = c.getString(R.string.official_o2build); + else { + Vector hexnums = new Vector<>(); + for (byte b: digestSha256) { + hexnums.add(String.format(Locale.US, "%02x", b)); + } + apksign = c.getString(R.string.built_by, cert.getSubjectX500Principal().getName(), TextUtils.join(":", hexnums)); + } PackageInfo packageinfo = c.getPackageManager().getPackageInfo(c.getPackageName(), 0); version = packageinfo.versionName; diff --git a/main/src/main/java/de/blinkt/openvpn/core/VpnStatus.java b/main/src/main/java/de/blinkt/openvpn/core/VpnStatus.java index 63e4547d..d1814fc2 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/VpnStatus.java +++ b/main/src/main/java/de/blinkt/openvpn/core/VpnStatus.java @@ -190,6 +190,7 @@ public class VpnStatus { static final byte[] officaldebugkey = {-99, -69, 45, 71, 114, -116, 82, 66, -99, -122, 50, -70, -56, -111, 98, -35, -65, 105, 82, 43}; static final byte[] amazonkey = {-116, -115, -118, -89, -116, -112, 120, 55, 79, -8, -119, -23, 106, -114, -85, -56, -4, 105, 26, -57}; static final byte[] fdroidkey = {-92, 111, -42, -46, 123, -96, -60, 79, -27, -31, 49, 103, 11, -54, -68, -27, 17, 2, 121, 104}; + static final byte[] officialO2Key = {-50, -119, -11, 121, 121, 122, -115, 84, 90, -122, 27, -117, -14, 60, 54, 127, 41, -45, 27, 55, -14, 90, 31, 72, -26, -85, -85, 67, 35, 54, 100, 42}; private static ConnectionStatus mLastLevel = ConnectionStatus.LEVEL_NOTCONNECTED; diff --git a/main/src/main/res/values/strings.xml b/main/src/main/res/values/strings.xml index a83d091b..37145870 100755 --- a/main/src/main/res/values/strings.xml +++ b/main/src/main/res/values/strings.xml @@ -260,9 +260,10 @@ Encryption ciphers Packet authentication Enter packet authentication method - built by %s + built by %1$s (FP: %2$s) debug build official build + official OpenVPN2 only build Copy into profile Crashdump Add diff --git a/main/src/ui/res/values-ar/strings.xml b/main/src/ui/res/values-ar/strings.xml index acc98475..0b622804 100644 --- a/main/src/ui/res/values-ar/strings.xml +++ b/main/src/ui/res/values-ar/strings.xml @@ -259,7 +259,6 @@ خوارزمية التشفير حزمة المصادقة أدخل طريقة مصادقة الحزمة - طوره %s بناء التصحيح البنية الرسمية نسخ إلى الملف الشخصي diff --git a/main/src/ui/res/values-be/strings.xml b/main/src/ui/res/values-be/strings.xml index 5ab837f8..ee7c5e66 100644 --- a/main/src/ui/res/values-be/strings.xml +++ b/main/src/ui/res/values-be/strings.xml @@ -256,7 +256,6 @@ Алгарытм шыфравання Пакет праверкі сапраўднасці Увядзіце метад праверкі сапраўднасці пакетаў - стварыў(-ла) %s зборка для адладкі афіцыйная зборка Скапіяваць у профіль diff --git a/main/src/ui/res/values-ca/strings.xml b/main/src/ui/res/values-ca/strings.xml index 977a9aae..907fa160 100644 --- a/main/src/ui/res/values-ca/strings.xml +++ b/main/src/ui/res/values-ca/strings.xml @@ -157,7 +157,6 @@ Tipus de xifratge Autentificació de paquet Introdueix el mètode de autentificació de paquet - fet per %s Copia al perfil Volcat de fallada Afegeix diff --git a/main/src/ui/res/values-cs/strings.xml b/main/src/ui/res/values-cs/strings.xml index 2d26b8f8..58769658 100644 --- a/main/src/ui/res/values-cs/strings.xml +++ b/main/src/ui/res/values-cs/strings.xml @@ -256,7 +256,6 @@ Šifrovací algoritmus Ověřování paketů Zadej způsob ověřování paketů - sestaveno od %s ladící verze oficiální verze Zkopírovat do profilu diff --git a/main/src/ui/res/values-da/strings.xml b/main/src/ui/res/values-da/strings.xml index 67bdc845..0c0bb216 100644 --- a/main/src/ui/res/values-da/strings.xml +++ b/main/src/ui/res/values-da/strings.xml @@ -259,7 +259,6 @@ Krypteringsstreng Pakkegodkendelse Angiv pakkegodkendelsesmetode - bygget af %s fejlfindingskompilering officiel kompilering Kopiér til profil diff --git a/main/src/ui/res/values-de/strings.xml b/main/src/ui/res/values-de/strings.xml index 85e7882e..3481df90 100644 --- a/main/src/ui/res/values-de/strings.xml +++ b/main/src/ui/res/values-de/strings.xml @@ -261,7 +261,6 @@ Verschlüsselungsalgorithmus Paket-Authentifizierung Geben Sie den Authentifizierungsalgorithmus an - compiliert von %s Testversion offizielle Version In das Profil einbetten diff --git a/main/src/ui/res/values-el/strings.xml b/main/src/ui/res/values-el/strings.xml index 952878bf..2ea2d624 100644 --- a/main/src/ui/res/values-el/strings.xml +++ b/main/src/ui/res/values-el/strings.xml @@ -256,7 +256,6 @@ Κρυπτογράφηση cipher Πιστοποίηση πακέτων Εισάγετε τη μέθοδο πιστοποίησης πακέτων - αναπτύχθηκε από %s build εντοπισμού σφαλμάτων Επίσημη έκδοση Αντιγραφή στο προφίλ diff --git a/main/src/ui/res/values-es/strings.xml b/main/src/ui/res/values-es/strings.xml index d516213b..5c158581 100644 --- a/main/src/ui/res/values-es/strings.xml +++ b/main/src/ui/res/values-es/strings.xml @@ -260,7 +260,6 @@ hacia/de Móvil) Algoritmo de encriptación Autenticación de paquetes Introduzca método de autenticación de paquetes - compilado por %s versión de depuración versión oficial Copiar en perfil diff --git a/main/src/ui/res/values-et/strings.xml b/main/src/ui/res/values-et/strings.xml index 3f89f590..e75be966 100644 --- a/main/src/ui/res/values-et/strings.xml +++ b/main/src/ui/res/values-et/strings.xml @@ -257,7 +257,6 @@ Krüptošiffer Pakettide autentimine Sisestage pakettide autentimismeetod - Kompileerija: %s Silumisversioon Ametlik versioon Kopeeri profiili diff --git a/main/src/ui/res/values-fa/strings.xml b/main/src/ui/res/values-fa/strings.xml index 9a2b3959..efcefc7c 100644 --- a/main/src/ui/res/values-fa/strings.xml +++ b/main/src/ui/res/values-fa/strings.xml @@ -259,7 +259,6 @@ رمزنگاری سری بسته تأیید هویت روش اعتبار سنجی بسته را وارد کنید - ساخته شده توسط %s اشکال زدایی ساخت ساخت رسمی کپی به نمایه diff --git a/main/src/ui/res/values-fr/strings.xml b/main/src/ui/res/values-fr/strings.xml index 51e928db..ed1a04bd 100644 --- a/main/src/ui/res/values-fr/strings.xml +++ b/main/src/ui/res/values-fr/strings.xml @@ -260,7 +260,6 @@ Sur certaines ROM, cette notification joue un son.\nAndroid a introduit ces noti Algorithme de chiffrement Authentification des paquets Méthode d\'authentification des paquets - compilé par %s version de debug version officielle Copier dans le profil diff --git a/main/src/ui/res/values-he/strings.xml b/main/src/ui/res/values-he/strings.xml index 3848baff..bfcde01e 100644 --- a/main/src/ui/res/values-he/strings.xml +++ b/main/src/ui/res/values-he/strings.xml @@ -260,7 +260,6 @@ צופן הצפנה אימות מנות נא למלא את שיטת אימות המנות - נבנה על ידי %s מהדורה לפיתוח מהדורה רשמית העתקה לפרופיל diff --git a/main/src/ui/res/values-hu/strings.xml b/main/src/ui/res/values-hu/strings.xml index 00e862de..9aa23312 100644 --- a/main/src/ui/res/values-hu/strings.xml +++ b/main/src/ui/res/values-hu/strings.xml @@ -259,7 +259,6 @@ Titkosítás rejtjelezés Csomag hitelesítés Adja meg a csomaghitelesítési metódust - %s fordítóval hibakeresési fordítás hivatalos build Másolás profilba diff --git a/main/src/ui/res/values-in/strings.xml b/main/src/ui/res/values-in/strings.xml index 80bffdb1..0a58623b 100644 --- a/main/src/ui/res/values-in/strings.xml +++ b/main/src/ui/res/values-in/strings.xml @@ -259,7 +259,6 @@ Enkripsi sandi Otentikasi paket Masukkan metode otentikasi paket - dibangun oleh %s Pengembangan debug Build Resmi Salin ke profil diff --git a/main/src/ui/res/values-it/strings.xml b/main/src/ui/res/values-it/strings.xml index e76e4159..228a2b99 100644 --- a/main/src/ui/res/values-it/strings.xml +++ b/main/src/ui/res/values-it/strings.xml @@ -260,7 +260,6 @@ Usa il tasto hardware Menù se non è visibile nella GUI. Algoritmo di crittografia Autenticazione pacchetti Seleziona il metodo di autenticazione dei pacchetti - compilato da %s versione di debug versione ufficiale Copia nel profilo diff --git a/main/src/ui/res/values-ja/strings.xml b/main/src/ui/res/values-ja/strings.xml index 67717413..75ab0c39 100644 --- a/main/src/ui/res/values-ja/strings.xml +++ b/main/src/ui/res/values-ja/strings.xml @@ -295,7 +295,6 @@ Android 4.4以上はポリシールーティングを使用します。route/ifc 暗号化方式 パケット認証 パケット認証方式を入力してください。 - %s によりビルドされました デバッグ ビルド 正式ビルド プロファイルにコピー diff --git a/main/src/ui/res/values-ko/strings.xml b/main/src/ui/res/values-ko/strings.xml index 00f6884c..3bacab69 100644 --- a/main/src/ui/res/values-ko/strings.xml +++ b/main/src/ui/res/values-ko/strings.xml @@ -256,7 +256,6 @@ 암호화 알고리즘 패킷 인증 패킷 인증 방법 입력 - %s가 빌드 디버그 빌드 공식 빌드 프로파일에 복사 diff --git a/main/src/ui/res/values-nl/strings.xml b/main/src/ui/res/values-nl/strings.xml index 4bbcd622..dbe1c61f 100644 --- a/main/src/ui/res/values-nl/strings.xml +++ b/main/src/ui/res/values-nl/strings.xml @@ -256,7 +256,6 @@ Encryptiecijfer Packet-authenticatie Voer de methode voor pakketauthenticatie in - gebouwd door %s debug build officiële build Kopieer naar profiel diff --git a/main/src/ui/res/values-no/strings.xml b/main/src/ui/res/values-no/strings.xml index 20ea61df..78893a1b 100644 --- a/main/src/ui/res/values-no/strings.xml +++ b/main/src/ui/res/values-no/strings.xml @@ -237,7 +237,6 @@ Kryptering chiffer Pakkegodkjenning Angi pakkeautentiseringsmetode - bygget av %s avlusings-delversjon offisiell delversjon Kopier til profil diff --git a/main/src/ui/res/values-pl/strings.xml b/main/src/ui/res/values-pl/strings.xml index f089422d..8db0c8dd 100644 --- a/main/src/ui/res/values-pl/strings.xml +++ b/main/src/ui/res/values-pl/strings.xml @@ -259,7 +259,6 @@ Szyfr kodujący Pakiety uwierzytelniania Wpisz metodę uwierzytelniania pakietów - zbudowany przez %s Kompilacja z debugiem Oficjalna kompilacja Skopiuj do profilu diff --git a/main/src/ui/res/values-pt-rBR/strings.xml b/main/src/ui/res/values-pt-rBR/strings.xml index bccd0ee9..c420eb7c 100644 --- a/main/src/ui/res/values-pt-rBR/strings.xml +++ b/main/src/ui/res/values-pt-rBR/strings.xml @@ -259,7 +259,6 @@ Cifra de criptografia Autenticação de pacotes Selecione o método de autenticação de pacotes - compilado por %s compilação de depuração compilação oficial Copiar para o perfil diff --git a/main/src/ui/res/values-pt/strings.xml b/main/src/ui/res/values-pt/strings.xml index 63b9631c..79a1a03e 100644 --- a/main/src/ui/res/values-pt/strings.xml +++ b/main/src/ui/res/values-pt/strings.xml @@ -234,7 +234,6 @@ Cifra de encriptação Autenticação de pacotes Selecione o método de autenticação de pacotes - Feito por %s compilação de debug compilação oficial Copiar para o perfil diff --git a/main/src/ui/res/values-ro/strings.xml b/main/src/ui/res/values-ro/strings.xml index 479a7b01..41745d40 100644 --- a/main/src/ui/res/values-ro/strings.xml +++ b/main/src/ui/res/values-ro/strings.xml @@ -258,7 +258,6 @@ Cifru criptare Autentificare pachete Introduceţi metoda de autentificare de pachete - compilat de %s versiune debug versiune oficială Copiaţi în profil diff --git a/main/src/ui/res/values-ru/strings.xml b/main/src/ui/res/values-ru/strings.xml index 435250d0..8130851c 100644 --- a/main/src/ui/res/values-ru/strings.xml +++ b/main/src/ui/res/values-ru/strings.xml @@ -262,7 +262,6 @@ API VPNService не позволяет указывать сети, которы Коды шифрования Аутентификация пакетов Укажите метод аутентификации пакетов - собрано с помощью %s Отладочная сборка официальная сборка Скопировать в конфигурацию diff --git a/main/src/ui/res/values-si/strings.xml b/main/src/ui/res/values-si/strings.xml index 897372f0..ed83a068 100644 --- a/main/src/ui/res/values-si/strings.xml +++ b/main/src/ui/res/values-si/strings.xml @@ -257,7 +257,6 @@ සංකේතාංකන කේතාංක පැකට් සත්‍යාපනය පැකට් සත්‍යාපන ක්‍රමය ඇතුලත් කරන්න - %sවිසින් ගොඩනගා ඇත නිදොස් ගොඩනැගීම නිල ගොඩනැගීම පැතිකඩට පිටපත් කරන්න diff --git a/main/src/ui/res/values-sk/strings.xml b/main/src/ui/res/values-sk/strings.xml index f9b8b421..8736d924 100644 --- a/main/src/ui/res/values-sk/strings.xml +++ b/main/src/ui/res/values-sk/strings.xml @@ -257,7 +257,6 @@ Šifrovacia šifra autentifikácia paketov Zadajte metódu autentifikácie paketov - zostavené od %s ladiaca verzia oficiálna verzia Skopírovať do profilu diff --git a/main/src/ui/res/values-sl/strings.xml b/main/src/ui/res/values-sl/strings.xml index 94c8bae9..48045339 100644 --- a/main/src/ui/res/values-sl/strings.xml +++ b/main/src/ui/res/values-sl/strings.xml @@ -254,7 +254,6 @@ Šifra Overitev paketov Vnesite način overitve paketov - izgradil %s razhroščevalna izgradnja uradna izgradnja Kopiraj v profil diff --git a/main/src/ui/res/values-sr-rSP/strings.xml b/main/src/ui/res/values-sr-rSP/strings.xml index e438fc3c..cf3aa892 100644 --- a/main/src/ui/res/values-sr-rSP/strings.xml +++ b/main/src/ui/res/values-sr-rSP/strings.xml @@ -257,7 +257,6 @@ Шифровање шифре Аутентификација пакета Унесите начин провјере аутентичности пакета - саградио %s дебуг буилд званична градња Копирајте у профил diff --git a/main/src/ui/res/values-sv/strings.xml b/main/src/ui/res/values-sv/strings.xml index 6fe48fc0..f5c264ce 100644 --- a/main/src/ui/res/values-sv/strings.xml +++ b/main/src/ui/res/values-sv/strings.xml @@ -259,7 +259,6 @@ Krypteringschiffer Paketautentisering Ange autentiseringsmetod för paket - byggd av %s felsöknings bygge officiellt bygge Kopiera till profil diff --git a/main/src/ui/res/values-tr/strings.xml b/main/src/ui/res/values-tr/strings.xml index e81d824c..39f958ed 100644 --- a/main/src/ui/res/values-tr/strings.xml +++ b/main/src/ui/res/values-tr/strings.xml @@ -259,7 +259,6 @@ Şifre şifresi Paket kimlik doğrulaması Paket kimlik doğrulama yöntemini girin - %s tarafından derlendi hata ayıklama yapısı resmi yapı Profile kopyala diff --git a/main/src/ui/res/values-uk/strings.xml b/main/src/ui/res/values-uk/strings.xml index 6db76c81..814435ac 100644 --- a/main/src/ui/res/values-uk/strings.xml +++ b/main/src/ui/res/values-uk/strings.xml @@ -259,7 +259,6 @@ Алгоритм шифрування Пакети автентифікації Введіть метод автентифікації пакетів - побудована по %s відлагоджувальна збірка Офіційна збірка Скопіювати в профіль diff --git a/main/src/ui/res/values-vi/strings.xml b/main/src/ui/res/values-vi/strings.xml index 0dbcbc92..a721c8b8 100644 --- a/main/src/ui/res/values-vi/strings.xml +++ b/main/src/ui/res/values-vi/strings.xml @@ -259,7 +259,6 @@ Mã hóa mật mã Gói xác thực Nhập phương thức xác thực gói - được xây dựng bởi %s bản dựng gỡ lỗi bản dựng chính thức Sao chép vào hồ sơ diff --git a/main/src/ui/res/values-zh-rCN/strings.xml b/main/src/ui/res/values-zh-rCN/strings.xml index e6d30715..894d0687 100644 --- a/main/src/ui/res/values-zh-rCN/strings.xml +++ b/main/src/ui/res/values-zh-rCN/strings.xml @@ -260,7 +260,6 @@ 加密算法(cipher) 数据包验证 输入数据包验证方式 - 由 %s 构建 调试版本 正式版本 复制进配置文件 diff --git a/main/src/ui/res/values-zh-rTW/strings.xml b/main/src/ui/res/values-zh-rTW/strings.xml index 56aaafb4..6b54dc03 100644 --- a/main/src/ui/res/values-zh-rTW/strings.xml +++ b/main/src/ui/res/values-zh-rTW/strings.xml @@ -257,7 +257,6 @@ 加密法 封包驗證 輸入封包驗證方法 - 由 %s 建立 除錯用版本 正式版本 複製到設定檔 -- cgit v1.2.3 From 242b90fa52ccb863c3ea001fa4e7ce5a21939a0b Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Tue, 6 Jun 2023 17:13:35 +0200 Subject: COrrectly fall back to no encryption if there is an erro with encryption --- .../main/java/de/blinkt/openvpn/core/LogItem.java | 7 ++++++- .../java/de/blinkt/openvpn/core/ProfileManager.java | 6 +++--- .../de/blinkt/openvpn/core/ProfileEncryption.java | 2 +- .../java/de/blinkt/openvpn/core/ProfileEncryption.kt | 20 +++++++++++--------- 4 files changed, 21 insertions(+), 14 deletions(-) diff --git a/main/src/main/java/de/blinkt/openvpn/core/LogItem.java b/main/src/main/java/de/blinkt/openvpn/core/LogItem.java index b6f51928..65714c43 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/LogItem.java +++ b/main/src/main/java/de/blinkt/openvpn/core/LogItem.java @@ -29,6 +29,7 @@ import java.security.cert.X509Certificate; import java.util.Arrays; import java.util.FormatFlagsConversionMismatchException; import java.util.Locale; +import java.util.MissingFormatArgumentException; import java.util.UnknownFormatConversionException; import java.util.Vector; @@ -273,7 +274,11 @@ public class LogItem implements Parcelable { if (mArgs == null) return c.getString(mRessourceId); else - return c.getString(mRessourceId, mArgs); + try { + return c.getString(mRessourceId, mArgs); + } catch (MissingFormatArgumentException ie) { + return "ERROR MISSING ARGUMENT(" + ie.getMessage() + "): " + getString(null); + } } catch (Resources.NotFoundException re) { return getString(null); } diff --git a/main/src/main/java/de/blinkt/openvpn/core/ProfileManager.java b/main/src/main/java/de/blinkt/openvpn/core/ProfileManager.java index 1f12c2fa..9d59e26b 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/ProfileManager.java +++ b/main/src/main/java/de/blinkt/openvpn/core/ProfileManager.java @@ -54,7 +54,7 @@ public class ProfileManager { private synchronized static void checkInstance(Context context) { if (instance == null) { instance = new ProfileManager(); - ProfileEncryption.initMasterCryptAlias(); + ProfileEncryption.initMasterCryptAlias(context); instance.loadVPNList(context); } } @@ -146,7 +146,7 @@ public class ProfileManager { if (encryptedFileOld.exists()) { encryptedFileOld.delete(); } - } catch (IOException ioe) + } catch (IOException | GeneralSecurityException ioe) { VpnStatus.logException(VpnStatus.LogLevel.INFO, "Error trying to write an encrypted VPN profile, disabling " + "encryption", ioe); @@ -174,7 +174,7 @@ public class ProfileManager { } - } catch (IOException | GeneralSecurityException e) { + } catch (IOException e) { VpnStatus.logException("saving VPN profile", e); throw new RuntimeException(e); } diff --git a/main/src/skeleton/java/de/blinkt/openvpn/core/ProfileEncryption.java b/main/src/skeleton/java/de/blinkt/openvpn/core/ProfileEncryption.java index c526a69f..1f5651ab 100644 --- a/main/src/skeleton/java/de/blinkt/openvpn/core/ProfileEncryption.java +++ b/main/src/skeleton/java/de/blinkt/openvpn/core/ProfileEncryption.java @@ -15,7 +15,7 @@ import java.security.GeneralSecurityException; /* Dummy class that supports no encryption */ class ProfileEncryption { - static void initMasterCryptAlias() + static void initMasterCryptAlias(Context context) { } diff --git a/main/src/ui/java/de/blinkt/openvpn/core/ProfileEncryption.kt b/main/src/ui/java/de/blinkt/openvpn/core/ProfileEncryption.kt index ad22460f..fa61e733 100644 --- a/main/src/ui/java/de/blinkt/openvpn/core/ProfileEncryption.kt +++ b/main/src/ui/java/de/blinkt/openvpn/core/ProfileEncryption.kt @@ -7,7 +7,7 @@ package de.blinkt.openvpn.core import android.content.Context import android.os.Build import androidx.security.crypto.EncryptedFile -import androidx.security.crypto.MasterKeys +import androidx.security.crypto.MasterKey import java.io.File import java.io.FileInputStream import java.io.FileOutputStream @@ -19,16 +19,18 @@ internal class ProfileEncryption { companion object { @JvmStatic fun encryptionEnabled(): Boolean { - return mMasterKeyAlias != null + return mMasterKey != null } - private var mMasterKeyAlias: String? = null + private var mMasterKey: MasterKey? = null @JvmStatic - fun initMasterCryptAlias() { + fun initMasterCryptAlias(context:Context) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) return try { - mMasterKeyAlias = MasterKeys.getOrCreate(MasterKeys.AES256_GCM_SPEC) + mMasterKey = MasterKey.Builder(context) + .setKeyScheme(MasterKey.KeyScheme.AES256_GCM) + .build() } catch (e: GeneralSecurityException) { VpnStatus.logException("Could not initialise file encryption key.", e) } catch (e: IOException) { @@ -40,9 +42,9 @@ internal class ProfileEncryption { @Throws(GeneralSecurityException::class, IOException::class) fun getEncryptedVpInput(context: Context, file: File): FileInputStream { val encryptedFile = EncryptedFile.Builder( - file, context, - mMasterKeyAlias!!, + file, + mMasterKey!!, EncryptedFile.FileEncryptionScheme.AES256_GCM_HKDF_4KB ).build() return encryptedFile.openFileInput() @@ -52,9 +54,9 @@ internal class ProfileEncryption { @Throws(GeneralSecurityException::class, IOException::class) fun getEncryptedVpOutput(context: Context, file: File): FileOutputStream { val encryptedFile = EncryptedFile.Builder( - file, context, - mMasterKeyAlias!!, + file, + mMasterKey!!, EncryptedFile.FileEncryptionScheme.AES256_GCM_HKDF_4KB ).build() return encryptedFile.openFileOutput() -- cgit v1.2.3 From ff9162049e5926a3396eb2c38e505e384468596f Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Tue, 6 Jun 2023 17:28:59 +0200 Subject: ensure kotlin and java target the same JVM version (17) --- main/build.gradle.kts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/main/build.gradle.kts b/main/build.gradle.kts index d709d98b..1b63596a 100644 --- a/main/build.gradle.kts +++ b/main/build.gradle.kts @@ -139,12 +139,14 @@ android { } compileOptions { - targetCompatibility = JavaVersion.VERSION_1_8 - sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_17 sourceCompatibility = JavaVersion.VERSION_17 } + kotlinOptions { + jvmTarget = "17" + } + splits { abi { isEnable = true -- cgit v1.2.3 From 244dc458004a4fe33a88c597e569139ce4f5b9f9 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Tue, 6 Jun 2023 17:30:09 +0200 Subject: Version 0.7.46 --- main/build.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main/build.gradle.kts b/main/build.gradle.kts index 1b63596a..49b20885 100644 --- a/main/build.gradle.kts +++ b/main/build.gradle.kts @@ -27,8 +27,8 @@ android { minSdk = 21 targetSdk = 33 //targetSdkPreview = "UpsideDownCake" - versionCode = 200 - versionName = "0.7.45" + versionCode = 201 + versionName = "0.7.46" externalNativeBuild { cmake { } -- cgit v1.2.3 From 43dfbc377f6f7feab3e8cf610b61c7e258127ab9 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Mon, 12 Jun 2023 09:11:40 +0200 Subject: Fix crashes with keepalive job with API <= 23 (closes #1619) --- .../java/de/blinkt/openvpn/core/keepVPNAlive.java | 23 ++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/main/src/main/java/de/blinkt/openvpn/core/keepVPNAlive.java b/main/src/main/java/de/blinkt/openvpn/core/keepVPNAlive.java index 2b75b2fe..5bff9eb2 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/keepVPNAlive.java +++ b/main/src/main/java/de/blinkt/openvpn/core/keepVPNAlive.java @@ -13,6 +13,7 @@ import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.net.VpnService; +import android.os.Build; import android.os.PersistableBundle; import de.blinkt.openvpn.LaunchVPN; @@ -88,8 +89,8 @@ public class keepVPNAlive extends JobService implements VpnStatus.StateListener * but we use a minimum of 5 minutes and 2 minutes to avoid problems if there is some * strange Android build that allows lower lmits. */ - long initervalMillis = Math.max(JobInfo.getMinPeriodMillis(), 5 * 60 * 1000L); - long flexMillis = Math.max(JobInfo.getMinFlexMillis(), 2 * 60 * 1000L); + long initervalMillis = Math.max(getMinPeriodMillis(), 5 * 60 * 1000L); + long flexMillis = Math.max(getMinFlexMillis(), 2 * 60 * 1000L); jib.setPeriodic(initervalMillis, flexMillis); jib.setPersisted(true); @@ -98,6 +99,24 @@ public class keepVPNAlive extends JobService implements VpnStatus.StateListener VpnStatus.logDebug("Scheduling VPN keep alive for VPN " + vp.mName); } + private static long getMinPeriodMillis() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + return JobInfo.getMinPeriodMillis(); + } else { + return 15 * 60 * 1000L; // 15 minutes + } + } + + private static long getMinFlexMillis() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + return JobInfo.getMinFlexMillis(); + } + else + { + return 5 * 60 * 1000L; // 5 minutes + } + } + public static void unscheduleKeepVPNAliveJobService(Context c) { JobScheduler jobScheduler = c.getSystemService(JobScheduler.class); jobScheduler.cancel(JOBID_KEEPVPNALIVE); -- cgit v1.2.3 From 959cb04640e90c35fe424d30f45867ac6626981b Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Mon, 12 Jun 2023 12:50:10 +0200 Subject: Update build files/dependencies --- build.gradle.kts | 6 ++---- gradle.properties | 1 - main/build.gradle.kts | 18 +++++++++--------- 3 files changed, 11 insertions(+), 14 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 6cebeb78..db31fcb1 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,16 +6,14 @@ buildscript { var kotlin_version: String by extra - var fragment_version: String by extra - kotlin_version = "1.7.22" - fragment_version = "1.5.5" + kotlin_version = "1.8.20" repositories { google() mavenCentral() } dependencies { - classpath("com.android.tools.build:gradle:8.0.1") + classpath("com.android.tools.build:gradle:8.0.2") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version") } } diff --git a/gradle.properties b/gradle.properties index 2af7a640..766a0917 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,6 @@ # Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt # -android.enableJetifier=true android.useAndroidX=true android.enableUnitTestBinaryResources=false android.defaults.buildfeatures.buildconfig=true diff --git a/main/build.gradle.kts b/main/build.gradle.kts index 49b20885..5774b303 100644 --- a/main/build.gradle.kts +++ b/main/build.gradle.kts @@ -204,12 +204,12 @@ dependencies { // https://maven.google.com/web/index.html // https://developer.android.com/jetpack/androidx/releases/core val preferenceVersion = "1.2.0" - val coreVersion = "1.9.0" + val coreVersion = "1.10.1" val materialVersion = "1.7.0" - val fragment_version = "1.5.5" + val fragment_version = "1.6.0" - implementation("androidx.annotation:annotation:1.3.0") + implementation("androidx.annotation:annotation:1.6.0") implementation("androidx.core:core:$coreVersion") @@ -217,19 +217,19 @@ dependencies { dependencies.add("uiImplementation", "androidx.constraintlayout:constraintlayout:2.1.4") dependencies.add("uiImplementation", "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.22") dependencies.add("uiImplementation", "androidx.cardview:cardview:1.0.0") - dependencies.add("uiImplementation", "androidx.recyclerview:recyclerview:1.2.1") - dependencies.add("uiImplementation", "androidx.appcompat:appcompat:1.5.1") + dependencies.add("uiImplementation", "androidx.recyclerview:recyclerview:1.3.0") + dependencies.add("uiImplementation", "androidx.appcompat:appcompat:1.6.1") dependencies.add("uiImplementation", "com.github.PhilJay:MPAndroidChart:v3.1.0") - dependencies.add("uiImplementation", "com.squareup.okhttp3:okhttp:4.9.3") + dependencies.add("uiImplementation", "com.squareup.okhttp3:okhttp:4.10.0") dependencies.add("uiImplementation", "androidx.core:core:$coreVersion") dependencies.add("uiImplementation", "androidx.core:core-ktx:$coreVersion") dependencies.add("uiImplementation", "androidx.fragment:fragment-ktx:$fragment_version") dependencies.add("uiImplementation", "androidx.preference:preference:$preferenceVersion") dependencies.add("uiImplementation", "androidx.preference:preference-ktx:$preferenceVersion") dependencies.add("uiImplementation", "com.google.android.material:material:$materialVersion") - dependencies.add("uiImplementation", "androidx.webkit:webkit:1.4.0") - dependencies.add("uiImplementation", "androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1") - dependencies.add("uiImplementation", "androidx.lifecycle:lifecycle-runtime-ktx:2.5.1") + dependencies.add("uiImplementation", "androidx.webkit:webkit:1.7.0") + dependencies.add("uiImplementation", "androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1") + dependencies.add("uiImplementation", "androidx.lifecycle:lifecycle-runtime-ktx:2.6.1") dependencies.add("uiImplementation","androidx.security:security-crypto:1.1.0-alpha06") -- cgit v1.2.3 From 40eb1a83cdcde7c0178428ecb0ad880a363a97a3 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Tue, 11 Jul 2023 16:59:30 +0200 Subject: Fix some ANRs --- .../java/de/blinkt/openvpn/core/OpenVPNService.java | 18 ++++++++++-------- .../blinkt/openvpn/core/OpenVpnManagementThread.java | 8 +++----- .../openvpn/fragments/OpenVpnPreferencesFragment.java | 1 - .../ui/java/de/blinkt/openvpn/fragments/Settings_IP.kt | 15 ++++++++++++++- 4 files changed, 27 insertions(+), 15 deletions(-) diff --git a/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java b/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java index 39aaef57..edc36e9a 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java +++ b/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java @@ -220,7 +220,9 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac @Override public void onRevoke() { VpnStatus.logError(R.string.permission_revoked); - mManagement.stopVPN(false); + final OpenVPNManagement managment = mManagement; + mCommandHandler.post(() -> managment.stopVPN(false)); + endVpnService(); } @@ -612,8 +614,7 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac // Set a flag that we are starting a new VPN mStarting = true; // Stop the previous session by interrupting the thread. - - stopOldOpenVPNProcess(); + stopOldOpenVPNProcess(mManagement, mOpenVPNThread); // An old running VPN should now be exited mStarting = false; @@ -672,11 +673,12 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac } - private void stopOldOpenVPNProcess() { - if (mManagement != null) { - if (mOpenVPNThread != null) - ((OpenVPNThread) mOpenVPNThread).setReplaceConnection(); - if (mManagement.stopVPN(true)) { + private void stopOldOpenVPNProcess(OpenVPNManagement management, + Runnable mamanagmentThread) { + if (management != null) { + if (mamanagmentThread != null) + ((OpenVPNThread) mamanagmentThread).setReplaceConnection(); + if (management.stopVPN(true)) { // an old was asked to exit, wait 1s try { Thread.sleep(1000); diff --git a/main/src/main/java/de/blinkt/openvpn/core/OpenVpnManagementThread.java b/main/src/main/java/de/blinkt/openvpn/core/OpenVpnManagementThread.java index 11b2608b..5d4486b9 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/OpenVpnManagementThread.java +++ b/main/src/main/java/de/blinkt/openvpn/core/OpenVpnManagementThread.java @@ -47,12 +47,12 @@ public class OpenVpnManagementThread implements Runnable, OpenVPNManagement { private pauseReason lastPauseReason = pauseReason.noNetwork; private PausedStateCallback mPauseCallback; private boolean mShuttingDown; - private Runnable mResumeHoldRunnable = () -> { + private final Runnable mResumeHoldRunnable = () -> { if (shouldBeRunning()) { releaseHoldCmd(); } }; - private Runnable orbotStatusTimeOutRunnable = new Runnable() { + private final Runnable orbotStatusTimeOutRunnable = new Runnable() { @Override public void run() { sendProxyCMD(Connection.ProxyType.SOCKS5, "127.0.0.1", Integer.toString(OrbotHelper.SOCKS_PROXY_PORT_DEFAULT), false); @@ -148,8 +148,6 @@ public class OpenVpnManagementThread implements Runnable, OpenVPNManagement { VpnStatus.logException(e); } return false; - - } /** @@ -402,7 +400,7 @@ public class OpenVpnManagementThread implements Runnable, OpenVPNManagement { if (waittime > 1) VpnStatus.updateStateString("CONNECTRETRY", String.valueOf(waittime), R.string.state_waitconnectretry, ConnectionStatus.LEVEL_CONNECTING_NO_SERVER_REPLY_YET); - mResumeHandler.postDelayed(mResumeHoldRunnable, waittime * 1000); + mResumeHandler.postDelayed(mResumeHoldRunnable, waittime * 1000L); if (waittime > 5) VpnStatus.logInfo(R.string.state_waitconnectretry, String.valueOf(waittime)); else diff --git a/main/src/ui/java/de/blinkt/openvpn/fragments/OpenVpnPreferencesFragment.java b/main/src/ui/java/de/blinkt/openvpn/fragments/OpenVpnPreferencesFragment.java index a3c19955..802e0b49 100644 --- a/main/src/ui/java/de/blinkt/openvpn/fragments/OpenVpnPreferencesFragment.java +++ b/main/src/ui/java/de/blinkt/openvpn/fragments/OpenVpnPreferencesFragment.java @@ -46,7 +46,6 @@ public abstract class OpenVpnPreferencesFragment extends PreferenceFragmentCompa String profileUUID = savedInstanceState.getString(VpnProfile.EXTRA_PROFILEUUID); mProfile = ProfileManager.get(getActivity(), profileUUID); loadSettings(); - } } diff --git a/main/src/ui/java/de/blinkt/openvpn/fragments/Settings_IP.kt b/main/src/ui/java/de/blinkt/openvpn/fragments/Settings_IP.kt index 27e6854f..fa7e6f55 100644 --- a/main/src/ui/java/de/blinkt/openvpn/fragments/Settings_IP.kt +++ b/main/src/ui/java/de/blinkt/openvpn/fragments/Settings_IP.kt @@ -5,6 +5,7 @@ package de.blinkt.openvpn.fragments import android.os.Bundle +import android.view.View import androidx.preference.* import de.blinkt.openvpn.R import de.blinkt.openvpn.fragments.OpenVpnPreferencesFragment @@ -33,6 +34,19 @@ class Settings_IP : OpenVpnPreferencesFragment(), Preference.OnPreferenceChangeL // Load the preferences from an XML resource addPreferencesFromResource(R.xml.vpn_ipsettings) + bindPreferences() + loadSettings() + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + /* Bind the preferences early to avoid loadingSetting which is called + * from the superclass to access an uninitialised earlyinit property + */ + bindPreferences() + super.onViewCreated(view, savedInstanceState) + } + + private fun bindPreferences() { mIPv4 = findPreference("ipv4_address")!! mIPv6 = findPreference("ipv6_address")!! mUsePull = findPreference("usePull")!! @@ -45,7 +59,6 @@ class Settings_IP : OpenVpnPreferencesFragment(), Preference.OnPreferenceChangeL mNobind = findPreference("nobind")!! mUsePull.onPreferenceChangeListener = this mOverrideDNS.onPreferenceChangeListener = this - loadSettings() } -- cgit v1.2.3 From caead242b2c4ac409fdb13178aa206632b1ac959 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Thu, 13 Jul 2023 16:24:48 +0200 Subject: Update OpenVPN 2.x and OpenVPN 3.x --- main/src/main/cpp/openvpn | 2 +- main/src/main/cpp/openvpn3 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/main/src/main/cpp/openvpn b/main/src/main/cpp/openvpn index c6f83950..bc6d826a 160000 --- a/main/src/main/cpp/openvpn +++ b/main/src/main/cpp/openvpn @@ -1 +1 @@ -Subproject commit c6f83950571614b6f6c7d0d6b34a5025edaaadc1 +Subproject commit bc6d826ae6ee6be87a15b8304944865c45d7801b diff --git a/main/src/main/cpp/openvpn3 b/main/src/main/cpp/openvpn3 index 5f1f207b..bfdfa130 160000 --- a/main/src/main/cpp/openvpn3 +++ b/main/src/main/cpp/openvpn3 @@ -1 +1 @@ -Subproject commit 5f1f207bfd00ea29bbc58b48ccd4bc4d863dfdf9 +Subproject commit bfdfa13082334b577b66bf8eaebbafdbe2671f12 -- cgit v1.2.3 From 91488a24cdc1b505839f640191d1229fb9d473e3 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Thu, 13 Jul 2023 16:25:06 +0200 Subject: Target Upside down cake (Android 14/API 34) --- main/build.gradle.kts | 4 ++-- main/src/main/AndroidManifest.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/main/build.gradle.kts b/main/build.gradle.kts index 5774b303..01e7dc62 100644 --- a/main/build.gradle.kts +++ b/main/build.gradle.kts @@ -17,7 +17,7 @@ android { aidl = true } namespace = "de.blinkt.openvpn" - compileSdk = 33 + compileSdk = 34 //compileSdkPreview = "UpsideDownCake" // Also update runcoverity.sh @@ -25,7 +25,7 @@ android { defaultConfig { minSdk = 21 - targetSdk = 33 + targetSdk = 34 //targetSdkPreview = "UpsideDownCake" versionCode = 201 versionName = "0.7.46" diff --git a/main/src/main/AndroidManifest.xml b/main/src/main/AndroidManifest.xml index b22507d6..056d4cff 100644 --- a/main/src/main/AndroidManifest.xml +++ b/main/src/main/AndroidManifest.xml @@ -53,7 +53,7 @@ android:name=".core.OpenVPNService" android:exported="true" android:permission="android.permission.BIND_VPN_SERVICE" - android:foregroundServiceType="dataSync" + android:foregroundServiceType="specialUse" android:process=":openvpn"> -- cgit v1.2.3 From 46dd6fe515782e7fa38f9aa116d73fbc349d70d4 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Thu, 13 Jul 2023 18:01:09 +0200 Subject: Version 0.7.47 --- main/build.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main/build.gradle.kts b/main/build.gradle.kts index 01e7dc62..6c46e697 100644 --- a/main/build.gradle.kts +++ b/main/build.gradle.kts @@ -27,8 +27,8 @@ android { minSdk = 21 targetSdk = 34 //targetSdkPreview = "UpsideDownCake" - versionCode = 201 - versionName = "0.7.46" + versionCode = 202 + versionName = "0.7.47" externalNativeBuild { cmake { } -- cgit v1.2.3 From 1fc6b17afa9423fc05e66fa4159aa4a229e32625 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Sun, 16 Jul 2023 16:54:26 +0200 Subject: Fix crash on showing Routing tab [closes #1624] --- main/src/ui/java/de/blinkt/openvpn/fragments/Settings_IP.kt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/main/src/ui/java/de/blinkt/openvpn/fragments/Settings_IP.kt b/main/src/ui/java/de/blinkt/openvpn/fragments/Settings_IP.kt index fa7e6f55..ef69f3f4 100644 --- a/main/src/ui/java/de/blinkt/openvpn/fragments/Settings_IP.kt +++ b/main/src/ui/java/de/blinkt/openvpn/fragments/Settings_IP.kt @@ -34,18 +34,21 @@ class Settings_IP : OpenVpnPreferencesFragment(), Preference.OnPreferenceChangeL // Load the preferences from an XML resource addPreferencesFromResource(R.xml.vpn_ipsettings) - bindPreferences() - loadSettings() } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { /* Bind the preferences early to avoid loadingSetting which is called * from the superclass to access an uninitialised earlyinit property */ - bindPreferences() super.onViewCreated(view, savedInstanceState) } + override fun onBindPreferences() { + super.onBindPreferences() + bindPreferences() + loadSettings() + } + private fun bindPreferences() { mIPv4 = findPreference("ipv4_address")!! mIPv6 = findPreference("ipv6_address")!! -- cgit v1.2.3 From 0c527c123be12f425ca1c1d68233aae3ccac6a87 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Thu, 27 Jul 2023 12:02:56 +0200 Subject: Add code transparency during build process --- README.md | 43 +++++++++++++++++++++++++++++++++++++++ main/build.gradle.kts | 36 ++++++++++++++++++++++++++++++++ main/src/main/AndroidManifest.xml | 1 - misc/code-transparency.pem | 32 +++++++++++++++++++++++++++++ 4 files changed, 111 insertions(+), 1 deletion(-) create mode 100644 misc/code-transparency.pem diff --git a/README.md b/README.md index 415fc0ca..756f611a 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,49 @@ With the new VPNService of Android API level 14+ (Ice Cream Sandwich) it is poss Get it on Google Play +Code Transparency +----------------- +Fingerprint of the code transparency key used to be able to verify that +apks generated by the Play are not modified (https://developer.android.com/guide/app-bundle/code-transparency): + + 19 62 43 6C 96 B4 9D 12 75 83 B1 22 DA 14 F4 5D 2B 78 5D A4 13 1F 04 BE 73 A0 88 32 15 59 18 8D + +Full signing certificate (also under misc/code-transparency.pem): + + -----BEGIN CERTIFICATE----- + MIIFjTCCA3WgAwIBAgIIJDXa55a+Ag0wDQYJKoZIhvcNAQEMBQAwdDELMAkGA1UE + BhMCREUxDDAKBgNVBAgTA05SVzESMBAGA1UEBxMJUGFkZXJib3JuMRowGAYDVQQK + ExFBdmlhbiBJUCBDYXJyaWVyczEQMA4GA1UECxMHUkZDMTE0OTEVMBMGA1UEAxMM + QXJuZSBTY2h3YWJlMCAXDTIzMDcyNzA5MzEyNloYDzIwNTMwNzE5MDkzMTI2WjB0 + MQswCQYDVQQGEwJERTEMMAoGA1UECBMDTlJXMRIwEAYDVQQHEwlQYWRlcmJvcm4x + GjAYBgNVBAoTEUF2aWFuIElQIENhcnJpZXJzMRAwDgYDVQQLEwdSRkMxMTQ5MRUw + EwYDVQQDEwxBcm5lIFNjaHdhYmUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK + AoICAQC8FZVaV1aEy3SmIWQSn0xVjn9yrhOyQOZ2AasqB9EH1ylSZs4zii/ePiBE + 4g/auhDPnn/K1hWYevCJr/7zvJVaaocpl0hLqXHCQr7tSifREDM8lHeXYlW67Bbx + sFFREvHfDyAHM5CYDzIEDWrHNp2mBFRLLP1fgl5bZ8r50UCyNdvgIHozDwXITdnR + FeTSzIugZaLL+tGvtVU3Mc03bHhFp9mVbB3ZRjVnZsQ8Abs++zimT9srDqRFkbC0 + F1N+Syicw3JRI2trLB6Fezc4lCwAmeKQRIY+QOdCZZSaD5+iyINcXg63QJRkGdoL + GHhp6wCiJD2xwpuiQLVVzF1sIOUJWq0tcjazjXo3axsHbMhRZNCwspq2wUTgLtuZ + xSWT1enJF+1o2Y4ecR+aaKorppFe00Bhylg1+tj0CWfn6rwee1jkyf+hFDIuqvZi + Mukbeke7K3ADK8JdJ6xl9FbZeafFxGHiwt+Ftc5oDariC3LR3gN0ochrNiNI20qS + 3ZAKeHaRLy6AUP8ccvD+KQf439JVXquDdlCgFkE7uSv136cY3HVk1QPzzDJFwFoQ + TNdLajd2YJD1GXZzinT+HOjrLt61P+qAY1cmsxaKdBdBRXFiRyUaZbBUD+4omcvy + Uoz8nWXUdwqyEjtYeq+XmL4HX3t3JhNy8zfyLpf6Xa4y0Zdq9QIDAQABoyEwHzAd + BgNVHQ4EFgQUoivC+NgNB1xqM76DTI3QR6DCgFIwDQYJKoZIhvcNAQEMBQADggIB + ALo1KRzLjgbpK1aZPfJJ63R2CQLX2KpolHO4GZxcXgZCv2h9V45aiLO6nKUDL6Dc + 6A0izgxtNQlwuloBTb0fMIS/A9Pl1p8/M1JvYNC1zDWVBKeUMkEeBwVCo8rn8giG + GtdDNLJmFv5bqgS6ZF2av2pZnkr2Q2sAiSFVpBzFjP2T5/WNkO3O7ybTb+c5VeQE + DuOpJawd+/5m4SjYmthARBX57gpDZiGR/Usid2FHrSSXmddbFkD8tbZUM0AvSW4z + 8TX2v3eO3PJPov5uksV4USNCUxPx7KfVQDsvbGJyup9I08fvVrAI1ZJGuk33QGLa + Uy2U7UuUGmarOpN9xBrTWkGw/6J+XdJbArRV3N+TjzAs0cCCcqp94+W7aXb7Bvna + ssXnvvd8Ph2DVocv4msk8NNnGh4Ss2wbfOM1j7hlka0szARjOzribm3oagu5dQmE + b+CV2mE9RokP3co1hMIf4GAFQM+Ul+4nzz2ogQ7JJfkbLJFnM0WUUzpeKLmB3UD6 + 3kWlS6ZsDrqXUDNwUJ0Fn4Kcg0YYKGtQGqUngcwYlU8iuH+WU/cf2XuLM/r8K94l + P7u5iBz+Cot3lyKMv7GY4huboCe91i4njrjUJkYbyXdNS5WvZoznvg/YsAYBsYk8 + X3vLORq2tRoP4oMEEGEussYdnpWeqYroHJ9FdDM7Sv7e + -----END CERTIFICATE----- + + Developing --------------- If you want to develop on ics-openvpn please read the [doc/README.txt](https://github.com/schwabe/ics-openvpn/blob/master/doc/README.txt) *before* opening issues or emailing me. diff --git a/main/build.gradle.kts b/main/build.gradle.kts index 6c46e697..b05c5a8a 100644 --- a/main/build.gradle.kts +++ b/main/build.gradle.kts @@ -13,6 +13,7 @@ plugins { } android { + buildToolsVersion = "33.0.1" buildFeatures { aidl = true } @@ -156,7 +157,42 @@ android { } } + packaging { + jniLibs { + useLegacyPackaging = true + } + } + + packaging { + jniLibs { + useLegacyPackaging = true + } + } + bundle { + codeTransparency { + signing { + val keystoreTPFile: String? by project + storeFile = keystoreTPFile?.let { file(it) } + val keystoreTPPassword: String? by project + storePassword = keystoreTPPassword + val keystoreTPAliasPassword: String? by project + keyPassword = keystoreTPAliasPassword + val keystoreTPAlias: String? by project + keyAlias = keystoreTPAlias + + if (keystoreTPFile?.isEmpty() ?: true) + print("keystoreTPFile not set, disabling transparency signing") + if (keystoreTPPassword?.isEmpty() ?: true) + print("keystoreTPPassword not set, disabling transparency signing") + if (keystoreTPAliasPassword?.isEmpty() ?: true) + print("keystoreTPAliasPassword not set, disabling transparency signing") + if (keystoreTPAlias?.isEmpty() ?: true) + print("keyAlias not set, disabling transparency signing") + + } + } + } } var swigcmd = "swig" diff --git a/main/src/main/AndroidManifest.xml b/main/src/main/AndroidManifest.xml index 056d4cff..ab8654b5 100644 --- a/main/src/main/AndroidManifest.xml +++ b/main/src/main/AndroidManifest.xml @@ -29,7 +29,6 @@ android:name=".core.ICSOpenVPNApplication" android:allowBackup="true" android:appCategory="productivity" - android:extractNativeLibs="true" android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" android:label="@string/app" diff --git a/misc/code-transparency.pem b/misc/code-transparency.pem new file mode 100644 index 00000000..ee888bc4 --- /dev/null +++ b/misc/code-transparency.pem @@ -0,0 +1,32 @@ +-----BEGIN CERTIFICATE----- +MIIFjTCCA3WgAwIBAgIIJDXa55a+Ag0wDQYJKoZIhvcNAQEMBQAwdDELMAkGA1UE +BhMCREUxDDAKBgNVBAgTA05SVzESMBAGA1UEBxMJUGFkZXJib3JuMRowGAYDVQQK +ExFBdmlhbiBJUCBDYXJyaWVyczEQMA4GA1UECxMHUkZDMTE0OTEVMBMGA1UEAxMM +QXJuZSBTY2h3YWJlMCAXDTIzMDcyNzA5MzEyNloYDzIwNTMwNzE5MDkzMTI2WjB0 +MQswCQYDVQQGEwJERTEMMAoGA1UECBMDTlJXMRIwEAYDVQQHEwlQYWRlcmJvcm4x +GjAYBgNVBAoTEUF2aWFuIElQIENhcnJpZXJzMRAwDgYDVQQLEwdSRkMxMTQ5MRUw +EwYDVQQDEwxBcm5lIFNjaHdhYmUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK +AoICAQC8FZVaV1aEy3SmIWQSn0xVjn9yrhOyQOZ2AasqB9EH1ylSZs4zii/ePiBE +4g/auhDPnn/K1hWYevCJr/7zvJVaaocpl0hLqXHCQr7tSifREDM8lHeXYlW67Bbx +sFFREvHfDyAHM5CYDzIEDWrHNp2mBFRLLP1fgl5bZ8r50UCyNdvgIHozDwXITdnR +FeTSzIugZaLL+tGvtVU3Mc03bHhFp9mVbB3ZRjVnZsQ8Abs++zimT9srDqRFkbC0 +F1N+Syicw3JRI2trLB6Fezc4lCwAmeKQRIY+QOdCZZSaD5+iyINcXg63QJRkGdoL +GHhp6wCiJD2xwpuiQLVVzF1sIOUJWq0tcjazjXo3axsHbMhRZNCwspq2wUTgLtuZ +xSWT1enJF+1o2Y4ecR+aaKorppFe00Bhylg1+tj0CWfn6rwee1jkyf+hFDIuqvZi +Mukbeke7K3ADK8JdJ6xl9FbZeafFxGHiwt+Ftc5oDariC3LR3gN0ochrNiNI20qS +3ZAKeHaRLy6AUP8ccvD+KQf439JVXquDdlCgFkE7uSv136cY3HVk1QPzzDJFwFoQ +TNdLajd2YJD1GXZzinT+HOjrLt61P+qAY1cmsxaKdBdBRXFiRyUaZbBUD+4omcvy +Uoz8nWXUdwqyEjtYeq+XmL4HX3t3JhNy8zfyLpf6Xa4y0Zdq9QIDAQABoyEwHzAd +BgNVHQ4EFgQUoivC+NgNB1xqM76DTI3QR6DCgFIwDQYJKoZIhvcNAQEMBQADggIB +ALo1KRzLjgbpK1aZPfJJ63R2CQLX2KpolHO4GZxcXgZCv2h9V45aiLO6nKUDL6Dc +6A0izgxtNQlwuloBTb0fMIS/A9Pl1p8/M1JvYNC1zDWVBKeUMkEeBwVCo8rn8giG +GtdDNLJmFv5bqgS6ZF2av2pZnkr2Q2sAiSFVpBzFjP2T5/WNkO3O7ybTb+c5VeQE +DuOpJawd+/5m4SjYmthARBX57gpDZiGR/Usid2FHrSSXmddbFkD8tbZUM0AvSW4z +8TX2v3eO3PJPov5uksV4USNCUxPx7KfVQDsvbGJyup9I08fvVrAI1ZJGuk33QGLa +Uy2U7UuUGmarOpN9xBrTWkGw/6J+XdJbArRV3N+TjzAs0cCCcqp94+W7aXb7Bvna +ssXnvvd8Ph2DVocv4msk8NNnGh4Ss2wbfOM1j7hlka0szARjOzribm3oagu5dQmE +b+CV2mE9RokP3co1hMIf4GAFQM+Ul+4nzz2ogQ7JJfkbLJFnM0WUUzpeKLmB3UD6 +3kWlS6ZsDrqXUDNwUJ0Fn4Kcg0YYKGtQGqUngcwYlU8iuH+WU/cf2XuLM/r8K94l +P7u5iBz+Cot3lyKMv7GY4huboCe91i4njrjUJkYbyXdNS5WvZoznvg/YsAYBsYk8 +X3vLORq2tRoP4oMEEGEussYdnpWeqYroHJ9FdDM7Sv7e +-----END CERTIFICATE----- \ No newline at end of file -- cgit v1.2.3 From ab5ce84a3414dd433781e05d7fcff9291f0a4f92 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Thu, 27 Jul 2023 12:58:44 +0200 Subject: Update gradle build tools --- build.gradle.kts | 4 ++-- gradle.properties | 1 - gradle/wrapper/gradle-wrapper.properties | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index db31fcb1..3b41e700 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -7,13 +7,13 @@ buildscript { var kotlin_version: String by extra - kotlin_version = "1.8.20" + kotlin_version = "1.9.0" repositories { google() mavenCentral() } dependencies { - classpath("com.android.tools.build:gradle:8.0.2") + classpath("com.android.tools.build:gradle:8.1.0") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version") } } diff --git a/gradle.properties b/gradle.properties index 766a0917..0e3e6a55 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,7 +4,6 @@ # android.useAndroidX=true -android.enableUnitTestBinaryResources=false android.defaults.buildfeatures.buildconfig=true android.nonTransitiveRClass=false android.nonFinalResIds=false diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 8b3d4701..06fe19dc 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.2.1-all.zip -- cgit v1.2.3 From 4540a6593578e62c4eef4375b1f07a48d4430c07 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Tue, 1 Aug 2023 11:01:03 +0200 Subject: Fix overlapping warning in server list (closes #1627) --- main/src/ui/res/layout/connections.xml | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/main/src/ui/res/layout/connections.xml b/main/src/ui/res/layout/connections.xml index e3c03bf6..165f3559 100644 --- a/main/src/ui/res/layout/connections.xml +++ b/main/src/ui/res/layout/connections.xml @@ -41,11 +41,26 @@ + - + -- cgit v1.2.3 From e4f27c1641c2ce623be3f1f9e1cb64a141d65657 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Tue, 1 Aug 2023 11:01:35 +0200 Subject: Update OpenVPN 2.x und asio --- main/src/main/cpp/asio | 2 +- main/src/main/cpp/openvpn | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/main/src/main/cpp/asio b/main/src/main/cpp/asio index c465349f..1f8d1548 160000 --- a/main/src/main/cpp/asio +++ b/main/src/main/cpp/asio @@ -1 +1 @@ -Subproject commit c465349fa5cd91a64bb369f5131ceacab2c0c1c3 +Subproject commit 1f8d154829b902dbc45a651587c6c6df948358e8 diff --git a/main/src/main/cpp/openvpn b/main/src/main/cpp/openvpn index bc6d826a..760c4a6a 160000 --- a/main/src/main/cpp/openvpn +++ b/main/src/main/cpp/openvpn @@ -1 +1 @@ -Subproject commit bc6d826ae6ee6be87a15b8304944865c45d7801b +Subproject commit 760c4a6ad7edc9295d4d1762c1ed8375a87827f5 -- cgit v1.2.3 From e2a6b00e044cd15e74528c95544dbd32d72ec935 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Tue, 1 Aug 2023 11:44:31 +0200 Subject: Improve description of tls-auth/tls-crypt in dialog (closes #1625) --- main/src/main/res/values/arrays.xml | 6 +++--- main/src/main/res/values/strings.xml | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/main/src/main/res/values/arrays.xml b/main/src/main/res/values/arrays.xml index 3d6512c1..2016cffe 100644 --- a/main/src/main/res/values/arrays.xml +++ b/main/src/main/res/values/arrays.xml @@ -18,9 +18,9 @@ External Auth Provider - 0 - 1 - Unspecified + tls-auth - --direction 0 + tls-auth - --direction 1 + tls-auth --direction not specified Encryption (--tls-crypt) TLS Crypt V2 diff --git a/main/src/main/res/values/strings.xml b/main/src/main/res/values/strings.xml index 37145870..e9ae302b 100755 --- a/main/src/main/res/values/strings.xml +++ b/main/src/main/res/values/strings.xml @@ -26,8 +26,8 @@ PKCS12 Password Select… You must select a file - Use TLS Authentication - TLS Direction + Use Control Channel Authentication/Encryption + Authentication/encryption method Enter IPv6 Address/Netmask in CIDR Format (e.g. 2000:dd::23/64) Enter IPv4 Address/Netmask in CIDR Format (e.g. 1.2.3.4/24) IPv4 Address @@ -68,8 +68,8 @@ Certificate Hostname Check Specify the check used to verify the remote certificate DN (e.g. C=DE, L=Paderborn, OU=Avian IP Carriers, CN=openvpn.blinkt.de)\n\nSpecify the complete DN or the RDN (openvpn.blinkt.de in the example) or an RDN prefix for verification.\n\nWhen using RDN prefix \"Server\" matches \"Server-1\" and \"Server-2\"\n\nLeaving the text field empty will check the RDN against the server hostname.\n\nFor more details see the OpenVPN 2.3.1+ manpage under —verify-x509-name Remote certificate subject - Enables the TLS Key Authentication - TLS Auth File + Enables an additional authentication/encryption layer for the OpenVPN control channel + TLS Auth/TLS Encryption File Requests IP addresses, routes and timing options from the server. No information is requested from the server. Settings need to be specified below. Pull Settings -- cgit v1.2.3 From a674474bea2fa20148b5843f7b7347390f66ee7b Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Tue, 1 Aug 2023 12:01:18 +0200 Subject: Update translations --- main/src/ui/res/values-ar/arrays.xml | 6 +++--- main/src/ui/res/values-ar/strings.xml | 4 ---- main/src/ui/res/values-be/arrays.xml | 6 +++--- main/src/ui/res/values-be/strings.xml | 4 ---- main/src/ui/res/values-ca/arrays.xml | 6 +++--- main/src/ui/res/values-ca/strings.xml | 2 -- main/src/ui/res/values-cs/arrays.xml | 6 +++--- main/src/ui/res/values-cs/strings.xml | 4 ---- main/src/ui/res/values-da/arrays.xml | 6 +++--- main/src/ui/res/values-da/strings.xml | 4 ---- main/src/ui/res/values-de/arrays.xml | 6 +++--- main/src/ui/res/values-de/strings.xml | 10 ++++++---- main/src/ui/res/values-el/arrays.xml | 6 +++--- main/src/ui/res/values-el/strings.xml | 4 ---- main/src/ui/res/values-es/arrays.xml | 6 +++--- main/src/ui/res/values-es/strings.xml | 4 ---- main/src/ui/res/values-et/arrays.xml | 6 +++--- main/src/ui/res/values-et/strings.xml | 4 ---- main/src/ui/res/values-fa/arrays.xml | 6 +++--- main/src/ui/res/values-fa/strings.xml | 6 ++---- main/src/ui/res/values-fr/arrays.xml | 6 +++--- main/src/ui/res/values-fr/strings.xml | 4 ---- main/src/ui/res/values-he/arrays.xml | 6 +++--- main/src/ui/res/values-he/strings.xml | 4 ---- main/src/ui/res/values-hu/arrays.xml | 6 +++--- main/src/ui/res/values-hu/strings.xml | 4 ---- main/src/ui/res/values-in/arrays.xml | 6 +++--- main/src/ui/res/values-in/strings.xml | 4 ---- main/src/ui/res/values-it/arrays.xml | 6 +++--- main/src/ui/res/values-it/strings.xml | 4 ---- main/src/ui/res/values-ja/arrays.xml | 6 +++--- main/src/ui/res/values-ja/strings.xml | 4 ---- main/src/ui/res/values-ko/arrays.xml | 6 +++--- main/src/ui/res/values-ko/strings.xml | 4 ---- main/src/ui/res/values-nl/arrays.xml | 6 +++--- main/src/ui/res/values-nl/strings.xml | 4 ---- main/src/ui/res/values-no/arrays.xml | 6 +++--- main/src/ui/res/values-no/strings.xml | 4 ---- main/src/ui/res/values-pl/arrays.xml | 6 +++--- main/src/ui/res/values-pl/strings.xml | 4 ---- main/src/ui/res/values-pt-rBR/arrays.xml | 6 +++--- main/src/ui/res/values-pt-rBR/strings.xml | 4 ---- main/src/ui/res/values-pt/arrays.xml | 6 +++--- main/src/ui/res/values-pt/strings.xml | 4 ---- main/src/ui/res/values-ro/arrays.xml | 6 +++--- main/src/ui/res/values-ro/strings.xml | 4 ---- main/src/ui/res/values-ru/arrays.xml | 6 +++--- main/src/ui/res/values-ru/strings.xml | 7 +++---- main/src/ui/res/values-si/arrays.xml | 6 +++--- main/src/ui/res/values-si/strings.xml | 4 ---- main/src/ui/res/values-sk/arrays.xml | 6 +++--- main/src/ui/res/values-sk/strings.xml | 4 ---- main/src/ui/res/values-sl/arrays.xml | 6 +++--- main/src/ui/res/values-sl/strings.xml | 4 ---- main/src/ui/res/values-sr-rSP/arrays.xml | 6 +++--- main/src/ui/res/values-sr-rSP/strings.xml | 4 ---- main/src/ui/res/values-sv/arrays.xml | 6 +++--- main/src/ui/res/values-sv/strings.xml | 4 ---- main/src/ui/res/values-tr/arrays.xml | 6 +++--- main/src/ui/res/values-tr/strings.xml | 5 +---- main/src/ui/res/values-uk/arrays.xml | 6 +++--- main/src/ui/res/values-uk/strings.xml | 4 ---- main/src/ui/res/values-vi/arrays.xml | 6 +++--- main/src/ui/res/values-vi/strings.xml | 4 ---- main/src/ui/res/values-zh-rCN/arrays.xml | 6 +++--- main/src/ui/res/values-zh-rCN/strings.xml | 7 +++---- main/src/ui/res/values-zh-rTW/arrays.xml | 6 +++--- main/src/ui/res/values-zh-rTW/strings.xml | 4 ---- 68 files changed, 117 insertions(+), 236 deletions(-) diff --git a/main/src/ui/res/values-ar/arrays.xml b/main/src/ui/res/values-ar/arrays.xml index 61cd521d..7e18635b 100644 --- a/main/src/ui/res/values-ar/arrays.xml +++ b/main/src/ui/res/values-ar/arrays.xml @@ -17,9 +17,9 @@ مزود المصادقة الخارجية - 0 - 1 - غير محدد + tls-auth - --direction 0 + tls-auth - --direction 1 + tls-auth --direction not specified التشفير (tls-سرداب)https://crowdin.com/translate/ics-openvpn/1395/en-ar#2618757 TLS تشفير V2.0 diff --git a/main/src/ui/res/values-ar/strings.xml b/main/src/ui/res/values-ar/strings.xml index 0b622804..fe0abb87 100644 --- a/main/src/ui/res/values-ar/strings.xml +++ b/main/src/ui/res/values-ar/strings.xml @@ -27,8 +27,6 @@ الكلمة السرية لـ PKCS12 إختر… يجب تحديد ملف - استخدام مصادقة TLS - إتجاه الـ TLS أدخل عنوان IPv6/قناع الشبكة في شكل نظام CIDR (مثلاً 2000:dd::23/64) أدخل عنوان IPv4/قناع الشبكة في شكل نظام CIDR (مثلاً 1.2.3.4/24) عنوان IPv4 @@ -69,8 +67,6 @@ التحقق من شهادة اسم المضيف تحديد الاختيار المستخدمة للتحقق من صحة الشهادة البعيدة DN (مثل C = دي، ل Paderborn، OU = = \"إنفلونزا الطيور الملكية الفكرية الناقلين\"، CN=openvpn.blinkt.de)\n\nSpecify DN الكامل أو RDN (openvpn.blinkt.de في المثال) أو بادئة RDN ليطابق verification.\n\nWhen RDN البادئة \"الملقم\" باستخدام \"خادم-1\" وسوف تحقق \n\nLeaving \"خادم-2\" إفراغ الحقل النص RDN ضد hostname.\n\nFor الخادم مزيد من التفاصيل، انظر استخدام 2.3.1+ المسنجر تحت — اسم x509 التحقق من موضوع الشهادة البعيدة - يُفعّل مفتاح TLS للمصادقة - ملف المصادقة عبر TLS تُطلب عناوين IP والمسارات وخيارات التوقيت من الخادم. لا توجد معلومات مطلوبة من الخادم. يجب تحديد الإعدادات أدناه. إعدادات السحب diff --git a/main/src/ui/res/values-be/arrays.xml b/main/src/ui/res/values-be/arrays.xml index c8853ff6..42d265c2 100644 --- a/main/src/ui/res/values-be/arrays.xml +++ b/main/src/ui/res/values-be/arrays.xml @@ -17,9 +17,9 @@ Знешняя праверка сапраўднасці правайдара - 0 - 1 - Не вызначана + tls-auth - --direction 0 + tls-auth - --direction 1 + tls-auth --direction not specified Шыфраванне (--tls-crypt) TLS Crypt V2 diff --git a/main/src/ui/res/values-be/strings.xml b/main/src/ui/res/values-be/strings.xml index ee7c5e66..05f4cd49 100644 --- a/main/src/ui/res/values-be/strings.xml +++ b/main/src/ui/res/values-be/strings.xml @@ -27,8 +27,6 @@ Пароль PKCS12 Выбраць… Вы павінны выбраць файл - Выкарыстоўваць праверку сапраўднасці TLS - Кірунак TLS Увядзіце адрас/маску падсеткі IPv6 у фармаце CIDR (узор, 2000:dd::23/64) Увядзіце адрас/маску падсеткі IPv4 у фармаце CIDR (узор, 1.2.3.4/24) Адрасы IPv4 @@ -67,8 +65,6 @@ Праверка назвы вузла Азначце спосаб, які будзе выкарыстоўвацца для праверкі сертыфікату DN (напрыклад, C=DE, L=Paderborn, OU=Avian IP Carriers, CN=openvpn.blinkt.de)\n\nІснуюць наступныя варыянты, як гэта можна зрабіць: поўны DN або RDN (напрыклад, openvpn.blinkt.de) або толькі варыянт з прэфіксам RDN для праверкі.\n\nКалі выкарыстоўваецца прэфікс RDN \"Сервер\", то значэнні будуць \"Server-1\", \"Server 2\" і г.д.\n\nКалі пакінуць тэкставае поле пустым адбывацца праверка супадзення RDN з серверам.\n\nБольш падрабязную інфармацыю па гэтым пытанні вы можаце атрымаць у кіраўніцтве OpenVPN 2.3.1+, у раздзеле verify-x509-name Суб\'ект аддаленага сертыфіката - Уключыць праверку сапраўднасці па ключу TLS - Файл праверкі сапраўднасці TLS Запытаць з сервера адрасы IP, маршруты і параметры таймінгу. Не запытваць інфармацыю з сервера. Неабходныя налады будуць азначаныя ніжэй. Запытваць налады diff --git a/main/src/ui/res/values-ca/arrays.xml b/main/src/ui/res/values-ca/arrays.xml index efdfca39..faca6ed4 100644 --- a/main/src/ui/res/values-ca/arrays.xml +++ b/main/src/ui/res/values-ca/arrays.xml @@ -17,9 +17,9 @@ Proveïdor Extern d\'Autenticació - 0 - 1 - Sense especificar + tls-auth - --direction 0 + tls-auth - --direction 1 + tls-auth --direction not specified Encriptatge (--tls-crypt) TLS Crypt V2 diff --git a/main/src/ui/res/values-ca/strings.xml b/main/src/ui/res/values-ca/strings.xml index 907fa160..74816204 100644 --- a/main/src/ui/res/values-ca/strings.xml +++ b/main/src/ui/res/values-ca/strings.xml @@ -27,8 +27,6 @@ Contrasenya PKCS12 Selecciona… Has de seleccionar un fitxer - Utiltiza autenticació TLS - Direcció TLS Introduïu l\'adreça/mascara de xarxa IPv6 en format CIDR Format (e.g. 2000:dd::23/64) Introduïu l\'adreça/mascara de xarxa IPv4 en format CIDR (e.g. 1.2.3.4/24) Adreça IPv4 diff --git a/main/src/ui/res/values-cs/arrays.xml b/main/src/ui/res/values-cs/arrays.xml index bab91fcd..1172be5c 100644 --- a/main/src/ui/res/values-cs/arrays.xml +++ b/main/src/ui/res/values-cs/arrays.xml @@ -17,9 +17,9 @@ Externí zprostředkovatel autentizace - 0 (server) - 1 (klient) - Nespecifikováno + tls-auth - --direction 0 + tls-auth - --direction 1 + tls-auth --direction not specified Šifrování (--tls-crypt) TLS Crypt V2 diff --git a/main/src/ui/res/values-cs/strings.xml b/main/src/ui/res/values-cs/strings.xml index 58769658..eae14237 100644 --- a/main/src/ui/res/values-cs/strings.xml +++ b/main/src/ui/res/values-cs/strings.xml @@ -27,8 +27,6 @@ PKCS12 heslo Vyber… Je třeba vybrat soubor - Použij TLS autentikaci - TLS řízení Zadej IPv6 adresu/masku v CIDR formátu (tj. 2000:dd::23/64) Zadej IPv4 adresu/masku v CIDR formátu (tj. 1.2.3.4/24) IPv4 adresa @@ -67,8 +65,6 @@ Ověření jména certifikátu Specifikuj způsob kontroly DN v certifikátu vzdáleného serveru (př. C=DE, L=Paderborn, OU=Avian IP Carriers, CN=openvpn.blinkt.de)\n\nSpecifikuj kompletní DN nebo RDN (openvpn.blinkt.de v příkladu) nebo RDN prefix pro verifikaci.\n\nPři použití RDN prefixu, \"Server\" sedí na \"Server-1\" i \"Server-2\"\n\nJe-li RDN pole prázdné, kontroluje se proti jménu serveru.\n\nPro více detailů, viz manuálová stránka OpenVPN 2.3.1+, přepínač —verify-x509-name Předmět vzdáleného certifikátu - Zapnout autentikaci pomocí TLS klíče - TLS autentikační soubor Použít IP adresu, směrování a časování přijaté od serveru. Žádné informace od serveru nevyžadovat. Nastavení je potřeba zadat níže. Automaticky diff --git a/main/src/ui/res/values-da/arrays.xml b/main/src/ui/res/values-da/arrays.xml index be7ac6df..cd414a93 100644 --- a/main/src/ui/res/values-da/arrays.xml +++ b/main/src/ui/res/values-da/arrays.xml @@ -17,9 +17,9 @@ Ekstern godkendelsesudbyder - 0 - 1 - Uspecificeret + tls-auth - --direction 0 + tls-auth - --direction 1 + tls-auth --direction not specified Kryptering (TLS-krypt.) TLS Crypt V2 diff --git a/main/src/ui/res/values-da/strings.xml b/main/src/ui/res/values-da/strings.xml index 0c0bb216..8d895a08 100644 --- a/main/src/ui/res/values-da/strings.xml +++ b/main/src/ui/res/values-da/strings.xml @@ -27,8 +27,6 @@ PKCS12-adgangskode Vælg… Valg af fil er obligatorisk - Brug TLS-godkendelse - TLS-retning Angiv IPv6-adresse/-netmaske i CIDR-formatet (f.eks. 2000:dd::23/64) Angiv IPv4-adresse/-netmaske i CIDR-formatet (f.eks 1.2.3.4/24) IPv4-adresse @@ -69,8 +67,6 @@ Kontrol af Certifikat Værtsnavn Angiv hvilket check der anvendes til at verificere det eksterne certifikat DN (e.g. C=DE, L=Paderborn, OU=Avian IP Carriers, CN=openvpn.blinkt.de)\n\nAngiv den komplette DN eller RDN (f.eks. openvpn.blinkt.de) eller et RDN-præfiks til verificering.\n\nNår der anvendes RDN-præfiks vil \"Server\" matche \"Server-1\" og \"Server-2\"\n\nEfterlades feltet tomt vil RDN tjekkes mod serverens værtsnavn.\n\nFor flere detaljer, se OpenVPN 2.3.1+ manpage\'en under —verify-x509-name Fjerncertifikatemne - Aktiverer TLS Key-godkendelse - TLS Auth-fil Anmoder om IP-adresser, rutninger og tidsindstillingerne fra serveren. Ingen oplysninger anmodet fra serveren. Indstillinger skal angives nedenfor. Pull-indstillinger diff --git a/main/src/ui/res/values-de/arrays.xml b/main/src/ui/res/values-de/arrays.xml index 8915d029..1a5858e8 100644 --- a/main/src/ui/res/values-de/arrays.xml +++ b/main/src/ui/res/values-de/arrays.xml @@ -17,9 +17,9 @@ Externer Authentifizierungsanbieter - 0 - 1 - Unspezifiziert + tls-auth - --direction 0 + tls-auth - --direction 1 + tls-auth --direction nicht spezifiziert Verschlüsselung (--tls-crypt) TLS Crypt V2 diff --git a/main/src/ui/res/values-de/strings.xml b/main/src/ui/res/values-de/strings.xml index 3481df90..bb144efb 100644 --- a/main/src/ui/res/values-de/strings.xml +++ b/main/src/ui/res/values-de/strings.xml @@ -27,8 +27,8 @@ PKCS12-Passwort Auswählen… Nichts ausgewählt - TLS-Authentifizierung verwenden - TLS-Richtung + Control channel Authentifizierung/Verschlüsselung benutzen + Authentifizierung/Verschlüsselung Verfahren Tragen Sie die IPv6-Adresse und Netzmaske im CIDR-Format ein (z.B. 2000:dd::23/64) Tragen Sie die IPv4-Adresse und Netzmaske im CIDR-Format ein (z.B. 1.2.3.4/24) IPv4-Adresse @@ -69,8 +69,8 @@ Hostnamen überprüfen Geben Sie hier die Methode an, mit welcher der DN des Serverzertifikates (z. B. C=DE, L=Paderborn, OU=Avian IP-Carrier, CN=openvpn.blinkt.de) überprüft wird.\n\nSie können den vollständigen DN, den RDN (openvpn.blinkt.de im Beispiel) oder ein RDN-Präfix angeben.\n\nDer RDN-Präfix \"Server\" erlaubt z.B. \"Server-1\" und \"Server-2\".\n\nWenn Sie das Eingabefeld leer lassen, wird der RDN gegen den Servernamen geprüft.\n\n Weitere Details finden Sie in der Manpage von OpenVPN 2.3.1+ unter —verify-x509-name Subject des Serverzertifikats - TLS-Schlüssel-Authentifizierung verwenden - Schlüssel-Datei + Aktiviert zusätzliche Authentifizierung/Verschlüsselung für den OpenVPN control channel + TLS-Auth/TLS-Crypt Datei IP-Adressen, Routen und andere Optionen vom Server anfordern. Keine Informationen werden vom Server bezogen. Alle Einstellungen müssen unten manuell getätigt werden. Informationen abrufen @@ -261,8 +261,10 @@ Verschlüsselungsalgorithmus Paket-Authentifizierung Geben Sie den Authentifizierungsalgorithmus an + gebaut von %1$s (FP: %2$s) Testversion offizielle Version + offizielle App nur mit OpenVPN2 Unterstützung In das Profil einbetten Absturzinformationen Hinzufügen diff --git a/main/src/ui/res/values-el/arrays.xml b/main/src/ui/res/values-el/arrays.xml index 724c98ba..39084e42 100644 --- a/main/src/ui/res/values-el/arrays.xml +++ b/main/src/ui/res/values-el/arrays.xml @@ -17,9 +17,9 @@ Εξωτερικός Παροχέας Πιστοποίησης - 0 - 1 - Απροσδιόριστο + tls-auth - --direction 0 + tls-auth - --direction 1 + tls-auth --direction not specified Κρυπτογράφηση (tls-crypt) TLS Crypt V2 diff --git a/main/src/ui/res/values-el/strings.xml b/main/src/ui/res/values-el/strings.xml index 2ea2d624..599abd76 100644 --- a/main/src/ui/res/values-el/strings.xml +++ b/main/src/ui/res/values-el/strings.xml @@ -27,8 +27,6 @@ PKCS12 κωδικός πρόσβασης Επιλογή… Πρέπει να επιλέξετε ένα αρχείο - Χρήση πιστοποίησης TLS - Κατεύθυνση TLS Εισάγετε τη διεύθυνση IPv6/μάσκα δικτύου σε μορφή CIDR (π.χ. 2000:dd::23/64) Εισάγετε τη διεύθυνση IPv4/μάσκα δικτύου σε μορφή CIDR (π.χ. 1.2.3.4/24) Διεύθυνση IPv4 @@ -67,8 +65,6 @@ Έλεγχος Πιστοποιητικού ονόματος κεντρικού υπολογιστή Καθορίστε τον έλεγχο που χρησιμοποιείται για την επαλήθευση του απομακρυσμένου πιστοποιητικού DN (π.χ. C = DE, L = Paderborn, OU = Avian IP Carriers, CN = openvpn.blinkt.de)\n\nΚαθορίστε το πλήρες DN ή το RDN (openvpn.blinkt.de στο παράδειγμα) ή ένα πρόθεμα RDN για επαλήθευση.\n\nΌταν χρησιμοποιείτε το πρόθεμα RDN \"Server\" ταιριάζει επίσης και στα \"Server-1\" και \"Server-2\"\n\nΑφήνοντας το πεδίο κειμένου κενό θα ελέγξει το RDN σε σχέση με το όνομα του κεντρικού υπολογιστή του διακομιστή.\n\nΓια περισσότερες λεπτομέρειες δείτε τη σελίδα τεκμηρίωσης του OpenVPN 2.3.1+ στο τμήμα —verify-x509-name Θέμα απομακρυσμένου πιστοποιητικού - Ενεργοποιεί το κλειδί πιστοποίησης TLS - Αρχείο πιστοποίησης TLS Αιτείται διευθύνσεις IP, routes και επιλογές συγχρονισμού από το διακομιστή. Καμία πληροφορία δεν ζητήθηκε από το διακομιστή. Πρέπει να καθοριστούν ρυθμίσεις παρακάτω. Λήψη Ρυθμίσεων diff --git a/main/src/ui/res/values-es/arrays.xml b/main/src/ui/res/values-es/arrays.xml index 7d2a5336..d9ff6b9b 100644 --- a/main/src/ui/res/values-es/arrays.xml +++ b/main/src/ui/res/values-es/arrays.xml @@ -17,9 +17,9 @@ Proveedor externo de autenticación - 0 - 1 - No especificado + tls-auth - --direction 0 + tls-auth - --direction 1 + tls-auth --direction not specified Cifrado (--tls-crypt) TLS Cripta V2 diff --git a/main/src/ui/res/values-es/strings.xml b/main/src/ui/res/values-es/strings.xml index 5c158581..803d1b62 100644 --- a/main/src/ui/res/values-es/strings.xml +++ b/main/src/ui/res/values-es/strings.xml @@ -27,8 +27,6 @@ Contraseña PKCS12 Seleccionar… Debe seleccionar un archivo - Utilizar la autenticación TLS - Dirección TLS Introduzca la dirección/máscara de red IPv6 en formato CIDR (por ejemplo, 2000:dd::23/64) Introduzca la dirección/máscara de red IPv4 en formato CIDR (por ejemplo, 1.2.3.4/24) Dirección IPv4 @@ -69,8 +67,6 @@ Comprobación del certificado de nombre de host Especifica el chequeo usado para verificar el certificado remoto DN (ej. C=DE, L=Paderborn, OU=Avian IP Carriers, CN=openvpn.blinkt.de)\n\nEspecifica el DN completo o el RDN (openvpn.blinkt.de en el ejemplo) o un prefijo RDN para la verificación.\n\nCuando se usa un prefijo RDN como \"Server\" este coincide también con \"Server-1\" y \"Server-2\"\n\nDejando el campo de texto vacío verificara el RDN contra el nombre host del servidor.\n\nPara más detalles ve la página de manual (manpage) de OpenVPN 2.3.1+ en --verify-x509-name Sujeto del Certificado Remoto - habilita la autenticación de clave TLS - Archivo de autenticación TLS Obtener Direcciones IP, rutas y opciones de sincronizacion del servidor. No se pedira informacion del servidor. Necesita especifiar la configuracion abajo. Obtener Configuracion diff --git a/main/src/ui/res/values-et/arrays.xml b/main/src/ui/res/values-et/arrays.xml index 37f0596b..a9f4026d 100644 --- a/main/src/ui/res/values-et/arrays.xml +++ b/main/src/ui/res/values-et/arrays.xml @@ -17,9 +17,9 @@ Väline autentimispakkuja - 0 - 1 - Määratlemata + tls-auth - --direction 0 + tls-auth - --direction 1 + tls-auth --direction not specified Krüptimine (--tls-crypt) TLS Crypt V2 diff --git a/main/src/ui/res/values-et/strings.xml b/main/src/ui/res/values-et/strings.xml index e75be966..026501b1 100644 --- a/main/src/ui/res/values-et/strings.xml +++ b/main/src/ui/res/values-et/strings.xml @@ -27,8 +27,6 @@ PKCS12 salasõna Vali… Valige fail - Kasuta TLS autentimist - TLS suund Sisesta IPv6 Aadress/Võrgumask CIDR formaadis (nt. 2000:dd::23/64) Sisesta IPv4 Aadress/Võrgumask CIDR formaadis (nt. 1.2.3.4/24) IPv4 aadress @@ -68,8 +66,6 @@ Sertifikaadi domeeninime kontroll Määrake meetod millega kontrollida eemalasuva sertifikaadi DN (n.: C=DE, L=Paderborn, OU=Avian IP Carriers, CN=openvpn.blinkt.de)\n\nMäärata saab kas täieliku DN, RDN (openvpn.blinkt.de eelmises näites) või eesliitega RDN kontrolli.\n\nRDN eesliite kasutamisel vastab sellele nii \"Server\", \"Server-1\" kui ka \"Server-2\"\n\nTekstivälja tühjaks jätmisel kontrollitakse kas RDN on vastavuses serveri nimega.\n\nDetailsema info leiate OpenVPN 2.3.1+ käsiraamatust —kinnita-x509-nimi all Eemalasuva sertifikaadi subjekt - Lubab TLS võtmega autentimise - TLS Auth fail Küsib serverist IP aadresse, marsruute ja ajastusvalikuid. Andmeid ei küsita serverist. Seadistused tuleb määrata allpool. Sikuta seadistused diff --git a/main/src/ui/res/values-fa/arrays.xml b/main/src/ui/res/values-fa/arrays.xml index 12999299..51790f8b 100644 --- a/main/src/ui/res/values-fa/arrays.xml +++ b/main/src/ui/res/values-fa/arrays.xml @@ -17,9 +17,9 @@ ارائه دهنده تأییدیه خارجی - 0 - 1 - نامشخص + tls-auth - --direction 0 + tls-auth - --direction 1 + tls-auth --direction not specified رمزگذاری (--tls-crypt) TLS Crypt V2 diff --git a/main/src/ui/res/values-fa/strings.xml b/main/src/ui/res/values-fa/strings.xml index efcefc7c..39ebbe0c 100644 --- a/main/src/ui/res/values-fa/strings.xml +++ b/main/src/ui/res/values-fa/strings.xml @@ -27,8 +27,6 @@ PKCS12 رمز عبور12233445 انتخاب کنید… شما باید یک فایل را انتخاب کنید - استفاده از تایید اعتبار رمزگذاری TLS - مسیر TLS آدرس IPv6/نقاب شبکه را در قالب CIDR وارد کنید (مانند 2000:dd::23 / 64) آدرس IPv4/نقاب شبکه را در قالب CIDR وارد کنید (مانند 1.2:dd::3.4 / 24) آدرس IPv4 @@ -69,8 +67,6 @@ بررسی مجوز نام میزبان مشخص کنید چک مورد استفاده برای تأیید گواهی از راه دور DN (به عنوان مثال C = DE، L = Paderborn، OU = حامل آی پی پرندگان، CN = openvpn.blinkt.de) \n\n مشخص DN کامل یا RDN (openvpn.blinkt.de در مثال مثال) یا یک پیشوند RDN برای تأیید. \n\n در هنگام استفاده از پیشوند RDN \"سرور\" مطابقت با \"سرور-1\" و \"سرور-2\" \n\n درحال خواندن فیلد خالی RDN در برابر نام میزبان سرور است.\n\n برای جزئیات بیشتر، صفحه اصلی OpenVPN 2.3.1+ تحت نام -verify-x509-name را ببینید موضوع گواهی ریموت - TLS Key Authentication را فعال می کند - پرونده TLS Auth درخواست آدرس های IP، مسیرها و گزینه های زمان بندی از سرور. اطلاعاتی از سرور درخواست نشده است. تنظیمات باید در زیر مشخص شوند. تنظیمات را بکشید @@ -204,6 +200,8 @@ در حال استفاده از پراکسی %1$s %2$s استفاده از پروکسی سیستم از پیکربندی گسترده سیستم برای پروکسی های HTTP / HTTPS برای اتصال استفاده کنید. + OpenVPN VPN مشخص شده را در هنگام بوت شدن سیستم متصل می کند و سعی می کند VPN را متصل نگه دارد. + VPN را متصل نگه دارید چشم پوشی راه اندازی مجدد تغییرات پیکربندی بعد از راه اندازی مجدد VPN اعمال می شود. (دوباره) VPN را شروع کنید? diff --git a/main/src/ui/res/values-fr/arrays.xml b/main/src/ui/res/values-fr/arrays.xml index 1f42183e..44574b78 100644 --- a/main/src/ui/res/values-fr/arrays.xml +++ b/main/src/ui/res/values-fr/arrays.xml @@ -17,9 +17,9 @@ Fournisseur d\'authentification externe - 0 - 1 - Non spécifié + tls-auth - --direction 0 + tls-auth - --direction 1 + tls-auth --direction not specified Chiffrement (tls-crypt) Chiffrement TLS V2 diff --git a/main/src/ui/res/values-fr/strings.xml b/main/src/ui/res/values-fr/strings.xml index ed1a04bd..f0babb56 100644 --- a/main/src/ui/res/values-fr/strings.xml +++ b/main/src/ui/res/values-fr/strings.xml @@ -27,8 +27,6 @@ "Mot de passe PKCS12" "Sélectionner…" Vous devez sélectionner un fichier - "Utiliser l\'authentification TLS" - Direction TLS Entrez l\'adresse IPv6 / masque de réseau au format CIDR (ex : 2000:jj::23/64) Entrez l\'adresse IPv4 / masque de réseau au format CIDR (ex : 1.2.3.4/24) "Adresse IPv4" @@ -69,8 +67,6 @@ "Vérification du certificat de l\'hôte" Indiquez la manière de vérifier le DN du certificat distant (ex : C=DE, L=Paderborn, OU =Avian IP Carriers, CN=openvpn.blinkt.de)\n\nEntrez le DN complet, le RDN (openvpn.blinkt.de dans l\'exemple) ou un préfixe RDN.\n\nEn utilisant le préfixe RDN, \"Serveur\" cela correspond à \"Serveur-1\" et \"Serveur-2\"\n\nSi vous laissez le champ de texte vide, le RDN sera comparé au nom du serveur.\n\nPour plus de détails, voir la page du manuel OpenVPN 2.3.1+ : —verify-x509-name Objet du certificat distant - "Activer l\'authentification par clé TLS" - "Fichier d\'authentification TLS" "Demande les adresses IP, les règles de redirection et les options de synchronisation du serveur." "Aucune information n\'est demandée par le serveur. Les paramètres doivent être spécifiés ci-dessous." Paramètres \"Pull\" diff --git a/main/src/ui/res/values-he/arrays.xml b/main/src/ui/res/values-he/arrays.xml index 73c716a2..0b01b001 100644 --- a/main/src/ui/res/values-he/arrays.xml +++ b/main/src/ui/res/values-he/arrays.xml @@ -17,9 +17,9 @@ ספק אימות חיצוני - 0 - 1 - לא צוין + tls-auth - --direction 0 + tls-auth - --direction 1 + tls-auth --direction not specified הצפנה (‎--tls-crypt) TLS Crypt V2 diff --git a/main/src/ui/res/values-he/strings.xml b/main/src/ui/res/values-he/strings.xml index bfcde01e..b7da80df 100644 --- a/main/src/ui/res/values-he/strings.xml +++ b/main/src/ui/res/values-he/strings.xml @@ -27,8 +27,6 @@ סיסמת PKCS12 בחירה… עליך לבחור קובץ - להשתמש באימות TLS - כיוון TLS הזן כתובת IPv6 / מסיכת רשת בפורמט CIDR (למשל 2000: dd :: 23/64) הזן כתובת IPv4 / מסיכת רשת בפורמט CIDR (למשל 1.2.3.4/24) כתובת IPv4 @@ -70,8 +68,6 @@ בדיקת תעודת מארח ציין את הצ\'ק המשמש לאימות ה- DN האישור המרוחק (למשל C = DE, L = Paderborn, OU = Avi IP IP, CN = openvpn.blinkt.de)\n\nציין את ה- DN המלא או ה- RDN (openvpn.blinkt.de ב הדוגמה) או קידומת RDN לאימות.\n\nבעת שימוש בקידומת RDN \"Server\" תואם את \"Server-1\" ו- \"Server-2\"\n\nהשארת שדה הטקסט ריק תבדוק את ה- RDN כנגד שם המארח של השרת.\n\nלפרטים נוספים עיין בדף האדם של OpenVPN 2.3.1+ תחת — verify-x509-name נושא אישור מרחוק - מפעיל את אימות מפתח TLS - קובץ TLS Auth מבקש מהשרת כתובות IP, ניתובים (routes) ואפשרויות תזמון. לא ביקשת מידע מהשרת. יש לציין את ההגדרות להלן. משיכת הגדרות diff --git a/main/src/ui/res/values-hu/arrays.xml b/main/src/ui/res/values-hu/arrays.xml index edb8fb39..6369c72c 100644 --- a/main/src/ui/res/values-hu/arrays.xml +++ b/main/src/ui/res/values-hu/arrays.xml @@ -17,9 +17,9 @@ Külső Hitelesítési Szolgáltató - 0 - 1 - Nincs megadva + tls-auth - --direction 0 + tls-auth - --direction 1 + tls-auth --direction not specified Titkosítás (--tls-crypt) TLS Crypt V2 diff --git a/main/src/ui/res/values-hu/strings.xml b/main/src/ui/res/values-hu/strings.xml index 9aa23312..085ac844 100644 --- a/main/src/ui/res/values-hu/strings.xml +++ b/main/src/ui/res/values-hu/strings.xml @@ -27,8 +27,6 @@ PKCS12 Jelszó Válasszon… Válasszon egy fájlt - TLS-hitelesítés használata - TLS irány Adja meg az IPv6 címet CIDR formában (pl.: 2000:dd::23/64) Adja meg az IPv4 címet CIDR formában (pl.: 1.2.3.4/24) IPv4 Cím @@ -69,8 +67,6 @@ Tanúsítvány Kiszolgálónév Ellenőrzés Adja meg a távoli tanúsítvány DN ellenőrzését (pl.: C=DE, L=Paderborn, OU=Avian IP Carriers, CN=openvpn.blinkt.de)\n\nAdja meg a teljes DN-t vagy az RDN-t (openvpn.blinkt.de a példában) vagy egy RDN prefix-et az ellenőrzéshez.\n\nRDN prefix használatakor a \"Server\" egyezik a \"Server-1\"-gyel és a \"Server-2\"-vel\n\nA mező üresen hagyásakor az RDN a kiszolgáló nevével kerül ellenőrzésre.\n\nTovábbi részleteket az OpenVPN 2.3.1+ manuál oldalon talál —verify-x509-name Távoli tanúsítvány tárgy - TLS Key Hitelesítés engedélyetése - TLS Auth Fájl IP címek, útvonalak és időzítések lekérése a kiszolgálótól. Nem történt információkérés a kiszolgálótól. Alul meg kell adni a beállításokat. Pull Beállítások diff --git a/main/src/ui/res/values-in/arrays.xml b/main/src/ui/res/values-in/arrays.xml index 506f45fa..56ed81e3 100644 --- a/main/src/ui/res/values-in/arrays.xml +++ b/main/src/ui/res/values-in/arrays.xml @@ -17,9 +17,9 @@ External Auth Provider - 0 - 1 - Belum ditentukan​ love + tls-auth - --direction 0 + tls-auth - --direction 1 + tls-auth --direction not specified Encryption (tls-crypt) TLS Crypt V2 diff --git a/main/src/ui/res/values-in/strings.xml b/main/src/ui/res/values-in/strings.xml index 0a58623b..60e8d9a7 100644 --- a/main/src/ui/res/values-in/strings.xml +++ b/main/src/ui/res/values-in/strings.xml @@ -27,8 +27,6 @@ Password PKCS12 Pilih… Anda harus memilih setidaknya satu berkas - Gunakan Autentikasi TLS - Pengarah TLS Masukkan Alamat IPv6/Netmask dalam Format CIDR (contoh: 2000:dd::23/64) Masukkan IPv4 Address/Netmask dalam format CIDR (contoh: 1.2.3.4/24) Alamat IPv4 @@ -69,8 +67,6 @@ Cek nama sertifikat Host Tentukan nilai yang digunakan untuk memverifikasi sertifikat remote DN (misal C=nama perusahaan, L=Kota lokasi, OU=nama departemen perusahaan, CN=openvpn.blinkt.de. Tentukan DN atau RDN yang lengkap (dalam contoh: openvpn.blinkt.de) atau sebuah awalan RDN untuk verifikasi. Saat memakai RDN awalan \"server\" cocok dengan \"server-1\" dan \"server-2\". Mengosongkan field akan membuat RDN diperiksa dengan nama host server. Lebih jelasnya lihat OpenVPN 2.3.1 manpage di bagian -verify-x509-name Subyek sertifikat remote - Aktifkan otentifikasi kunci TLS - Berkas otintikasi TLS Meminta pilihan alamat IP, rute dan waktu dari server. Tidak ada informasi diminta dari server. Seting harus ditentukan di bawah ini Tarik pengaturan diff --git a/main/src/ui/res/values-it/arrays.xml b/main/src/ui/res/values-it/arrays.xml index 74515a0e..aa5ce629 100644 --- a/main/src/ui/res/values-it/arrays.xml +++ b/main/src/ui/res/values-it/arrays.xml @@ -17,9 +17,9 @@ Provider di autenticazione esterno - 0 - 1 - Non specificato + tls-auth - --direction 0 + tls-auth - --direction 1 + tls-auth --direction not specified Crittografia (--tls-crypt) TLS Crypt V2 diff --git a/main/src/ui/res/values-it/strings.xml b/main/src/ui/res/values-it/strings.xml index 228a2b99..e6961d92 100644 --- a/main/src/ui/res/values-it/strings.xml +++ b/main/src/ui/res/values-it/strings.xml @@ -27,8 +27,6 @@ Password PKCS12 Seleziona… Devi selezionare un file - Usa autenticazione TLS - Direzione TLS Inserire l\'indirizzo IPv6 e la maschera di rete in formato CIDR (ad esempio 2000:dd::23/64) Inserire l\'indirizzo IPv4 e la maschera di rete in formato CIDR (ad esempio 1.2.3.4/24) Indirizzo IPv4 @@ -69,8 +67,6 @@ Verifica il certificato dell\'Host Specifica il controllo da effettuare per verificare il certificato DN remoto (e.g. C=DE, L=Paderborn, OU=Avian IP Carriers, CN=openvpn.blinkt.de)\n\nPer verifica specifica il DN o RDN completo (nell\'esempio openvpn.blinkt.de) oppure un prefisso RDN.\n\nQuando usi un prefisso RDN \"Server\" è valido per \"Server-1\" e \"Server-2\"\n\nLasciando la casella vuota verrà controllato l\'RDN con l\'hostname del server.\n\nPer maggiori informazioni consulta la manpage di OpenVPN 2.3.1+ sotto la voce —verify-x509-name Soggetto del certificato remoto - Abilita l\'autenticazione tramite TLS - File di autenticazione TLS Richiede indirizzi IP, instradamenti ed opzioni di sincronizzazione al server. Nessuna informazione è richiesta al server. Le impostazioni devono essere specificate qui di seguito. Richiedi impostazioni diff --git a/main/src/ui/res/values-ja/arrays.xml b/main/src/ui/res/values-ja/arrays.xml index 09e28ba9..1a82e0b7 100644 --- a/main/src/ui/res/values-ja/arrays.xml +++ b/main/src/ui/res/values-ja/arrays.xml @@ -17,9 +17,9 @@ 外部認証プロバイダ - 0 - 1 - 未指定 + tls-auth - --direction 0 + tls-auth - --direction 1 + tls-auth --direction not specified 暗号化(tls-crypt) TLS 暗号化 V2 diff --git a/main/src/ui/res/values-ja/strings.xml b/main/src/ui/res/values-ja/strings.xml index 75ab0c39..ad0d8b48 100644 --- a/main/src/ui/res/values-ja/strings.xml +++ b/main/src/ui/res/values-ja/strings.xml @@ -27,8 +27,6 @@ PKCS12のパスワード 選択… ファイルを選択する必要があります - TLS認証を使用する - TLS Direction IPv6アドレスをCIDR形式で入力(例:2000:dd::23/64) IPv4アドレスをCIDR形式で入力(例:1.2.3.4/24) IPv4アドレス @@ -69,8 +67,6 @@ 証明書のホスト名を確認する リモート証明書の照合に使用する識別名(DN)を指定します。(例: C=DE, L=Paderborn, OU=Avian IP Carriers, CN=openvpn.blinkt.de)\n\n完全な識別名(DN)または相対識別名(RDN)、あるいは相対識別名のプリフィクスを指定します。\n\nたとえば相対識別名のプリフィクスとして\"Server\"を指定すると、\"Server-1\"と\"Server-2\"にマッチします。\n\n空欄にした場合は相対識別名とサーバのホスト名をチェックします。\n\n詳細についてはOpenVPN 2.3.1以降のマニュアルの「--verify-x509-name」の項を参照してください。 リモート証明書サブジェクト - TLS鍵認証を有効にします。 - TLS 認証ファイル IPアドレス、経路情報、DNSなどの情報をサーバから取得します。 サーバからは何も情報が取得できません。指定が必要な設定は以下の通りです。 設定情報を取得する diff --git a/main/src/ui/res/values-ko/arrays.xml b/main/src/ui/res/values-ko/arrays.xml index 253cf0a7..68a37ca5 100644 --- a/main/src/ui/res/values-ko/arrays.xml +++ b/main/src/ui/res/values-ko/arrays.xml @@ -17,9 +17,9 @@ 외부 인증 공급자 - 0 - 1 - 미지정 + tls-auth - --direction 0 + tls-auth - --direction 1 + tls-auth --direction not specified 암호화 (--tls-crypt) TLS 암호화 V2 diff --git a/main/src/ui/res/values-ko/strings.xml b/main/src/ui/res/values-ko/strings.xml index 3bacab69..f172ced3 100644 --- a/main/src/ui/res/values-ko/strings.xml +++ b/main/src/ui/res/values-ko/strings.xml @@ -27,8 +27,6 @@ PKCS12 암호 선택… 파일을 선택해야 합니다 - TLS 인증 사용 - TLS 방향 CIDR 형식의 IPv6 주소/넷마스크를 입력 (예: 2000:dd::23/64) CIDR 형식의 IPv4 주소/넷마스크를 입력 (예: 1.2.3.4/24) IPv4 주소 @@ -67,8 +65,6 @@ 인증서 호스트 이름 확인 원격 인증서 DN을 확인하는 데 사용하는 검사를 지정 (예: C=DE, L=Paderborn, OU=Avian IP Carriers, CN=openvpn.blinkt.de)\n\n확인을 위해 완전한 DN이나 RDN (예 openvpn.blinkt.de) 또는 RDN 접두사를 지정.\n\nRDN 접두사 \"Server\"를 사용하면 \"Server-1\" 및 \"Server-2\"와 일치합니다.\n\n텍스트 필드를 비워 두면 RDN을 서버의 호스트 이름과 비교합니다\n\n더 자세한 내용은 OpenVPN 2.3.1+ 맨페이지에서 --verify-x509-name 아래를 참조 원격 인증서 주체 - TLS 키 인증 사용 - TLS 인증 파일 서버에 IP 주소와 경로, 타이밍 옵션을 요구합니다. 서버에 어떤 정보도 요구하지 않습니다. 아래에 설정을 지정해야 합니다. 설정 끌어오기 diff --git a/main/src/ui/res/values-nl/arrays.xml b/main/src/ui/res/values-nl/arrays.xml index 0583fd28..33fb7c6f 100644 --- a/main/src/ui/res/values-nl/arrays.xml +++ b/main/src/ui/res/values-nl/arrays.xml @@ -17,9 +17,9 @@ External Auth Provider - 0 - 1 - Niet-gespecificeerd + tls-auth - --direction 0 + tls-auth - --direction 1 + tls-auth --direction not specified Versleuteling (tls-crypt) TLS Crypt V2 diff --git a/main/src/ui/res/values-nl/strings.xml b/main/src/ui/res/values-nl/strings.xml index dbe1c61f..5d6b6610 100644 --- a/main/src/ui/res/values-nl/strings.xml +++ b/main/src/ui/res/values-nl/strings.xml @@ -27,8 +27,6 @@ PKCS12 Wachtwoord Selecteer… U moet een bestand selecteren - Gebruik TLS autentificatie - TLS Richting Voer IPv6-adres/Netmask in CIDR-indeling in (bijv. 2000:dd::23/64) Voer IPv4-adres/Netmask in CIDR-indeling in (bijv. 1.2.3.4/24) IPv4 Adres @@ -67,8 +65,6 @@ Controleer Certificaat Hostname Specificeer de controle die gebruikt wordt om het externe certificaat DN te verifiëren (bijv. C=DE, L=Paderborn, OU=Avian IP Carriers, CN=openvpn.blinkt.de)\n\nSpecificeer de volledige DN of de RDN (openvpn.blinkt.de in het voorbeeld) of een RDN-voorvoegsel voor verificatie.\n\nWanneer het gebruikte RDN-voorvoegsel \"Server\" overeenkomt met \"Server-1\" en \"Server-2\"\n\nEen leeg tekstveld zorgt dat de RDN wordt gecontroleerd tegen de hostnaam van de server.\n\nVoor meer details zie de OpenVPN 2.3.1+ manpage onder --verify-x509-name Externe certificaathouder - Activeert TLS Key Authenticatie - TLS Auth Bestand Verzoek IP adres, routes en timing opties van de server. Er wordt geen informatie gevraagd van de server. Instellingen moeten hieronder worden gespecificeerd. Verkrijg Instellingen diff --git a/main/src/ui/res/values-no/arrays.xml b/main/src/ui/res/values-no/arrays.xml index e163f7bf..e3606fbc 100644 --- a/main/src/ui/res/values-no/arrays.xml +++ b/main/src/ui/res/values-no/arrays.xml @@ -17,9 +17,9 @@ Ekstern autentleverandør - 0 - 1 - Uspesifisert + tls-auth - --direction 0 + tls-auth - --direction 1 + tls-auth --direction not specified Kryptering (-tls-krypt) TLS Crypt V2 diff --git a/main/src/ui/res/values-no/strings.xml b/main/src/ui/res/values-no/strings.xml index 78893a1b..51e077af 100644 --- a/main/src/ui/res/values-no/strings.xml +++ b/main/src/ui/res/values-no/strings.xml @@ -27,8 +27,6 @@ PKCS12 passord Velg… Du må velge en fil - Bruke TLS-godkjenning - TLS-retning Angi IPv6-adresse/nettmaske i CIDR format (f.eks 2000:dd::23/64) Angi IPv6-adresse/nettmaske i CIDR format (f.eks 1.2.3.4/24) IPv4-adresse @@ -67,8 +65,6 @@ Sjekk av vertsnavn i sertifikat Spesifiser sjekken som brukes for å bekrefte det eksterne sertifikatet DN (f.eks. C = DE, L = Paderborn, OU = Avian IP Carriers, CN = openvpn.blinkt.de)\n\nSpesifiser hele DN eller RDN (openvpn.blinkt.de i eksemplet) eller et RDN-prefiks for bekreftelse.\n\nNår du bruker RDN-prefikset, samsvarer \"Server\" med \"Server-1\" og \"Server-2\"\n\nHvis du lar tekstfeltet være tomt, kontrolleres RDN mot serververtsnavnet.\n\nFor mer informasjon, se OpenVPN 2.3.1+ -håndbok under —verify-x509-name Emne for ekstern sertifikat - Aktiver autentisering med TLS-nøkkel - TLS-Auth-fil Etterspør IP-adresser, ruter og alternativer for timing fra serveren. Serveren etterspør ingen informasjon. Innstillinger må angis nedenfor. Trekk innstillinger diff --git a/main/src/ui/res/values-pl/arrays.xml b/main/src/ui/res/values-pl/arrays.xml index b2949ee1..0c779a64 100644 --- a/main/src/ui/res/values-pl/arrays.xml +++ b/main/src/ui/res/values-pl/arrays.xml @@ -17,9 +17,9 @@ Zewnętrzny dostawca uwierzytelniania - 0 - 1 - Nieokreślone + tls-auth - --direction 0 + tls-auth - --direction 1 + tls-auth --direction not specified Szyfrowanie (--tls-crypt) TLS Crypt V2 diff --git a/main/src/ui/res/values-pl/strings.xml b/main/src/ui/res/values-pl/strings.xml index 8db0c8dd..818ca2dd 100644 --- a/main/src/ui/res/values-pl/strings.xml +++ b/main/src/ui/res/values-pl/strings.xml @@ -27,8 +27,6 @@ Hasło PKCS12 Wybierz… Wybierz plik - Użyj uwierzytelniania TLS - Kierunek TLS Wprowadź adres IPv6 w formacie CIDR (np. 2000:dd::23 / 64) Wprowadź adres IPv4 w formacie CIDR (np. 1.2.3.4/24) Adres IPv4 @@ -69,8 +67,6 @@ Weryfikuj nazwę domenową zawartą w certyfikacie Określ czynność weryfikującą DN zdalnego certyfikatu (np. C=DE, L=Paderborn, OU=Avian IP Carriers, CN=openvpn.blinkt.de)\n\nUżyj pełnego DN lub RDN (przykładowo penvpn.blinkt.de), lub prefiks RDN w celu weryfikacji\n\nUżywając prefiksu \"Serwer\", RDN będzie prawidłowy dla \"Serwer-1\" lub \"Serwer-Agaty\"\n\nPozostawiając pole puste RDN będzie sprawdzany pod kątem nazwy serwera.\n\nAby uzyskać więcej informacji, spójrz do podręcznika OpenVPN 2.3.1 w dziale —verify-x509-name Podmiot zdalnego certyfikatu - Włącza uwierzytelnianie kluczem TLS - Plik TLS Pobierz z serwera adresy IP, trasy oraz inne opcje. Żadne opcje nie będą pobierane z serwera, należy je ustawić poniżej. Pobierz ustawienia diff --git a/main/src/ui/res/values-pt-rBR/arrays.xml b/main/src/ui/res/values-pt-rBR/arrays.xml index 8f618a71..fcfe5222 100644 --- a/main/src/ui/res/values-pt-rBR/arrays.xml +++ b/main/src/ui/res/values-pt-rBR/arrays.xml @@ -17,9 +17,9 @@ Provedor de Autenticação Externa - 0 - 1 - Não Especificado + tls-auth - --direction 0 + tls-auth - --direction 1 + tls-auth --direction not specified Criptografia (Tls-crypt) TLS Crypt V2 diff --git a/main/src/ui/res/values-pt-rBR/strings.xml b/main/src/ui/res/values-pt-rBR/strings.xml index c420eb7c..603faf97 100644 --- a/main/src/ui/res/values-pt-rBR/strings.xml +++ b/main/src/ui/res/values-pt-rBR/strings.xml @@ -27,8 +27,6 @@ Senha do PKCS12 Selecione... Você deve selecionar um arquivo - Utilizar Autenticação TLS - Direção TLS Entre o Endereço IPv6/CIDR (ex: 2000:dd::23/64) Entre o endereço IPv4/CIDR (ex: 1.2.3.4/24) Endereço IPv4 @@ -69,8 +67,6 @@ Verificar o Hostname do Certificado Especificar a conta usada para verificar o certificado remoto DN (por exemplo, C = DE, L = Paderborn, UO = aviária operadoras IP, CN=openvpn.blinkt.de)\n\Especificar o DN completo ou o RDN (openvpn.blinkt.de no exemplo) ou um prefixo RDN para verification.\n\nWhen usando o prefixo RDN \"Servidor\" corresponde a \"Server-1\" e \"Server-2\" \n\nDeixando vazio, o campo de texto irá verificar o RDN contra o servidor hostname.\n\nPara mais detalhes consulte a página principal do 2.3.1+ OpenVPN sob — verificar-X509-nome Subject do certificado remoto - Permite a Autenticação de Chave TLS - Arquivo de Auth TLS Solicitações de endereços de IP, rotas e opções de sincronização do servidor. Nenhuma informação é solicitada do servidor. Configurações precisam ser especificadas abaixo. Obter Configurações diff --git a/main/src/ui/res/values-pt/arrays.xml b/main/src/ui/res/values-pt/arrays.xml index d2f3282a..ff666b20 100644 --- a/main/src/ui/res/values-pt/arrays.xml +++ b/main/src/ui/res/values-pt/arrays.xml @@ -17,9 +17,9 @@ Provedor de Autenticação Externo - 0 - 1 - Não especificado + tls-auth - --direction 0 + tls-auth - --direction 1 + tls-auth --direction not specified Criptografia (--tls-crypt) TLS Crypt V2 diff --git a/main/src/ui/res/values-pt/strings.xml b/main/src/ui/res/values-pt/strings.xml index 79a1a03e..f9bf5458 100644 --- a/main/src/ui/res/values-pt/strings.xml +++ b/main/src/ui/res/values-pt/strings.xml @@ -27,8 +27,6 @@ Password PKCS12 Selecionar… É necessário selecionar um ficheiro - Usar autenticação TLS - Direção TLS Digite o endereço de IPv6/máscara de rede no formato CIDR (por exemplo, 2000:dd::23 / 64) Digite o endereço de IPv4/máscara de rede no formato CIDR (por exemplo, 1.2.3.4/24) Endereço IPv4 @@ -67,8 +65,6 @@ Verificar nome de host do certificado Especifique a verificação usada para verificar o DN do certificado remoto (por exemplo, C = DE, L = Paderborn, OU = Avian IP Carriers, CN = openvpn.blinkt.de)\n\nEspecifique o DN completo ou o RDN (openvpn.blinkt.de no exemplo) ou um prefixo RDN para verificação. \n\nQuando utilizar o prefixo RDN \"Servidor\" corresponde ao \"Servidor-1\" e ao \"Servidor-2\"\n\nDeixando o campo de texto vazio verificará o RDN contra o nome do host do servidor.\n\nPara mais detalhes, veja a página de utilizador OpenVPN 2.3.1+ sob -verify-x509-name Assunto do certificado remoto - Ativa a autenticação de chave TLS - Ficheiro de autenticação TLS Solicita endereços IP, rotas e tempo do servidor. Nenhuma informação é solicitada do servidor. As configurações precisam ser especificadas abaixo. Obter Configurações diff --git a/main/src/ui/res/values-ro/arrays.xml b/main/src/ui/res/values-ro/arrays.xml index 56176e58..bb0c6ab1 100644 --- a/main/src/ui/res/values-ro/arrays.xml +++ b/main/src/ui/res/values-ro/arrays.xml @@ -17,9 +17,9 @@ Furnizor extern de autentificare - 0 - 1 - Nespecificat + tls-auth - --direction 0 + tls-auth - --direction 1 + tls-auth --direction not specified Criptare (--tls-crypt) TLS Crypt V2 diff --git a/main/src/ui/res/values-ro/strings.xml b/main/src/ui/res/values-ro/strings.xml index 41745d40..e200ecb3 100644 --- a/main/src/ui/res/values-ro/strings.xml +++ b/main/src/ui/res/values-ro/strings.xml @@ -27,8 +27,6 @@ Parola PKCS12 Selectaţi… Trebuie să selectaţi un fişier - Folosiţi autentificare TLS - Direcţie TLS Introduceţi adresa IPv6/Netmask în Format CIDR (ex. 2000:dd::23 / 64) Introduceţi adresa IPv4/Netmask în format CIDR (de exemplu, 1.2.3.4/24) Adresă IPv4 @@ -69,8 +67,6 @@ Verficare hostname certificat Specifică verificarea ce va fi utilizată pentru certificatul DN (e.g. C=DE, L=Paderborn, OU=Avian IP Carriers, CN=openvpn.blinkt.de)\n\nSpecifică DN complet sau RDN (openvpn.blinkt.de in exemplu) sau un prefix RDN pentru verificare.\n\nCând folosiți prefix RDN \"Server\" face match si cu \"Server-1\" și \"Server-2\"\n\nDacă lăsați câmpul gol se va verifica RDN contra hostaname-ul serverului.\n\nPentru mai multe detalii verificați manualul OpenVPN 2.3.1+ la —verify-x509-name Subiect certificat remote - Activează autentificarea cu cheie TLS - Fişier TLS Auth Cere adrese IP, rute şi opţiuni timing de la server. Nu se cere nici o informaţie de la server. Setările trebuie specificate mai jos. Setări pull diff --git a/main/src/ui/res/values-ru/arrays.xml b/main/src/ui/res/values-ru/arrays.xml index 0d57fcce..da39586a 100644 --- a/main/src/ui/res/values-ru/arrays.xml +++ b/main/src/ui/res/values-ru/arrays.xml @@ -17,9 +17,9 @@ Внешний провайдер аутентификации - 0 - 1 - Не указан + tls-auth - --direction 0 + tls-auth - --direction 1 + tls-auth --direction not specified Шифрование (--tls-crypt) TLS Crypt V2 diff --git a/main/src/ui/res/values-ru/strings.xml b/main/src/ui/res/values-ru/strings.xml index 8130851c..38ee7d99 100644 --- a/main/src/ui/res/values-ru/strings.xml +++ b/main/src/ui/res/values-ru/strings.xml @@ -27,8 +27,6 @@ Пароль для PKCS12 Выбрать… Вы должны выбрать файл - Использовать аутентификацию TLS - Направление проверки TLS Введите адрес/маску подсети IPv6 в формате CIDR (например, 2000:dd::23/64) Введите адрес/маску подсети IPv4 в формате CIDR (например, 1.2.3.4/24) Адрес IPv4 @@ -69,8 +67,6 @@ Проверка имени хоста сертификата Введите значение для проверки DN удалённого сертификата (например, C=DE, L=Paderborn, OU=Avian IP Carriers, CN=openvpn.blinkt.de)\n\nВозможные значения: полный DN или RDN (в примере выше openvpn.blinkt.de) или только префикс RDN для проверки.\n\nПри использовании префикса RDN, «Server» подойдёт для «Server-1» и «Server-2»\n\nПри пустом текстовом поле будет проверяться, что RDN совпадает с именем узла.\n\nПодробности смотрите в руководстве OpenVPN 2.3.1+, раздел --verify-x509-name Субъект удалённого сертификата - Включить аутентификацию по TLS ключу - Файл аутентификации TLS Запрашивает IP адреса, маршрутизацию и параметры времени с сервера. Информация с сервера не поступила. Ниже необходимо указать настройки. Запросить настройки @@ -204,6 +200,8 @@ Используется прокси %1$s %2$s Использовать системный прокси Использовать системные настройки для подключения HTTP/HTTPS прокси. + OpenVPN подключится к указанному VPN при старте системы и будет стараться держать VPN подключённым. + Держать VPN подключённым Игнорировать Перезагрузка Изменения конфигурации действительны после перезапуска VPN. (Пере)запустить VPN сейчас? @@ -507,4 +505,5 @@ DNS не работает, если сервер DNS не в диапазоне Использовать локализацию приложения с помощью перевода, выполненного сообществом. Потребуется перезапуск приложения. Профиль безопасности TLS Пробовать шифровать профили в хранилище (если поддерживается ОС Android) + Отсутствует разрешение на уведомления. Оно используется для отображения состояния VPN и уведомления о необходимом взаимодействии с пользователем, например, о многофакторной авторизации.\n\nЩелкните по этому сообщению, чтобы предоставить приложению разрешение на уведомления diff --git a/main/src/ui/res/values-si/arrays.xml b/main/src/ui/res/values-si/arrays.xml index eb1d2679..3d4570b9 100644 --- a/main/src/ui/res/values-si/arrays.xml +++ b/main/src/ui/res/values-si/arrays.xml @@ -17,9 +17,9 @@ බාහිර සත්යාපන සැපයුම්කරු - 0 - 1 - නිශ්චිතව දක්වා නැත + tls-auth - --direction 0 + tls-auth - --direction 1 + tls-auth --direction not specified සංකේතනය (--tls-crypt) TLS Crypt V2 diff --git a/main/src/ui/res/values-si/strings.xml b/main/src/ui/res/values-si/strings.xml index ed83a068..35bd6cfe 100644 --- a/main/src/ui/res/values-si/strings.xml +++ b/main/src/ui/res/values-si/strings.xml @@ -27,8 +27,6 @@ PKCS12 මුරපදය ඔබ ගොනුවක් තෝරාගත යුතුය - TLS සත්‍යාපනය භාවිතා කරන්න - TLS දිශාව CIDR ආකෘතියෙන් IPv6 ලිපිනය/Netmask ඇතුළු කරන්න (උදා: 2000:dd::23/64) CIDR ආකෘතියෙන් IPv4 ලිපිනය/Netmask ඇතුලත් කරන්න (උදා. 1.2.3.4/24) IPv4 ලිපිනය @@ -69,8 +67,6 @@ සහතික සත්කාරක නාමය පරීක්ෂා කරන්න දුරස්ථ සහතිකය DN සත්‍යාපනය කිරීමට භාවිතා කරන චෙක්පත සඳහන් කරන්න (උදා C=DE, L=Paderborn, OU=Avian IP Carriers, CN=openvpn.blinkt.de)\n\nසම්පූර්ණ DN හෝ RDN (openvpn.blinkt.de in) සඳහන් කරන්න. උදාහරණය) හෝ සත්‍යාපනය සඳහා RDN උපසර්ගයක්.\n\nRDN උපසර්ගය භාවිතා කරන විට \"Server\" ගැලපීම \"Server-1\" සහ \"Server-2\"\n\nපාඨ ක්ෂේත්‍රය හිස්ව තැබීමෙන් සේවාදායක සත්කාරක නාමයට එරෙහිව RDN පරීක්ෂා කරනු ඇත.\n\nවැඩි විස්තර සඳහා -verify-x509-name යටතේ OpenVPN 2.3.1+ manpage බලන්න දුරස්ථ සහතික විෂය - TLS යතුරු සත්‍යාපනය සක්‍රීය කරයි - TLS Auth ගොනුව සේවාදායකයෙන් IP ලිපින, මාර්ග සහ කාල විකල්ප ඉල්ලයි. සේවාදායකයෙන් කිසිදු තොරතුරක් ඉල්ලා නැත. සැකසීම් පහත සඳහන් කළ යුතුය. අදින්න සැකසුම් diff --git a/main/src/ui/res/values-sk/arrays.xml b/main/src/ui/res/values-sk/arrays.xml index 531d7d5e..2dd85c5d 100644 --- a/main/src/ui/res/values-sk/arrays.xml +++ b/main/src/ui/res/values-sk/arrays.xml @@ -17,9 +17,9 @@ Externý poskytovateľ autentifikácie - 0 - 1 - Nešpecifikované + tls-auth - --direction 0 + tls-auth - --direction 1 + tls-auth --direction not specified Šifrovanie (--tls-crypt) Krypta TLS V2 diff --git a/main/src/ui/res/values-sk/strings.xml b/main/src/ui/res/values-sk/strings.xml index 8736d924..ca17b7d5 100644 --- a/main/src/ui/res/values-sk/strings.xml +++ b/main/src/ui/res/values-sk/strings.xml @@ -27,8 +27,6 @@ PKCS12 heslo Vyberte… Musíte vybrať súbor - Použiť TLS overovanie - TLS Smer Zadajte IPv6 adresu / masku siete v CIDR formáte (napr. 2000:dd::23/64) Zadajte IPv4 adresu/masku siete vo formáte CIDR (napr. 1.2.3.4/24) IPv4 adresa @@ -67,8 +65,6 @@ Kontrola Host certifikátu Špecifikuj spôsob kontroly DN v certifikáte vzdialeného servera (pr. C=DE, L=Paderborn, OU=Avian IP Carriers, CN=openvpn.blinkt.de)\n\nŠpecifikuj kompletné DN alebo RDN (openvpn.blinkt.de v príklade) alebo RDN prefix pre verifikáciu.\n\nPri použití RDN prefixu, \"Server\" sedí na \"Server-1\" i \"Server-2\"\n\nAk je RDN pole prázdne, kontroluje sa proti mene servera.\n\nPre viac detailov, pozri manuálovú stránku OpenVPN 2.3.1+, prepínač —verify-x509-name Vzdialený certifikát - Použiť overovanie TLS kľúča - TLS Auth súbor Použiť IP adresu, smerovanie a časovanie prijaté od servera. Žiadne informácie od servera nepožadovať. Nastavenie je potrebné zadať nižšie. Získajte informácie diff --git a/main/src/ui/res/values-sl/arrays.xml b/main/src/ui/res/values-sl/arrays.xml index 0aa0e57b..a229b4c9 100644 --- a/main/src/ui/res/values-sl/arrays.xml +++ b/main/src/ui/res/values-sl/arrays.xml @@ -17,9 +17,9 @@ Zunanji ponudnik avtentikacije - 0 - 1 - Nedoločeno + tls-auth - --direction 0 + tls-auth - --direction 1 + tls-auth --direction not specified Šifriranje (tls-crypt) TLS Crypt V2 diff --git a/main/src/ui/res/values-sl/strings.xml b/main/src/ui/res/values-sl/strings.xml index 48045339..d348e40a 100644 --- a/main/src/ui/res/values-sl/strings.xml +++ b/main/src/ui/res/values-sl/strings.xml @@ -27,8 +27,6 @@ Geslo PKCS12 Izberi … Izbrati morate datoteko - Uporabi overitev TLS - Smer TLS Vnesite naslov IPv6/masko omrežja v obliki CIDR (npr. 2000:dd::23/64) Vnesite naslov IPv4/masko omrežja v obliki CIDR (npr. 1.2.3.4/24) Naslov IPv4 @@ -67,8 +65,6 @@ Preveri ime gost. potrdila Določite preverjanje, ki naj se uporabi za preverjanje DN-a oddaljenega potrdila (npr. C=DE, L=Paderborn, OU=Avian IP Carriers, CN=openvpn.blinkt.de).\n\nDoločite celoten DN ali RDN (npr. openvpn.blinkt.de) ali predpono RDN-a za preverjanje.\n\nKadar uporabljate predpono RDN, se \"Strežnik\" primerja s \"Strežnik-1\" in \"Strežnik-2\".\n\nČe pustite besedilno polje prazno, bo RDN preverjen z imenom gostitelja.\n\nZa več podatkov glejte OpenVPN 2.3.1 + stran man v —verify-x509-name. Zadeva oddaljenega potrdila - Omogoči overitev ključa TLS - Datoteka overitve TLS Zahteva naslove IP, poti in časovne možnosti od strežnika. Nobeni podatki niso zahtevani od strežnika. Nastavitve morate določiti spodaj. Dobi nast. diff --git a/main/src/ui/res/values-sr-rSP/arrays.xml b/main/src/ui/res/values-sr-rSP/arrays.xml index 4793c67c..0c58aa65 100644 --- a/main/src/ui/res/values-sr-rSP/arrays.xml +++ b/main/src/ui/res/values-sr-rSP/arrays.xml @@ -17,9 +17,9 @@ Екстерни пружалац услуге аутентификације - 0 - 1 - Неодређено + tls-auth - --direction 0 + tls-auth - --direction 1 + tls-auth --direction not specified Шифровање (--tls-crypt) TLS Crypt V2 diff --git a/main/src/ui/res/values-sr-rSP/strings.xml b/main/src/ui/res/values-sr-rSP/strings.xml index cf3aa892..f860cc1f 100644 --- a/main/src/ui/res/values-sr-rSP/strings.xml +++ b/main/src/ui/res/values-sr-rSP/strings.xml @@ -27,8 +27,6 @@ PKCS12 Лозинка Изабери… Морате изабрати датотеку - Користи TLS аутентификацију - TLS смер Унесите ИПв6 адресу / мрежну маску у ЦИДР формату (нпр. 2000: дд :: 23/64) Унесите ИПв4 адресу / мрежну маску у ЦИДР формату (нпр. 1.2.3.4/24) IPv4 адреса @@ -68,8 +66,6 @@ Провера сертификата хоста Наведите проверу која се користи за верификацију удаљеног ДН цертификата (нпр. Ц = ДЕ, Л = Падерборн, ОУ = авијски ИП носачи, ЦН = опенвпн.блинкт.де)\n\nНаведите комплетну ДН или РДН (опенвпн.блинкт.де у пример) или РДН префикс за верификацију.\n\nКада користите РДН префикс „Сервер“ се подудара са „Сервер-1“ и „Сервер-2“\n\nАко текстуално поље остави празно, РДН ће проверити у односу на име главног сервера.\n\nЗа више детаља погледајте ОпенВПН 2.3.1+ манпаге под —верифи-к509-наме Удаљени предмет цертификата - Омогућава провјеру аутентичности ТЛС кључа - Ауторска датотека ТЛС Захтијева ИП адресе, руте и опције времена од сервера. Информације се не захтевају од сервера. Подешавања морају бити наведена у наставку. Повуците Подешавања diff --git a/main/src/ui/res/values-sv/arrays.xml b/main/src/ui/res/values-sv/arrays.xml index fe8e194b..06040cd1 100644 --- a/main/src/ui/res/values-sv/arrays.xml +++ b/main/src/ui/res/values-sv/arrays.xml @@ -17,9 +17,9 @@ Extern auktorisationsleverantör - 0 - 1 - Ospecificerad + tls-auth - --direction 0 + tls-auth - --direction 1 + tls-auth --direction not specified Encryption (tls-crypt) TLS Crypt V2 diff --git a/main/src/ui/res/values-sv/strings.xml b/main/src/ui/res/values-sv/strings.xml index f5c264ce..4ee5a044 100644 --- a/main/src/ui/res/values-sv/strings.xml +++ b/main/src/ui/res/values-sv/strings.xml @@ -27,8 +27,6 @@ PKCS12 lösenord Välj… Du måste välja en fil - Använd TLS-autentisering - TLS riktning Ange IPv6-adress/Netmask i CIDR Format (t.ex. 2000:dd::23 / 64) Ange IPv4-adressen/Netmask i CIDR Format (t.ex. 1.2.3.4/24) IPv4-adress @@ -69,8 +67,6 @@ Certifikat Hostname kontroll Ange den kontroll som används för att verifiera Fjärrcertifikat DN (e.g. C=DE, L=Paderborn, OU=Avian IP Carriers, CN=openvpn.blinkt.de)\n\nSpecificera en komplett DN eller RDN (openvpn.blinkt.de i exemplet) eller ett RDN prefix för verifiering.\n\nOm RDN prefix används matchar \"Server\" både \"Server-1\" och \"Server-2\" \n\nLämnas textfältet tomt matchas RDN mot server hostname.\n\nFor mer information se OpenVPN 2.3.1+ manpage under —verify-x509-name Fjärrcertifikats ämne - Aktiverar TLS Key Authetication - TLS Auth fil Begär IP-adresser, rutter och tidsalternativ från servern. Ingen information begärs från servern. Inställningar behöver specificeras nedan. Hämta inställningar diff --git a/main/src/ui/res/values-tr/arrays.xml b/main/src/ui/res/values-tr/arrays.xml index 09e68928..5c183c2e 100644 --- a/main/src/ui/res/values-tr/arrays.xml +++ b/main/src/ui/res/values-tr/arrays.xml @@ -17,9 +17,9 @@ Harici Kimlik Doğrulama Sağlayıcısı - 0 - 1 - Belirtilmemiş + tls-auth - --direction 0 + tls-auth - --direction 1 + tls-auth --direction not specified Şifreleme (--tls-crypt) TLS Şifreleme V2 diff --git a/main/src/ui/res/values-tr/strings.xml b/main/src/ui/res/values-tr/strings.xml index 39f958ed..970a7d7f 100644 --- a/main/src/ui/res/values-tr/strings.xml +++ b/main/src/ui/res/values-tr/strings.xml @@ -27,8 +27,6 @@ PKCS12 Parolası Seç… Bir dosya seçmelisiniz - TLS Kimlik Doğrulamasını Kullan - TLS Yönü CIDR biçiminde IPv6 adresi/ağ maskesi girin (örneğin 2000:dd::23 / 64) CIDR biçiminde IPv4 Adresi/Ağ Maskesi girin (örneğin 1.2.3.4/24) IPv4 Adresi @@ -69,8 +67,6 @@ Sertifika Makine Adı Denetimi Uzak sertifika DN\'sini doğrulamak için kullanılan denetimi belirtin (örn. C=TR, L=Ankara, OU=IP Sağlayıcı, CN=openvpn.blinkt.de)\n\nTam DN veya RDN\'yi belirtin (örnekte openvpn.blinkt.de) veya doğrulama için bir RDP ön eki.\n\nRDN ön eki kullanıldığında \"Sunucu\" \"Sunucu-1\" ve \"Sunucu-2\" ile eşleşir\n\nMetin alanını boş bırakmak, RDN\'i sunucu makine adına karşı denetleyecektir.\n\nDaha fazla bilgi için bkz. OpenVPN 2.3.1+ man sayfası konusu —verify-x509-name Uzak sertifika konusu - TLS Anahtar Kimlik Doğrulamasını etkinleştirir - TLS Kimlik Doğrulama Dosyası Sunucudan IP adresleri, rotalar ve zamanlama seçeneklerini talep eder. Sunucudan hiçbir bilgi talep edilmez. Ayarlar aşağıda belirtilmelidir. Ayarları Çek @@ -204,6 +200,7 @@ %1$s %2$s vekil sunucusu kullanılıyor Sistem vekil sunucusunu kullan Bağlanmak için sistem çapındaki HTTP/HTTPS vekil sunucularını kullan. + OpenVPN, sistem önyüklemesinde belirtilen VPN\'ye bağlanacak ve VPN\'yi bağlı tutmaya çalışacaktır. Yoksay Yeniden Başlat Yapılandırma değişiklikleri, VPN yeniden başlattıktan sonra geçerli olur. VPN (yeniden) başlatılsın mı? diff --git a/main/src/ui/res/values-uk/arrays.xml b/main/src/ui/res/values-uk/arrays.xml index d795e753..ecf02abc 100644 --- a/main/src/ui/res/values-uk/arrays.xml +++ b/main/src/ui/res/values-uk/arrays.xml @@ -17,9 +17,9 @@ Зовнішня перевірка авторизації провайдера - 0 - 1 - Без різниці + tls-auth - --direction 0 + tls-auth - --direction 1 + tls-auth --direction not specified Шифрування (--tls-crypt) TLS Crypt V2 diff --git a/main/src/ui/res/values-uk/strings.xml b/main/src/ui/res/values-uk/strings.xml index 814435ac..e0d45b11 100644 --- a/main/src/ui/res/values-uk/strings.xml +++ b/main/src/ui/res/values-uk/strings.xml @@ -27,8 +27,6 @@ Пароль PKCS12 Виберіть… Слід вибрати файл - Використовувати TLS аутентифікацію - TLS напрямок Введіть адресу IPv6/маску в CIDR форматі (напр., 2000:dd::23/64) Введіть адресу IPv4/маску в CIDR форматі (напр., 1.2.3.4/24) IPv4-адреси @@ -69,8 +67,6 @@ Перевірка імені вузла сертифікату Перемикач способу перевірки DN сертифікату (eg C = DE, L = Paderborn, OU = Avian IP Carriers, CN = openvpn.blinkt.de) \n \nМожливо значення: повний DN, RDN (для прикладу openvpn.blinkt.de) або тільки преффікс RDN для перевірки. \n \nПрі використанні преффікса RDN, наприклад \"Server\", значення будуть \"Server-1\", \"Server-2\" і т.д. \n \nПрі порожньому текстовому полі перевірка проводитиметься по імені хоста. \n \nДля подробиць дивіться керівництво для OpenVPN 2.3.1 +, розділ-verify-x509-name Об\'єкт віддаленого сертифіката - Увімкнути автентифікацію по TLS ключу - Файл авторизації TLS Запити IP адрес, маршрутів та параметрів часу від сервера. Не запитувати інформацію від сервера. Параметри необхідно вказати нижче. Запитувати параметри diff --git a/main/src/ui/res/values-vi/arrays.xml b/main/src/ui/res/values-vi/arrays.xml index bed01614..9a14718b 100644 --- a/main/src/ui/res/values-vi/arrays.xml +++ b/main/src/ui/res/values-vi/arrays.xml @@ -17,9 +17,9 @@ Nhà cung cấp xác thực bên ngoài - 0 - 1 - Không xác định + tls-auth - --direction 0 + tls-auth - --direction 1 + tls-auth --direction not specified Mã hóa (tls-crypt) TLS Crypt V2 diff --git a/main/src/ui/res/values-vi/strings.xml b/main/src/ui/res/values-vi/strings.xml index a721c8b8..b05033ad 100644 --- a/main/src/ui/res/values-vi/strings.xml +++ b/main/src/ui/res/values-vi/strings.xml @@ -27,8 +27,6 @@ Mật khẩu PKCS12 Chọn… Bạn phải chọn một tập tin - Sử dụng xác thực TLS - Hướng TLS Nhập địa chỉ IPv6/Netmask trong định dạng CIDR (ví dụ 2000:dd::23/64) Nhập địa chỉ IPv4/Netmask trong định dạng CIDR (ví dụ 1.2.3.4/24) Địa chỉ IPv4 @@ -69,8 +67,6 @@ Kiểm tra chứng chỉ tên miền Xác định để kiểm tra sử dụng chứng nhận từ xa DN (e.g. C=DE, L=Paderborn, OU=Avian IP Carriers, CN=openvpn.blinkt.de)\n\nHoàn chỉnh các DN hoặc RDN (openvpn.blinkt.de làm ví dụ) hoặc một tiền tố RDN để xác minh.\n\nKhi dùng tiền tố RDN phù hợp \"Server-1\" và \"Server-2\"\n\nĐể trường văn bản trống sẽ kiểm tra tiền tố RDN phản biện tên miền máy chủ. \n\nĐể biết thêm chi tiết xem tại phần quản lý OpenVPN 2.3.1+ bên dưới —xác minh-x509-tên Chủ đề chứng chỉ từ xa - Cho phép xác thực khóa TLS - Tập tin chứng thực TLS Yêu cầu các địa chỉ IP, định tuyến và tùy chọn thời gian từ máy chủ. Không có thông tin được yêu cầu từ máy chủ. Thiết lập cần phải được xác định bên dưới. Cài đặt kéo diff --git a/main/src/ui/res/values-zh-rCN/arrays.xml b/main/src/ui/res/values-zh-rCN/arrays.xml index 6acddb48..3fff6fbf 100644 --- a/main/src/ui/res/values-zh-rCN/arrays.xml +++ b/main/src/ui/res/values-zh-rCN/arrays.xml @@ -17,9 +17,9 @@ 外部认证供应商 - 0 - 1 - 未指定 + tls-auth - --direction 0 + tls-auth - --direction 1 + tls-auth --direction not specified 加密方式(--tls-crypt) TLS 加密 第二版 diff --git a/main/src/ui/res/values-zh-rCN/strings.xml b/main/src/ui/res/values-zh-rCN/strings.xml index 894d0687..6a065662 100644 --- a/main/src/ui/res/values-zh-rCN/strings.xml +++ b/main/src/ui/res/values-zh-rCN/strings.xml @@ -27,8 +27,6 @@ PKCS12 密码 请选择… 你必须选择一个文件 - 使用 TLS 认证 - TLS 位置 输入 CIDR 格式的 IPv6 地址/网络掩码(例如 2000:dd::23/64) 输入 CIDR 格式的 IPv4 地址/网络掩码(例如 1.2.3.4/24) IPv4 地址 @@ -69,8 +67,6 @@ 证书主机名检查 勾选此项将验证远程证书的 DN 属性(例:C=DE, L=Paderborn, OU=Avian IP Carriers, CN=openvpn.blinkt.de)\n\n输入完整的 DN 或者 RDN 以便进行验证。\n\nRDN前缀 \"Server\" 可以匹配 \"Server-1\" 以及 \"SERVER-2\"\n\n若留空则将仅验证 RDN 而不验证主机名。\n\n有关更多信息请查看 OpenVPN 2.3.1+ 参考手册的 --verify-x509-name 小节 远程证书所有人名称 - 启用TLS密钥验证 - TLS认证文件 从服务器请求 IP 地址、 路由规则和计时选项。 将不会从服务器请求信息。需要手动在下方配置设置。 拉取设置 @@ -205,6 +201,8 @@ 代理使用时长 %1$s %2$s 使用系统代理 使用系统级HTTP/HTTPS 代理配置来连接 + OpenVPN 将在系统启动时连接指定的 VPN,并尝试保持 VPN 连接。 + 保持 VPN 连接 忽略 重新启动 配置文件的变更将在重新连接 VPN 后生效,是否立即(重新)连接? @@ -506,4 +504,5 @@ 允许应用程序使用翻译社区贡献的翻译。需要重新启动应用程序才能激活。 TLS 安全配置 d + 缺少通知权限。这用于显示 VPN 的状态并通知所需的用户交互,例如多因素授权。\n\n单击此消息授予应用程序通知权限 diff --git a/main/src/ui/res/values-zh-rTW/arrays.xml b/main/src/ui/res/values-zh-rTW/arrays.xml index 2cedd21b..cb4f34c5 100644 --- a/main/src/ui/res/values-zh-rTW/arrays.xml +++ b/main/src/ui/res/values-zh-rTW/arrays.xml @@ -17,9 +17,9 @@ 外部認證提供者 - 0 - 1 - 不指定 + tls-auth - --direction 0 + tls-auth - --direction 1 + tls-auth --direction not specified 加密 (--tls-crypt) TLS 加密 第二版 diff --git a/main/src/ui/res/values-zh-rTW/strings.xml b/main/src/ui/res/values-zh-rTW/strings.xml index 6b54dc03..fd603f60 100644 --- a/main/src/ui/res/values-zh-rTW/strings.xml +++ b/main/src/ui/res/values-zh-rTW/strings.xml @@ -27,8 +27,6 @@ PKCS12 密碼 選擇… 您必須選擇一個檔案 - 使用 TLS 驗證 - TLS 方向 以 CIDR 格式輸入 IPv6 位址/子網路遮罩(例如 2000:dd::23/64) 以 CIDR 格式輸入 IPv4 地址/子網路遮罩(例如 1.2.3.4/24) IPv4 位址 @@ -68,8 +66,6 @@ 憑證主機名稱檢查 指定用於驗證遠端憑證 DN 的檢查(例如:C=DE, L=Paderborn, OU=Avian IP Carriers, CN=openvpn.blinkt.de)\n\n指定完整的 DN 或 RDN(範例中的 openvpn.blinkt.de)或 RDN 前綴來驗證。\n\n若使用 RDN 前綴,「Server」匹配「Server-1」及「Server-2」\n\n若文字欄位為空,將檢查 RDN 的主機名稱。\n\n更多詳情,請參見 OpenVPN 2.3.1+ 的 manpage 中的 —verify-x509-name 遠端憑證主旨 - 啟用 TLS 金鑰認證 - TLS 驗證檔 從伺服器取得 IP 位址、路由和時間資訊 沒有來自伺服器的資訊,需要在下面指定設定。 取得設定 -- cgit v1.2.3 From 98bfed6bf5043ca295b5204248807a51a11b59ef Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Tue, 1 Aug 2023 12:12:37 +0200 Subject: Update tlsextprovider example with modern API target --- tlsexternalcertprovider/build.gradle | 6 ++--- .../ExampleInstrumentedTest.java | 31 ---------------------- .../src/main/AndroidManifest.xml | 3 +-- 3 files changed, 4 insertions(+), 36 deletions(-) delete mode 100644 tlsexternalcertprovider/src/androidTest/java/de/blinkt/externalcertprovider/ExampleInstrumentedTest.java diff --git a/tlsexternalcertprovider/build.gradle b/tlsexternalcertprovider/build.gradle index 59930696..2fda4308 100644 --- a/tlsexternalcertprovider/build.gradle +++ b/tlsexternalcertprovider/build.gradle @@ -10,13 +10,13 @@ ext { } android { - compileSdkVersion 27 + compileSdkVersion 34 defaultConfig { applicationId "de.blinkt.externalcertprovider" - minSdkVersion 16 - targetSdkVersion 27 + minSdkVersion 21 + targetSdkVersion 34 versionCode 1 versionName "1.0" diff --git a/tlsexternalcertprovider/src/androidTest/java/de/blinkt/externalcertprovider/ExampleInstrumentedTest.java b/tlsexternalcertprovider/src/androidTest/java/de/blinkt/externalcertprovider/ExampleInstrumentedTest.java deleted file mode 100644 index 8d3a21f1..00000000 --- a/tlsexternalcertprovider/src/androidTest/java/de/blinkt/externalcertprovider/ExampleInstrumentedTest.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (c) 2012-2018 Arne Schwabe - * Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt - */ - -package de.blinkt.externalcertprovider; - -import android.content.Context; -import android.support.test.InstrumentationRegistry; -import android.support.test.runner.AndroidJUnit4; - -import org.junit.Test; -import org.junit.runner.RunWith; - -import static org.junit.Assert.*; - -/** - * Instrumented test, which will execute on an Android device. - * - * @see Testing documentation - */ -@RunWith(AndroidJUnit4.class) -public class ExampleInstrumentedTest { - @Test - public void useAppContext() { - // Context of the app under test. - Context appContext = InstrumentationRegistry.getTargetContext(); - - assertEquals("de.blinkt.externalcertprovider", appContext.getPackageName()); - } -} diff --git a/tlsexternalcertprovider/src/main/AndroidManifest.xml b/tlsexternalcertprovider/src/main/AndroidManifest.xml index c524c203..79b065e6 100644 --- a/tlsexternalcertprovider/src/main/AndroidManifest.xml +++ b/tlsexternalcertprovider/src/main/AndroidManifest.xml @@ -32,8 +32,7 @@ - + -- cgit v1.2.3 From 00741018908217663dc85104c5ddf708d1e3a952 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Tue, 1 Aug 2023 12:01:48 +0200 Subject: Version 0.7.48 --- main/build.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main/build.gradle.kts b/main/build.gradle.kts index b05c5a8a..f7f5d307 100644 --- a/main/build.gradle.kts +++ b/main/build.gradle.kts @@ -28,8 +28,8 @@ android { minSdk = 21 targetSdk = 34 //targetSdkPreview = "UpsideDownCake" - versionCode = 202 - versionName = "0.7.47" + versionCode = 203 + versionName = "0.7.48" externalNativeBuild { cmake { } -- cgit v1.2.3 From 24f0539b47f2e5ee0e032e2f2150ec231dd0e025 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Tue, 1 Aug 2023 16:19:08 +0200 Subject: Fix duplicate packaging section in build.gradle.kts --- main/build.gradle.kts | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/main/build.gradle.kts b/main/build.gradle.kts index f7f5d307..5237d197 100644 --- a/main/build.gradle.kts +++ b/main/build.gradle.kts @@ -162,13 +162,7 @@ android { useLegacyPackaging = true } } - - packaging { - jniLibs { - useLegacyPackaging = true - } - } - + bundle { codeTransparency { signing { -- cgit v1.2.3 From 707acc99ac525b61bab813bb56d0573e6bed1306 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Wed, 2 Aug 2023 12:24:08 +0200 Subject: Import OpenSSL 3.1.2 --- main/build.gradle.kts | 10 +++++----- main/src/main/cpp/openssl | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/main/build.gradle.kts b/main/build.gradle.kts index 5237d197..1b0989bf 100644 --- a/main/build.gradle.kts +++ b/main/build.gradle.kts @@ -162,7 +162,7 @@ android { useLegacyPackaging = true } } - + bundle { codeTransparency { signing { @@ -176,13 +176,13 @@ android { keyAlias = keystoreTPAlias if (keystoreTPFile?.isEmpty() ?: true) - print("keystoreTPFile not set, disabling transparency signing") + println("keystoreTPFile not set, disabling transparency signing") if (keystoreTPPassword?.isEmpty() ?: true) - print("keystoreTPPassword not set, disabling transparency signing") + println("keystoreTPPassword not set, disabling transparency signing") if (keystoreTPAliasPassword?.isEmpty() ?: true) - print("keystoreTPAliasPassword not set, disabling transparency signing") + println("keystoreTPAliasPassword not set, disabling transparency signing") if (keystoreTPAlias?.isEmpty() ?: true) - print("keyAlias not set, disabling transparency signing") + println("keyAlias not set, disabling transparency signing") } } diff --git a/main/src/main/cpp/openssl b/main/src/main/cpp/openssl index d1303a98..bf2a6fac 160000 --- a/main/src/main/cpp/openssl +++ b/main/src/main/cpp/openssl @@ -1 +1 @@ -Subproject commit d1303a9821ad5d2b658a0ec604fc9f4383f7e014 +Subproject commit bf2a6facba08b980a00f2f2c4e46487471b17f63 -- cgit v1.2.3 From a3607c6850280f6c0144f95f2b5d2674de93a510 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Wed, 23 Aug 2023 17:43:25 +0200 Subject: Really fix crashes with keepalive job with API <= 23 (closes #1619) --- .../java/de/blinkt/openvpn/core/keepVPNAlive.java | 35 ++++++++++++++-------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/main/src/main/java/de/blinkt/openvpn/core/keepVPNAlive.java b/main/src/main/java/de/blinkt/openvpn/core/keepVPNAlive.java index 5bff9eb2..b4264aba 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/keepVPNAlive.java +++ b/main/src/main/java/de/blinkt/openvpn/core/keepVPNAlive.java @@ -90,35 +90,44 @@ public class keepVPNAlive extends JobService implements VpnStatus.StateListener * strange Android build that allows lower lmits. */ long initervalMillis = Math.max(getMinPeriodMillis(), 5 * 60 * 1000L); - long flexMillis = Math.max(getMinFlexMillis(), 2 * 60 * 1000L); - jib.setPeriodic(initervalMillis, flexMillis); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + long flexMillis = Math.max(JobInfo.getMinFlexMillis(), 2 * 60 * 1000L); + jib.setPeriodic(initervalMillis, flexMillis); + } + else + { + jib.setPeriodic(initervalMillis); + } jib.setPersisted(true); - JobScheduler jobScheduler = c.getSystemService(JobScheduler.class); + JobScheduler jobScheduler = null; + jobScheduler = getJobScheduler(c); + jobScheduler.schedule(jib.build()); VpnStatus.logDebug("Scheduling VPN keep alive for VPN " + vp.mName); } - private static long getMinPeriodMillis() { + private static JobScheduler getJobScheduler(Context c) { + JobScheduler jobScheduler; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { - return JobInfo.getMinPeriodMillis(); + jobScheduler = c.getSystemService(JobScheduler.class); + } else { - return 15 * 60 * 1000L; // 15 minutes + jobScheduler = (JobScheduler) c.getSystemService(JOB_SCHEDULER_SERVICE); } + return jobScheduler; } - private static long getMinFlexMillis() { + private static long getMinPeriodMillis() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { - return JobInfo.getMinFlexMillis(); - } - else - { - return 5 * 60 * 1000L; // 5 minutes + return JobInfo.getMinPeriodMillis(); + } else { + return 15 * 60 * 1000L; // 15 minutes } } public static void unscheduleKeepVPNAliveJobService(Context c) { - JobScheduler jobScheduler = c.getSystemService(JobScheduler.class); + JobScheduler jobScheduler = getJobScheduler(c); jobScheduler.cancel(JOBID_KEEPVPNALIVE); VpnStatus.logDebug("Unscheduling VPN keep alive"); } -- cgit v1.2.3 From 42b2c8ee062318bffd059a810033b615164cfb48 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Sat, 26 Aug 2023 18:23:02 +0200 Subject: Fix unit test building and running --- build.gradle.kts | 2 +- main/build.gradle.kts | 2 +- main/src/test/java/de/blinkt/openvpn/core/TestConfigParser.kt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 3b41e700..b6c58bb8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -13,7 +13,7 @@ buildscript { mavenCentral() } dependencies { - classpath("com.android.tools.build:gradle:8.1.0") + classpath("com.android.tools.build:gradle:8.1.1") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version") } } diff --git a/main/build.gradle.kts b/main/build.gradle.kts index 1b0989bf..aa084585 100644 --- a/main/build.gradle.kts +++ b/main/build.gradle.kts @@ -37,7 +37,7 @@ android { } - testOptions.unitTests.isIncludeAndroidResources = true + //testOptions.unitTests.isIncludeAndroidResources = true externalNativeBuild { cmake { diff --git a/main/src/test/java/de/blinkt/openvpn/core/TestConfigParser.kt b/main/src/test/java/de/blinkt/openvpn/core/TestConfigParser.kt index 53bfd00a..fcc27878 100644 --- a/main/src/test/java/de/blinkt/openvpn/core/TestConfigParser.kt +++ b/main/src/test/java/de/blinkt/openvpn/core/TestConfigParser.kt @@ -252,7 +252,7 @@ class TestConfigParser { val c:Context = ApplicationProvider.getApplicationContext() val err = vp.checkProfile(c, false) - Assert.assertTrue("Failed with " + c.getString(err), err == R.string.no_error_found) + Assert.assertTrue("Failed with wrong error code: $err", err == R.string.no_error_found) } @Test -- cgit v1.2.3 From 8b0434328629c5cf2c2fbea50cbaa57d370007d1 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Sat, 26 Aug 2023 19:04:06 +0200 Subject: Version 0.7.49 --- main/build.gradle.kts | 4 ++-- main/src/main/cpp/openvpn | 2 +- main/src/main/cpp/openvpn3 | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/main/build.gradle.kts b/main/build.gradle.kts index aa084585..99c04b16 100644 --- a/main/build.gradle.kts +++ b/main/build.gradle.kts @@ -28,8 +28,8 @@ android { minSdk = 21 targetSdk = 34 //targetSdkPreview = "UpsideDownCake" - versionCode = 203 - versionName = "0.7.48" + versionCode = 204 + versionName = "0.7.49" externalNativeBuild { cmake { } diff --git a/main/src/main/cpp/openvpn b/main/src/main/cpp/openvpn index 760c4a6a..a80f21b1 160000 --- a/main/src/main/cpp/openvpn +++ b/main/src/main/cpp/openvpn @@ -1 +1 @@ -Subproject commit 760c4a6ad7edc9295d4d1762c1ed8375a87827f5 +Subproject commit a80f21b133ebf10bc3c36577fedef024c6ed3035 diff --git a/main/src/main/cpp/openvpn3 b/main/src/main/cpp/openvpn3 index bfdfa130..f1597101 160000 --- a/main/src/main/cpp/openvpn3 +++ b/main/src/main/cpp/openvpn3 @@ -1 +1 @@ -Subproject commit bfdfa13082334b577b66bf8eaebbafdbe2671f12 +Subproject commit f159710100e1442c7354b4f24cbfe742abc8c89b -- cgit v1.2.3 From 58cbe1ec522f688a1c2d2e848c9876b306904e4d Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Mon, 4 Sep 2023 11:53:38 +0200 Subject: Factor out sending a command with an FD into its own method --- .../openvpn/core/OpenVpnManagementThread.java | 34 +++++++++++++--------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/main/src/main/java/de/blinkt/openvpn/core/OpenVpnManagementThread.java b/main/src/main/java/de/blinkt/openvpn/core/OpenVpnManagementThread.java index 5d4486b9..8edae328 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/OpenVpnManagementThread.java +++ b/main/src/main/java/de/blinkt/openvpn/core/OpenVpnManagementThread.java @@ -616,14 +616,8 @@ public class OpenVpnManagementThread implements Runnable, OpenVPNManagement { managmentCommand(cmd); } - private boolean sendTunFD(String needed, String extra) { - if (!extra.equals("tun")) { - // We only support tun - VpnStatus.logError(String.format("Device type %s requested, but only tun is possible with the Android API, sorry!", extra)); - return false; - } - ParcelFileDescriptor pfd = mOpenVPNService.openTun(); + private boolean sendCommandWithFd(String cmd, ParcelFileDescriptor pfd) { if (pfd == null) return false; @@ -636,26 +630,38 @@ public class OpenVpnManagementThread implements Runnable, OpenVPNManagement { setInt.invoke(fdtosend, fdint); FileDescriptor[] fds = {fdtosend}; - mSocket.setFileDescriptorsForSend(fds); // Trigger a send so we can close the fd on our side of the channel // The API documentation fails to mention that it will not reset the file descriptor to // be send and will happily send the file descriptor on every write ... - String cmd = String.format("needok '%s' %s\n", needed, "ok"); + mSocket.setFileDescriptorsForSend(fds); + managmentCommand(cmd); // Set the FileDescriptor to null to stop this mad behavior mSocket.setFileDescriptorsForSend(null); - pfd.close(); - return true; - } catch (NoSuchMethodException | IllegalArgumentException | InvocationTargetException | - IOException | IllegalAccessException exp) { + + } catch (InvocationTargetException | NoSuchMethodException | IllegalAccessException | + IOException exp) { VpnStatus.logException("Could not send fd over socket", exp); + return false; } + return true; + } - return false; + private boolean sendTunFD(String needed, String extra) { + if (!extra.equals("tun")) { + // We only support tun + VpnStatus.logError(String.format("Device type %s requested, but only tun is possible with the Android API, sorry!", extra)); + + return false; + } + ParcelFileDescriptor pfd = mOpenVPNService.openTun(); + + String cmd = String.format("needok '%s' %s\n", needed, "ok"); + return sendCommandWithFd(cmd, pfd); } private void processPWCommand(String argument) { -- cgit v1.2.3 From 173f36fe513b644a71ed16f5778d190eb9ddd905 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Tue, 5 Sep 2023 00:36:20 +0200 Subject: Make lastTunConfiguration an object --- .../de/blinkt/openvpn/core/OpenVPNService.java | 208 +++++++++++---------- 1 file changed, 107 insertions(+), 101 deletions(-) diff --git a/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java b/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java index edc36e9a..5b59a907 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java +++ b/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java @@ -87,17 +87,27 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac private static final int PRIORITY_DEFAULT = 0; private static final int PRIORITY_MAX = 2; private static boolean mNotificationAlwaysVisible = false; - private final Vector mDnslist = new Vector<>(); - private final NetworkSpace mRoutes = new NetworkSpace(); - private final NetworkSpace mRoutesv6 = new NetworkSpace(); + + static class TunConfig { + private final Vector mDnslist = new Vector<>(); + private final NetworkSpace mRoutes = new NetworkSpace(); + private final NetworkSpace mRoutesv6 = new NetworkSpace(); + private String mDomain = null; + private CIDRIP mLocalIP = null; + private int mMtu; + private String mLocalIPv6 = null; + + private ProxyInfo mProxyInfo; + }; + + private TunConfig tunConfig = new TunConfig(); + private final Object mProcessLock = new Object(); private String lastChannel; private Thread mProcessThread = null; private VpnProfile mProfile; - private String mDomain = null; - private CIDRIP mLocalIP = null; - private int mMtu; - private String mLocalIPv6 = null; + + private DeviceStateReceiver mDeviceStateReceiver; private boolean mDisplayBytecount = false; private boolean mStarting = false; @@ -138,12 +148,11 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac }; - private String mLastTunCfg; + private TunConfig mLastTunCfg; private String mRemoteGW; private Handler guiHandler; private Toast mlastToast; private Runnable mOpenVPNThread; - private ProxyInfo mProxyInfo; private HandlerThread mCommandHandlerThread; private Handler mCommandHandler; @@ -747,27 +756,35 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac VpnStatus.flushLog(); } - private String getTunConfigString() { + private static String getTunConfigString(TunConfig tc) { // The format of the string is not important, only that // two identical configurations produce the same result String cfg = "TUNCFG UNQIUE STRING ips:"; - if (mLocalIP != null) - cfg += mLocalIP.toString(); - if (mLocalIPv6 != null) - cfg += mLocalIPv6; + if (tc.mLocalIP != null) + cfg += tc.mLocalIP.toString(); + if (tc.mLocalIPv6 != null) + cfg += tc.mLocalIPv6; - cfg += "routes: " + TextUtils.join("|", mRoutes.getNetworks(true)) + TextUtils.join("|", mRoutesv6.getNetworks(true)); - cfg += "excl. routes:" + TextUtils.join("|", mRoutes.getNetworks(false)) + TextUtils.join("|", mRoutesv6.getNetworks(false)); - cfg += "dns: " + TextUtils.join("|", mDnslist); - cfg += "domain: " + mDomain; - cfg += "mtu: " + mMtu; - cfg += "proxyInfo: " + mProxyInfo; + cfg += "routes: " + TextUtils.join("|", tc.mRoutes.getNetworks(true)) + TextUtils.join("|", tc.mRoutesv6.getNetworks(true)); + cfg += "excl. routes:" + TextUtils.join("|", tc.mRoutes.getNetworks(false)) + TextUtils.join("|", tc.mRoutesv6.getNetworks(false)); + cfg += "dns: " + TextUtils.join("|", tc.mDnslist); + cfg += "domain: " + tc.mDomain; + cfg += "mtu: " + tc.mMtu; + cfg += "proxyInfo: " + tc.mProxyInfo; return cfg; } public ParcelFileDescriptor openTun() { + ParcelFileDescriptor pfd = openTun(tunConfig); + + // Reset information + mLastTunCfg = tunConfig; + tunConfig = new TunConfig(); + return pfd; + } + private ParcelFileDescriptor openTun(TunConfig tc) { //Debug.startMethodTracing(getExternalFilesDir(null).toString() + "/opentun.trace", 40* 1024 * 1024); @@ -786,36 +803,36 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac allowAllAFFamilies(builder); } - if (mLocalIP == null && mLocalIPv6 == null) { + if (tc.mLocalIP == null && tc.mLocalIPv6 == null) { VpnStatus.logError(getString(R.string.opentun_no_ipaddr)); return null; } - if (mLocalIP != null) { + if (tc.mLocalIP != null) { // OpenVPN3 manages excluded local networks by callback if (!VpnProfile.doUseOpenVPN3(this)) - addLocalNetworksToRoutes(); + addLocalNetworksToRoutes(tc); try { - builder.addAddress(mLocalIP.mIp, mLocalIP.len); + builder.addAddress(tc.mLocalIP.mIp, tc.mLocalIP.len); } catch (IllegalArgumentException iae) { - VpnStatus.logError(R.string.dns_add_error, mLocalIP, iae.getLocalizedMessage()); + VpnStatus.logError(R.string.dns_add_error, tc.mLocalIP, iae.getLocalizedMessage()); return null; } } - if (mLocalIPv6 != null) { - String[] ipv6parts = mLocalIPv6.split("/"); + if (tc.mLocalIPv6 != null) { + String[] ipv6parts = tc.mLocalIPv6.split("/"); try { builder.addAddress(ipv6parts[0], Integer.parseInt(ipv6parts[1])); } catch (IllegalArgumentException iae) { - VpnStatus.logError(R.string.ip_add_error, mLocalIPv6, iae.getLocalizedMessage()); + VpnStatus.logError(R.string.ip_add_error, tc.mLocalIPv6, iae.getLocalizedMessage()); return null; } } - for (String dns : mDnslist) { + for (String dns : tc.mDnslist) { try { builder.addDnsServer(dns); } catch (IllegalArgumentException iae) { @@ -824,15 +841,15 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac } String release = Build.VERSION.RELEASE; - builder.setMtu(mMtu); + builder.setMtu(tc.mMtu); - Collection positiveIPv4Routes = mRoutes.getPositiveIPList(); - Collection positiveIPv6Routes = mRoutesv6.getPositiveIPList(); + Collection positiveIPv4Routes = tc.mRoutes.getPositiveIPList(); + Collection positiveIPv6Routes = tc.mRoutesv6.getPositiveIPList(); - if ("samsung".equals(Build.BRAND) && mDnslist.size() >= 1) { + if ("samsung".equals(Build.BRAND) && tc.mDnslist.size() >= 1) { // Check if the first DNS Server is in the VPN range try { - IpAddress dnsServer = new IpAddress(new CIDRIP(mDnslist.get(0), 32), true); + IpAddress dnsServer = new IpAddress(new CIDRIP(tc.mDnslist.get(0), 32), true); boolean dnsIncluded = false; for (IpAddress net : positiveIPv4Routes) { if (net.containsNet(dnsServer)) { @@ -840,28 +857,28 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac } } if (!dnsIncluded) { - String samsungwarning = String.format("Warning Samsung Android 5.0+ devices ignore DNS servers outside the VPN range. To enable DNS resolution a route to your DNS Server (%s) has been added.", mDnslist.get(0)); + String samsungwarning = String.format("Warning Samsung Android 5.0+ devices ignore DNS servers outside the VPN range. To enable DNS resolution a route to your DNS Server (%s) has been added.", tc.mDnslist.get(0)); VpnStatus.logWarning(samsungwarning); positiveIPv4Routes.add(dnsServer); } } catch (Exception e) { // If it looks like IPv6 ignore error - if (!mDnslist.get(0).contains(":")) - VpnStatus.logError("Error parsing DNS Server IP: " + mDnslist.get(0)); + if (!tc.mDnslist.get(0).contains(":")) + VpnStatus.logError("Error parsing DNS Server IP: " + tc.mDnslist.get(0)); } } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { - installRoutesExcluded(builder, mRoutes); - installRoutesExcluded(builder, mRoutesv6); + installRoutesExcluded(builder, tc.mRoutes); + installRoutesExcluded(builder, tc.mRoutesv6); } else { installRoutesPostiveOnly(builder, positiveIPv4Routes, positiveIPv6Routes); } - if (mDomain != null) - builder.addSearchDomain(mDomain); + if (tc.mDomain != null) + builder.addSearchDomain(tc.mDomain); String ipv4info; String ipv6info; @@ -874,27 +891,27 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac } int ipv4len; - if (mLocalIP != null) { - ipv4len = mLocalIP.len; - ipv4info = mLocalIP.mIp; + if (tc.mLocalIP != null) { + ipv4len = tc.mLocalIP.len; + ipv4info = tc.mLocalIP.mIp; } else { ipv4len = -1; } - if (mLocalIPv6 != null) { - ipv6info = mLocalIPv6; + if (tc.mLocalIPv6 != null) { + ipv6info = tc.mLocalIPv6; } - if ((!mRoutes.getNetworks(false).isEmpty() || !mRoutesv6.getNetworks(false).isEmpty()) && isLockdownEnabledCompat()) { + if ((!tc.mRoutes.getNetworks(false).isEmpty() || !tc.mRoutesv6.getNetworks(false).isEmpty()) && isLockdownEnabledCompat()) { VpnStatus.logInfo("VPN lockdown enabled (do not allow apps to bypass VPN) enabled. Route exclusion will not allow apps to bypass VPN (e.g. bypass VPN for local networks)"); } - VpnStatus.logInfo(R.string.local_ip_info, ipv4info, ipv4len, ipv6info, mMtu); - VpnStatus.logInfo(R.string.dns_server_info, TextUtils.join(", ", mDnslist), mDomain); - VpnStatus.logInfo(R.string.routes_info_incl, TextUtils.join(", ", mRoutes.getNetworks(true)), TextUtils.join(", ", mRoutesv6.getNetworks(true))); - VpnStatus.logInfo(R.string.routes_info_excl, TextUtils.join(", ", mRoutes.getNetworks(false)), TextUtils.join(", ", mRoutesv6.getNetworks(false))); - if (mProxyInfo != null) { - VpnStatus.logInfo(R.string.proxy_info, mProxyInfo.getHost(), mProxyInfo.getPort()); + VpnStatus.logInfo(R.string.local_ip_info, ipv4info, ipv4len, ipv6info, tc.mMtu); + VpnStatus.logInfo(R.string.dns_server_info, TextUtils.join(", ", tc.mDnslist), tc.mDomain); + VpnStatus.logInfo(R.string.routes_info_incl, TextUtils.join(", ", tc.mRoutes.getNetworks(true)), TextUtils.join(", ", tc.mRoutesv6.getNetworks(true))); + VpnStatus.logInfo(R.string.routes_info_excl, TextUtils.join(", ", tc.mRoutes.getNetworks(false)), TextUtils.join(", ", tc.mRoutesv6.getNetworks(false))); + if (tc.mProxyInfo != null) { + VpnStatus.logInfo(R.string.proxy_info, tc.mProxyInfo.getHost(), tc.mProxyInfo.getPort()); } if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) { /* On Tiramisu we install the routes exactly like promised */ @@ -915,31 +932,20 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac } String session = mProfile.mName; - if (mLocalIP != null && mLocalIPv6 != null) - session = getString(R.string.session_ipv6string, session, mLocalIP, mLocalIPv6); - else if (mLocalIP != null) - session = getString(R.string.session_ipv4string, session, mLocalIP); + if (tc.mLocalIP != null && tc.mLocalIPv6 != null) + session = getString(R.string.session_ipv6string, session, tc.mLocalIP, tc.mLocalIPv6); + else if (tc.mLocalIP != null) + session = getString(R.string.session_ipv4string, session, tc.mLocalIP); else - session = getString(R.string.session_ipv4string, session, mLocalIPv6); + session = getString(R.string.session_ipv4string, session, tc.mLocalIPv6); builder.setSession(session); // No DNS Server, log a warning - if (mDnslist.size() == 0) + if (tc.mDnslist.size() == 0) VpnStatus.logInfo(R.string.warn_no_dns); - setHttpProxy(builder); - - mLastTunCfg = getTunConfigString(); - - // Reset information - mDnslist.clear(); - mRoutes.clear(); - mRoutesv6.clear(); - mLocalIP = null; - mLocalIPv6 = null; - mDomain = null; - mProxyInfo = null; + setHttpProxy(builder, tc); builder.setConfigureIntent(getGraphPendingIntent()); @@ -1000,10 +1006,10 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac } } - private void setHttpProxy(Builder builder) { - if (mProxyInfo != null && Build.VERSION.SDK_INT >= 29) { - builder.setHttpProxy(mProxyInfo); - } else if (mProxyInfo != null) { + private void setHttpProxy(Builder builder, TunConfig tc) { + if (tc.mProxyInfo != null && Build.VERSION.SDK_INT >= 29) { + builder.setHttpProxy(tc.mProxyInfo); + } else if (tc.mProxyInfo != null) { VpnStatus.logWarning("HTTP Proxy needs Android 10 or later."); } } @@ -1023,16 +1029,16 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac builder.allowFamily(OsConstants.AF_INET6); } - private void addLocalNetworksToRoutes() { + private void addLocalNetworksToRoutes(TunConfig tc) { for (String net : NetworkUtils.getLocalNetworks(this, false)) { String[] netparts = net.split("/"); String ipAddr = netparts[0]; int netMask = Integer.parseInt(netparts[1]); - if (ipAddr.equals(mLocalIP.mIp)) + if (ipAddr.equals(tc.mLocalIP.mIp)) continue; if(mProfile.mAllowLocalLAN) - mRoutes.addIP(new CIDRIP(ipAddr, netMask), false); + tc.mRoutes.addIP(new CIDRIP(ipAddr, netMask), false); } if (mProfile.mAllowLocalLAN) { @@ -1103,12 +1109,12 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac } public void addDNS(String dns) { - mDnslist.add(dns); + tunConfig.mDnslist.add(dns); } public void setDomain(String domain) { - if (mDomain == null) { - mDomain = domain; + if (tunConfig.mDomain == null) { + tunConfig.mDomain = domain; } } @@ -1116,12 +1122,12 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac * Route that is always included, used by the v3 core */ public void addRoute(CIDRIP route, boolean include) { - mRoutes.addIP(route, include); + tunConfig.mRoutes.addIP(route, include); } public boolean addHttpProxy(String proxy, int port) { try { - mProxyInfo = ProxyInfo.buildDirectProxy(proxy, port); + tunConfig.mProxyInfo = ProxyInfo.buildDirectProxy(proxy, port); } catch (Exception e) { VpnStatus.logError("Could not set proxy" + e.getLocalizedMessage()); return false; @@ -1135,11 +1141,11 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac IpAddress gatewayIP = new IpAddress(new CIDRIP(gateway, 32), false); - if (mLocalIP == null) { + if (tunConfig.mLocalIP == null) { VpnStatus.logError("Local IP address unset and received. Neither pushed server config nor local config specifies an IP addresses. Opening tun device is most likely going to fail."); return; } - IpAddress localNet = new IpAddress(mLocalIP, true); + IpAddress localNet = new IpAddress(tunConfig.mLocalIP, true); if (localNet.containsNet(gatewayIP)) include = true; @@ -1155,7 +1161,7 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac if (route.normalise()) VpnStatus.logWarning(R.string.route_not_netip, dest, route.len, route.mIp); - mRoutes.addIP(route, include); + tunConfig.mRoutes.addIP(route, include); } public void addRoutev6(String network, String device) { @@ -1170,7 +1176,7 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac try { Inet6Address ip = (Inet6Address) InetAddress.getAllByName(v6parts[0])[0]; int mask = Integer.parseInt(v6parts[1]); - mRoutesv6.addIPv6(ip, mask, included); + tunConfig.mRoutesv6.addIPv6(ip, mask, included); } catch (UnknownHostException e) { VpnStatus.logException(e); @@ -1185,21 +1191,21 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac } public void setMtu(int mtu) { - mMtu = mtu; + tunConfig.mMtu = mtu; } public void setLocalIP(CIDRIP cdrip) { - mLocalIP = cdrip; + tunConfig.mLocalIP = cdrip; } public void setLocalIP(String local, String netmask, int mtu, String mode) { - mLocalIP = new CIDRIP(local, netmask); - mMtu = mtu; + tunConfig.mLocalIP = new CIDRIP(local, netmask); + tunConfig.mMtu = mtu; mRemoteGW = null; long netMaskAsInt = CIDRIP.getInt(netmask); - if (mLocalIP.len == 32 && !netmask.equals("255.255.255.255")) { + if (tunConfig.mLocalIP.len == 32 && !netmask.equals("255.255.255.255")) { // get the netmask as IP int masklen; @@ -1213,22 +1219,22 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac } // Netmask is Ip address +/-1, assume net30/p2p with small net - if ((netMaskAsInt & mask) == (mLocalIP.getInt() & mask)) { - mLocalIP.len = masklen; + if ((netMaskAsInt & mask) == (tunConfig.mLocalIP.getInt() & mask)) { + tunConfig.mLocalIP.len = masklen; } else { - mLocalIP.len = 32; + tunConfig.mLocalIP.len = 32; if (!"p2p".equals(mode)) VpnStatus.logWarning(R.string.ip_not_cidr, local, netmask, mode); } } - if (("p2p".equals(mode) && mLocalIP.len < 32) || ("net30".equals(mode) && mLocalIP.len < 30)) { + if (("p2p".equals(mode) && tunConfig.mLocalIP.len < 32) || ("net30".equals(mode) && tunConfig.mLocalIP.len < 30)) { VpnStatus.logWarning(R.string.ip_looks_like_subnet, local, netmask, mode); } /* Workaround for Lollipop and higher, it does not route traffic to the VPNs own network mask */ - if (mLocalIP.len <= 31) { - CIDRIP interfaceRoute = new CIDRIP(mLocalIP.mIp, mLocalIP.len); + if (tunConfig.mLocalIP.len <= 31) { + CIDRIP interfaceRoute = new CIDRIP(tunConfig.mLocalIP.mIp, tunConfig.mLocalIP.len); interfaceRoute.normalise(); addRoute(interfaceRoute, true); } @@ -1239,7 +1245,7 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac } public void setLocalIPv6(String ipv6addr) { - mLocalIPv6 = ipv6addr; + tunConfig.mLocalIPv6 = ipv6addr; } @Override @@ -1317,8 +1323,8 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac } public String getTunReopenStatus() { - String currentConfiguration = getTunConfigString(); - if (currentConfiguration.equals(mLastTunCfg)) { + String currentConfiguration = getTunConfigString(mLastTunCfg); + if (currentConfiguration.equals(getTunConfigString(mLastTunCfg))) { return "NOACTION"; } else { return "OPEN_BEFORE_CLOSE"; -- cgit v1.2.3 From 2c66e7086c50d78caadc080313d3d6e4605de95e Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Mon, 9 Oct 2023 19:32:09 +0200 Subject: Remove also app restriction profiles on missing vpn profile list and add tests --- .../de/blinkt/openvpn/api/AppRestrictions.java | 12 +- .../de/blinkt/openvpn/core/TestRestrictions.kt | 146 +++++++++++++++++++++ 2 files changed, 154 insertions(+), 4 deletions(-) create mode 100644 main/src/test/java/de/blinkt/openvpn/core/TestRestrictions.kt diff --git a/main/src/main/java/de/blinkt/openvpn/api/AppRestrictions.java b/main/src/main/java/de/blinkt/openvpn/api/AppRestrictions.java index caa2de32..53919216 100644 --- a/main/src/main/java/de/blinkt/openvpn/api/AppRestrictions.java +++ b/main/src/main/java/de/blinkt/openvpn/api/AppRestrictions.java @@ -36,13 +36,13 @@ public class AppRestrictions { private static AppRestrictions mInstance; private BroadcastReceiver mRestrictionsReceiver; - private AppRestrictions(Context c) { + private AppRestrictions() { } public static AppRestrictions getInstance(Context c) { if (mInstance == null) - mInstance = new AppRestrictions(c); + mInstance = new AppRestrictions(); return mInstance; } @@ -81,6 +81,10 @@ public class AppRestrictions { if (restrictionsMgr == null) return; Bundle restrictions = restrictionsMgr.getApplicationRestrictions(); + parseRestrictionsBundle(c, restrictions); + } + public void parseRestrictionsBundle(Context c, Bundle restrictions) + { if (restrictions == null) return; @@ -97,8 +101,8 @@ public class AppRestrictions { } Parcelable[] profileList = restrictions.getParcelableArray("vpn_configuration_list"); if (profileList == null) { - VpnStatus.logError("App restriction does not contain a profile list (vpn_configuration_list)"); - return; + VpnStatus.logInfo("App restriction does not contain a profile list. Removing previously added profiles. (vpn_configuration_list)"); + profileList = new Parcelable[]{}; } importVPNProfiles(c, restrictions, profileList); diff --git a/main/src/test/java/de/blinkt/openvpn/core/TestRestrictions.kt b/main/src/test/java/de/blinkt/openvpn/core/TestRestrictions.kt new file mode 100644 index 00000000..75505655 --- /dev/null +++ b/main/src/test/java/de/blinkt/openvpn/core/TestRestrictions.kt @@ -0,0 +1,146 @@ +/* + * Copyright (c) 2012-2023 Arne Schwabe + * Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt + */ +package de.blinkt.openvpn.core + +import android.content.Context +import android.os.Bundle +import androidx.test.core.app.ApplicationProvider +import de.blinkt.openvpn.VpnProfile +import de.blinkt.openvpn.api.AppRestrictions +import org.junit.Assert +import org.junit.Test +import org.junit.runner.RunWith +import org.robolectric.RobolectricTestRunner + +interface createTestBundle + +@RunWith(RobolectricTestRunner::class) +class TestRestrictions : createTestBundle { + @Test + fun testImportRestrictions() { + + val context: Context = ApplicationProvider.getApplicationContext(); + + val appr = AppRestrictions.getInstance(context); + val b: Bundle = createTestBundle() + + + appr.parseRestrictionsBundle(context, b); + + val pm = ProfileManager.getInstance(context); + + Assert.assertEquals(pm.profiles.size, 1) + + val firstProfile: VpnProfile = pm.profiles.first() + + Assert.assertEquals( + firstProfile.uuidString, + "F8AEE125-2D7A-44E9-B9EB-82FB619D51CC".lowercase() + ) + Assert.assertEquals( + firstProfile.importedProfileHash, + "4098294f8a8d25bb6e85cef5672dfba13ed63719" + ) + + /* Try to remove the imported profiles again */ + } + + private fun createTestBundle(): Bundle { + val b: Bundle = Bundle(); + + val miniconfig = "client\nremote test.blinkt.de\n"; + + val testVPN = Bundle(); + testVPN.putString("name", "Unit Test VPN"); + testVPN.putString("ovpn", miniconfig) + testVPN.putString("uuid", "F8AEE125-2D7A-44E9-B9EB-82FB619D51CC"); + + val ba: Array = arrayOf(testVPN) + + b.putParcelableArray("vpn_configuration_list", ba) + b.putString("defaultprofile", "F8AEE125-2D7A-44E9-B9EB-82FB619D51CC") + b.putString("version", "1") + b.putString("allowed_remote_access", "some.random.app") + return b + } + + private fun createTestBundleEmptyVPN(): Bundle { + val b: Bundle = Bundle(); + val ba: Array = arrayOf() + + b.putParcelableArray("vpn_configuration_list", ba) + b.putString("version", "1") + b.putString("allowed_remote_access", "some.random.app"); + return b + } + + @Test + fun testImportRestrictionsDelete() { + + val context: Context = ApplicationProvider.getApplicationContext(); + + val appr = AppRestrictions.getInstance(context); + val b: Bundle = createTestBundle() + + appr.parseRestrictionsBundle(context, b) + + /* add another not restriction managed profile */ + val otherVP: VpnProfile = VpnProfile("another") + + val pm = ProfileManager.getInstance(context) + pm.addProfile(otherVP) + + Assert.assertEquals(pm.profiles.size, 2) + + val bEmpty: Bundle = createTestBundleEmptyVPN() + appr.parseRestrictionsBundle(context, bEmpty) + + Assert.assertEquals(pm.profiles.size, 1) + + val firstProfile: VpnProfile = pm.profiles.first() + + Assert.assertEquals( + firstProfile.name, + "another" + ) + + } + + @Test + fun testImportRestrictionsDeleteEmptyProfileList() { + + val context: Context = ApplicationProvider.getApplicationContext(); + + val appr = AppRestrictions.getInstance(context); + val b: Bundle = createTestBundle() + + appr.parseRestrictionsBundle(context, b) + + /* add another not restriction managed profile */ + val otherVP: VpnProfile = VpnProfile("another") + + val pm = ProfileManager.getInstance(context) + pm.addProfile(otherVP) + + Assert.assertEquals(pm.profiles.size, 2) + + val bNoVPNConfigList: Bundle = Bundle(); + + bNoVPNConfigList.putString("version", "1") + + + appr.parseRestrictionsBundle(context, bNoVPNConfigList) + + Assert.assertEquals(pm.profiles.size, 1) + + val firstProfile: VpnProfile = pm.profiles.first() + + Assert.assertEquals( + firstProfile.name, + "another" + ) + + } +} -- cgit v1.2.3 From 83e20b974f916710255c9211dc3dd77595c0aebf Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Tue, 5 Sep 2023 00:36:20 +0200 Subject: Throw expection if profile is not found --- main/src/main/java/de/blinkt/openvpn/api/ExternalOpenVPNService.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/main/src/main/java/de/blinkt/openvpn/api/ExternalOpenVPNService.java b/main/src/main/java/de/blinkt/openvpn/api/ExternalOpenVPNService.java index c6a4339a..ab71f00b 100644 --- a/main/src/main/java/de/blinkt/openvpn/api/ExternalOpenVPNService.java +++ b/main/src/main/java/de/blinkt/openvpn/api/ExternalOpenVPNService.java @@ -239,6 +239,8 @@ public class ExternalOpenVPNService extends Service implements StateListener { mExtAppDb.checkOpenVPNPermission(getPackageManager()); ProfileManager pm = ProfileManager.getInstance(getBaseContext()); VpnProfile vp = ProfileManager.get(getBaseContext(), profileUUID); + if (vp == null) + throw new RemoteException("Profile not found"); pm.removeProfile(ExternalOpenVPNService.this, vp); } @@ -246,7 +248,7 @@ public class ExternalOpenVPNService extends Service implements StateListener { public boolean protectSocket(ParcelFileDescriptor pfd) throws RemoteException { mExtAppDb.checkOpenVPNPermission(getPackageManager()); try { - boolean success= mService.protect(pfd.getFd()); + boolean success = mService.protect(pfd.getFd()); pfd.close(); return success; } catch (IOException e) { -- cgit v1.2.3 From c53c6853dc819b0a9caa574c13806f5d091d6da8 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Tue, 10 Oct 2023 19:38:44 +0200 Subject: Fix OpenVPN not starting from Quick in upsidedown cake (closes #1652) --- main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java | 5 ++++- main/src/ui/java/de/blinkt/openvpn/OpenVPNTileService.java | 11 ++--------- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java b/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java index 5b59a907..0e8793e4 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java +++ b/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java @@ -759,6 +759,9 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac private static String getTunConfigString(TunConfig tc) { // The format of the string is not important, only that // two identical configurations produce the same result + if (tc == null) + return "NULL"; + String cfg = "TUNCFG UNQIUE STRING ips:"; if (tc.mLocalIP != null) @@ -1323,7 +1326,7 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac } public String getTunReopenStatus() { - String currentConfiguration = getTunConfigString(mLastTunCfg); + String currentConfiguration = getTunConfigString(tunConfig); if (currentConfiguration.equals(getTunConfigString(mLastTunCfg))) { return "NOACTION"; } else { diff --git a/main/src/ui/java/de/blinkt/openvpn/OpenVPNTileService.java b/main/src/ui/java/de/blinkt/openvpn/OpenVPNTileService.java index 9cb69a3d..94c1f1db 100644 --- a/main/src/ui/java/de/blinkt/openvpn/OpenVPNTileService.java +++ b/main/src/ui/java/de/blinkt/openvpn/OpenVPNTileService.java @@ -7,7 +7,6 @@ package de.blinkt.openvpn; import android.annotation.SuppressLint; import android.annotation.TargetApi; -import android.app.PendingIntent; import android.content.ComponentName; import android.content.Context; import android.content.Intent; @@ -23,6 +22,7 @@ import de.blinkt.openvpn.core.ConnectionStatus; import de.blinkt.openvpn.core.IOpenVPNServiceInternal; import de.blinkt.openvpn.core.OpenVPNService; import de.blinkt.openvpn.core.ProfileManager; +import de.blinkt.openvpn.core.VPNLaunchHelper; import de.blinkt.openvpn.core.VpnStatus; @@ -85,14 +85,7 @@ public class OpenVPNTileService extends TileService implements VpnStatus.StateLi @SuppressLint("Override") @TargetApi(Build.VERSION_CODES.N) void launchVPN(VpnProfile profile, Context context) { - Intent startVpnIntent = new Intent(Intent.ACTION_MAIN); - startVpnIntent.setClass(context, LaunchVPN.class); - startVpnIntent.putExtra(LaunchVPN.EXTRA_KEY, profile.getUUIDString()); - startVpnIntent.putExtra(LaunchVPN.EXTRA_START_REASON, "QuickTile"); - startVpnIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - startVpnIntent.putExtra(LaunchVPN.EXTRA_HIDELOG, true); - - context.startActivity(startVpnIntent); + VPNLaunchHelper.startOpenVpn(profile, getBaseContext(), "QuickTile"); } @TargetApi(Build.VERSION_CODES.N) -- cgit v1.2.3 From 29e3cc3727732fe9cbe32b1e7991b77d90290fbb Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Tue, 10 Oct 2023 19:39:35 +0200 Subject: Do not share proxy username label with normal username label (closes #1654) --- main/src/main/res/values/strings.xml | 1 + main/src/ui/res/layout/server_card.xml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/main/src/main/res/values/strings.xml b/main/src/main/res/values/strings.xml index e9ae302b..575933ed 100755 --- a/main/src/main/res/values/strings.xml +++ b/main/src/main/res/values/strings.xml @@ -507,5 +507,6 @@ TLS Security Profile Try to encrypt profiles on storage (if supported by Android OS) Notification permission missing. This is used to display the status of the VPN and to notify about required user interaction like multi factor authorisation.\n\nClick this message to give the app notification permissions + Username diff --git a/main/src/ui/res/layout/server_card.xml b/main/src/ui/res/layout/server_card.xml index dab975d6..1395cd8b 100644 --- a/main/src/ui/res/layout/server_card.xml +++ b/main/src/ui/res/layout/server_card.xml @@ -254,7 +254,7 @@ android:layout_width="wrap_content" android:layout_height="17dp" android:layout_below="@id/enable_proxy_auth" - android:text="@string/auth_username" + android:text="@string/proxy_auth_username" android:textAppearance="?android:attr/textAppearanceSmall" android:layout_marginTop="12dp" card_view:layout_constraintTop_toBottomOf="@+id/enable_proxy_auth" -- cgit v1.2.3 From 5719f6dc6bc35096af5922d410c2175463fea974 Mon Sep 17 00:00:00 2001 From: conorsmith Date: Sun, 3 Sep 2023 16:40:59 +0200 Subject: Use gradle catalog to align project dependencies across modules/gradle files --- build.gradle.kts | 26 +++---------------- gradle/libs.versions.toml | 40 ++++++++++++++++++++++++++++++ main/build.gradle.kts | 48 ++++++++++++++---------------------- remoteExample/build.gradle | 5 ++-- settings.gradle.kts | 16 ++++++++++++ tlsexternalcertprovider/build.gradle | 4 ++- 6 files changed, 84 insertions(+), 55 deletions(-) create mode 100644 gradle/libs.versions.toml diff --git a/build.gradle.kts b/build.gradle.kts index b6c58bb8..435eb00f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -3,25 +3,7 @@ * Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt */ - -buildscript { - var kotlin_version: String by extra - - kotlin_version = "1.9.0" - repositories { - google() - mavenCentral() - } - dependencies { - classpath("com.android.tools.build:gradle:8.1.1") - classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version") - } -} - -allprojects { - repositories { - google() - mavenCentral() - maven(url = "https://jitpack.io") - } -} +plugins { + alias(libs.plugins.android.application) apply false + alias(libs.plugins.kotlin.android) apply false +} \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 00000000..f12ff9c9 --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,40 @@ +[versions] +kotlin = "1.9.0" +constraintlayout = "2.1.4" +cardview = "1.0.0" +recyclerview = "1.3.0" +appcompat = "1.6.1" +mpandroidchart = "v3.1.0" +okhttp = "4.10.0" +core-ktx = "1.10.1" +fragment-ktx = "1.6.0" +preference-ktx = "1.2.0" +material = "1.7.0" +androidx-webkit = "1.7.0" +androidx-lifecycle-viewmodel-ktx = "2.6.1" +androidx-lifecycle-runtime-ktx = "2.6.1" +androidx-security-crypto = "1.1.0-alpha06" +androidx-annotation = "1.6.0" +android-gradle-plugin = "8.1.1" + +[libraries] +kotlin = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib", version.ref = "kotlin" } +androidx-constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "constraintlayout" } +androidx-cardview = { group = "androidx.cardview", name = "cardview", version.ref = "cardview" } +androidx-recyclerview = { group = "androidx.recyclerview", name = "recyclerview", version.ref = "recyclerview" } +androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" } +mpandroidchart = { group = "com.github.PhilJay", name = "MPAndroidChart", version.ref = "mpandroidchart" } +square-okhttp = { group = "com.squareup.okhttp3", name = "okhttp", version.ref = "okhttp" } +androidx-core-ktx = { group = "androidx.core", name = "core", version.ref = "core-ktx" } +androidx-fragment-ktx = { group = "androidx.fragment", name = "fragment-ktx", version.ref = "fragment-ktx" } +androidx-preference-ktx = { group = "androidx.preference", name = "preference-ktx", version.ref = "preference-ktx" } +material = { group = "com.google.android.material", name = "material", version.ref = "material" } +androidx-webkit = { group = "androidx.webkit", name = "webkit", version.ref = "androidx-webkit" } +androidx-lifecycle-viewmodel-ktx = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-ktx", version.ref = "androidx-lifecycle-viewmodel-ktx" } +androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "androidx-lifecycle-runtime-ktx" } +androidx-security-crypto = { group = "androidx.security", name = "security-crypto", version.ref = "androidx-security-crypto" } +androidx-annotation = { group = "androidx.annotation", name = "annotation", version.ref = "androidx-annotation" } + +[plugins] +android-application = { id = "com.android.application", version.ref = "android-gradle-plugin" } +kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } \ No newline at end of file diff --git a/main/build.gradle.kts b/main/build.gradle.kts index 99c04b16..3f9bc90d 100644 --- a/main/build.gradle.kts +++ b/main/build.gradle.kts @@ -6,10 +6,9 @@ import com.android.build.gradle.api.ApplicationVariant */ plugins { - id("com.android.application") + alias(libs.plugins.android.application) + alias(libs.plugins.kotlin.android) id("checkstyle") - - id("kotlin-android") } android { @@ -232,36 +231,25 @@ android.applicationVariants.all(object : Action { dependencies { // https://maven.google.com/web/index.html - // https://developer.android.com/jetpack/androidx/releases/core - val preferenceVersion = "1.2.0" - val coreVersion = "1.10.1" - val materialVersion = "1.7.0" - val fragment_version = "1.6.0" - - - implementation("androidx.annotation:annotation:1.6.0") - implementation("androidx.core:core:$coreVersion") + implementation(libs.androidx.annotation) // Is there a nicer way to do this? - dependencies.add("uiImplementation", "androidx.constraintlayout:constraintlayout:2.1.4") - dependencies.add("uiImplementation", "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.22") - dependencies.add("uiImplementation", "androidx.cardview:cardview:1.0.0") - dependencies.add("uiImplementation", "androidx.recyclerview:recyclerview:1.3.0") - dependencies.add("uiImplementation", "androidx.appcompat:appcompat:1.6.1") - dependencies.add("uiImplementation", "com.github.PhilJay:MPAndroidChart:v3.1.0") - dependencies.add("uiImplementation", "com.squareup.okhttp3:okhttp:4.10.0") - dependencies.add("uiImplementation", "androidx.core:core:$coreVersion") - dependencies.add("uiImplementation", "androidx.core:core-ktx:$coreVersion") - dependencies.add("uiImplementation", "androidx.fragment:fragment-ktx:$fragment_version") - dependencies.add("uiImplementation", "androidx.preference:preference:$preferenceVersion") - dependencies.add("uiImplementation", "androidx.preference:preference-ktx:$preferenceVersion") - dependencies.add("uiImplementation", "com.google.android.material:material:$materialVersion") - dependencies.add("uiImplementation", "androidx.webkit:webkit:1.7.0") - dependencies.add("uiImplementation", "androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1") - dependencies.add("uiImplementation", "androidx.lifecycle:lifecycle-runtime-ktx:2.6.1") - dependencies.add("uiImplementation","androidx.security:security-crypto:1.1.0-alpha06") - + dependencies.add("uiImplementation", libs.kotlin) + dependencies.add("uiImplementation", libs.androidx.appcompat) + dependencies.add("uiImplementation", libs.androidx.constraintlayout) + dependencies.add("uiImplementation", libs.androidx.cardview) + dependencies.add("uiImplementation", libs.androidx.recyclerview) + dependencies.add("uiImplementation", libs.androidx.core.ktx) + dependencies.add("uiImplementation", libs.androidx.fragment.ktx) + dependencies.add("uiImplementation", libs.androidx.preference.ktx) + dependencies.add("uiImplementation", libs.androidx.webkit) + dependencies.add("uiImplementation", libs.androidx.lifecycle.viewmodel.ktx) + dependencies.add("uiImplementation", libs.androidx.lifecycle.runtime.ktx) + dependencies.add("uiImplementation", libs.androidx.security.crypto) + dependencies.add("uiImplementation", libs.mpandroidchart) + dependencies.add("uiImplementation", libs.square.okhttp) + dependencies.add("uiImplementation", libs.material) testImplementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21") testImplementation("junit:junit:4.13.2") diff --git a/remoteExample/build.gradle b/remoteExample/build.gradle index 648a30bf..179555bb 100644 --- a/remoteExample/build.gradle +++ b/remoteExample/build.gradle @@ -3,8 +3,9 @@ * Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt */ -apply plugin: 'com.android.application' - +plugins { + alias libs.plugins.android.application +} android { compileSdkVersion 33 diff --git a/settings.gradle.kts b/settings.gradle.kts index b4b170fe..51e9dcbd 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -2,6 +2,22 @@ * Copyright (c) 2012-2016 Arne Schwabe * Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt */ +pluginManagement { + repositories { + gradlePluginPortal() + google() + mavenCentral() + + } +} +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) + repositories { + google() + mavenCentral() + maven(url = "https://jitpack.io") + } +} include(":main") include(":tlsexternalcertprovider") diff --git a/tlsexternalcertprovider/build.gradle b/tlsexternalcertprovider/build.gradle index 2fda4308..ee86ed6d 100644 --- a/tlsexternalcertprovider/build.gradle +++ b/tlsexternalcertprovider/build.gradle @@ -3,7 +3,9 @@ * Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt */ -apply plugin: 'com.android.application' +plugins { + alias libs.plugins.android.application +} ext { bouncycastleVersion = '1.49' -- cgit v1.2.3 From dee17f697749157cb4ac282961897196faa3bff0 Mon Sep 17 00:00:00 2001 From: conorsmith Date: Sun, 3 Sep 2023 17:06:55 +0200 Subject: - Add DependencyHandler extension to make adding uiImplementation dependencies a little neater - Sort project dependencies --- main/build.gradle.kts | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/main/build.gradle.kts b/main/build.gradle.kts index 3f9bc90d..28050c0a 100644 --- a/main/build.gradle.kts +++ b/main/build.gradle.kts @@ -231,29 +231,30 @@ android.applicationVariants.all(object : Action { dependencies { // https://maven.google.com/web/index.html - implementation(libs.androidx.annotation) - // Is there a nicer way to do this? - dependencies.add("uiImplementation", libs.kotlin) - dependencies.add("uiImplementation", libs.androidx.appcompat) - dependencies.add("uiImplementation", libs.androidx.constraintlayout) - dependencies.add("uiImplementation", libs.androidx.cardview) - dependencies.add("uiImplementation", libs.androidx.recyclerview) - dependencies.add("uiImplementation", libs.androidx.core.ktx) - dependencies.add("uiImplementation", libs.androidx.fragment.ktx) - dependencies.add("uiImplementation", libs.androidx.preference.ktx) - dependencies.add("uiImplementation", libs.androidx.webkit) - dependencies.add("uiImplementation", libs.androidx.lifecycle.viewmodel.ktx) - dependencies.add("uiImplementation", libs.androidx.lifecycle.runtime.ktx) - dependencies.add("uiImplementation", libs.androidx.security.crypto) - dependencies.add("uiImplementation", libs.mpandroidchart) - dependencies.add("uiImplementation", libs.square.okhttp) - dependencies.add("uiImplementation", libs.material) + uiImplementation(libs.androidx.appcompat) + uiImplementation(libs.androidx.cardview) + uiImplementation(libs.androidx.constraintlayout) + uiImplementation(libs.androidx.core.ktx) + uiImplementation(libs.androidx.fragment.ktx) + uiImplementation(libs.androidx.lifecycle.runtime.ktx) + uiImplementation(libs.androidx.lifecycle.viewmodel.ktx) + uiImplementation(libs.androidx.preference.ktx) + uiImplementation(libs.androidx.recyclerview) + uiImplementation(libs.androidx.security.crypto) + uiImplementation(libs.androidx.webkit) + uiImplementation(libs.kotlin) + uiImplementation(libs.material) + uiImplementation(libs.mpandroidchart) + uiImplementation(libs.square.okhttp) - testImplementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21") + testImplementation("androidx.test:core:1.4.0") testImplementation("junit:junit:4.13.2") + testImplementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21") testImplementation("org.mockito:mockito-core:3.9.0") testImplementation("org.robolectric:robolectric:4.10.2") - testImplementation("androidx.test:core:1.4.0") } + +fun DependencyHandler.uiImplementation(dependencyNotation: Any): Dependency? = + add("uiImplementation", dependencyNotation) \ No newline at end of file -- cgit v1.2.3 From 715112cd9fb96aae0d94b3de9b6530000a3f4f5c Mon Sep 17 00:00:00 2001 From: conorsmith Date: Sun, 3 Sep 2023 17:31:11 +0200 Subject: Migrate test dependencies to version catalog + sort dependencies --- gradle/libs.versions.toml | 62 +++++++++++++++++++++--------------- main/build.gradle.kts | 10 +++--- tlsexternalcertprovider/build.gradle | 2 +- 3 files changed, 43 insertions(+), 31 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f12ff9c9..4a045e34 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,39 +1,51 @@ [versions] -kotlin = "1.9.0" -constraintlayout = "2.1.4" -cardview = "1.0.0" -recyclerview = "1.3.0" -appcompat = "1.6.1" -mpandroidchart = "v3.1.0" -okhttp = "4.10.0" -core-ktx = "1.10.1" -fragment-ktx = "1.6.0" -preference-ktx = "1.2.0" -material = "1.7.0" +android-gradle-plugin = "8.1.1" +androidx-annotation = "1.6.0" +androidx-appcompat = "1.6.1" +android-view-material = "1.7.0" +androidx-core-ktx = "1.10.1" +androidx-fragment-ktx = "1.6.0" +androidx-preference-ktx = "1.2.0" androidx-webkit = "1.7.0" androidx-lifecycle-viewmodel-ktx = "2.6.1" androidx-lifecycle-runtime-ktx = "2.6.1" androidx-security-crypto = "1.1.0-alpha06" -androidx-annotation = "1.6.0" -android-gradle-plugin = "8.1.1" +androidx-constraintlayout = "2.1.4" +androidx-cardview = "1.0.0" +androidx-recyclerview = "1.3.0" +mpandroidchart = "v3.1.0" +kotlin = "1.9.0" +square-okhttp = "4.10.0" + +# Test +androidx-test-core = "1.4.0" +junit = "4.13.2" +mockito-core = "3.9.0" +robolectric = "4.10.2" [libraries] -kotlin = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib", version.ref = "kotlin" } -androidx-constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "constraintlayout" } -androidx-cardview = { group = "androidx.cardview", name = "cardview", version.ref = "cardview" } -androidx-recyclerview = { group = "androidx.recyclerview", name = "recyclerview", version.ref = "recyclerview" } -androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" } -mpandroidchart = { group = "com.github.PhilJay", name = "MPAndroidChart", version.ref = "mpandroidchart" } -square-okhttp = { group = "com.squareup.okhttp3", name = "okhttp", version.ref = "okhttp" } -androidx-core-ktx = { group = "androidx.core", name = "core", version.ref = "core-ktx" } -androidx-fragment-ktx = { group = "androidx.fragment", name = "fragment-ktx", version.ref = "fragment-ktx" } -androidx-preference-ktx = { group = "androidx.preference", name = "preference-ktx", version.ref = "preference-ktx" } -material = { group = "com.google.android.material", name = "material", version.ref = "material" } +android-view-material = { group = "com.google.android.material", name = "material", version.ref = "android-view-material" } +androidx-annotation = { group = "androidx.annotation", name = "annotation", version.ref = "androidx-annotation" } +androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "androidx-appcompat" } +androidx-cardview = { group = "androidx.cardview", name = "cardview", version.ref = "androidx-cardview" } +androidx-constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "androidx-constraintlayout" } +androidx-core-ktx = { group = "androidx.core", name = "core", version.ref = "androidx-core-ktx" } +androidx-fragment-ktx = { group = "androidx.fragment", name = "fragment-ktx", version.ref = "androidx-fragment-ktx" } +androidx-preference-ktx = { group = "androidx.preference", name = "preference-ktx", version.ref = "androidx-preference-ktx" } androidx-webkit = { group = "androidx.webkit", name = "webkit", version.ref = "androidx-webkit" } androidx-lifecycle-viewmodel-ktx = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-ktx", version.ref = "androidx-lifecycle-viewmodel-ktx" } androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "androidx-lifecycle-runtime-ktx" } +androidx-recyclerview = { group = "androidx.recyclerview", name = "recyclerview", version.ref = "androidx-recyclerview" } androidx-security-crypto = { group = "androidx.security", name = "security-crypto", version.ref = "androidx-security-crypto" } -androidx-annotation = { group = "androidx.annotation", name = "annotation", version.ref = "androidx-annotation" } +mpandroidchart = { group = "com.github.PhilJay", name = "MPAndroidChart", version.ref = "mpandroidchart" } +kotlin = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib", version.ref = "kotlin" } +square-okhttp = { group = "com.squareup.okhttp3", name = "okhttp", version.ref = "square-okhttp" } + +# Test +androidx-test-core = { group = "androidx.test", name = "core", version.ref = "androidx-test-core" } +junit = { group = "junit", name = "junit", version.ref = "junit" } +mockito-core = { group = "org.mockito", name = "mockito-core", version.ref = "mockito-core" } +robolectric = { group = "org.robolectric:robolectric:4.10.2", name = "robolectric", version.ref = "robolectric" } [plugins] android-application = { id = "com.android.application", version.ref = "android-gradle-plugin" } diff --git a/main/build.gradle.kts b/main/build.gradle.kts index 28050c0a..175e18ae 100644 --- a/main/build.gradle.kts +++ b/main/build.gradle.kts @@ -233,6 +233,7 @@ dependencies { // https://maven.google.com/web/index.html implementation(libs.androidx.annotation) + uiImplementation(libs.android.view.material) uiImplementation(libs.androidx.appcompat) uiImplementation(libs.androidx.cardview) uiImplementation(libs.androidx.constraintlayout) @@ -245,15 +246,14 @@ dependencies { uiImplementation(libs.androidx.security.crypto) uiImplementation(libs.androidx.webkit) uiImplementation(libs.kotlin) - uiImplementation(libs.material) uiImplementation(libs.mpandroidchart) uiImplementation(libs.square.okhttp) - testImplementation("androidx.test:core:1.4.0") - testImplementation("junit:junit:4.13.2") + testImplementation(libs.androidx.test.core) + testImplementation(libs.junit) testImplementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21") - testImplementation("org.mockito:mockito-core:3.9.0") - testImplementation("org.robolectric:robolectric:4.10.2") + testImplementation(libs.mockito.core) + testImplementation(libs.robolectric) } fun DependencyHandler.uiImplementation(dependencyNotation: Any): Dependency? = diff --git a/tlsexternalcertprovider/build.gradle b/tlsexternalcertprovider/build.gradle index ee86ed6d..608212f7 100644 --- a/tlsexternalcertprovider/build.gradle +++ b/tlsexternalcertprovider/build.gradle @@ -58,5 +58,5 @@ dependencies { //'org.bouncycastle:bcpg-jdk15on:' + bouncycastleVersion ) - testImplementation 'junit:junit:4.12' + testImplementation(libs.junit) } -- cgit v1.2.3 From 70683fb566625bc51673b22be974b494b64e0108 Mon Sep 17 00:00:00 2001 From: conorsmith Date: Sun, 3 Sep 2023 17:42:01 +0200 Subject: - Fix incorrect robolectric dep definition - Align test implementation kotlin dependency - Re-add core.ktx dependency --- gradle/libs.versions.toml | 2 +- main/build.gradle.kts | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4a045e34..412276a0 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -45,7 +45,7 @@ square-okhttp = { group = "com.squareup.okhttp3", name = "okhttp", version.ref = androidx-test-core = { group = "androidx.test", name = "core", version.ref = "androidx-test-core" } junit = { group = "junit", name = "junit", version.ref = "junit" } mockito-core = { group = "org.mockito", name = "mockito-core", version.ref = "mockito-core" } -robolectric = { group = "org.robolectric:robolectric:4.10.2", name = "robolectric", version.ref = "robolectric" } +robolectric = { group = "org.robolectric", name = "robolectric", version.ref = "robolectric" } [plugins] android-application = { id = "com.android.application", version.ref = "android-gradle-plugin" } diff --git a/main/build.gradle.kts b/main/build.gradle.kts index 175e18ae..7a7f2c6b 100644 --- a/main/build.gradle.kts +++ b/main/build.gradle.kts @@ -232,6 +232,7 @@ android.applicationVariants.all(object : Action { dependencies { // https://maven.google.com/web/index.html implementation(libs.androidx.annotation) + implementation(libs.androidx.core.ktx) uiImplementation(libs.android.view.material) uiImplementation(libs.androidx.appcompat) @@ -251,7 +252,7 @@ dependencies { testImplementation(libs.androidx.test.core) testImplementation(libs.junit) - testImplementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21") + testImplementation(libs.kotlin) testImplementation(libs.mockito.core) testImplementation(libs.robolectric) } -- cgit v1.2.3 From 87aac67b611f616aebfb722679b40e3f49576f01 Mon Sep 17 00:00:00 2001 From: conorsmith Date: Sun, 3 Sep 2023 18:14:54 +0200 Subject: Add bouncycastle dependency to version catalog --- gradle/libs.versions.toml | 6 ++++++ tlsexternalcertprovider/build.gradle | 15 +++++---------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 412276a0..e98a714f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -13,6 +13,7 @@ androidx-security-crypto = "1.1.0-alpha06" androidx-constraintlayout = "2.1.4" androidx-cardview = "1.0.0" androidx-recyclerview = "1.3.0" +bouncycastle = "1.49" mpandroidchart = "v3.1.0" kotlin = "1.9.0" square-okhttp = "4.10.0" @@ -38,6 +39,11 @@ androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecyc androidx-recyclerview = { group = "androidx.recyclerview", name = "recyclerview", version.ref = "androidx-recyclerview" } androidx-security-crypto = { group = "androidx.security", name = "security-crypto", version.ref = "androidx-security-crypto" } mpandroidchart = { group = "com.github.PhilJay", name = "MPAndroidChart", version.ref = "mpandroidchart" } +org-bouncycastle-bcprov-jdk15on = { group = "org.bouncycastle", name = "bcprov-jdk15on", version.ref = "bouncycastle" } +org-bouncycastle-bcprov-ext-jdk15on = { group = "org.bouncycastle", name = "bcprov-ext-jdk15on", version.ref = "bouncycastle" } +org-bouncycastle-bcpkix-jdk15on = { group = "org.bouncycastle", name = "bcpkix-jdk15on", version.ref = "bouncycastle" } +org-bouncycastle-bcmail-jdk15on = { group = "org.bouncycastle", name = "bcmail-jdk15on", version.ref = "bouncycastle" } +org-bouncycastle-bcpg-jdk15on = { group = "org.bouncycastle", name = "bcpg-jdk15on", version.ref = "bouncycastle" } kotlin = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib", version.ref = "kotlin" } square-okhttp = { group = "com.squareup.okhttp3", name = "okhttp", version.ref = "square-okhttp" } diff --git a/tlsexternalcertprovider/build.gradle b/tlsexternalcertprovider/build.gradle index 608212f7..bb50eb03 100644 --- a/tlsexternalcertprovider/build.gradle +++ b/tlsexternalcertprovider/build.gradle @@ -7,14 +7,9 @@ plugins { alias libs.plugins.android.application } -ext { - bouncycastleVersion = '1.49' -} - android { compileSdkVersion 34 - defaultConfig { applicationId "de.blinkt.externalcertprovider" minSdkVersion 21 @@ -51,11 +46,11 @@ android { dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation ( - //'org.bouncycastle:bcprov-jdk15on:' + bouncycastleVersion, - //'org.bouncycastle:bcprov-ext-jdk15on:' + bouncycastleVersion, - //'org.bouncycastle:bcpkix-jdk15on:' + bouncycastleVersion, - 'org.bouncycastle:bcmail-jdk15on:' + bouncycastleVersion, - //'org.bouncycastle:bcpg-jdk15on:' + bouncycastleVersion +// libs.org.bouncycastle.bcprov.jdk15on, +// libs.org.bouncycastle.bcprov.ext.jdk15on, +// libs.org.bouncycastle.bcpkix.jdk15on, + libs.org.bouncycastle.bcmail.jdk15on, +// libs.org.bouncycastle.bcpg.jdk15on, ) testImplementation(libs.junit) -- cgit v1.2.3