commit ef5c506fddb76d521493a38bd13fd440156db446 Author: Nathan Freitas nathan@freitas.net Date: Fri Oct 28 23:53:40 2011 -0400
updates to properly support tor-tether mode --- res/raw/torrc | 8 ++++---- res/raw/torrctether | 14 ++++++++++++++ src/org/torproject/android/Orbot.java | 5 ++++- .../android/service/TorBinaryInstaller.java | 3 +++ src/org/torproject/android/service/TorService.java | 14 +++++++++++++- .../android/service/TorServiceConstants.java | 2 ++ src/org/torproject/android/wizard/Permissions.java | 12 ++++++++++++ 7 files changed, 52 insertions(+), 6 deletions(-)
diff --git a/res/raw/torrc b/res/raw/torrc index d1cd7fd..f3d79d2 100644 --- a/res/raw/torrc +++ b/res/raw/torrc @@ -1,14 +1,14 @@ SocksPort 9050 SafeSocks 1 Log notice stdout +ControlListenAddress 127.0.0.1 ControlPort 9051 CookieAuthentication 1 RelayBandwidthRate 20 KBytes RelayBandwidthBurst 20 KBytes UseBridges 0 AutomapHostsOnResolve 1 -TransListenAddress 0.0.0.0 +TransListenAddress 127.0.0.1 TransPort 9040 -DNSListenAddress 0.0.0.0 -DNSPort 5400 - +DNSListenAddress 127.0.0.1 +DNSPort 5400 \ No newline at end of file diff --git a/res/raw/torrctether b/res/raw/torrctether new file mode 100644 index 0000000..3edb5c8 --- /dev/null +++ b/res/raw/torrctether @@ -0,0 +1,14 @@ +SocksPort 9050 +SafeSocks 1 +Log notice stdout +ControlListenAddress 127.0.0.1 +ControlPort 9051 +CookieAuthentication 1 +RelayBandwidthRate 20 KBytes +RelayBandwidthBurst 20 KBytes +UseBridges 0 +AutomapHostsOnResolve 1 +TransListenAddress 0.0.0.0 +TransPort 9040 +DNSListenAddress 0.0.0.0 +DNSPort 5400 \ No newline at end of file diff --git a/src/org/torproject/android/Orbot.java b/src/org/torproject/android/Orbot.java index 5470042..96eb6d6 100644 --- a/src/org/torproject/android/Orbot.java +++ b/src/org/torproject/android/Orbot.java @@ -588,7 +588,10 @@ public class Orbot extends Activity implements OnLongClickListener, TorConstants lblStatus.setText(lblMsg);
if (torServiceMsg != null && torServiceMsg.length() > 0) - showAlert("Update", torServiceMsg, false); + { + // showAlert("Update", torServiceMsg, false); + lblStatus.setText(torServiceMsg); + }
boolean showFirstTime = prefs.getBoolean("connect_first_time",true);
diff --git a/src/org/torproject/android/service/TorBinaryInstaller.java b/src/org/torproject/android/service/TorBinaryInstaller.java index b540f0c..a3b1995 100644 --- a/src/org/torproject/android/service/TorBinaryInstaller.java +++ b/src/org/torproject/android/service/TorBinaryInstaller.java @@ -50,6 +50,9 @@ public class TorBinaryInstaller implements TorServiceConstants { is = context.getResources().openRawResource(R.raw.torrc); streamToFile(is,installFolder, TORRC_ASSET_KEY, false, false);
+ is = context.getResources().openRawResource(R.raw.torrctether); + streamToFile(is,installFolder, TORRC_TETHER_KEY, false, false); + is = context.getResources().openRawResource(R.raw.privoxy); streamToFile(is,installFolder, PRIVOXY_ASSET_KEY, false, false);
diff --git a/src/org/torproject/android/service/TorService.java b/src/org/torproject/android/service/TorService.java index 70b7c9c..c4b7b1f 100644 --- a/src/org/torproject/android/service/TorService.java +++ b/src/org/torproject/android/service/TorService.java @@ -582,6 +582,10 @@ public class TorService extends Service implements TorServiceConstants, TorConst showAlert("Status", "TransProxy enabled for Tethering!");
TorTransProxy.enableTetheringRules(this); + + // mBinder.updateConfiguration("TransListenAddress", "0.0.0.0", false); + // mBinder.updateConfiguration("DNSListenAddress", "0.0.0.0", false); + } } else @@ -617,6 +621,14 @@ public class TorService extends Service implements TorServiceConstants, TorConst String torrcPath = new File(appBinHome, TORRC_ASSET_KEY).getAbsolutePath(); + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); + boolean transProxyTethering = prefs.getBoolean("pref_transparent_tethering", false); + + if (transProxyTethering) + { + torrcPath = new File(appBinHome, TORRC_TETHER_KEY).getAbsolutePath(); + } + String[] torCmd = {torBinaryPath + " DataDirectory " + appDataHome.getAbsolutePath() + " -f " + torrcPath + " || exit\n"}; boolean runAsRootFalse = false; @@ -1430,7 +1442,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst mBinder.updateConfiguration("HiddenServiceDir","", false); } - + mBinder.saveConfiguration(); return true; diff --git a/src/org/torproject/android/service/TorServiceConstants.java b/src/org/torproject/android/service/TorServiceConstants.java index 759d0ce..e47ed71 100644 --- a/src/org/torproject/android/service/TorServiceConstants.java +++ b/src/org/torproject/android/service/TorServiceConstants.java @@ -15,6 +15,8 @@ public interface TorServiceConstants { //torrc (tor config file) public final static String TORRC_ASSET_KEY = "torrc"; + public final static String TORRC_TETHER_KEY = "torrctether"; + public final static String TOR_CONTROL_COOKIE = "control_auth_cookie"; //how to launch tor diff --git a/src/org/torproject/android/wizard/Permissions.java b/src/org/torproject/android/wizard/Permissions.java index ecb7b50..f2c24a0 100644 --- a/src/org/torproject/android/wizard/Permissions.java +++ b/src/org/torproject/android/wizard/Permissions.java @@ -137,6 +137,18 @@ public class Permissions extends Activity implements TorConstants { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); boolean hasRoot = prefs.getBoolean("has_root",false); + + if (!hasRoot) + { + + hasRoot = TorServiceUtils.isRootPossible(); + + Editor pEdit = prefs.edit(); + pEdit.putBoolean(PREF_HAS_ROOT,hasRoot); + pEdit.commit(); + + } + if (hasRoot) { try {
tor-commits@lists.torproject.org