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

