summaryrefslogtreecommitdiff
path: root/ics-openvpn-stripped/main/src
diff options
context:
space:
mode:
Diffstat (limited to 'ics-openvpn-stripped/main/src')
-rw-r--r--ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/VpnProfile.java38
-rw-r--r--ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/activities/DisconnectVPN.java8
-rw-r--r--ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/core/GetRestrictionReceiver.java47
-rw-r--r--ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java1
-rw-r--r--ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/core/OpenVPNThread.java7
-rw-r--r--ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/core/VPNLaunchHelper.java151
-rw-r--r--ics-openvpn-stripped/main/src/main/res/menu/logmenu.xml88
-rwxr-xr-xics-openvpn-stripped/main/src/main/res/values-id/strings.xml285
-rw-r--r--ics-openvpn-stripped/main/src/main/res/values-v21/styles.xml15
-rw-r--r--ics-openvpn-stripped/main/src/main/res/values/styles.xml6
10 files changed, 185 insertions, 461 deletions
diff --git a/ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/VpnProfile.java b/ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/VpnProfile.java
index eeb8c014..8e98aaf4 100644
--- a/ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/VpnProfile.java
+++ b/ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/VpnProfile.java
@@ -43,7 +43,6 @@ import java.util.Collection;
import java.util.Locale;
import java.util.UUID;
import java.util.Vector;
-import java.util.concurrent.Future;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
@@ -52,6 +51,7 @@ import javax.crypto.NoSuchPaddingException;
import de.blinkt.openvpn.core.NativeUtils;
import de.blinkt.openvpn.core.OpenVPNService;
+import de.blinkt.openvpn.core.VPNLaunchHelper;
import de.blinkt.openvpn.core.VpnStatus;
import de.blinkt.openvpn.core.X509Utils;
@@ -66,11 +66,8 @@ public class VpnProfile implements Serializable {
public static final String EXTRA_PROFILEUUID = "de.blinkt.openvpn.profileUUID";
public static final String INLINE_TAG = "[[INLINE]]";
public static final String DISPLAYNAME_TAG = "[[NAME]]";
- private static final String MININONPIEVPN = "nopievpn";
- private static final String MINIPIEVPN = "pievpn";
private static final long serialVersionUID = 7085688938959334563L;
- private static final String OVPNCONFIGFILE = "android.conf";
public static final int MAXLOGLEVEL = 4;
public static final int CURRENT_PROFILE_VERSION = 2;
public static final int DEFAULT_MSSFIX_SIZE = 1450;
@@ -162,20 +159,6 @@ public class VpnProfile implements Serializable {
mProfileVersion = CURRENT_PROFILE_VERSION;
}
- public static String getMiniVPNExecutableName()
- {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN)
- return VpnProfile.MINIPIEVPN;
- else
- return VpnProfile.MININONPIEVPN;
- }
-
- public static String[] replacePieWithNoPie(String[] mArgv)
- {
- mArgv[0] = mArgv[0].replace(MINIPIEVPN, MININONPIEVPN);
- return mArgv;
- }
-
public static String openVpnEscape(String unescaped) {
if (unescaped == null)
return null;
@@ -574,19 +557,6 @@ public class VpnProfile implements Serializable {
return parts[0] + " " + netmask;
}
- private String[] buildOpenvpnArgv(File cacheDir) {
- Vector<String> args = new Vector<String>();
-
- // Add fixed paramenters
- //args.add("/data/data/de.blinkt.openvpn/lib/openvpn");
- args.add(cacheDir.getAbsolutePath() + "/" + getMiniVPNExecutableName());
-
- args.add("--config");
- args.add(cacheDir.getAbsolutePath() + "/" + OVPNCONFIGFILE);
-
-
- return args.toArray(new String[args.size()]);
- }
@@ -601,7 +571,7 @@ public class VpnProfile implements Serializable {
try {
- FileWriter cfg = new FileWriter(context.getCacheDir().getAbsolutePath() + "/" + OVPNCONFIGFILE);
+ FileWriter cfg = new FileWriter(VPNLaunchHelper.getConfigFilePath(context));
cfg.write(getConfigFile(context, false));
cfg.flush();
cfg.close();
@@ -616,7 +586,7 @@ public class VpnProfile implements Serializable {
String prefix = context.getPackageName();
Intent intent = new Intent(context, OpenVPNService.class);
- intent.putExtra(prefix + ".ARGV", buildOpenvpnArgv(context.getCacheDir()));
+ intent.putExtra(prefix + ".ARGV", VPNLaunchHelper.buildOpenvpnArgv(context));
intent.putExtra(prefix + ".profileUUID", mUuid.toString());
ApplicationInfo info = context.getApplicationInfo();
@@ -646,7 +616,7 @@ public class VpnProfile implements Serializable {
public static boolean isEmbedded(String data) {
if (data==null)
return false;
- if(data.startsWith(INLINE_TAG) || data.startsWith(DISPLAYNAME_TAG))
+ if (data.startsWith(INLINE_TAG) || data.startsWith(DISPLAYNAME_TAG))
return true;
else
return false;
diff --git a/ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/activities/DisconnectVPN.java b/ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/activities/DisconnectVPN.java
index e6b73a48..4940d5d6 100644
--- a/ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/activities/DisconnectVPN.java
+++ b/ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/activities/DisconnectVPN.java
@@ -17,7 +17,7 @@ import de.blinkt.openvpn.core.ProfileManager;
/**
* Created by arne on 13.10.13.
*/
-public class DisconnectVPN extends Activity implements DialogInterface.OnClickListener{
+public class DisconnectVPN extends Activity implements DialogInterface.OnClickListener, DialogInterface.OnCancelListener {
protected OpenVPNService mService;
private ServiceConnection mConnection = new ServiceConnection() {
@@ -71,6 +71,7 @@ public class DisconnectVPN extends Activity implements DialogInterface.OnClickLi
builder.setMessage(R.string.cancel_connection_query);
builder.setNegativeButton(android.R.string.no, this);
builder.setPositiveButton(android.R.string.yes,this);
+ builder.setOnCancelListener(this);
builder.show();
}
@@ -84,4 +85,9 @@ public class DisconnectVPN extends Activity implements DialogInterface.OnClickLi
}
finish();
}
+
+ @Override
+ public void onCancel(DialogInterface dialog) {
+ finish();
+ }
}
diff --git a/ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/core/GetRestrictionReceiver.java b/ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/core/GetRestrictionReceiver.java
deleted file mode 100644
index 5b1dda58..00000000
--- a/ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/core/GetRestrictionReceiver.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package de.blinkt.openvpn.core;
-
-import android.annotation.TargetApi;
-import android.app.Activity;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.RestrictionEntry;
-import android.os.Build;
-import android.os.Bundle;
-
-import java.util.ArrayList;
-
-import se.leap.bitmaskclient.R;
-
-/**
- * Created by arne on 25.07.13.
- */
-@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
-public class GetRestrictionReceiver extends BroadcastReceiver {
- @Override
- public void onReceive(final Context context, Intent intent) {
- final PendingResult result = goAsync();
-
- new Thread() {
- @Override
- public void run() {
- final Bundle extras = new Bundle();
-
- ArrayList<RestrictionEntry> restrictionEntries = initRestrictions(context);
-
- extras.putParcelableArrayList(Intent.EXTRA_RESTRICTIONS_LIST, restrictionEntries);
- result.setResult(Activity.RESULT_OK,null,extras);
- result.finish();
- }
- }.run();
- }
-
- private ArrayList<RestrictionEntry> initRestrictions(Context context) {
- ArrayList<RestrictionEntry> restrictions = new ArrayList<RestrictionEntry>();
- RestrictionEntry allowChanges = new RestrictionEntry("allow_changes",false);
- allowChanges.setTitle(context.getString(R.string.allow_vpn_changes));
- restrictions.add(allowChanges);
-
- return restrictions;
- }
-}
diff --git a/ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java b/ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java
index ada065ba..d9830955 100644
--- a/ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java
+++ b/ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java
@@ -719,6 +719,7 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac
public void updateState(String state, String logmessage, int resid, ConnectionStatus level) {
// If the process is not running, ignore any state,
// Notification should be invisible in this state
+
doSendBroadcast(state, level);
if (mProcessThread == null && !mNotificationAlwaysVisible)
return;
diff --git a/ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/core/OpenVPNThread.java b/ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/core/OpenVPNThread.java
index e3c60854..e36a5b8a 100644
--- a/ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/core/OpenVPNThread.java
+++ b/ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/core/OpenVPNThread.java
@@ -5,6 +5,7 @@
package de.blinkt.openvpn.core;
+import android.annotation.SuppressLint;
import android.util.Log;
import java.io.BufferedReader;
@@ -30,6 +31,7 @@ import de.blinkt.openvpn.core.VpnStatus.LogItem;
public class OpenVPNThread implements Runnable {
private static final String DUMP_PATH_STRING = "Dump path: ";
+ @SuppressLint("SdCardPath")
private static final String BROKEN_PIE_SUPPORT = "/data/data/de.blinkt.openvpn/cache/pievpn[1]: syntax error:";
private static final String TAG = "OpenVPN";
public static final int M_FATAL = (1 << 4);
@@ -78,7 +80,8 @@ public class OpenVPNThread implements Runnable {
if( exitvalue != 0) {
VpnStatus.logError("Process exited with exit value " + exitvalue);
if (mBrokenPie) {
- String[] noPieArgv = VpnProfile.replacePieWithNoPie(mArgv);
+ /* This will probably fail since the NoPIE binary is probably not written */
+ String[] noPieArgv = VPNLaunchHelper.replacePieWithNoPie(mArgv);
// We are already noPIE, nothing to gain
if (!noPieArgv.equals(mArgv)) {
@@ -190,7 +193,7 @@ public class OpenVPNThread implements Runnable {
private String genLibraryPath(String[] argv, ProcessBuilder pb) {
// Hack until I find a good way to get the real library path
- String applibpath = argv[0].replace("/cache/" + VpnProfile.getMiniVPNExecutableName() , "/lib");
+ String applibpath = argv[0].replaceFirst("/cache/.*$" , "/lib");
String lbpath = pb.environment().get("LD_LIBRARY_PATH");
if(lbpath==null)
diff --git a/ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/core/VPNLaunchHelper.java b/ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/core/VPNLaunchHelper.java
index 40f9742b..208aa359 100644
--- a/ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/core/VPNLaunchHelper.java
+++ b/ics-openvpn-stripped/main/src/main/java/de/blinkt/openvpn/core/VPNLaunchHelper.java
@@ -5,70 +5,122 @@
package de.blinkt.openvpn.core;
+import android.annotation.TargetApi;
import android.content.Context;
import android.content.Intent;
+import android.content.pm.ApplicationInfo;
import android.os.Build;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.util.Vector;
import se.leap.bitmaskclient.R;
import de.blinkt.openvpn.VpnProfile;
public class VPNLaunchHelper {
- static private boolean writeMiniVPN(Context context) {
- File mvpnout = new File(context.getCacheDir(),VpnProfile.getMiniVPNExecutableName());
- if (mvpnout.exists() && mvpnout.canExecute())
- return true;
-
- IOException e2 = null;
-
- try {
- InputStream mvpn;
-
- try {
- mvpn = context.getAssets().open(VpnProfile.getMiniVPNExecutableName() + "." + Build.CPU_ABI);
- }
- catch (IOException errabi) {
- VpnStatus.logInfo("Failed getting assets for archicture " + Build.CPU_ABI);
- e2=errabi;
- mvpn = context.getAssets().open(VpnProfile.getMiniVPNExecutableName() + "." + Build.CPU_ABI2);
-
- }
-
-
- FileOutputStream fout = new FileOutputStream(mvpnout);
-
- byte buf[]= new byte[4096];
-
- int lenread = mvpn.read(buf);
- while(lenread> 0) {
- fout.write(buf, 0, lenread);
- lenread = mvpn.read(buf);
- }
- fout.close();
-
- if(!mvpnout.setExecutable(true)) {
- VpnStatus.logError("Failed to make OpenVPN executable");
- return false;
- }
-
-
- return true;
- } catch (IOException e) {
- if(e2!=null)
- VpnStatus.logException(e2);
- VpnStatus.logException(e);
-
- return false;
- }
+ private static final String MININONPIEVPN = "nopievpn";
+ private static final String MINIPIEVPN = "pievpn";
+ private static final String OVPNCONFIGFILE = "android.conf";
+
+
+
+ static private String writeMiniVPN(Context context) {
+ String[] abis;
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
+ abis = getSupportedAbisLollipop();
+ else
+ abis = new String[]{Build.CPU_ABI, Build.CPU_ABI2};
+
+ for (String abi: abis) {
+
+ File mvpnout = new File(context.getCacheDir(), getMiniVPNExecutableName() + "." + abi);
+ if ((mvpnout.exists() && mvpnout.canExecute()) || writeMiniVPNBinary(context, abi, mvpnout)) {
+ return mvpnout.getPath();
+ }
+ }
+
+ return null;
}
+
+ @TargetApi(Build.VERSION_CODES.LOLLIPOP)
+ private static String[] getSupportedAbisLollipop() {
+ return Build.SUPPORTED_ABIS;
+ }
+
+ private static String getMiniVPNExecutableName()
+ {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN)
+ return MINIPIEVPN;
+ else
+ return MININONPIEVPN;
+ }
+
+
+ public static String[] replacePieWithNoPie(String[] mArgv)
+ {
+ mArgv[0] = mArgv[0].replace(MINIPIEVPN, MININONPIEVPN);
+ return mArgv;
+ }
+
+
+ public static String[] buildOpenvpnArgv(Context c) {
+ Vector<String> args = new Vector<String>();
+
+ // Add fixed paramenters
+ //args.add("/data/data/de.blinkt.openvpn/lib/openvpn");
+ args.add(writeMiniVPN(c));
+
+ args.add("--config");
+ args.add(c.getCacheDir().getAbsolutePath() + "/" + OVPNCONFIGFILE);
+
+
+ return args.toArray(new String[args.size()]);
+ }
+
+ private static boolean writeMiniVPNBinary(Context context, String abi, File mvpnout) {
+ try {
+ InputStream mvpn;
+
+ try {
+ mvpn = context.getAssets().open(getMiniVPNExecutableName() + "." + abi);
+ }
+ catch (IOException errabi) {
+ VpnStatus.logInfo("Failed getting assets for archicture " + abi);
+ return false;
+ }
+
+
+ FileOutputStream fout = new FileOutputStream(mvpnout);
+
+ byte buf[]= new byte[4096];
+
+ int lenread = mvpn.read(buf);
+ while(lenread> 0) {
+ fout.write(buf, 0, lenread);
+ lenread = mvpn.read(buf);
+ }
+ fout.close();
+
+ if(!mvpnout.setExecutable(true)) {
+ VpnStatus.logError("Failed to make OpenVPN executable");
+ return false;
+ }
+
+
+ return true;
+ } catch (IOException e) {
+ VpnStatus.logException(e);
+ return false;
+ }
+
+ }
public static void startOpenVpn(VpnProfile startprofile, Context context) {
- if(!writeMiniVPN(context)) {
+ if(writeMiniVPN(context)==null) {
VpnStatus.logError("Error writing minivpn binary");
return;
}
@@ -80,4 +132,9 @@ public class VPNLaunchHelper {
context.startService(startVPN);
}
+
+ public static String getConfigFilePath(Context context) {
+ return context.getCacheDir().getAbsolutePath() + "/" + OVPNCONFIGFILE;
+ }
+
}
diff --git a/ics-openvpn-stripped/main/src/main/res/menu/logmenu.xml b/ics-openvpn-stripped/main/src/main/res/menu/logmenu.xml
index a1d2a7b5..f4b0c832 100644
--- a/ics-openvpn-stripped/main/src/main/res/menu/logmenu.xml
+++ b/ics-openvpn-stripped/main/src/main/res/menu/logmenu.xml
@@ -1,44 +1,44 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright (c) 2012-2014 Arne Schwabe
- ~ Distributed under the GNU GPL v2. For full terms see the file doc/LICENSE.txt
- -->
-
-<menu xmlns:android="http://schemas.android.com/apk/res/android">
-
-
- <item
- android:id="@+id/toggle_time"
- android:alphabeticShortcut="t"
- android:icon="@android:drawable/ic_menu_view"
- android:showAsAction="withText|ifRoom"
- android:title="@string/logview_options" />
-
- <item
- android:id="@+id/clearlog"
- android:icon="@android:drawable/ic_menu_delete"
- android:showAsAction="ifRoom|withText"
- android:title="@string/clear_log"
- android:titleCondensed="@string/clear"/>
- <item
- android:id="@+id/send"
- android:icon="@android:drawable/ic_menu_share"
- android:showAsAction="ifRoom|withText"
- android:title="@string/send_logfile"
- android:titleCondensed="@string/send"/>
-
- <item
- android:id="@+id/cancel"
- android:icon="@android:drawable/ic_menu_close_clear_cancel"
- android:showAsAction="ifRoom|withText"
- android:title="@string/cancel_connection_long"
- android:titleCondensed="@string/cancel_connection"/>
- <item
- android:id="@+id/edit_vpn"
- android:alphabeticShortcut="e"
- android:icon="@android:drawable/ic_menu_edit"
- android:showAsAction="withText|ifRoom"
- android:title="@string/edit_vpn"
- android:visible="false"/>
-
-</menu>
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (c) 2012-2014 Arne Schwabe
+ ~ Distributed under the GNU GPL v2. For full terms see the file doc/LICENSE.txt
+ -->
+
+<menu xmlns:android="http://schemas.android.com/apk/res/android">
+
+
+ <item
+ android:id="@+id/toggle_time"
+ android:alphabeticShortcut="t"
+ android:icon="@drawable/ic_menu_view"
+ android:showAsAction="withText|ifRoom"
+ android:title="@string/logview_options" />
+
+ <item
+ android:id="@+id/clearlog"
+ android:icon="@drawable/ic_menu_delete"
+ android:showAsAction="ifRoom|withText"
+ android:title="@string/clear_log"
+ android:titleCondensed="@string/clear"/>
+ <item
+ android:id="@+id/send"
+ android:icon="@drawable/ic_menu_share"
+ android:showAsAction="ifRoom|withText"
+ android:title="@string/send_logfile"
+ android:titleCondensed="@string/send"/>
+
+ <item
+ android:id="@+id/cancel"
+ android:icon="@drawable/ic_menu_close_clear_cancel"
+ android:showAsAction="ifRoom|withText"
+ android:title="@string/cancel_connection_long"
+ android:titleCondensed="@string/cancel_connection"/>
+ <item
+ android:id="@+id/edit_vpn"
+ android:alphabeticShortcut="e"
+ android:icon="@drawable/ic_menu_edit"
+ android:showAsAction="withText|ifRoom"
+ android:title="@string/edit_vpn"
+ android:visible="false"/>
+
+</menu>
diff --git a/ics-openvpn-stripped/main/src/main/res/values-id/strings.xml b/ics-openvpn-stripped/main/src/main/res/values-id/strings.xml
deleted file mode 100755
index 0a7d32b0..00000000
--- a/ics-openvpn-stripped/main/src/main/res/values-id/strings.xml
+++ /dev/null
@@ -1,285 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--Generated by crowdin.net-->
-<!-- Generated by crowdin.net -->
-<resources>
- <string name="app">OpenVPN untuk Android</string>
- <string name="address">Alamat Server:</string>
- <string name="port">Port server:</string>
- <string name="location">Lokasi</string>
- <string name="cant_read_folder">Gagal membaca direktori</string>
- <string name="select">Pilih</string>
- <string name="cancel">Batal</string>
- <string name="no_data">Tak ada data</string>
- <string name="useLZO">Kompresi LZO</string>
- <string name="client_no_certificate">Tanpa Sertifikat</string>
- <string name="client_certificate_title">Sertifikat Klien</string>
- <string name="client_key_title">Kunci Sertifikat Klien</string>
- <string name="client_pkcs12_title">Berkas PKCS12</string>
- <string name="ca_title">Sertifikat CA</string>
- <string name="no_certificate">Anda harus memilih sertifikat</string>
- <string name="copyright_guicode">Kode program dan perekam masalah tersedia di</string>
- <string name="copyright_others">Aplikasi memakai komponen berikut; lihat kode program untuk lebih jelas mengenai lisensi</string>
- <string name="about">Tentang…</string>
- <string name="vpn_list_title">Profil</string>
- <string name="vpn_type">Tipe</string>
- <string name="pkcs12pwquery">Password PKCS12</string>
- <string name="file_select">Pilih&#8230;</string>
- <string name="file_nothing_selected">Anda harus memilih berkas (file)</string>
- <string name="useTLSAuth">Pakai otentikasi TLS</string>
- <string name="tls_direction">Pengarah TLS</string>
- <string name="ipv6_dialog_tile">Masukkan IPv6 Address/Netmask dalam format CIDR (contoh: 2000:dd::23/64)</string>
- <string name="ipv4_dialog_title">Masukkan IPv4 Address/Netmask dalam format CIDR (contoh: 1.2.3.4/24)</string>
- <string name="ipv4_address">Alamat IPv4</string>
- <string name="ipv6_address">Alamat IPv6</string>
- <string name="custom_option_warning">Masukan seting openvpn. Gunakan dengan hati-hati. Harap dicatat, TUN yanng terkait seting OpenVPN tidak didukung oleh VPNsettings. Jika anda berpikir ada hal penting belum tersedia, hubungi pembuatnya</string>
- <string name="auth_username">Nama Penguna</string>
- <string name="auth_pwquery">Password</string>
- <string name="static_keys_info">Untuk konfigurasi statis, kunci otentifikasi TLS akan digunakan sebagai kunci konfigurasi statis</string>
- <string name="configure_the_vpn">Konfigurasi VPN</string>
- <string name="menu_add_profile">Tambah Profil</string>
- <string name="add_profile_name_prompt">Masukkan nama profil yang baru</string>
- <string name="duplicate_profile_name">Silakan masukan UPN (Unique Profile Name)</string>
- <string name="profilename">Nama profil</string>
- <string name="no_keystore_cert_selected">Anda harus memilih sertifikat pengguna</string>
- <string name="no_error_found">Tidak ada kesalahan</string>
- <string name="config_error_found">Konfigurasi Salah</string>
- <string name="ipv4_format_error">Gagal menganalisa alamat IPV4</string>
- <string name="custom_route_format_error">Gagal menganalisa rute buatan</string>
- <string name="pw_query_hint">(biarkan kosong untuk antrian permintaan)</string>
- <string name="vpn_shortcut">Jalan Pintas OpenVPN</string>
- <string name="vpn_launch_title">Hubungkan VPN</string>
- <string name="shortcut_profile_notfound">Profil di shrotcut tidak ada</string>
- <string name="random_host_prefix">Acak awalan Host </string>
- <string name="random_host_summary">Tambah 6 karakter acak di depan nama host</string>
- <string name="custom_config_title">Aktifkan pilihan buatan</string>
- <string name="custom_config_summary">Tentukan seting buatan. Gunakan hati-hati</string>
- <string name="route_rejected">Rute ditolak Android</string>
- <string name="cancel_connection">Putus</string>
- <string name="cancel_connection_long">Memutuskan sambungan VPN</string>
- <string name="clear_log">Bersihkan catatan</string>
- <string name="title_cancel">Batal Konfirmasi</string>
- <string name="cancel_connection_query">Putuskan sambungan VPN/Batalkan usaha menyambungkan VPN?</string>
- <string name="remove_vpn">Singkirkan VPN</string>
- <string name="check_remote_tlscert">Memeriksa apakah server menggunakan sertifikat dengan ekstensi TLS Server (--server remote-cert-tls)</string>
- <string name="check_remote_tlscert_title">Mengharapkan sertifikat server TLS</string>
- <string name="remote_tlscn_check_summary">Memeriksa sertifikat Remote Server Subjek DN</string>
- <string name="remote_tlscn_check_title">Cek nama sertifikat Host</string>
- <string name="enter_tlscn_dialog">Tentukan nilai ynag 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</string>
- <string name="enter_tlscn_title">Subyek sertifikat remote</string>
- <string name="tls_key_auth">Aktifkan otentifikasi kunci TLS</string>
- <string name="tls_auth_file">Berkas otintikasi TLS</string>
- <string name="pull_on_summary">Meminta pilihan alamat IP, rute dan waktu dari server.</string>
- <string name="pull_off_summary">Tidak ada informasi diminta dari server. Seting harus ditentukan di bawah ini</string>
- <string name="use_pull">Tarik pengaturan</string>
- <string name="dns">DNS</string>
- <string name="override_dns">Menimpa pengaturan DNS oleh Server</string>
- <string name="dns_override_summary">Gunakan server DNS pribadi</string>
- <string name="searchdomain">Cari domain</string>
- <string name="dns1_summary">Server DNS yang akan digunakan</string>
- <string name="dns_server">Server DNS</string>
- <string name="secondary_dns_message">Server DNS sekunder digunakan jika Server DNS yang normal tidak dapat dicapai.</string>
- <string name="backup_dns">Server DNS cadangan</string>
- <string name="ignored_pushed_routes">Abaikan rute yang diberikan</string>
- <string name="ignore_routes_summary">Abaikan rute yang diberikan server</string>
- <string name="default_route_summary">Alihkan semua lalulintas data melalui VPN</string>
- <string name="use_default_title">Gunakan rute standar</string>
- <string name="custom_route_message">Masukkan rute butan sendiri. Masukkan tujuan dalam format CIDR. \"10.0.0.0/8 2002:: / 16\" akan mengarahkan jaringan 10.0.0.0/8 dan 2002:: / 16 melalui jaringan VPN</string>
- <string name="custom_routes_title">Rute buatan sendiri</string>
- <string name="log_verbosity_level">Tingkat rincian catatan</string>
- <string name="float_summary">Ijinkan paket terotentifikasi dari semua IP</string>
- <string name="float_title">Ijinkan server mengambang</string>
- <string name="custom_options_title">Pilihan buatan</string>
- <string name="edit_vpn">Ubah seting OpenVPN</string>
- <string name="remove_vpn_query">Hapus profil \'%s\'?</string>
- <string name="tun_error_helpful">Pada beberapa setelan manual gambar ICS izin pada/dev/tun mungkin salah, atau modul tun mungkin hilang sepenuhnya. Untuk gambar CM9, coba perbaiki pilihan kepemilikannya di bawah pengaturan umum</string>
- <string name="tun_open_error">Gagal membuka layanan antarmuka TUN</string>
- <string name="error">"Kesalahan: "</string>
- <string name="clear">Bersihkan</string>
- <string name="last_openvpn_tun_config">Membuka interface tun :</string>
- <string name="local_ip_info">IPv4 lokal : %1$s/%2$d IPv6: %3$s MTU: %4$d</string>
- <string name="dns_server_info">DNS Server: %1$s, Domain: %2$s</string>
- <string name="ip_not_cidr">Memilki informasi antarmuka %1$s dan %2$s, asumsi alamat kedua adalah alamat remote. Menggunakan netmask /32 untuk IP lokal. Mode yang diberikan oleh OpenVPN adalah \"%3$s\".</string>
- <string name="route_not_cidr">Tidak masuk akal membuat %1$s dan %2$s sebagai rute IP dengan netmask CIDR, Gunakan /32 sebagai netmask.</string>
- <string name="route_not_netip">rute yang diperbaiki %1$s/%2$s hingga %3$s/%2$s</string>
- <string name="keychain_access">Tidak dapat mengakses sertifikat Keychain Android. Dapat disebabkan karena upgrade firmware atau pengembalian backup pengaturan app. Mohon ubah VPN, dan pilih ulang sertifikat berbasis pengaturan dasar agar izin mengakses sertifikat dapat dibuat ulang.</string>
- <string name="version_info">%1$s %2$s</string>
- <string name="send_logfile">Kirim berkas catatan</string>
- <string name="send">Kirim</string>
- <string name="ics_openvpn_log_file">Berkas catatan ICS OpenVPN</string>
- <string name="copied_entry">Salin catatan masuk ke clipboard</string>
- <string name="tap_mode">Mode TAP</string>
- <string name="faq_tap_mode">Mode TAP tidak diijinkan tanpa VPN API non admin/root. Karena itu aplikasi ini tidak dapat memberikan dukungan mode TAP</string>
- <string name="tap_faq2">Lagi ? Becanda ? mode TAP benar-benar tidak didukung dan mengirim email menanyakan apakah akan ada dukungan TAP, tidak akan membantu</string>
- <string name="tap_faq3">Untuk ketiga kalinya? Sebenarnya, seseorang bisa menulis emulator TAP berdasarkan tun yang akan menambahkan lapisan2 informasi pengiriman dan lapisan2 informasi penerimaan. Tapi emulator TAP ini juga harus menerapkan ARP dan mungkin klien DHCP. Saya tidak tau apakah ada yang bekerja ke arah ini. Hubungi saya jika Anda ingin memulai menulis kode2 emulator TAP ini.</string>
- <string name="faq">FAQ</string>
- <string name="copying_log_entries">Menyalin catatan</string>
- <string name="faq_copying">Untuk menyalin satu catatan masuk, Tekan dan tahan di catatan masuk. Untuk meyanlin\mengirim seluruh catatan, gunakan opsi Kirim Log. Gunakan tombol perangkat keras jika tidak terlihat di GUI.</string>
- <string name="faq_shortcut">Jalan pintas memulai</string>
- <string name="faq_howto_shortcut">Anda dapat menempatkan jalan pintas untuk memulai OpenVPN pada desktop Anda. Tergantung pada program homescreen Anda, Anda harus menambahkan jalan pintas atau widget.</string>
- <string name="no_vpn_support_image">Gambar Anda tidak mendukung VPNService API, maaf:(</string>
- <string name="encryption">Enkripsi</string>
- <string name="cipher_dialog_title">Masukkan metode enkripsi</string>
- <string name="chipher_dialog_message">Masukkan sandi enkripsi algoritma yang digunakan oleh OpenVPN. Biarkan kosong untuk menggunakan sandi default.</string>
- <string name="auth_dialog_message">Masukkan digest otentikasi yang digunakan OpenVPN. Biarkan kosong untuk menggunakan standar digest.</string>
- <string name="settings_auth">Otentikasi/Enkripsi</string>
- <string name="file_explorer_tab">Penjelajah berkas</string>
- <string name="inline_file_tab">Inline File</string>
- <string name="error_importing_file">Gagal mengambil berkas</string>
- <string name="import_error_message">Tidak dapat mengambil berkas dari filesystem</string>
- <string name="inline_file_data">[[Inline file data]]</string>
- <string name="opentun_no_ipaddr">TUN tidak dapat dibuka tanpa informasi IP</string>
- <string name="menu_import">Ambil profil dari berkas ovpn</string>
- <string name="menu_import_short">Ambil</string>
- <string name="import_content_resolve_error">Tidak dapat membaca profil yang akan diambil</string>
- <string name="error_reading_config_file">Kesalahan membaca berkas konfigurasi</string>
- <string name="add_profile">Tambah Profil</string>
- <string name="import_could_not_open">Tidak dapat menemukan berkas %1$s yang disebut dalam berkas konfigurasi</string>
- <string name="importing_config">Mengambil berkas konfigurasi dari sumber %1$s</string>
- <string name="import_warning_custom_options">Konfigurasi Anda memiliki beberapa pilihan konfigurasi yang tidak dipetakan ke konfigurasi UI. Pilihan ini ditambahkan sebagai opsi konfigurasi kustom. Konfigurasi kustom ditampilkan di bawah ini:</string>
- <string name="import_done">Berkas konfigurasi selesai dibaca</string>
- <string name="nobind_summary">Jangan kaitkan ke alamat dan port lokal</string>
- <string name="no_bind">Tidak ada ikatan lokal</string>
- <string name="import_configuration_file">Ambil berkas konfigurasi</string>
- <string name="faq_security_title">Pertimbangan Keamanan</string>
- <string name="faq_security">"Karena OpenVPN adalah sensitif pada isu keamanan, beberapa catatan tentang keamanan dianggap perlu. Semua data pada sdcard pada dasarnya tidak aman. Setiap app dapat membaca (misalnya program ini tidak perlu hak khusus untuk membaca sd-card). Data dari aplikasi ini hanya dapat dibaca oleh aplikasi itu sendiri. Dengan menggunakan opsi impor untuk cacert/cert/kunci dalam file dialog data yang disimpan dalam profil VPN. Profil VPN hanya dapat diakses oleh aplikasi ini. (Jangan lupa untuk menghapus salinan pada sd-card setelah itu). Bahkan meskipun dapat diakses hanya dengan aplikasi ini data masih tidak terenkripsi. Dengan melakukan rooting atau eksploitasi lainnya maka memungkinkan mengambil data. Sandi-sandi (passwords) juga tersimpan dalam teks biasa. Berkas pkcs12 sangat dianjurkan Anda mengimpornya ke android keystore."</string>
- <string name="import_vpn">Impor</string>
- <string name="broken_image_cert_title">Kesalahan menampilkan sertifikat</string>
- <string name="broken_image_cert">Mendapat pesan kesalahan saat berusaha menampilkan layar pemilihan sertifikat Android 4.0+. Ini seharusnya tidak terjadi karena ini fitur standar Android 4.0 +. Mungkin ROM Android anda yang mengurus penyimpanan sertifikat rusak</string>
- <string name="ipv4">IPv4</string>
- <string name="ipv6">IPv6</string>
- <string name="speed_waiting">Menunggu pesan status&#8230;</string>
- <string name="converted_profile">Profil yang diambil</string>
- <string name="converted_profile_i">profil yang diambil %d</string>
- <string name="broken_images">Gambar rusak</string>
- <string name="broken_images_faq">Image HTC yang resmi diketahui memiliki masalah routing yang ganjilyang menyebabkan trafik data tidak melalui tunnel (Lihat di &lt;a href=\"http://code.google.com/p/ics-openvpn/issues/detail?id=18\"&gt;Issue 18&lt;/a&gt; di bagian bug tracker.))&lt;/p&gt;&lt;p&gt; Image SONY resmi yang lama dari Xperia Arc S and Xperia Ray telah dilaporkan tidak memiliki VPNService dalam Imagenya. (Lihat juga &lt;a href=\"http://code.google.com/p/ics-openvpn/issues/detail?id=29\"&gt;Issue 29&lt;/a&gt; di bagian bug tracker.))&lt;/p&gt;&lt;p&gt;Pada image yang dibuat non resmi, modul TUN mungkin tak ada atau hak /dev/tun mungkin salah. Beberapa image CM9 memerlukan pilihan \"Fix ownership\" di bagian \"Device specific hacks\" diaktfikan. .&lt;/p&gt;&lt;p&gt; Lebih penting lagi, jika device anda memiliki image android yang lengkap, laporkan pada vendor anda. Semakin banyak laporan masuk, semakin tinggi kemungkinan vendor melakukan perbaikan.&lt;/p&gt;</string>
- <string name="pkcs12_file_encryption_key">Berkas kunci enkripsi PKCS12</string>
- <string name="private_key_password">Sandi kunci pribadi</string>
- <string name="password">Sandi</string>
- <string name="file_icon">ikon berkas</string>
- <string name="tls_authentication">Otentikasi TLS</string>
- <string name="generated_config">Konfigurasi Dibuat</string>
- <string name="generalsettings">Pengaturan</string>
- <string name="owner_fix_summary">Mencoba menetapkan pemilik /dev/tun ke sistem. Beberapa gambar CM9 memerlukan ini untuk membuat API VPNService bekerja. Memerlukan akses Root.</string>
- <string name="owner_fix">Perbaiki kepemilikan /dev/tun</string>
- <string name="generated_config_summary">Tunjukkan berkas konfigurasi OpenVPN yang dibuat</string>
- <string name="edit_profile_title">Mengubah \"%s\"</string>
- <string name="building_configration">Membuat konfigurasi&#8230;</string>
- <string name="netchange_summary">Menyalakan pilihan ini akan memaksa menyambung kembali jika keadaan jaringan berubah (misalnya WiFi dari mobile)</string>
- <string name="netchange">Koneksi ulang saat ganti jaringan</string>
- <string name="netstatus">Status jaringan: %s</string>
- <string name="extracahint">Sertifikat CA biasanya kembali dari Android Keystore. Tentukan sertifikat terpisah jika Anda mendapatkan kesalahan verifikasi sertifikat.</string>
- <string name="select_file">Pilih</string>
- <string name="keychain_nocacert">Tidak ada sertifikat CA yang didapat saat membaca dari Android Keystore. Otentifikasi mungkin gagal</string>
- <string name="show_log_summary">Tampilkan jendela catatan saat terkoneksi. Jendela catatan juga dapat diakses melalui status notifikasi</string>
- <string name="show_log_window">Tampilkan jendela catatan</string>
- <string name="mobile_info">Berjalan di %1$s (%2$s) %3$s, Android API %4$d</string>
- <string name="error_rsa_sign">Kesalahan masuk dengan kunci Android keystore %1$s: %2$s</string>
- <string name="faq_system_dialogs">Peringatan sambungan VPN yang memberitahukan Anda bahwa aplikasi ini dapat mencegat semua lalu lintas dikeluarkan oleh sistem untuk mencegah penyalahgunaan dari sambungan VPNService API.\nPemberitahuan sambungan VPN (simbol kunci) juga dikeluarkan oleh sistem Android untuk memberitahu VPN yang sedang berlangsung. Pada beberapa gambar pemberitahuan ini memainkan suara. \nAndroid memperkenalkan sistem dialog ini untuk keselamatan Anda sendiri dan memastikan bahwa mereka tidak membuat masalah. (Pada beberapa gambar sayangnya ini termasuk peringatan suara)</string>
- <string name="faq_system_dialogs_title">Peringatan sambungan dan pemberitahuan melalui suara</string>
- <string name="translationby">Terjemah Bahasa Indonesia oleh Dayro</string>
- <string name="ipdns">IP dan DNS</string>
- <string name="basic">Dasar</string>
- <string name="routing">Rute</string>
- <string name="obscure">Mengaburkan pengaturan OpenVPN. Biasanya tidak diperlukan.</string>
- <string name="advanced">Lanjutan</string>
- <string name="export_config_title">Konfigurasi ICS Openvpn</string>
- <string name="warn_no_dns">Tidak DNS server yang digunakan. Name Resolution mungkin akan gagal bekerja. Pertimbangkan pengaturan server DNS. Harap dicatat Android akan terus memakai pengaturan proxy untuk koneksi mobile/wifi saat tidak ada server DNS diatur.</string>
- <string name="dns_add_error">Tak bisa menambahkan Server DNS \"%1$s\", ditolak oleh sistem: %2$s</string>
- <string name="faq_howto">&lt;p&gt; Ambil konfigurasi yang dapat berjalan (diuji pada komputer Anda atau download dari penyedia/organisasi) &lt;/p&gt; &lt;p&gt; Satu file(berkas) saja tanpa tambahan berkas pem/pks12. Anda dapat kirim imel berkas dan membuka lampirannya. Jika Anda memiliki beberapa berkas, salin ke sd-card &lt;/p&gt; &lt;p&gt; klik pada lampiran imel atau gunakan ikon folder dalam daftar vpn untuk mengimpor berkas konfigurasi &lt;/p&gt; &lt;p&gt; jika ada berkas yang kurang, salin file hilang ke sd-card. &lt;/p&gt; &lt;p&gt; klik pada simbol Simpan untuk menambahkan VPN yang diimpor ke daftar VPN &lt;/p&gt; &lt;p &gt; Connect VPN dengan mengklik nama VPN &lt;/p&gt; &lt;p&gt; jika ada kesalahan atau peringatan di catatan, coba pahami peringatannya dan coba untuk memperbaikinya &lt;/p&gt; </string>
- <string name="faq_howto_title">Mulai Cepat</string>
- <string name="setting_loadtun_summary">Coba pakai tun.ko kernel sebelum mencoba koneksi. Membutuhkan perangkat yang sudah diroot. Google: android superuser</string>
- <string name="setting_loadtun">Pakai modul TUN</string>
- <string name="importpkcs12fromconfig">Ambil PKCS12 dari konfigurasi ke Android Keystore</string>
- <string name="getproxy_error">Gagal mendapatkan pengaturan proxy: %s</string>
- <string name="using_proxy">Menggunakan proxy %1$s %2$d</string>
- <string name="use_system_proxy">Gunakan sistem proxy</string>
- <string name="use_system_proxy_summary">Gunakan konfigurasi lebih luas untuk menyambung system melalui proxy HTTP/HTTPS</string>
- <string name="donatewithpaypal">Anda dapat melakukan donasi &lt;a href=\"https://www.paypal.com/cgi-bin/webscr?hosted_button_id=R2M6ZP9AF25LS&amp;amp;cmd=_s-xclick\"&gt;dengan PayPal&lt;/a&gt; </string>
- <string name="onbootrestartsummary">OpenVPN akan menyambung kembali VPN jika VPN aktif pada saat sistem reboot/shutdown. Silakan baca FAQ tentang peringatan sambungan sebelum menggunakan pilihan ini.</string>
- <string name="onbootrestart">Koneksi ulang saat perangkat dihidupkan kembali</string>
- <string name="ignore">Abaikan</string>
- <string name="restart">Restart</string>
- <string name="restart_vpn_after_change">Perubahan konfigurasi baru diterapkan setelah restart VPN. Restart VPN sekarang?</string>
- <string name="configuration_changed">Konfigurasi berubah</string>
- <string name="log_no_last_vpn">Tak bisa menentukan profil terhubung terakhir untuk diubah</string>
- <string name="faq_duplicate_notification_title">Pemberitahuan berganda</string>
- <string name="faq_duplicate_notification">Jika Android kekurangan sistem memori (RAM), aplikasi dan layanan yang tidak diperlukan pada saat itu akan dihapus dari memori aktif. Sambungan VPN yang sedang aktif juga ditutup. Untuk memastikan bahwa sambungan/OpenVPN tetap berjalan, OpenVPN diberikan prioritas yang lebih tinggi. Untuk menjalankan dengan prioritas lebih tinggi, aplikasi harus menampilkan pemberitahuan. Ikon pemberitahuan dijalankan oleh sistem seperti dijelaskan dalam FAQ entri sebelumnya. Ini tidak dihitung sebagai pemberitahuan app yang berjalan dengan prioritas lebih tinggi.</string>
- <string name="no_vpn_profiles_defined">Tak ada profil VPN yang didefinisikan.</string>
- <string name="add_new_vpn_hint">Gunakan ikon &lt; img src = \"ic_menu_add\" / &gt; untuk menambah VPN baru</string>
- <string name="vpn_import_hint">Gunakan ikon &lt; img src = \"ic_menu_archive\" / &gt; untuk mengimpor profil (.ovpn atau .conf) yang ada dari sdcard Anda.</string>
- <string name="faq_hint">Pastikan untuk juga memeriksa FAQ. Ada petunjuk untuk memudahkan anda.</string>
- <string name="faq_routing_title">Konfigurasi rute\antarmuka</string>
- <string name="persisttun_summary">Jangan kembali ke status tidak ada koneksi VPN ketika OpenVPN mencoba terhubung kembali.</string>
- <string name="persistent_tun_title">Paksa mode TUN</string>
- <string name="openvpn_log">Catatan OpenVPN</string>
- <string name="import_config">Ambil konfigurasi VPN</string>
- <string name="battery_consumption_title">Konsumsi baterai</string>
- <string name="baterry_consumption">Berdasarkan tes pribadi, alasan utama tingginya konsumsi baterai oleh OpenVPN adalah paket keepalive. Sebagian besar server OpenVPN memiliki parameter konfigurasi seperti \'keepalive 10 60\' yang membuat klien dan server bertukar paket keepalive setiap 10 detik. &lt;p&gt; Dengan kecilnya paket ini dan tidak memakai trafik terlalu banyak, mereka menjaga jaringan radio mobile tetap sibuk dan meningkatkan konsumsi energi. (See also &lt;a href=\"http://developer.android.com/training/efficient-downloads/efficient-network-access.html#RadioStateMachine\"&gt;The Radio State Machine | Android Developers&lt;/a&gt;) &lt;p&gt; Seting keepalive ini tidak bisa dirubah di klien. Hanya Admin sistem OpenVPN yang dapat merubah seting ini. &lt;p&gt; Sayangnya membuat keepalive lebih besar dari 60 detik tanpa UDP dapat membuat beberapa gateway NAT memutus koneksi karena anggapan tidak ada aktifitas pada periode tertentu (timeout). Memakai TCP dengan waktu timeout lebih lama dapat bekerja, tapi membuat tunnel TCP di jalur TCP menyebabkan koneksi yang buruk dan tingginya angka kehilangan paket data ((See &lt;a href=\"http://sites.inka.de/bigred/devel/tcp-tcp.html\"&gt;Why TCP Over TCP Is A Bad Idea&lt;/a&gt;)</string>
- <string name="faq_tethering">Fitur penggandengan Android (melalui WiFi, USB atau Bluetooth) dan API VPNService (digunakan oleh program ini) tidak bekerja bersama-sama. Untuk keterangan lanjut lihat &lt; href=\"http://code.google.com/p/ics-openvpn/issues/detail?id=34\" &gt; mengeluarkan #34 &lt;/a&gt;</string>
- <string name="vpn_tethering_title">VPN dan penarikan</string>
- <string name="connection_retries">Mengulang koneksi</string>
- <string name="reconnection_settings">Pengaturan rekoneksi</string>
- <string name="connectretrymessage">Jumlah detik untuk menunggu antar usaha koneksi</string>
- <string name="connectretrywait">Detik antar koneksi</string>
- <string name="minidump_generated">OpenVPN crash tak terduga. Silakan mempertimbangkan mengirim menggunakan pilihan Minidump di Menu Utama</string>
- <string name="send_minidump">Mengirim MiniDump untuk pengembang</string>
- <string name="send_minidump_summary">Mengirim informasi debug tentang kegagalan aplikasi yang terakhir ke pengembang</string>
- <string name="notifcation_title">OpenVPN - %s</string>
- <string name="session_ipv4string">%1$s - %2$s</string>
- <string name="session_ipv6string">%1$s - %3$s, %2$s</string>
- <string name="state_connecting">Menghubungkan</string>
- <string name="state_wait">Menunggu jawaban server</string>
- <string name="state_auth">Melakukan otentifikasi</string>
- <string name="state_get_config">Mengambil konfigurasi klien</string>
- <string name="state_assign_ip">Menetapkan alamat IP</string>
- <string name="state_add_routes">Menambahkan rute</string>
- <string name="state_connected">Terhubung</string>
- <string name="state_disconnected">Putus</string>
- <string name="state_reconnecting">Menghubungkan kembali</string>
- <string name="state_exiting">Keluar</string>
- <string name="state_noprocess">Tidak berjalan</string>
- <string name="state_resolve">Mengenali nama host</string>
- <string name="state_tcp_connect">Menghubungkan (TCP)</string>
- <string name="state_auth_failed">Otentifikasi gagal</string>
- <string name="state_nonetwork">Menunggu jaringan yang dapat dipakai</string>
- <string name="statusline_bytecount">↓%2$s/s %1$s - ↑%4$s/s %3$s</string>
- <string name="notifcation_title_notconnect">Tidak terhubung</string>
- <string name="start_vpn_title">Menghubungkan ke VPN %s</string>
- <string name="start_vpn_ticker">Menghubungkan ke VPN %s</string>
- <string name="jelly_keystore_alphanumeric_bug">Beberapa versi Android 4.1 memiliki masalah jika nama sertifikat keystore berisi karakter non alfanumerik (seperti spasi, garis bawah atau tanda hubung). Cobalah import ulang sertifikat tanpa karakter khusus</string>
- <string name="encryption_cipher">Enkripsi sandi</string>
- <string name="packet_auth">Otentikasi paket</string>
- <string name="auth_dialog_title">Masukkan metode otentikasi paket</string>
- <string name="mobile_info_extended">Berjalan pada Android API %4$d, versi %5$s %1$s (%2$s) %3$s, %6$s</string>
- <string name="built_by">dibangun oleh %s</string>
- <string name="debug_build">Pengembangan debug</string>
- <string name="official_build">Build Resmi</string>
- <string name="make_selection_inline">Salin ke profil</string>
- <string name="crashdump">Data saat terjadi crash</string>
- <string name="add">Tambahkan</string>
- <string name="send_config">Mengirim config file</string>
- <string name="complete_dn">DN lengkap</string>
- <string name="remotetlsnote">Konfigurasi yang diimpor menggunakan opsi tls-remote DEPRECATED tua dengan menggunakan format DN yang berbeda.</string>
- <string name="rdn">RDN (nama umum)</string>
- <string name="rdn_prefix">RDN awalan</string>
- <string name="tls_remote_deprecated">TLS-remote (DEPRECATED)</string>
- <string name="help_translate">Anda dapat membantu menerjemahkan dengan mengunjungi http://crowdin.net/project/ics-openvpn/invite</string>
- <string name="prompt">%1$s berusaha mengendalikan %2$s</string>
- <string name="remote_trust">Saya percaya aplikasi ini.</string>
- <string name="no_external_app_allowed">App tidak diizinkan untuk menggunakan API eksternal</string>
- <string name="allowed_apps">apps yang diijinkan : %s</string>
- <string name="clearappsdialog">Hapus daftar aplikasi eksternal yang dibolehkan? \nDaftar apps yang dibolehkan terkini:\n\n%s </string>
- <string name="screenoff_summary">\"Pause VPN ketika layar off dan data yang ditransfer dalam 60 detik kurang dari 64kB. Ketika opsi \"Persistent Tun\" diaktifkan, memberhentikan VPN akan membuat perangkat Anda tidak memiliki koneksi jaringan. Jika tidak memakai \"Persistent Tun\" maka perangkat akan menampilkan Tidak ada koneksi VPN.</string>
- <string name="screenoff_title">Sambungan VPN jeda setelah layar mati</string>
- <string name="screenoff_pause">Hentikan sambungan dalam kondisi layar mati: kurang dari %1$s dalam %2$ss</string>
- <string name="screen_nopersistenttun">Peringatan: Pemaksaan tun tidak diaktifkan untuk VPN ini. Lalu lintas akan menggunakan koneksi Internet normal ketika layar dimatikan.</string>
- <string name="save_password">Menyimpan sandi</string>
- <string name="pauseVPN">Jeda VPN</string>
- <string name="resumevpn">Lanjutkan VPN</string>
- <string name="state_userpause">Pause VPN diminta oleh pengguna</string>
- <string name="state_screenoff">VPN dijeda - layar off</string>
- <string name="device_specific">Perangkat dengan spesifikasi Hacks</string>
- <string name="cannotparsecert">Tidak dapat menampilkan informasi sertifikat</string>
- <string name="appbehaviour">Prilaku Aplikasi</string>
- <string name="vpnbehaviour">Prilaku VPN</string>
-</resources>
diff --git a/ics-openvpn-stripped/main/src/main/res/values-v21/styles.xml b/ics-openvpn-stripped/main/src/main/res/values-v21/styles.xml
new file mode 100644
index 00000000..892b6cb0
--- /dev/null
+++ b/ics-openvpn-stripped/main/src/main/res/values-v21/styles.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (c) 2012-2014 Arne Schwabe
+ ~ Distributed under the GNU GPL v2. For full terms see the file doc/LICENSE.txt
+ -->
+
+<resources>
+
+ <!-- http://www.google.de/design/spec/style/color.html#color-color-palette -->
+ <style name="appstyle" parent="android:Theme.Material.Light.DarkActionBar">
+ <item name="android:colorPrimary">@color/primary</item>
+ <item name="android:colorPrimaryDark">@color/primary_dark</item>
+ <item name="android:colorAccent">@color/accent</item>
+ </style>
+</resources>
diff --git a/ics-openvpn-stripped/main/src/main/res/values/styles.xml b/ics-openvpn-stripped/main/src/main/res/values/styles.xml
index 7b26a4a7..a60e29b8 100644
--- a/ics-openvpn-stripped/main/src/main/res/values/styles.xml
+++ b/ics-openvpn-stripped/main/src/main/res/values/styles.xml
@@ -5,6 +5,10 @@
-->
<resources>
+ <style name="appstyle" parent="android:Theme.DeviceDefault.Light">
+
+ </style>
+
<style name="item">
<item name="android:layout_width">match_parent</item>
@@ -23,7 +27,7 @@
<item name="android:paddingTop">10sp</item>
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
- <item name="android:textAppearance">?android:attr/textAppearanceMedium</item>
+ <item name="android:textAppearance">?android:attr/textAppearanceLarge</item>
<!-- <item name="android:singleLine">true</item> -->
</style>