clean up variables and improve how tor process is launched

This commit is contained in:
n8fr8 2017-10-25 11:41:55 -04:00
parent d24aab8b47
commit 091037427a
2 changed files with 94 additions and 91 deletions

View File

@ -675,13 +675,7 @@ public class TorService extends Service implements TorServiceConstants, OrbotCon
if (Prefs.useVpn())
extraLines.append("DNSListenAddress 0.0.0.0").append('\n');
if (Prefs.transparentTethering())
{
extraLines.append("TransListenAddress 0.0.0.0").append('\n');
extraLines.append("DNSListenAddress 0.0.0.0").append('\n');
}
extraLines.append("VirtualAddrNetwork 10.192.0.0/10").append('\n');
extraLines.append("AutomapHostsOnResolve 1").append('\n');
@ -866,26 +860,32 @@ public class TorService extends Service implements TorServiceConstants, OrbotCon
+ " -f " + torrcPath + ".custom";
debug(torCmdString);
int exitCode = exec(torCmdString + " --verify-config", true);
String output = "";
// String output = shellTorCommand.getOutput();
if (exitCode != 0)
int exitCode = -1;
try {
exitCode = exec(torCmdString + " --verify-config", true);
}
catch (Exception e)
{
logNotice("Tor (" + exitCode + "): " + output);
throw new Exception ("Torrc config did not verify");
logNotice("Tor configuration did not verify: " + e.getMessage());
return false;
}
try {
exitCode = exec(torCmdString, true);
}
catch (Exception e)
{
logNotice("Tor was unable to start: " + e.getMessage());
return false;
}
exitCode = exec(torCmdString, true);
output = "";// shellTorCommand.getOutput();
if (exitCode != 0)
{
logNotice("Tor (" + exitCode + "): " + output);
//throw new Exception ("unable to start");
logNotice("Tor did not start. Exit:" + exitCode);
return false;
}
@ -918,9 +918,12 @@ public class TorService extends Service implements TorServiceConstants, OrbotCon
private int exec (String cmd, boolean wait) throws Exception
{
CommandResult shellResult = Shell.run(cmd);
shellResult.isSuccessful();
debug("CMD: " + cmd + "; SUCCESS=" + shellResult.isSuccessful());
if (!shellResult.isSuccessful()) {
throw new Exception("Error: " + shellResult.exitCode + " ERR=" + shellResult.getStderr() + " OUT=" + shellResult.getStdout());
}
/**
SimpleCommand command = new SimpleCommand(cmd);
mShell.add(command);

View File

@ -7,150 +7,150 @@ import android.content.Intent;
public interface TorServiceConstants {
public final static String TOR_APP_USERNAME = "org.torproject.android";
public final static String BROWSER_APP_USERNAME = "info.guardianproject.orfox";
String TOR_APP_USERNAME = "org.torproject.android";
String BROWSER_APP_USERNAME = "info.guardianproject.orfox";
public final static String DIRECTORY_TOR_BINARY = "bin";
public final static String DIRECTORY_TOR_DATA = "data";
String DIRECTORY_TOR_BINARY = "bin";
String DIRECTORY_TOR_DATA = "data";
//name of the tor C binary
public final static String TOR_ASSET_KEY = "tor";
String TOR_ASSET_KEY = "tor";
//torrc (tor config file)
public final static String TORRC_ASSET_KEY = "torrc";
public final static String TORRCDIAG_ASSET_KEY = "torrcdiag";
public final static String TORRC_TETHER_KEY = "torrctether";
String TORRC_ASSET_KEY = "torrc";
String TORRCDIAG_ASSET_KEY = "torrcdiag";
String TORRC_TETHER_KEY = "torrctether";
public final static String TOR_CONTROL_COOKIE = "control_auth_cookie";
String TOR_CONTROL_COOKIE = "control_auth_cookie";
//privoxy
public final static String POLIPO_ASSET_KEY = "polipo";
String POLIPO_ASSET_KEY = "polipo";
//privoxy.config
public final static String POLIPOCONFIG_ASSET_KEY = "torpolipo.conf";
String POLIPOCONFIG_ASSET_KEY = "torpolipo.conf";
//geoip data file asset key
public final static String GEOIP_ASSET_KEY = "geoip";
public final static String GEOIP6_ASSET_KEY = "geoip6";
String GEOIP_ASSET_KEY = "geoip";
String GEOIP6_ASSET_KEY = "geoip6";
//various console cmds
public final static String SHELL_CMD_CHMOD = "chmod";
public final static String SHELL_CMD_KILL = "kill -9";
public final static String SHELL_CMD_RM = "rm";
public final static String SHELL_CMD_PS = "toolbox ps";
public final static String SHELL_CMD_PS_ALT = "ps";
String SHELL_CMD_CHMOD = "chmod";
String SHELL_CMD_KILL = "kill -9";
String SHELL_CMD_RM = "rm";
String SHELL_CMD_PS = "toolbox ps";
String SHELL_CMD_PS_ALT = "ps";
//public final static String SHELL_CMD_PIDOF = "pidof";
public final static String SHELL_CMD_LINK = "ln -s";
public final static String SHELL_CMD_CP = "cp";
//String SHELL_CMD_PIDOF = "pidof";
String SHELL_CMD_LINK = "ln -s";
String SHELL_CMD_CP = "cp";
public final static String CHMOD_EXE_VALUE = "770";
String CHMOD_EXE_VALUE = "770";
public final static int FILE_WRITE_BUFFER_SIZE = 1024;
int FILE_WRITE_BUFFER_SIZE = 1024;
public final static String IP_LOCALHOST = "127.0.0.1";
public final static int UPDATE_TIMEOUT = 1000;
public final static int TOR_TRANSPROXY_PORT_DEFAULT = 9040;
String IP_LOCALHOST = "127.0.0.1";
int UPDATE_TIMEOUT = 1000;
int TOR_TRANSPROXY_PORT_DEFAULT = 9040;
public final static int STANDARD_DNS_PORT = 53;
public final static int TOR_DNS_PORT_DEFAULT = 5400;
public final static String TOR_VPN_DNS_LISTEN_ADDRESS = "127.0.0.1";
int STANDARD_DNS_PORT = 53;
int TOR_DNS_PORT_DEFAULT = 5400;
String TOR_VPN_DNS_LISTEN_ADDRESS = "127.0.0.1";
public final static int CONTROL_PORT_DEFAULT = 9051;
public final static int HTTP_PROXY_PORT_DEFAULT = 8118; // like Privoxy!
public final static int SOCKS_PROXY_PORT_DEFAULT = 9050;
int CONTROL_PORT_DEFAULT = 9051;
int HTTP_PROXY_PORT_DEFAULT = 8118; // like Privoxy!
int SOCKS_PROXY_PORT_DEFAULT = 9050;
//path to check Tor against
public final static String URL_TOR_CHECK = "https://check.torproject.org";
String URL_TOR_CHECK = "https://check.torproject.org";
//control port
public final static String TOR_CONTROL_PORT_MSG_BOOTSTRAP_DONE = "Bootstrapped 100%";
public final static String LOG_NOTICE_HEADER = "NOTICE";
public final static String LOG_NOTICE_BOOTSTRAPPED = "Bootstrapped";
String TOR_CONTROL_PORT_MSG_BOOTSTRAP_DONE = "Bootstrapped 100%";
String LOG_NOTICE_HEADER = "NOTICE";
String LOG_NOTICE_BOOTSTRAPPED = "Bootstrapped";
/**
* A request to Orbot to transparently start Tor services
*/
public final static String ACTION_START = "org.torproject.android.intent.action.START";
String ACTION_START = "org.torproject.android.intent.action.START";
/**
* {@link Intent} send by Orbot with {@code ON/OFF/STARTING/STOPPING} status
*/
public final static String ACTION_STATUS = "org.torproject.android.intent.action.STATUS";
String ACTION_STATUS = "org.torproject.android.intent.action.STATUS";
/**
* {@code String} that contains a status constant: {@link #STATUS_ON},
* {@link #STATUS_OFF}, {@link #STATUS_STARTING}, or
* {@link #STATUS_STOPPING}
*/
public final static String EXTRA_STATUS = "org.torproject.android.intent.extra.STATUS";
String EXTRA_STATUS = "org.torproject.android.intent.extra.STATUS";
/**
* A {@link String} {@code packageName} for Orbot to direct its status reply
* to, used in {@link #ACTION_START} {@link Intent}s sent to Orbot
*/
public final static String EXTRA_PACKAGE_NAME = "org.torproject.android.intent.extra.PACKAGE_NAME";
String EXTRA_PACKAGE_NAME = "org.torproject.android.intent.extra.PACKAGE_NAME";
/**
* The SOCKS proxy settings in URL form.
*/
public final static String EXTRA_SOCKS_PROXY = "org.torproject.android.intent.extra.SOCKS_PROXY";
public final static String EXTRA_SOCKS_PROXY_HOST = "org.torproject.android.intent.extra.SOCKS_PROXY_HOST";
public final static String EXTRA_SOCKS_PROXY_PORT = "org.torproject.android.intent.extra.SOCKS_PROXY_PORT";
String EXTRA_SOCKS_PROXY = "org.torproject.android.intent.extra.SOCKS_PROXY";
String EXTRA_SOCKS_PROXY_HOST = "org.torproject.android.intent.extra.SOCKS_PROXY_HOST";
String EXTRA_SOCKS_PROXY_PORT = "org.torproject.android.intent.extra.SOCKS_PROXY_PORT";
/**
* The HTTP proxy settings in URL form.
*/
public final static String EXTRA_HTTP_PROXY = "org.torproject.android.intent.extra.HTTP_PROXY";
public final static String EXTRA_HTTP_PROXY_HOST = "org.torproject.android.intent.extra.HTTP_PROXY_HOST";
public final static String EXTRA_HTTP_PROXY_PORT = "org.torproject.android.intent.extra.HTTP_PROXY_PORT";
String EXTRA_HTTP_PROXY = "org.torproject.android.intent.extra.HTTP_PROXY";
String EXTRA_HTTP_PROXY_HOST = "org.torproject.android.intent.extra.HTTP_PROXY_HOST";
String EXTRA_HTTP_PROXY_PORT = "org.torproject.android.intent.extra.HTTP_PROXY_PORT";
public final static String LOCAL_ACTION_LOG = "log";
public final static String LOCAL_ACTION_BANDWIDTH = "bandwidth";
public final static String LOCAL_EXTRA_LOG = "log";
String LOCAL_ACTION_LOG = "log";
String LOCAL_ACTION_BANDWIDTH = "bandwidth";
String LOCAL_EXTRA_LOG = "log";
/**
* All tor-related services and daemons are stopped
*/
public final static String STATUS_OFF = "OFF";
String STATUS_OFF = "OFF";
/**
* All tor-related services and daemons have completed starting
*/
public final static String STATUS_ON = "ON";
public final static String STATUS_STARTING = "STARTING";
public final static String STATUS_STOPPING = "STOPPING";
String STATUS_ON = "ON";
String STATUS_STARTING = "STARTING";
String STATUS_STOPPING = "STOPPING";
/**
* The user has disabled the ability for background starts triggered by
* apps. Fallback to the old {@link Intent} action that brings up Orbot:
* {@link org.torproject.android.OrbotMainActivity#INTENT_ACTION_REQUEST_START_TOR}
*/
public final static String STATUS_STARTS_DISABLED = "STARTS_DISABLED";
String STATUS_STARTS_DISABLED = "STARTS_DISABLED";
// actions for internal command Intents
public static final String CMD_SIGNAL_HUP = "signal_hup";
public static final String CMD_STATUS = "status";
public static final String CMD_FLUSH = "flush";
public static final String CMD_NEWNYM = "newnym";
public static final String CMD_VPN = "vpn";
public static final String CMD_VPN_CLEAR = "vpnclear";
public static final String CMD_UPDATE_TRANS_PROXY = "update";
public static final String CMD_SET_EXIT = "setexit";
String CMD_SIGNAL_HUP = "signal_hup";
String CMD_STATUS = "status";
String CMD_FLUSH = "flush";
String CMD_NEWNYM = "newnym";
String CMD_VPN = "vpn";
String CMD_VPN_CLEAR = "vpnclear";
String CMD_UPDATE_TRANS_PROXY = "update";
String CMD_SET_EXIT = "setexit";
public static final String BINARY_TOR_VERSION = "0.3.1.8-openssl1.0.2k";
public static final String PREF_BINARY_TOR_VERSION_INSTALLED = "BINARY_TOR_VERSION_INSTALLED";
String BINARY_TOR_VERSION = "0.3.1.8-openssl1.0.2k";
String PREF_BINARY_TOR_VERSION_INSTALLED = "BINARY_TOR_VERSION_INSTALLED";
//obfsproxy
public static final String OBFSCLIENT_ASSET_KEY = "obfs4proxy";
String OBFSCLIENT_ASSET_KEY = "obfs4proxy";
// public static final String MEEK_ASSET_KEY = "meek-client";
// String MEEK_ASSET_KEY = "meek-client";
//DNS daemon for TCP DNS over TOr
public final static String PDNSD_ASSET_KEY = "pdnsd";
String PDNSD_ASSET_KEY = "pdnsd";
//EXIT COUNTRY CODES
public final static String[] COUNTRY_CODES = {"DE","AT","SE","CH","IS","CA","US","ES","FR","BG","PL","AU","BR","CZ","DK","FI","GB","HU","NL","JP","RO","RU","SG","SK"};
String[] COUNTRY_CODES = {"DE","AT","SE","CH","IS","CA","US","ES","FR","BG","PL","AU","BR","CZ","DK","FI","GB","HU","NL","JP","RO","RU","SG","SK"};
public static final String HIDDEN_SERVICES_DIR = "hidden_services";
String HIDDEN_SERVICES_DIR = "hidden_services";