diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index bab33a25..61d6e639 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -53,16 +53,15 @@ Importiertes Profil Importiertes Profil %d Broken Images - <p>Offical HTC images are known to have a strange routing problem causing traffic not to flow through the tunnel (See also <a href=\"http://code.google.com/p/ics-openvpn/issues/detail?id=18\">Issue 18</a> in the bug tracker.)</p><p>The offical SONY images from Xperia arc S and Xperia Ray have been reported to be missing the VPNService completly from the image. Other Sony images may be affected as well. (See also <a href=\"http://code.google.com/p/ics-openvpn/issues/detail?id=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. On the experimental CM9 Defy image a <i>chown system /dev/tun</i> is needed to make the VPNService API work.</p> Der Benutzername darf nicht leer sein PKCS12 File Encryption Key - Passwort privater Schlümmel + Passphrase privater Schlüssel Passwort IPv4 IPv6 TLS Richtung Tragen Sie die IPv6 Adresse und Netzmaske im CIDR Format ein (z.B. 2000:dd::23/64) - Tragen Sie die IPv4 Adresse und Netmaske im CIDR Format ein (z.B. 1.2.3.4/24) + Tragen Sie die IPv4 Adresse und Netzmaske im CIDR Format ein (z.B. 1.2.3.4/24) IPv4 Adresse IPv6 Adresse Tragen Sie eigene OpenVPN Optionen ein. Beachten Sie, dass einige (vor allem tun spezifische) Optionen von der Android Version nicht unterstützt werden können. Wenn Sie denken, dass eine wichtige Option fehlt, kontaktieren Sie den Author. @@ -81,7 +80,7 @@ Fehler in der Konfiguration Kann die die IPv4 Adresse nicht parsen Kann die Routes nicht parsen - Leer lassen um nicht zu speichern + Password nicht speichern OpenVPN Verknüpfung VPN verbinden Von der Verknüpfung referenziertes Profil konnte nicht gefunden werden @@ -97,7 +96,16 @@ VPN löschen Überprüft ob der Server ein TLS Server Zertifikat benutzt. Erwarte TLS Server - Prüfe Server CN gegen eine Zeichenfolge/string>Zertifikat Hostnamem ÜberprüfungGeben Sie die Zeichenkette an gegen die Openvn den CN (common name) prüfen soll. Openvpn prüft auf Präfixe. D.h. die Angabe "Server" wertet "Server-1" und "Server-2" als gültig\nLeer lassen um gegen den Servernamen zu prüfen.Server Hostname(CN)Benutzte TLS Schlüssel AuthentifizierungTLS Auth DateiFordert IP Addressen, Routen and andere Optionen vom Server an.Keine Informationen werden vom Server bezogen. Geben Sie manuell die Optionen an.Pull SettingsDNS + Prüft den CN des Serverzertifikats gegen eine Zeichenfolge + Zertifikat Namen überprüfen + Geben Sie die Zeichenkette an gegen die Openvn den CN (common name) prüfen soll. Openvpn prüft auf Präfixe. D.h. die Angabe "Server" wertet "Server-1" und "Server-2" als gültig\nLeer lassen um gegen den Servernamen zu prüfen. + Server Hostname(CN) + Benutzte TLS Schlüssel Authentifizierung + TLS Auth Datei + Fordert IP Addressen, Routen and andere Optionen vom Server an. + Keine Informationen werden vom Server bezogen. Geben Sie manuell die Optionen an. + Pull Settings + DNS Eigene DNS Server. Eigene DNS Server benutzen. DNS Such Domäne @@ -105,9 +113,9 @@ DNS Server Sekundärer DNS Server. Wird genutzt falls der normale DNS Server nicht erreicht werden kann Backup DNS Server - Vom Server erhaltene Routen ignorieren - Ignore routed pushed by the server. - Redirects all Traffic over the VPN + Ignoriere gepushte Routen + Ingoriere die Routen, die der Server dem Client sendet. + Leitet allen Internet Vekehr über das VPN Benutze Default Route Benutze eigene Routen. Geben Sie Zielnetzwerk im CIDR format an. Z.b. "10.0.0.0/8 2002::/16" würde die Netzwerke 10.0.0.0/8 und 2002::/16 über das VPN routen. Eigene Routen @@ -137,11 +145,11 @@ ICS Openvpn log Datei Log Eintrag in die Zwischenablage kopiert Tap Mode - Tap Mode ist mit der VPNService API, die VPN mit nicht root möglich macht, unterstützt nur tun modus. Das Unterstützen des Tap Modus ist daher nicht möglich. + Die VPN API von Android, die ohne rooten des Telefons funktioniert, unterstützt nur den tun modus. Das Unterstützen des Tap Modus ist daher nicht möglich. Again? Are you kidding? No tap mode is really not supported and sending more mail aksing if it will be supported will not help. 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 have to implement also ARP and possible 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. FAQ - häufig gefragte Fragen und Hinweise + häufig gestellte Fragen und Hinweise Kopieren von Log Einträgen To copy a single log entry press and and hold on the log entry. To copy/send the whole log use the Send Log option. Use the hardware menu button if not visible in the gui. Verknüpfung zu einem VPN @@ -156,6 +164,9 @@ Allgemeine Einstellungen Dieses Android ROM enthält keine VPNService API, sorry :( Fehler beim Anzeigen des Zertifikatsauswahlbildschirmes - Versuch den Eigentümer von /dev/tun auf system zu ändern. Einige Cyanogenmod 9 ROM Versionen benötigen diese Option, damit die VPN API funktioniert. - Repariere Eigentümer of /dev/tun + Versuch den Eigentümer von /dev/tun auf system zu ändern. Einige Cyanogenmod 9 ROM Versionen benötigen diese Option, damit die VPN API funktioniert. Benötigt root. + /dev/tun Eigentümer setzen. + Zeigt die generierte Konfigurationsdatei + Editiere \"%s\" + \ No newline at end of file diff --git a/res/values/strings.xml b/res/values/strings.xml index 0e13a89a..84142feb 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -193,7 +193,7 @@ imported profile imported profile %d Broken Images - <p>Offical HTC images are known to have a strange routing problem causing traffic not to flow through the tunnel (See also <a href=\"http://code.google.com/p/ics-openvpn/issues/detail?id=18\">Issue 18</a> in the bug tracker.)</p><p>The offical SONY images from Xperia arc S and Xperia Ray have been reported to be missing the VPNService completly from the image. Other Sony images may be affected as well. (See also <a href=\"http://code.google.com/p/ics-openvpn/issues/detail?id=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 general settings.</p> + <p>Offical HTC images are known to have a strange routing problem causing traffic not to flow through the tunnel (See also <a href=\"http://code.google.com/p/ics-openvpn/issues/detail?id=18\">Issue 18</a> in the bug tracker.)</p><p>The offical SONY images from Xperia arc S and Xperia Ray have been reported to be missing the VPNService completly from the image. Other Sony images may be affected as well. (See also <a href=\"http://code.google.com/p/ics-openvpn/issues/detail?id=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 general settings.</p><p>Most important: If you have a broken image, report it to your vendor. The more people report the issue to the vendor the more likely you will get a fix.</p> The username must not be empty. PKCS12 File Encryption Key Private Key Password @@ -204,4 +204,6 @@ General Settings Tries to set the owner of /dev/tun to system. Some CM9 images need this to make the VPNService API work. Requires root. Fix ownership of /dev/tun + Shows the generated openvpn Configuration File + Editing \"%s\" diff --git a/res/xml/vpn_headers.xml b/res/xml/vpn_headers.xml index 11409a8d..9d051a4d 100644 --- a/res/xml/vpn_headers.xml +++ b/res/xml/vpn_headers.xml @@ -25,7 +25,7 @@
\ No newline at end of file diff --git a/src/de/blinkt/openvpn/ConfigConverter.java b/src/de/blinkt/openvpn/ConfigConverter.java index 8aebc664..5e0a6eb3 100644 --- a/src/de/blinkt/openvpn/ConfigConverter.java +++ b/src/de/blinkt/openvpn/ConfigConverter.java @@ -5,6 +5,8 @@ import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; +import java.util.List; +import java.util.Vector; import android.app.Activity; import android.app.ListActivity; @@ -24,6 +26,8 @@ public class ConfigConverter extends ListActivity { private VpnProfile mResult; private ArrayAdapter mArrayAdapter; + private List mPathsegments; + @Override protected void onCreate(Bundle savedInstanceState) { @@ -91,7 +95,20 @@ public class ConfigConverter extends ListActivity { // Try diffent path relative to /mnt/sdcard File sdcard = Environment.getExternalStorageDirectory(); File root = new File("/"); - File[] dirlist = {root, sdcard}; + + Vector dirlist = new Vector(); + + for(int i=mPathsegments.size()-1;i >=0 ;i--){ + String path = ""; + for (int j = 0;j<=i;j++) { + path += "/" + mPathsegments.get(j); + } + dirlist.add(new File(path)); + } + dirlist.add(sdcard); + dirlist.add(root); + + String[] fileparts = filename.split("/"); for(File rootdir:dirlist){ String suffix=""; @@ -159,6 +176,8 @@ public class ConfigConverter extends ListActivity { log(R.string.importing_config,data.toString()); try { InputStream is = getContentResolver().openInputStream(data); + mPathsegments = data.getPathSegments(); + doImport(is); } catch (FileNotFoundException e) { log(R.string.import_content_resolve_error); diff --git a/src/de/blinkt/openvpn/LaunchVPN.java b/src/de/blinkt/openvpn/LaunchVPN.java index b7b010a4..4b21c959 100644 --- a/src/de/blinkt/openvpn/LaunchVPN.java +++ b/src/de/blinkt/openvpn/LaunchVPN.java @@ -301,7 +301,7 @@ public class LaunchVPN extends ListActivity implements OnItemClickListener { } } else if (resultCode == Activity.RESULT_CANCELED) { - // User does want us to start, so we just vanish + // User does not want us to start, so we just vanish finish(); } } diff --git a/src/de/blinkt/openvpn/OpenVpnPreferencesFragment.java b/src/de/blinkt/openvpn/OpenVpnPreferencesFragment.java index 10378a80..4cf3b10b 100644 --- a/src/de/blinkt/openvpn/OpenVpnPreferencesFragment.java +++ b/src/de/blinkt/openvpn/OpenVpnPreferencesFragment.java @@ -13,11 +13,11 @@ public abstract class OpenVpnPreferencesFragment extends PreferenceFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - // Make sure there is an instance of the profile manager - ProfileManager.getInstance(getActivity()); - + String profileUUID = getArguments().getString(getActivity().getPackageName() + ".profileUUID"); - mProfile = ProfileManager.get(profileUUID); + mProfile = ProfileManager.get(getActivity(),profileUUID); + getActivity().setTitle(getString(R.string.edit_profile_title, mProfile.getName())); + } @Override @@ -31,8 +31,7 @@ public abstract class OpenVpnPreferencesFragment extends PreferenceFragment { super.onActivityCreated(savedInstanceState); if(savedInstanceState!=null) { String profileUUID=savedInstanceState.getString(VpnProfile.EXTRA_PROFILEUUID); - ProfileManager.getInstance(getActivity()); - mProfile = ProfileManager.get(profileUUID); + mProfile = ProfileManager.get(getActivity(),profileUUID); loadSettings(); } } diff --git a/src/de/blinkt/openvpn/ProfileManager.java b/src/de/blinkt/openvpn/ProfileManager.java index 0164fe53..b1321b97 100644 --- a/src/de/blinkt/openvpn/ProfileManager.java +++ b/src/de/blinkt/openvpn/ProfileManager.java @@ -150,4 +150,11 @@ public class ProfileManager { } + + + public static VpnProfile get(Context context, String profileUUID) { + checkInstance(context); + return get(profileUUID); + } + } diff --git a/src/de/blinkt/openvpn/Settings_Basic.java b/src/de/blinkt/openvpn/Settings_Basic.java index 2c478b70..bafee229 100644 --- a/src/de/blinkt/openvpn/Settings_Basic.java +++ b/src/de/blinkt/openvpn/Settings_Basic.java @@ -16,8 +16,6 @@ package de.blinkt.openvpn; -import java.util.HashMap; - import android.app.Activity; import android.app.AlertDialog; import android.app.AlertDialog.Builder; @@ -98,6 +96,7 @@ public class Settings_Basic extends Fragment implements View.OnClickListener, On super.onCreate(savedInstanceState); String profileuuid =getArguments().getString(getActivity().getPackageName() + ".profileUUID"); mProfile=ProfileManager.get(profileuuid); + getActivity().setTitle(getString(R.string.edit_profile_title, mProfile.getName())); } @Override diff --git a/src/de/blinkt/openvpn/VPNPreferences.java b/src/de/blinkt/openvpn/VPNPreferences.java index f128270a..a2c8407c 100644 --- a/src/de/blinkt/openvpn/VPNPreferences.java +++ b/src/de/blinkt/openvpn/VPNPreferences.java @@ -28,6 +28,10 @@ public class VPNPreferences extends PreferenceActivity { @Override protected void onCreate(Bundle savedInstanceState) { mProfileUUID = getIntent().getStringExtra(getPackageName() + ".profileUUID"); + VpnProfile profile = ProfileManager.get(this,mProfileUUID); + if(profile!=null) { + setTitle(getString(R.string.edit_profile_title, profile.getName())); + } super.onCreate(savedInstanceState); } diff --git a/src/de/blinkt/openvpn/VpnProfile.java b/src/de/blinkt/openvpn/VpnProfile.java index b862bb8c..d9c39cab 100644 --- a/src/de/blinkt/openvpn/VpnProfile.java +++ b/src/de/blinkt/openvpn/VpnProfile.java @@ -102,6 +102,7 @@ public class VpnProfile implements Serializable{ mUsePull=false; mUseLzo=false; mUseDefaultRoute=false; + mUseDefaultRoutev6=false; mExpectTLSCert=false; } @@ -130,7 +131,6 @@ public class VpnProfile implements Serializable{ } public String getName() { - // TODO Auto-generated method stub return mName; } diff --git a/todo.txt b/todo.txt index b7a58aef..f4945b4f 100644 --- a/todo.txt +++ b/todo.txt @@ -17,6 +17,7 @@ Ideas: Bugfixes: - startpath file explorer + - fix opening of files in email etc. Missing configuration options: