Loading projects/tor-android-service/0001-Revert-Bug-30318-Add-snowflake-support.patch 0 → 100644 +78 −0 Original line number Diff line number Diff line From f3cf622e537a1283b821b3f3ce8e396a01bcb84b Mon Sep 17 00:00:00 2001 From: Georg Koppen <gk@torproject.org> Date: Sat, 16 Jan 2021 20:56:30 +0000 Subject: [PATCH] Revert "Bug 30318: Add snowflake support" This reverts commit ecc251d0a73f7e2034a271efd28036a0108b8688. diff --git a/service/src/main/assets/common/bridges.txt b/service/src/main/assets/common/bridges.txt index 1525eba..fe37735 100644 --- a/service/src/main/assets/common/bridges.txt +++ b/service/src/main/assets/common/bridges.txt @@ -13,5 +13,3 @@ obfs4 45.145.95.6:27015 C5B7CD6946FF10C5B3E89691A7D3F2C122D2117C cert=TD7PbUO0/0 obfs4 [2a0c:4d80:42:702::1]:27015 C5B7CD6946FF10C5B3E89691A7D3F2C122D2117C cert=TD7PbUO0/0k6xYHMPW3vJxICfkMZNdkRrb63Zhl5j9dW3iRGiCx0A7mPhe5T2EDzQ35+Zw iat-mode=0 obfs4 51.222.13.177:80 5EDAC3B810E12B01F6FD8050D2FD3E277B289A08 cert=2uplIpLQ0q9+0qMFrK5pkaYRDOe460LL9WHBvatgkuRr/SL31wBOEupaMMJ6koRE6Ld0ew iat-mode=0 meek_lite 0.0.2.0:2 97700DFE9F483596DDA6264C4D7DF7641E1E39CE url=https://meek.azureedge.net/ front=ajax.aspnetcdn.com - -snowflake 0.0.3.0:1 2B280B23E1107BB62ABFC40DDCC8824814F80A72 diff --git a/service/src/main/java/org/torproject/android/service/CustomTorInstaller.java b/service/src/main/java/org/torproject/android/service/CustomTorInstaller.java index 52bc4fe..198c981 100644 --- a/service/src/main/java/org/torproject/android/service/CustomTorInstaller.java +++ b/service/src/main/java/org/torproject/android/service/CustomTorInstaller.java @@ -40,17 +40,14 @@ public class CustomTorInstaller extends TorInstaller { @Override public InputStream openBridgesStream() throws IOException { /* - BridgesList is an overloaded field, which can cause some confusion. - The list can be: - 1) a filter like obfs4, meek, or snowflake OR - 2) it can be a custom bridge - For (1), we just pass back all bridges, the filter will occur - elsewhere in the library. - For (2) we return the bridge list as a raw stream. - If length is greater than 9, then we know this is a custom bridge + BridgesList is an overloaded field, which can cause some confusion. The list can be: + 1) a filter like obfs4 or meek OR 2) it can be a custom bridge + For (1), we just pass back all bridges, the filter will occur elsewhere in the library. + For (2) we return the bridge list as a raw stream + If length is greater than 5, then we know this is a custom bridge */ String userDefinedBridgeList = Prefs.getBridgesList(); - byte bridgeType = (byte) (userDefinedBridgeList.length() > 9 ? 1 : 0); + byte bridgeType = (byte) (userDefinedBridgeList.length() > 5 ? 1 : 0); // Terrible hack. Must keep in sync with topl::addBridgesFromResources. if (bridgeType == 0) { switch (userDefinedBridgeList) { @@ -60,9 +57,6 @@ public class CustomTorInstaller extends TorInstaller { case "meek": bridgeType = 3; break; - case "snowflake": - bridgeType = 4; - break; } } diff --git a/service/src/main/java/org/torproject/android/service/TorService.java b/service/src/main/java/org/torproject/android/service/TorService.java index f1ddcda..32d7f30 100644 --- a/service/src/main/java/org/torproject/android/service/TorService.java +++ b/service/src/main/java/org/torproject/android/service/TorService.java @@ -365,12 +365,10 @@ public final class TorService extends Service implements TorServiceConstants, Or //Check bridges to see if we need this File nativeDir = new File(getApplicationInfo().nativeLibraryDir); - File pluggableTransportObfs = new File(nativeDir, "libObfs4proxy.so"); - if(!pluggableTransportObfs.canExecute()) pluggableTransportObfs.setExecutable(true); - File pluggableTransportSnow = new File(nativeDir, "libSnowflake.so"); - if(!pluggableTransportSnow.canExecute()) pluggableTransportSnow.setExecutable(true); + File pluggableTransport = new File(nativeDir, "libObfs4proxy.so"); + if(!pluggableTransport.canExecute()) pluggableTransport.setExecutable(true); - builder.configurePluggableTransportsFromSettings(pluggableTransportObfs, pluggableTransportSnow); + builder.configurePluggableTransportsFromSettings(pluggableTransport); mDataService.updateConfigBuilder(builder); onionProxyManager.getTorInstaller().updateTorConfigCustom (builder.asString()); -- 2.30.0 projects/tor-android-service/build +3 −1 Original line number Diff line number Diff line Loading @@ -13,7 +13,9 @@ mkdir -p /var/tmp/build $output_dir tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz cd /var/tmp/build/[% project %]-[% c('version') %] [% IF ! c("var/snowflake") %] patch -p1 < $rootdir/0001-Revert-Bug-30318-Add-snowflake-support.patch [% END %] # Replace pre-packaged tor library with the latest build rm -fR service/src/main/jniLibs/* [% FOREACH arch = ['armv7', 'aarch64', 'x86', 'x86_64'] -%] Loading projects/tor-android-service/config +2 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,8 @@ input_files: exec: '[% INCLUDE "fetch-gradle-dependencies" %]' - project: tor-onion-proxy-library name: topl - filename: 0001-Revert-Bug-30318-Add-snowflake-support.patch enable: '[% ! c("var/snowflake") %]' - project: tor name: tor-armv7 target_prepend: Loading projects/tor-onion-proxy-library/build +20 −9 Original line number Diff line number Diff line Loading @@ -20,31 +20,42 @@ cd /var/tmp/build/[% project %]-[% c('version') %] # build will pull down the correct android tool versions patch -p1 < $rootdir/gradle.patch patch -p1 < $rootdir/0001-Bug-33931-Filter-bridges-in-stream-by-type.patch [% IF c("var/snowflake") %] patch -p1 < $rootdir/0001-Bug-30318-Add-snowflake-support.patch [% END %] [% FOREACH arch = ['armv7', 'aarch64', 'x86', 'x86_64'] -%] # Extract obfs4proxy from TorBrowser/Tor/PluggableTransports/obfs4proxy tar --strip-components=4 -xf $rootdir/[% c('input_files_by_name/obfs4-' _ arch) %] [% IF c("var/snowflake") %] # Extract snowflake from TorBrowser/Tor/PluggableTransports/snowflake tar --strip-components=4 -xf $rootdir/[% c('input_files_by_name/snowflake-' _ arch) %] [% END %] # Overwrite the obfs4proxy binary provided by Pluto and add Snowflake [% IF arch == "armv7" -%] cp obfs4proxy external/pluto/bin/armeabi-v7a/ cp obfs4proxy external/pluto/bin/armeabi/ [% IF c("var/snowflake") %] cp snowflake-client external/pluto/bin/armeabi-v7a/ cp snowflake-client external/pluto/bin/armeabi/ [% END %] [% ELSIF arch == "aarch64" -%] cp obfs4proxy external/pluto/bin/arm64-v8a/ [% IF c("var/snowflake") %] cp snowflake-client external/pluto/bin/arm64-v8a/ [% END %] [% ELSE -%] cp obfs4proxy external/pluto/bin/[% arch %]/ [% IF c("var/snowflake") %] cp snowflake-client external/pluto/bin/[% arch %]/ [% END %] [% END -%] rm obfs4proxy [% IF c("var/snowflake") %] rm snowflake-client [% END %] [% END -%] # Build Android Libraries and Apps Loading projects/tor-onion-proxy-library/config +5 −0 Original line number Diff line number Diff line Loading @@ -39,21 +39,26 @@ input_files: name: snowflake-armv7 target_prepend: - android-armv7 enable: '[% c("var/snowflake") %]' - project: snowflake name: snowflake-aarch64 target_prepend: - android-aarch64 enable: '[% c("var/snowflake") %]' - project: snowflake name: snowflake-x86 target_prepend: - android-x86 enable: '[% c("var/snowflake") %]' - project: snowflake name: snowflake-x86_64 target_prepend: - android-x86_64 enable: '[% c("var/snowflake") %]' - filename: 'gradle-dependencies-[% c("var/gradle_dependencies_version") %]' name: gradle-dependencies exec: '[% INCLUDE "fetch-gradle-dependencies" %]' - filename: gradle.patch - filename: 0001-Bug-33931-Filter-bridges-in-stream-by-type.patch - filename: 0001-Bug-30318-Add-snowflake-support.patch enable: '[% c("var/snowflake") %]' Loading
projects/tor-android-service/0001-Revert-Bug-30318-Add-snowflake-support.patch 0 → 100644 +78 −0 Original line number Diff line number Diff line From f3cf622e537a1283b821b3f3ce8e396a01bcb84b Mon Sep 17 00:00:00 2001 From: Georg Koppen <gk@torproject.org> Date: Sat, 16 Jan 2021 20:56:30 +0000 Subject: [PATCH] Revert "Bug 30318: Add snowflake support" This reverts commit ecc251d0a73f7e2034a271efd28036a0108b8688. diff --git a/service/src/main/assets/common/bridges.txt b/service/src/main/assets/common/bridges.txt index 1525eba..fe37735 100644 --- a/service/src/main/assets/common/bridges.txt +++ b/service/src/main/assets/common/bridges.txt @@ -13,5 +13,3 @@ obfs4 45.145.95.6:27015 C5B7CD6946FF10C5B3E89691A7D3F2C122D2117C cert=TD7PbUO0/0 obfs4 [2a0c:4d80:42:702::1]:27015 C5B7CD6946FF10C5B3E89691A7D3F2C122D2117C cert=TD7PbUO0/0k6xYHMPW3vJxICfkMZNdkRrb63Zhl5j9dW3iRGiCx0A7mPhe5T2EDzQ35+Zw iat-mode=0 obfs4 51.222.13.177:80 5EDAC3B810E12B01F6FD8050D2FD3E277B289A08 cert=2uplIpLQ0q9+0qMFrK5pkaYRDOe460LL9WHBvatgkuRr/SL31wBOEupaMMJ6koRE6Ld0ew iat-mode=0 meek_lite 0.0.2.0:2 97700DFE9F483596DDA6264C4D7DF7641E1E39CE url=https://meek.azureedge.net/ front=ajax.aspnetcdn.com - -snowflake 0.0.3.0:1 2B280B23E1107BB62ABFC40DDCC8824814F80A72 diff --git a/service/src/main/java/org/torproject/android/service/CustomTorInstaller.java b/service/src/main/java/org/torproject/android/service/CustomTorInstaller.java index 52bc4fe..198c981 100644 --- a/service/src/main/java/org/torproject/android/service/CustomTorInstaller.java +++ b/service/src/main/java/org/torproject/android/service/CustomTorInstaller.java @@ -40,17 +40,14 @@ public class CustomTorInstaller extends TorInstaller { @Override public InputStream openBridgesStream() throws IOException { /* - BridgesList is an overloaded field, which can cause some confusion. - The list can be: - 1) a filter like obfs4, meek, or snowflake OR - 2) it can be a custom bridge - For (1), we just pass back all bridges, the filter will occur - elsewhere in the library. - For (2) we return the bridge list as a raw stream. - If length is greater than 9, then we know this is a custom bridge + BridgesList is an overloaded field, which can cause some confusion. The list can be: + 1) a filter like obfs4 or meek OR 2) it can be a custom bridge + For (1), we just pass back all bridges, the filter will occur elsewhere in the library. + For (2) we return the bridge list as a raw stream + If length is greater than 5, then we know this is a custom bridge */ String userDefinedBridgeList = Prefs.getBridgesList(); - byte bridgeType = (byte) (userDefinedBridgeList.length() > 9 ? 1 : 0); + byte bridgeType = (byte) (userDefinedBridgeList.length() > 5 ? 1 : 0); // Terrible hack. Must keep in sync with topl::addBridgesFromResources. if (bridgeType == 0) { switch (userDefinedBridgeList) { @@ -60,9 +57,6 @@ public class CustomTorInstaller extends TorInstaller { case "meek": bridgeType = 3; break; - case "snowflake": - bridgeType = 4; - break; } } diff --git a/service/src/main/java/org/torproject/android/service/TorService.java b/service/src/main/java/org/torproject/android/service/TorService.java index f1ddcda..32d7f30 100644 --- a/service/src/main/java/org/torproject/android/service/TorService.java +++ b/service/src/main/java/org/torproject/android/service/TorService.java @@ -365,12 +365,10 @@ public final class TorService extends Service implements TorServiceConstants, Or //Check bridges to see if we need this File nativeDir = new File(getApplicationInfo().nativeLibraryDir); - File pluggableTransportObfs = new File(nativeDir, "libObfs4proxy.so"); - if(!pluggableTransportObfs.canExecute()) pluggableTransportObfs.setExecutable(true); - File pluggableTransportSnow = new File(nativeDir, "libSnowflake.so"); - if(!pluggableTransportSnow.canExecute()) pluggableTransportSnow.setExecutable(true); + File pluggableTransport = new File(nativeDir, "libObfs4proxy.so"); + if(!pluggableTransport.canExecute()) pluggableTransport.setExecutable(true); - builder.configurePluggableTransportsFromSettings(pluggableTransportObfs, pluggableTransportSnow); + builder.configurePluggableTransportsFromSettings(pluggableTransport); mDataService.updateConfigBuilder(builder); onionProxyManager.getTorInstaller().updateTorConfigCustom (builder.asString()); -- 2.30.0
projects/tor-android-service/build +3 −1 Original line number Diff line number Diff line Loading @@ -13,7 +13,9 @@ mkdir -p /var/tmp/build $output_dir tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz cd /var/tmp/build/[% project %]-[% c('version') %] [% IF ! c("var/snowflake") %] patch -p1 < $rootdir/0001-Revert-Bug-30318-Add-snowflake-support.patch [% END %] # Replace pre-packaged tor library with the latest build rm -fR service/src/main/jniLibs/* [% FOREACH arch = ['armv7', 'aarch64', 'x86', 'x86_64'] -%] Loading
projects/tor-android-service/config +2 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,8 @@ input_files: exec: '[% INCLUDE "fetch-gradle-dependencies" %]' - project: tor-onion-proxy-library name: topl - filename: 0001-Revert-Bug-30318-Add-snowflake-support.patch enable: '[% ! c("var/snowflake") %]' - project: tor name: tor-armv7 target_prepend: Loading
projects/tor-onion-proxy-library/build +20 −9 Original line number Diff line number Diff line Loading @@ -20,31 +20,42 @@ cd /var/tmp/build/[% project %]-[% c('version') %] # build will pull down the correct android tool versions patch -p1 < $rootdir/gradle.patch patch -p1 < $rootdir/0001-Bug-33931-Filter-bridges-in-stream-by-type.patch [% IF c("var/snowflake") %] patch -p1 < $rootdir/0001-Bug-30318-Add-snowflake-support.patch [% END %] [% FOREACH arch = ['armv7', 'aarch64', 'x86', 'x86_64'] -%] # Extract obfs4proxy from TorBrowser/Tor/PluggableTransports/obfs4proxy tar --strip-components=4 -xf $rootdir/[% c('input_files_by_name/obfs4-' _ arch) %] [% IF c("var/snowflake") %] # Extract snowflake from TorBrowser/Tor/PluggableTransports/snowflake tar --strip-components=4 -xf $rootdir/[% c('input_files_by_name/snowflake-' _ arch) %] [% END %] # Overwrite the obfs4proxy binary provided by Pluto and add Snowflake [% IF arch == "armv7" -%] cp obfs4proxy external/pluto/bin/armeabi-v7a/ cp obfs4proxy external/pluto/bin/armeabi/ [% IF c("var/snowflake") %] cp snowflake-client external/pluto/bin/armeabi-v7a/ cp snowflake-client external/pluto/bin/armeabi/ [% END %] [% ELSIF arch == "aarch64" -%] cp obfs4proxy external/pluto/bin/arm64-v8a/ [% IF c("var/snowflake") %] cp snowflake-client external/pluto/bin/arm64-v8a/ [% END %] [% ELSE -%] cp obfs4proxy external/pluto/bin/[% arch %]/ [% IF c("var/snowflake") %] cp snowflake-client external/pluto/bin/[% arch %]/ [% END %] [% END -%] rm obfs4proxy [% IF c("var/snowflake") %] rm snowflake-client [% END %] [% END -%] # Build Android Libraries and Apps Loading
projects/tor-onion-proxy-library/config +5 −0 Original line number Diff line number Diff line Loading @@ -39,21 +39,26 @@ input_files: name: snowflake-armv7 target_prepend: - android-armv7 enable: '[% c("var/snowflake") %]' - project: snowflake name: snowflake-aarch64 target_prepend: - android-aarch64 enable: '[% c("var/snowflake") %]' - project: snowflake name: snowflake-x86 target_prepend: - android-x86 enable: '[% c("var/snowflake") %]' - project: snowflake name: snowflake-x86_64 target_prepend: - android-x86_64 enable: '[% c("var/snowflake") %]' - filename: 'gradle-dependencies-[% c("var/gradle_dependencies_version") %]' name: gradle-dependencies exec: '[% INCLUDE "fetch-gradle-dependencies" %]' - filename: gradle.patch - filename: 0001-Bug-33931-Filter-bridges-in-stream-by-type.patch - filename: 0001-Bug-30318-Add-snowflake-support.patch enable: '[% c("var/snowflake") %]'