[tbb-commits] [tor-browser-build/master] Bug 30318 - Integrate snowflake on Android
sysrqb at torproject.org
sysrqb at torproject.org
Fri May 29 21:14:56 UTC 2020
commit 4d57755506496d02107e4dc2adf38252032df383
Author: Matthew Finkel <sysrqb at torproject.org>
Date: Fri May 29 20:26:19 2020 +0000
Bug 30318 - Integrate snowflake on Android
---
projects/tor-android-service/config | 2 +-
.../0001-Bug-30318-Add-snowflake-support.patch | 90 ++++++++++++++++++++++
projects/tor-onion-proxy-library/build | 1 +
projects/tor-onion-proxy-library/config | 1 +
4 files changed, 93 insertions(+), 1 deletion(-)
diff --git a/projects/tor-android-service/config b/projects/tor-android-service/config
index 800fc47..7ab3ca7 100644
--- a/projects/tor-android-service/config
+++ b/projects/tor-android-service/config
@@ -1,7 +1,7 @@
# vim: filetype=yaml sw=2
version: '[% c("abbrev") %]'
filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %]'
-git_hash: ed2e1479eeddede01b1d510ef79dc5ec798b39c0
+git_hash: ecc251d0a73f7e2034a271efd28036a0108b8688
git_url: https://git.torproject.org/tor-android-service.git
git_submodule: 1
diff --git a/projects/tor-onion-proxy-library/0001-Bug-30318-Add-snowflake-support.patch b/projects/tor-onion-proxy-library/0001-Bug-30318-Add-snowflake-support.patch
new file mode 100644
index 0000000..03e06aa
--- /dev/null
+++ b/projects/tor-onion-proxy-library/0001-Bug-30318-Add-snowflake-support.patch
@@ -0,0 +1,90 @@
+From e006e215b274b1b834e098b199ea2697bc11b0f1 Mon Sep 17 00:00:00 2001
+From: Georg Koppen <gk at torproject.org>
+Date: Sun, 10 May 2020 08:29:10 +0000
+Subject: [PATCH] Bug 30318: Add snowflake support
+
+
+diff --git a/android/build.gradle b/android/build.gradle
+index a8d9bdc..2392731 100644
+--- a/android/build.gradle
++++ b/android/build.gradle
+@@ -93,6 +93,9 @@ task copyPluggableTransports(type: Copy) {
+ rename { filename ->
+ filename.replace 'obfs4proxy', 'libObfs4proxy.so'
+ }
++ rename { filename ->
++ filename.replace 'snowflake-client', 'libSnowflake.so'
++ }
+ }
+
+ gradle.projectsEvaluated {
+diff --git a/universal/src/main/java/com/msopentech/thali/toronionproxy/TorConfigBuilder.java b/universal/src/main/java/com/msopentech/thali/toronionproxy/TorConfigBuilder.java
+index 2405097..bcb6a37 100644
+--- a/universal/src/main/java/com/msopentech/thali/toronionproxy/TorConfigBuilder.java
++++ b/universal/src/main/java/com/msopentech/thali/toronionproxy/TorConfigBuilder.java
+@@ -109,22 +109,33 @@ public final class TorConfigBuilder {
+ return this;
+ }
+
+- public TorConfigBuilder configurePluggableTransportsFromSettings(File pluggableTransportClient) throws IOException {
+- if (pluggableTransportClient == null) {
++ public TorConfigBuilder configurePluggableTransportsFromSettings(File pluggableTransportObfs, File pluggableTransportSnow) throws IOException {
++ if (pluggableTransportObfs == null || pluggableTransportSnow == null) {
+ return this;
+ }
+
+- if (!pluggableTransportClient.exists()) {
+- throw new IOException("Bridge binary does not exist: " + pluggableTransportClient
++ if (!pluggableTransportObfs.exists()) {
++ throw new IOException("Obfs4proxy binary does not exist: " + pluggableTransportObfs
+ .getCanonicalPath());
+ }
+
+- if (!pluggableTransportClient.canExecute()) {
+- throw new IOException("Bridge binary is not executable: " + pluggableTransportClient
++ if (!pluggableTransportSnow.exists()) {
++ throw new IOException("Snowflake binary does not exist: " + pluggableTransportSnow
+ .getCanonicalPath());
+ }
+
+- transportPlugin(pluggableTransportClient.getCanonicalPath());
++ if (!pluggableTransportObfs.canExecute()) {
++ throw new IOException("Obfs4proxy binary is not executable: " + pluggableTransportObfs
++ .getCanonicalPath());
++ }
++
++ if (!pluggableTransportSnow.canExecute()) {
++ throw new IOException("Snowflake binary is not executable: " + pluggableTransportSnow
++ .getCanonicalPath());
++ }
++
++
++ transportPlugin(pluggableTransportObfs.getCanonicalPath(), pluggableTransportSnow.getCanonicalPath());
+ return this;
+ }
+
+@@ -491,8 +502,9 @@ public final class TorConfigBuilder {
+ return transPort(settings.transPort());
+ }
+
+- public TorConfigBuilder transportPlugin(String clientPath) {
+- buffer.append("ClientTransportPlugin meek_lite,obfs3,obfs4 exec ").append(clientPath).append('\n');
++ public TorConfigBuilder transportPlugin(String obfsPath, String snowPath) {
++ buffer.append("ClientTransportPlugin meek_lite,obfs3,obfs4 exec ").append(obfsPath).append('\n');
++ buffer.append("ClientTransportPlugin snowflake exec ").append(snowPath).append(" -url https://snowflake-broker.azureedge.net/ -front ajax.aspnetcdn.com -ice stun:stun.l.google.com:19302\n");
+ return this;
+ }
+
+@@ -557,6 +569,9 @@ public final class TorConfigBuilder {
+ case 3:
+ reqBridgeType = "meek_lite";
+ break;
++ case 4:
++ reqBridgeType = "snowflake";
++ break;
+ default:
+ throw new IOException("Requested unknown transport type: " + bridgesType);
+ }
+--
+2.26.2
+
diff --git a/projects/tor-onion-proxy-library/build b/projects/tor-onion-proxy-library/build
index dfe1837..937c72f 100644
--- a/projects/tor-onion-proxy-library/build
+++ b/projects/tor-onion-proxy-library/build
@@ -22,6 +22,7 @@ cd /var/tmp/build/[% project %]-[% c('version') %]
patch -p1 < $rootdir/gradle.patch
patch -p1 < $rootdir/0001-Bug-33931-Filter-bridges-in-stream-by-type.patch
+patch -p1 < $rootdir/0001-Bug-30318-Add-snowflake-support.patch
# Extract obfs4proxy from TorBrowser/Tor/PluggableTransports/obfs4proxy
tar --strip-components=4 -xf $rootdir/[% c('input_files_by_name/obfs4') %]
diff --git a/projects/tor-onion-proxy-library/config b/projects/tor-onion-proxy-library/config
index cffcdd0..98bb93c 100644
--- a/projects/tor-onion-proxy-library/config
+++ b/projects/tor-onion-proxy-library/config
@@ -28,3 +28,4 @@ input_files:
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
More information about the tbb-commits
mailing list