Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
The Tor Project
Applications
tor-android-service
Commits
ecc251d0
Unverified
Commit
ecc251d0
authored
May 09, 2020
by
Georg Koppen
Browse files
Bug 30318: Add snowflake support
parent
ed2e1479
Changes
3
Hide whitespace changes
Inline
Side-by-side
service/src/main/assets/common/bridges.txt
View file @
ecc251d0
...
...
@@ -13,3 +13,5 @@ obfs4 146.57.248.225:22 10A6CD36A537FCE513A322361547444B393989F0 cert=K1gDtDAIcU
obfs4 45.145.95.6:27015 C5B7CD6946FF10C5B3E89691A7D3F2C122D2117C cert=TD7PbUO0/0k6xYHMPW3vJxICfkMZNdkRrb63Zhl5j9dW3iRGiCx0A7mPhe5T2EDzQ35+Zw iat-mode=0
obfs4 [2a0c:4d80:42:702::1]:27015 C5B7CD6946FF10C5B3E89691A7D3F2C122D2117C cert=TD7PbUO0/0k6xYHMPW3vJxICfkMZNdkRrb63Zhl5j9dW3iRGiCx0A7mPhe5T2EDzQ35+Zw 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
service/src/main/java/org/torproject/android/service/CustomTorInstaller.java
View file @
ecc251d0
...
...
@@ -40,14 +40,17 @@ 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 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
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
*/
String
userDefinedBridgeList
=
Prefs
.
getBridgesList
();
byte
bridgeType
=
(
byte
)
(
userDefinedBridgeList
.
length
()
>
5
?
1
:
0
);
byte
bridgeType
=
(
byte
)
(
userDefinedBridgeList
.
length
()
>
9
?
1
:
0
);
// Terrible hack. Must keep in sync with topl::addBridgesFromResources.
if
(
bridgeType
==
0
)
{
switch
(
userDefinedBridgeList
)
{
...
...
@@ -57,6 +60,9 @@ public class CustomTorInstaller extends TorInstaller {
case
"meek"
:
bridgeType
=
3
;
break
;
case
"snowflake"
:
bridgeType
=
4
;
break
;
}
}
...
...
service/src/main/java/org/torproject/android/service/TorService.java
View file @
ecc251d0
...
...
@@ -368,10 +368,12 @@ public final class TorService extends Service implements TorServiceConstants, Or
//Check bridges to see if we need this
File
nativeDir
=
new
File
(
getApplicationInfo
().
nativeLibraryDir
);
File
pluggableTransport
=
new
File
(
nativeDir
,
"libObfs4proxy.so"
);
if
(!
pluggableTransport
.
canExecute
())
pluggableTransport
.
setExecutable
(
true
);
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
);
builder
.
configurePluggableTransportsFromSettings
(
pluggableTransport
);
builder
.
configurePluggableTransportsFromSettings
(
pluggableTransport
Obfs
,
pluggableTransportSnow
);
mDataService
.
updateConfigBuilder
(
builder
);
onionProxyManager
.
getTorInstaller
().
updateTorConfigCustom
(
builder
.
asString
());
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment