diff --git a/app-mini/src/main/res/values/strings.xml b/app-mini/src/main/res/values/strings.xml index 810ced96c..78723c10e 100644 --- a/app-mini/src/main/res/values/strings.xml +++ b/app-mini/src/main/res/values/strings.xml @@ -233,6 +233,10 @@ Always enables connection padding to defend against some forms of traffic analysis. Default: auto Reduced connection padding Closes relay connections sooner and sends less padding packets to reduce data and battery usage + Circuit padding + Enable circuit padding to defend against some forms of traffic analysis + Reduced circuit padding + Use lower overhead padding algorithms to reduce data and battery usage Prefer IPv6 connections Tells exits that IPv6 addresses are preferred Disable IPv4 connections diff --git a/app-mini/src/main/res/xml/preferences.xml b/app-mini/src/main/res/xml/preferences.xml index bda86acc2..49be87a0f 100644 --- a/app-mini/src/main/res/xml/preferences.xml +++ b/app-mini/src/main/res/xml/preferences.xml @@ -198,7 +198,7 @@ android:title="@string/pref_disable_ipv4" /> - + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 4400c048b..bff412a2a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -233,6 +233,10 @@ Always enables connection padding to defend against some forms of traffic analysis. Default: auto Reduced connection padding Closes relay connections sooner and sends less padding packets to reduce data and battery usage + Circuit padding + Enable circuit padding to defend against some forms of traffic analysis + Reduced circuit padding + Use lower overhead padding algorithms to reduce data and battery usage Prefer IPv6 connections Tells exits that IPv6 addresses are preferred Disable IPv4 connections diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 49b90dfa0..8477efbdf 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -195,7 +195,7 @@ android:title="@string/pref_disable_ipv4" /> - + + + diff --git a/orbotservice/src/main/java/org/torproject/android/service/OrbotConstants.java b/orbotservice/src/main/java/org/torproject/android/service/OrbotConstants.java index a5dec36e9..8416f15e5 100644 --- a/orbotservice/src/main/java/org/torproject/android/service/OrbotConstants.java +++ b/orbotservice/src/main/java/org/torproject/android/service/OrbotConstants.java @@ -25,6 +25,8 @@ public interface OrbotConstants { String PREF_CONNECTION_PADDING = "pref_connection_padding"; String PREF_REDUCED_CONNECTION_PADDING = "pref_reduced_connection_padding"; + String PREF_CIRCUIT_PADDING = "pref_circuit_padding"; + String PREF_REDUCED_CIRCUIT_PADDING = "pref_reduced_circuit_padding"; String PREF_PREFER_IPV6 = "pref_prefer_ipv6"; String PREF_DISABLE_IPV4 = "pref_disable_ipv4"; diff --git a/orbotservice/src/main/java/org/torproject/android/service/TorService.java b/orbotservice/src/main/java/org/torproject/android/service/TorService.java index 96dedfd82..52e672485 100644 --- a/orbotservice/src/main/java/org/torproject/android/service/TorService.java +++ b/orbotservice/src/main/java/org/torproject/android/service/TorService.java @@ -700,6 +700,18 @@ private File updateTorrcCustomFile () throws IOException, TimeoutException extraLines.append("ReducedConnectionPadding 1").append('\n'); } + if(prefs.getBoolean(OrbotConstants.PREF_CIRCUIT_PADDING, true)) + { + extraLines.append("CircuitPadding 1").append('\n'); + } else { + extraLines.append("CircuitPadding 0").append('\n'); + } + + if(prefs.getBoolean(OrbotConstants.PREF_REDUCED_CIRCUIT_PADDING, true)) + { + extraLines.append("ReducedCircuitPadding 1").append('\n'); + } + String transPort = prefs.getString("pref_transport", TorServiceConstants.TOR_TRANSPROXY_PORT_DEFAULT+""); String dnsPort = prefs.getString("pref_dnsport", TorServiceConstants.TOR_DNS_PORT_DEFAULT+"");