[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [orbot/master] move to using meek_lite mode from obfs4client and update/improve proxying code
commit 57855932f4518b8c4e8b5fed4ae7a89fe224dcbb
Author: Nathan Freitas <nathan@xxxxxxxxxxx>
Date: Tue Feb 23 23:21:02 2016 -0500
move to using meek_lite mode from obfs4client and update/improve proxying code
---
src/org/torproject/android/OrbotApp.java | 5 +---
.../android/service/TorResourceInstaller.java | 3 ++-
src/org/torproject/android/service/TorService.java | 29 +++++++++++++++-------
.../android/service/TorServiceConstants.java | 8 +++---
.../android/service/TorServiceUtils.java | 4 +--
.../torproject/android/vpn/OrbotVpnService.java | 29 +++++++++++++++++-----
6 files changed, 52 insertions(+), 26 deletions(-)
diff --git a/src/org/torproject/android/OrbotApp.java b/src/org/torproject/android/OrbotApp.java
index 021336d..7bbb649 100644
--- a/src/org/torproject/android/OrbotApp.java
+++ b/src/org/torproject/android/OrbotApp.java
@@ -28,7 +28,7 @@ public class OrbotApp extends Application implements OrbotConstants
public static File fileTor;
public static File filePolipo;
public static File fileObfsclient;
- public static File fileMeekclient;
+ // public static File fileMeekclient;
public static File fileXtables;
public static File fileTorRc;
public static File filePdnsd;
@@ -48,13 +48,10 @@ public class OrbotApp extends Application implements OrbotConstants
fileTor= new File(appBinHome, TorServiceConstants.TOR_ASSET_KEY);
filePolipo = new File(appBinHome, TorServiceConstants.POLIPO_ASSET_KEY);
fileObfsclient = new File(appBinHome, TorServiceConstants.OBFSCLIENT_ASSET_KEY);
- fileMeekclient = new File(appBinHome, TorServiceConstants.MEEK_ASSET_KEY);
fileXtables = new File(appBinHome, TorServiceConstants.IPTABLES_ASSET_KEY);
fileTorRc = new File(appBinHome, TorServiceConstants.TORRC_ASSET_KEY);
filePdnsd = new File(appBinHome, TorServiceConstants.PDNSD_ASSET_KEY);
-
-
}
@Override
diff --git a/src/org/torproject/android/service/TorResourceInstaller.java b/src/org/torproject/android/service/TorResourceInstaller.java
index 1fad991..67dc32d 100644
--- a/src/org/torproject/android/service/TorResourceInstaller.java
+++ b/src/org/torproject/android/service/TorResourceInstaller.java
@@ -100,12 +100,13 @@ public class TorResourceInstaller implements TorServiceConstants {
shell.add(new SimpleCommand(COMMAND_RM_FORCE + outFile.getAbsolutePath())).waitForFinish();
streamToFile(is,outFile, false, true);
setExecutable(outFile);
-
+ /**
is = context.getAssets().open(cpuPath + "/" + MEEK_ASSET_KEY + MP3_EXT);
outFile = new File(installFolder, MEEK_ASSET_KEY);
shell.add(new SimpleCommand(COMMAND_RM_FORCE + outFile.getAbsolutePath())).waitForFinish();
streamToFile(is,outFile, false, true);
setExecutable(outFile);
+ */
}
diff --git a/src/org/torproject/android/service/TorService.java b/src/org/torproject/android/service/TorService.java
index 12da009..627f2e9 100644
--- a/src/org/torproject/android/service/TorService.java
+++ b/src/org/torproject/android/service/TorService.java
@@ -61,6 +61,7 @@ import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.io.PrintWriter;
+import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.Socket;
@@ -482,25 +483,30 @@ public class TorService extends Service implements TorServiceConstants, OrbotCon
try {
TorServiceUtils.killProcess(OrbotApp.fileObfsclient);
} catch (IOException e) {
- e.printStackTrace();
+ // e.printStackTrace();
+ Log.w(TAG,"could not kill obfsclient",e);
cannotKillFile = OrbotApp.fileObfsclient;
}
+
+ /**
try {
TorServiceUtils.killProcess(OrbotApp.fileMeekclient);
} catch (IOException e) {
e.printStackTrace();
cannotKillFile = OrbotApp.fileMeekclient;
}
+ */
+
try {
TorServiceUtils.killProcess(OrbotApp.filePolipo);
} catch (IOException e) {
- e.printStackTrace();
+ Log.w(TAG,"could not kill polipo",e);
cannotKillFile = OrbotApp.filePolipo;
}
try {
TorServiceUtils.killProcess(OrbotApp.fileTor);
} catch (IOException e) {
- e.printStackTrace();
+ Log.w(TAG,"could not kill tor",e);
cannotKillFile = OrbotApp.fileTor;
}
}
@@ -743,7 +749,9 @@ public class TorService extends Service implements TorServiceConstants, OrbotCon
if (Prefs.bridgesEnabled())
if (Prefs.useVpn() && !mIsLollipop)
- customEnv.add("TOR_PT_PROXY=socks5://127.0.0.1:" + OrbotVpnService.sSocksProxyServerPort);
+ {
+ customEnv.add("TOR_PT_PROXY=socks5://" + OrbotVpnService.sSocksProxyLocalhost + ":" + OrbotVpnService.sSocksProxyServerPort);
+ }
String baseDirectory = OrbotApp.fileTor.getParent();
Shell shellUser = Shell.startShell(customEnv, baseDirectory);
@@ -1658,7 +1666,9 @@ public class TorService extends Service implements TorServiceConstants, OrbotCon
}
catch (Exception ioe){
- debug("error requesting newnym: " + ioe.getLocalizedMessage());
+
+ debug("error requesting newnym: " + ioe.getLocalizedMessage());
+
}
}
}.start();
@@ -1885,8 +1895,7 @@ public class TorService extends Service implements TorServiceConstants, OrbotCon
if (!mIsLollipop)
{
String proxyType = "socks5";
- String proxyHost = "127.0.0.1";
- extraLines.append(proxyType + "Proxy" + ' ' + proxyHost + ':' + OrbotVpnService.sSocksProxyServerPort).append('\n');
+ extraLines.append(proxyType + "Proxy" + ' ' + OrbotVpnService.sSocksProxyLocalhost + ':' + OrbotVpnService.sSocksProxyServerPort).append('\n');
};
}
@@ -1936,7 +1945,7 @@ public class TorService extends Service implements TorServiceConstants, OrbotCon
{
//check if any PT bridges are needed
- boolean obfsBridges = bridgeList.contains("obfs3")||bridgeList.contains("obfs4")||bridgeList.contains("scramblesuit");
+ boolean obfsBridges = bridgeList.contains("obfs3")||bridgeList.contains("obfs4")||bridgeList.contains("scramblesuit")||bridgeList.contains("meek");
if (obfsBridges)
{
@@ -1972,7 +1981,9 @@ public class TorService extends Service implements TorServiceConstants, OrbotCon
debug ("Using meek bridges");
- String bridgeConfig = "meek exec " + OrbotApp.fileMeekclient.getCanonicalPath();
+ // String bridgeConfig = "meek exec " + OrbotApp.fileMeekclient.getCanonicalPath();
+ String bridgeConfig = "meek_lite exec " + OrbotApp.fileObfsclient.getCanonicalPath();
+
extraLines.append("ClientTransportPlugin" + ' ' + bridgeConfig).append('\n');
int meekIdx = 2; //let's use Azure by default
diff --git a/src/org/torproject/android/service/TorServiceConstants.java b/src/org/torproject/android/service/TorServiceConstants.java
index 54213d9..e2f0964 100644
--- a/src/org/torproject/android/service/TorServiceConstants.java
+++ b/src/org/torproject/android/service/TorServiceConstants.java
@@ -141,7 +141,7 @@ public interface TorServiceConstants {
//obfsproxy
public static final String OBFSCLIENT_ASSET_KEY = "obfs4proxy";
- public static final String MEEK_ASSET_KEY = "meek-client";
+ // public static final String MEEK_ASSET_KEY = "meek-client";
//name of the iptables binary
public final static String IPTABLES_ASSET_KEY = "xtables";
@@ -155,9 +155,9 @@ public interface TorServiceConstants {
//MEEK BRIDGEs
public final static String[] BRIDGES_MEEK =
{
- "meek 0.0.2.0:1 url=https://meek-reflect.appspot.com/ front=www.google.com",
- "meek 0.0.2.0:2 url=https://d2zfqthxsdq309.cloudfront.net/ front=a0.awsstatic.com",
- "meek 0.0.2.0:3 url=https://az668014.vo.msecnd.net/ front=ajax.aspnetcdn.com"
+ "meek_lite 0.0.2.0:1 url=https://meek-reflect.appspot.com/ front=www.google.com",
+ "meek_lite 0.0.2.0:2 url=https://d2zfqthxsdq309.cloudfront.net/ front=a0.awsstatic.com",
+ "meek_lite 0.0.2.0:3 url=https://az668014.vo.msecnd.net/ front=ajax.aspnetcdn.com"
};
}
diff --git a/src/org/torproject/android/service/TorServiceUtils.java b/src/org/torproject/android/service/TorServiceUtils.java
index b8ae024..8549eda 100644
--- a/src/org/torproject/android/service/TorServiceUtils.java
+++ b/src/org/torproject/android/service/TorServiceUtils.java
@@ -178,12 +178,12 @@ public class TorServiceUtils implements TorServiceConstants {
}
catch(ConnectException ce){
- ce.printStackTrace();
+ //ce.printStackTrace();
return false;
}
catch (Exception ex) {
- ex.printStackTrace();
+ //ex.printStackTrace();
return false;
}
}
diff --git a/src/org/torproject/android/vpn/OrbotVpnService.java b/src/org/torproject/android/vpn/OrbotVpnService.java
index 92d868c..c9247c2 100644
--- a/src/org/torproject/android/vpn/OrbotVpnService.java
+++ b/src/org/torproject/android/vpn/OrbotVpnService.java
@@ -22,6 +22,7 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.net.InetAddress;
+import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Locale;
import java.util.concurrent.TimeoutException;
@@ -68,6 +69,7 @@ public class OrbotVpnService extends VpnService implements Handler.Callback {
private int mTorSocks = TorServiceConstants.SOCKS_PROXY_PORT_DEFAULT;
public static int sSocksProxyServerPort = -1;
+ public static String sSocksProxyLocalhost = null;
private ProxyServer mSocksProxyServer;
@@ -108,11 +110,7 @@ public class OrbotVpnService extends VpnService implements Handler.Callback {
if (!mIsLollipop)
{
-
- //generate the proxy port that the
- if (sSocksProxyServerPort == -1)
- sSocksProxyServerPort = (int)((Math.random()*1000)+10000);
-
+
startSocksBypass();
}
@@ -151,6 +149,24 @@ public class OrbotVpnService extends VpnService implements Handler.Callback {
public void run ()
{
+
+ //generate the proxy port that the
+ if (sSocksProxyServerPort == -1)
+ {
+ try {
+
+ sSocksProxyLocalhost = "127.0.0.1";// InetAddress.getLocalHost().getHostAddress();
+ sSocksProxyServerPort = (int)((Math.random()*1000)+10000);
+
+ } catch (Exception e) {
+ Log.e(TAG,"Unable to access localhost",e);
+ throw new RuntimeException("Unable to access localhost: " + e);
+
+ }
+
+ }
+
+
if (mSocksProxyServer != null)
{
stopSocksBypass ();
@@ -274,7 +290,6 @@ public class OrbotVpnService extends VpnService implements Handler.Callback {
//start PDNSD daemon pointing to OpenDNS
startDNS(DEFAULT_ACTUAL_DNS,53);
-
final String vpnName = "OrbotVPN";
final String localhost = "127.0.0.1";
@@ -392,8 +407,10 @@ public class OrbotVpnService extends VpnService implements Handler.Callback {
" -c " + baseDirectory + "/pdnsd.conf";
SimpleCommand shellCommand = new SimpleCommand(cmdString);
+
shell.add(shellCommand).waitForFinish();
+ Log.i(TAG,"PDNSD: " + shellCommand.getExitCode() + ": " + shellCommand.getOutput());
}
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits