From a9083a399989c1daeb222c49c49ab847a9674eee Mon Sep 17 00:00:00 2001 From: Nathan Freitas Date: Fri, 23 Jul 2010 11:10:00 +0000 Subject: [PATCH] modified control port usage, updated startup UI screen, implemented all-app torification and more svn:r22677 --- AndroidManifest.xml | 2 +- default.properties | 2 +- res/drawable/toroff.png | Bin 36795 -> 35872 bytes res/drawable/toron.png | Bin 60976 -> 60598 bytes res/layout/layout_apps_item.xml | 10 +- res/layout/layout_log.xml | 37 +- res/values/strings.xml | 16 +- res/xml/preferences.xml | 12 +- src/org/torproject/android/Orbot.java | 383 ++++++++++-------- .../android/SettingsPreferences.java | 17 +- src/org/torproject/android/TorConstants.java | 8 +- .../android/service/ITorService.aidl | 29 +- .../android/service/ITorServiceCallback.aidl | 8 +- .../android/service/TorService.java | 273 +++++++++---- .../android/service/TorServiceConstants.java | 6 +- .../android/service/TorServiceUtils.java | 84 ---- .../android/service/TorTransProxy.java | 25 +- 17 files changed, 548 insertions(+), 364 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 9350d086..458d48bf 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1,7 +1,7 @@ + android:versionName="0.2.2.13-orbot-alpha-0.0.8" android:versionCode="8"> diff --git a/default.properties b/default.properties index c5d5335e..06c219ae 100644 --- a/default.properties +++ b/default.properties @@ -10,5 +10,5 @@ # Indicates whether an apk should be generated for each density. split.density=false # Project target. -target=android-8 +target=android-3 apk-configurations= diff --git a/res/drawable/toroff.png b/res/drawable/toroff.png index ddfc07b9ff8f3f3148f8f30aab523c78f94e1b09..a5cfb97c51f558eecab28905bc07f68e1bee44cc 100644 GIT binary patch literal 35872 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 Ay#N3J literal 36795 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 EFREZBy#N3J diff --git a/res/drawable/toron.png b/res/drawable/toron.png index 648efe2f37ad55e774e7060af8eeb485e894bb4a..94ad23711512816b8d1695442693a9a859207920 100644 GIT binary patch delta 44147 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 Ef|X!8<^TWy delta 44600 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 diff --git a/res/layout/layout_apps_item.xml b/res/layout/layout_apps_item.xml index c1538fe2..907f4353 100644 --- a/res/layout/layout_apps_item.xml +++ b/res/layout/layout_apps_item.xml @@ -4,11 +4,15 @@ android:layout_width="fill_parent" android:layout_height="fill_parent" > - + + - + + + + diff --git a/res/layout/layout_log.xml b/res/layout/layout_log.xml index 911fc5ad..872c0509 100644 --- a/res/layout/layout_log.xml +++ b/res/layout/layout_log.xml @@ -1,17 +1,52 @@ + + + + + + + + \ No newline at end of file diff --git a/res/values/strings.xml b/res/values/strings.xml index 05a99569..4f230b3a 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -15,7 +15,7 @@ Orbot is shutting down Starting Tor... -authenticating control connection... +Setting up control... complete. waiting. @@ -37,7 +37,7 @@ Orbot requires different configuration depending on the Android operating system version it is used on. Please visit https://www.torproject.org/docs/android.html for the latest information. -For non-rooted Android 1.x devices (G1, MyTouch3G, Hero): Please use the "ProxySurf" browser available in the Android Market, and set +For non-rooted Android 1.x devices: Please use the "ProxySurf" browser available in the Android Market, and set the HTTP Proxy to 127.0.0.1 and port 8118, for HTTP traffic only (HTTP/S will not work). For Instant Messaging, try "Beem" in the market, and set the SOCKS5 proxy to 127.0.0.1 / port 9050. @@ -52,4 +52,16 @@ and all DNS requests. This includes the built-in Browser, Gmail, YouTube and Map Exit powered by the Tor Project - press to start - + +Transparent Proxying (Requires Root) +Transparent Proxying +Automatic Torifying of Apps + +Tor Everything +Send traffic for all apps through Tor + +Tor binaries successfully installed! +The Tor binary files were unable to be installed. Please check the log and notify tor-assistants@torproject.org + +Application Error diff --git a/res/xml/preferences.xml b/res/xml/preferences.xml index 99c0cd26..2f7b4412 100644 --- a/res/xml/preferences.xml +++ b/res/xml/preferences.xml @@ -1,20 +1,20 @@ - + +android:summary="@string/pref_transparent_all_summary" +android:enabled="true" +android:title="@string/pref_transparent_all_title"/> () { - public int compare(TorifiedApp o1, TorifiedApp o2) { - if (o1.isTorified() == o2.isTorified()) return o1.getName().compareTo(o2.getName()); - if (o1.isTorified()) return -1; - return 1; - } - }); - - final LayoutInflater inflater = getLayoutInflater(); - - final ListAdapter adapter = new ArrayAdapter(this,R.layout.layout_apps_item,R.id.itemtext,apps) { - public View getView(int position, View convertView, ViewGroup parent) { - ListEntry entry; - if (convertView == null) { - // Inflate a new view - convertView = inflater.inflate(R.layout.layout_apps_item, parent, false); - entry = new ListEntry(); - entry.box = (CheckBox) convertView.findViewById(R.id.itemcheck); - entry.text = (TextView) convertView.findViewById(R.id.itemtext); - convertView.setTag(entry); - entry.box.setOnCheckedChangeListener(Orbot.this); - } else { - // Convert an existing view - entry = (ListEntry) convertView.getTag(); - } - final TorifiedApp app = apps[position]; - - - entry.text.setText(app.getName()); - final CheckBox box = entry.box; - box.setTag(app); - box.setChecked(app.isTorified()); - return convertView; - } - }; - this.listApps.setAdapter(adapter); - - } - - /** - * Called an application is check/unchecked - */ - public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - final TorifiedApp app = (TorifiedApp) buttonView.getTag(); - if (app != null) { - app.setTorified(isChecked); - } - - TorServiceUtils.saveAppSettings(this); - - } private static class ListEntry { private CheckBox box; @@ -424,7 +337,7 @@ public class Orbot extends Activity implements OnClickListener, TorConstants, On versionName.setText(R.string.app_version); new AlertDialog.Builder(this) - .setTitle(getString(R.string.menu_info)) + .setTitle(getString(R.string.button_about)) .setView(view) .setNeutralButton(getString(R.string.button_help), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { @@ -451,6 +364,25 @@ public class Orbot extends Activity implements OnClickListener, TorConstants, On StringBuilder msg = new StringBuilder(); msg.append(getString(R.string.help_text_1)); msg.append("\n\n"); + + if (hasRoot) + { + msg.append("Your device is ROOTED. Please enable the 'Transparent Proxying' setting to select which apps to send through Tor."); + } + else + { + + msg.append("Your device is NOT rooted.\n"); + + msg.append(getString(R.string.help_text_5)); + + msg.append("\n\n"); + + msg.append(getString(R.string.not_anonymous_yet)); + } + + /* + msg.append(getString(R.string.help_text_2)); msg.append("\n\n"); msg.append(getString(R.string.help_text_3)); @@ -459,6 +391,7 @@ public class Orbot extends Activity implements OnClickListener, TorConstants, On msg.append("\n\n"); msg.append(getString(R.string.help_text_5)); msg.append("\n\n"); + */ new AlertDialog.Builder(this) @@ -478,16 +411,14 @@ public class Orbot extends Activity implements OnClickListener, TorConstants, On .show(); } - private void showApps () + private void showHelpWizard () { - currentView = R.layout.layout_apps; - setContentView(currentView); - - listApps = (ListView)findViewById(R.id.applistview); - loadApps(); + //sshowAlert("Configure",getString(R.string.not_anonymous_yet)); } + + /* * Show the message log UI */ @@ -510,7 +441,7 @@ public class Orbot extends Activity implements OnClickListener, TorConstants, On private void showSettings () { - showingSettings = true; + startActivity(new Intent(this, SettingsPreferences.class)); @@ -520,7 +451,8 @@ public class Orbot extends Activity implements OnClickListener, TorConstants, On * Read in the Preferences and write then to the .torrc file */ - private void processSettings () + /* + private void processSettingsOld () { StringBuffer torrcText = new StringBuffer(); @@ -566,6 +498,7 @@ public class Orbot extends Activity implements OnClickListener, TorConstants, On return; } + torrcText.append("UseBridges 1"); torrcText.append('\n'); @@ -645,6 +578,111 @@ public class Orbot extends Activity implements OnClickListener, TorConstants, On Utils.saveTextFile(TorServiceConstants.TORRC_INSTALL_PATH, torrcText.toString()); } + */ + + private void processSettings () throws RemoteException + { + + + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); + + boolean useBridges = prefs.getBoolean(PREF_BRIDGES_ENABLED, false); + + boolean autoUpdateBridges = prefs.getBoolean(PREF_BRIDGES_UPDATED, false); + + boolean becomeRelay = prefs.getBoolean(PREF_OR, false); + + boolean ReachableAddresses = prefs.getBoolean(PREF_REACHABLE_ADDRESSES,false); + + boolean enableTransparentProxy = prefs.getBoolean(PREF_TRANSPARENT, false); + + + String bridgeList = prefs.getString(PREF_BRIDGES_LIST,""); + + if (useBridges) + { + if (bridgeList == null || bridgeList.length() == 0) + { + + showAlert("Bridge Error","In order to use the bridge feature, you must enter at least one bridge IP address." + + "Send an email to bridges@torproject.org with the line \"get bridges\" by itself in the body of the mail from a gmail account."); + + + return; + } + + mService.updateConfiguration("UseBridges", "1", false); + + if (autoUpdateBridges) + { + mService.updateConfiguration("UpdateBridgesFromAuthority", "1", false); + + } + else + { + mService.updateConfiguration("UpdateBridgesFromAuthority", "0", false); + } + + String bridgeDelim = "\n"; + + if (bridgeList.indexOf(",") != -1) + { + bridgeDelim = ","; + } + + StringTokenizer st = new StringTokenizer(bridgeList,bridgeDelim); + while (st.hasMoreTokens()) + { + + mService.updateConfiguration("bridge", st.nextToken(), false); + + } + } + else + { + mService.updateConfiguration("UseBridges", "0", false); + + } + + try + { + if (ReachableAddresses) + { + String ReachableAddressesPorts = + prefs.getString(PREF_REACHABLE_ADDRESSES_PORTS, "*:80,*:443"); + + mService.updateConfiguration("ReachableAddresses", ReachableAddressesPorts, false); + + } + } + catch (Exception e) + { + showAlert("Config Error","Your ReachableAddresses settings caused an exception!"); + } + + try + { + if (becomeRelay && (!useBridges) && (!ReachableAddresses)) + { + int ORPort = Integer.parseInt(prefs.getString(PREF_OR_PORT, "9001")); + String nickname = prefs.getString(PREF_OR_NICKNAME, "Orbot"); + + mService.updateConfiguration("ORPort", ORPort + "", false); + mService.updateConfiguration("Nickname", nickname, false); + mService.updateConfiguration("ExitPolicy", "reject *:*", false); + + } + } + catch (Exception e) + { + showAlert("Uh-oh!","Your relay settings caused an exception!"); + + return; + } + + mService.saveConfiguration(); + + } private void showAlert(String title, String msg) { @@ -679,9 +717,14 @@ public class Orbot extends Activity implements OnClickListener, TorConstants, On if (torStatus == STATUS_ON) { imgStatus.setImageResource(R.drawable.toron); - + imgStatus.clearAnimation(); + lblStatus.setText(getString(R.string.status_activated)); + showHelpWizard (); + + + /* if (progressDialog != null) { @@ -689,23 +732,28 @@ public class Orbot extends Activity implements OnClickListener, TorConstants, On progressDialog.hide(); progressDialog = null; - if (!enableTransparentProxy) - { - showAlert("Configure",getString(R.string.not_anonymous_yet)); - } - } - - // if (torServiceMsg != null && torServiceMsg.length()>0) - // Toast.makeText(this, torServiceMsg, Toast.LENGTH_LONG).show(); - - + + }*/ + } else if (torStatus == STATUS_CONNECTING) { imgStatus.setImageResource(R.drawable.torstarting); - lblStatus.setText(getString(R.string.status_starting_up)); + + /* + if (imgStatus.getAnimation()==null) + { + + imgStatus.setAnimation(AnimationUtils.loadAnimation(this, R.anim.starting)); + imgStatus.getAnimation().setRepeatMode(Animation.INFINITE); + + imgStatus.getAnimation().setRepeatCount(Animation.INFINITE); + }*/ + + + /* if (progressDialog == null) { progressDialog = new ProgressDialog(this); @@ -719,14 +767,18 @@ public class Orbot extends Activity implements OnClickListener, TorConstants, On } progressDialog.setMessage(torServiceMsg); - + */ + + lblStatus.setText(torServiceMsg); + + int idx = torServiceMsg.indexOf("%"); if (idx != -1) { String pComp = torServiceMsg.substring(idx-2,idx).trim(); int ipComp = Integer.parseInt(pComp); - progressDialog.setProgress(ipComp); + // progressDialog.setProgress(ipComp); } @@ -734,21 +786,16 @@ public class Orbot extends Activity implements OnClickListener, TorConstants, On else if (torStatus == STATUS_OFF) { imgStatus.setImageResource(R.drawable.torstopping); + imgStatus.clearAnimation(); + lblStatus.setText(getString(R.string.status_shutting_down)); - - //if (torServiceMsg != null && torServiceMsg.length()>0) - //Toast.makeText(this, torServiceMsg, Toast.LENGTH_LONG).show(); - - - + } else { - //if (torServiceMsg != null && torServiceMsg.length()>0) - //Toast.makeText(this, torServiceMsg, Toast.LENGTH_LONG).show(); - + /* if (progressDialog != null) { @@ -756,7 +803,8 @@ public class Orbot extends Activity implements OnClickListener, TorConstants, On progressDialog.hide(); progressDialog = null; } - + */ + imgStatus.clearAnimation(); imgStatus.setImageResource(R.drawable.toroff); lblStatus.setText(getString(R.string.status_disabled)); @@ -837,31 +885,7 @@ public class Orbot extends Activity implements OnClickListener, TorConstants, On } - private void doTorSetup (boolean enabled) - { - if (enabled) - { - processSettings(); - - - if (hasRoot && enableTransparentProxy) - { - - TorTransProxy.setDNSProxying(); - TorTransProxy.setTransparentProxying(this,TorServiceUtils.getApps(this)); - } - } - else - { - if (hasRoot && enableTransparentProxy) - { - TorTransProxy.purgeNatIptables(); - //TorRoot.setDNSProxying(false); - //TorRoot.setTransparentProxying(this,false); - } - } - } - + /** * This implementation is used to receive callbacks from the remote * service. @@ -876,21 +900,30 @@ public class Orbot extends Activity implements OnClickListener, TorConstants, On */ public void statusChanged(String value) { - Message msg = mHandler.obtainMessage(BUMP_MSG); + Message msg = mHandler.obtainMessage(STATUS_MSG); msg.getData().putString(HANDLER_TOR_MSG, value); mHandler.sendMessage(msg); } + + @Override + public void logMessage(String value) throws RemoteException { + + Message msg = mHandler.obtainMessage(LOG_MSG); + msg.getData().putString(HANDLER_TOR_MSG, value); + mHandler.sendMessage(msg); + + } }; - private static final int BUMP_MSG = 1; - + private static final int STATUS_MSG = 1; private static final int ENABLE_TOR_MSG = 2; private static final int DISABLE_TOR_MSG = 3; - + private static final int LOG_MSG = 4; + private Handler mHandler = new Handler() { public void handleMessage(Message msg) { switch (msg.what) { - case BUMP_MSG: + case STATUS_MSG: String torServiceMsg = (String)msg.getData().getString(HANDLER_TOR_MSG); @@ -899,16 +932,24 @@ public class Orbot extends Activity implements OnClickListener, TorConstants, On if (torServiceMsg.length() > 0 && torServiceMsg.charAt(0)!='>') - updateStatus(torServiceMsg); + updateStatus(torServiceMsg); + + break; + case LOG_MSG: + + String torLogMsg = (String)msg.getData().getString(HANDLER_TOR_MSG); + + logBuffer.append(torLogMsg); + logBuffer.append('\n'); + break; case ENABLE_TOR_MSG: - doTorSetup(true); + break; case DISABLE_TOR_MSG: - doTorSetup(false); break; default: @@ -958,7 +999,6 @@ public class Orbot extends Activity implements OnClickListener, TorConstants, On boolean mIsBound = false; boolean hasRoot = false; - boolean enableTransparentProxy = false; private void bindService () { @@ -967,8 +1007,7 @@ public class Orbot extends Activity implements OnClickListener, TorConstants, On mIsBound = true; - hasRoot = TorTransProxy.hasRootAccess(); - + } diff --git a/src/org/torproject/android/SettingsPreferences.java b/src/org/torproject/android/SettingsPreferences.java index d7d407bc..2afb5837 100644 --- a/src/org/torproject/android/SettingsPreferences.java +++ b/src/org/torproject/android/SettingsPreferences.java @@ -21,12 +21,25 @@ public class SettingsPreferences private CheckBoxPreference prefcBTransProxyAll = null; private Preference prefTransProxyApps = null; - protected void onCreate(Bundle savedInstanceState) { + private boolean hasRoot = false; + + protected void onCreate(Bundle savedInstanceState) + { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences); + hasRoot = TorServiceUtils.hasRoot(); - if (!TorServiceUtils.hasRoot()) + } + + + + @Override + protected void onResume() { + + super.onResume(); + + if (!hasRoot) { getPreferenceScreen().getPreference(0).setEnabled(false); } diff --git a/src/org/torproject/android/TorConstants.java b/src/org/torproject/android/TorConstants.java index 6d389073..e48056cc 100644 --- a/src/org/torproject/android/TorConstants.java +++ b/src/org/torproject/android/TorConstants.java @@ -6,6 +6,10 @@ package org.torproject.android; public interface TorConstants { public final static String TAG = "Orbot"; + + + public final static String PREFS_KEY = "OrbotPrefs"; + public final static String PREFS_KEY_TORIFIED = "PrefTord"; public final static int FILE_WRITE_BUFFER_SIZE = 2048; @@ -23,10 +27,12 @@ public interface TorConstants { public final static String NEWLINE = "\n"; + /* public final static String TORRC_DEFAULT = "SocksPort 9050\nSocksListenAddress 127.0.0.1\nSafeSocks 1\nDNSPort 5400\nLog debug syslog\nDataDirectory /data/data/org.torproject.android/cache\n" + "ControlPort 9051\nCookieAuthentication 1\nRelayBandwidthRate 20 KBytes\nRelayBandwidthBurst 20 KBytes\nAutomapHostsOnResolve 1\nTransPort 9040\n"; - + */ + public final static String INTENT_TOR_SERVICE = "org.torproject.android.service.TOR_SERVICE"; public final static String HANDLER_TOR_MSG = "torServiceMsg"; diff --git a/src/org/torproject/android/service/ITorService.aidl b/src/org/torproject/android/service/ITorService.aidl index aba9809d..4ddbd4df 100644 --- a/src/org/torproject/android/service/ITorService.aidl +++ b/src/org/torproject/android/service/ITorService.aidl @@ -6,19 +6,40 @@ import org.torproject.android.service.ITorServiceCallback; * an interface for calling on to a remote service */ interface ITorService { + /** - * Often you want to allow a service to call back to its clients. - * This shows how to do so, by registering a callback interface with - * the service. + * This allows Tor service to send messages back to the GUI */ void registerCallback(ITorServiceCallback cb); /** - * Remove a previously registered callback interface. + * Remove registered callback interface. */ void unregisterCallback(ITorServiceCallback cb); + /** + * Get a simple int status value for the state of Tor + **/ int getStatus(); + /** + * The profile value is the start/stop state for Tor + **/ void setProfile(int profile); + + /** + * Set configuration + **/ + boolean updateConfiguration (String name, String value, boolean saveToDisk); + + /** + * Set configuration + **/ + boolean saveConfiguration (); + + /** + * Get current configuration value from torrc + */ + String getConfiguration (String name); + } diff --git a/src/org/torproject/android/service/ITorServiceCallback.aidl b/src/org/torproject/android/service/ITorServiceCallback.aidl index 82df5027..86fe28f7 100644 --- a/src/org/torproject/android/service/ITorServiceCallback.aidl +++ b/src/org/torproject/android/service/ITorServiceCallback.aidl @@ -7,7 +7,13 @@ package org.torproject.android.service; */ oneway interface ITorServiceCallback { /** - * Called when the service has a new value for you. + * Called when the service has a something to display to the user */ void statusChanged(String value); + + /** + * Called when the service has something to add to the log + */ + void logMessage(String value); + } diff --git a/src/org/torproject/android/service/TorService.java b/src/org/torproject/android/service/TorService.java index 2341acee..60dcdb99 100644 --- a/src/org/torproject/android/service/TorService.java +++ b/src/org/torproject/android/service/TorService.java @@ -15,25 +15,28 @@ import net.freehaven.tor.control.ConfigEntry; import net.freehaven.tor.control.EventHandler; import net.freehaven.tor.control.TorControlConnection; +import org.torproject.android.AppManager; import org.torproject.android.Orbot; import org.torproject.android.R; +import android.app.AlertDialog; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.app.Service; import android.content.Context; import android.content.Intent; +import android.content.SharedPreferences; import android.os.IBinder; import android.os.RemoteCallbackList; import android.os.RemoteException; +import android.preference.PreferenceManager; import android.util.Log; public class TorService extends Service implements TorServiceConstants, Runnable, EventHandler { - private static int currentStatus = STATUS_READY; private TorControlConnection conn = null; @@ -44,7 +47,10 @@ public class TorService extends Service implements TorServiceConstants, Runnable private static final int MAX_START_TRIES = 3; - + private ArrayList configBuffer = null; + + private boolean hasRoot = false; + /** Called when the activity is first created. */ public void onCreate() { super.onCreate(); @@ -57,6 +63,7 @@ public class TorService extends Service implements TorServiceConstants, Runnable _torInstance = this; + hasRoot = TorServiceUtils.hasRoot(); } @@ -130,19 +137,19 @@ public class TorService extends Service implements TorServiceConstants, Runnable } - private void showToolbarNotification (String title, String notifyMsg, int icon) + private void showToolbarNotification (String notifyMsg, int icon) { NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); - CharSequence tickerText = title; + CharSequence tickerText = notifyMsg; long when = System.currentTimeMillis(); Notification notification = new Notification(icon, tickerText, when); Context context = getApplicationContext(); - CharSequence contentTitle = title; + CharSequence contentTitle = getString(R.string.app_name); CharSequence contentText = notifyMsg; Intent notificationIntent = new Intent(this, Orbot.class); @@ -189,7 +196,7 @@ public class TorService extends Service implements TorServiceConstants, Runnable catch (Exception e) { currentStatus = STATUS_OFF; - this.showToolbarNotification("Orbot", "Unable to start Tor", R.drawable.tornotification); + this.showToolbarNotification(getString(R.string.status_disabled), R.drawable.tornotification); Log.i(TAG,"Unable to start Tor: " + e.getMessage(),e); } } @@ -220,9 +227,11 @@ public class TorService extends Service implements TorServiceConstants, Runnable currentStatus = STATUS_READY; - showToolbarNotification ("Orbot","Tor is disabled",R.drawable.tornotificationoff); - sendCallbackMessage("Tor is disabled"); + + showToolbarNotification (getString(R.string.status_disabled),R.drawable.tornotificationoff); + sendCallbackMessage(getString(R.string.status_disabled)); + setupTransProxy(false); } @@ -254,7 +263,8 @@ public class TorService extends Service implements TorServiceConstants, Runnable if (conn != null) { try { - Log.i(TAG,"sending SHUTDOWN signal"); + logNotice("sending SHUTDOWN signal to Tor process"); + // conn.shutdownTor(arg0) conn.signal("SHUTDOWN"); } catch (Exception e) { Log.i(TAG,"error shutting down Tor via connection",e); @@ -269,7 +279,7 @@ public class TorService extends Service implements TorServiceConstants, Runnable while (procId != -1) { - Log.i(TAG,"Found Tor PID=" + procId + " - killing now..."); + logNotice("Found Tor PID=" + procId + " - killing now..."); String[] cmd = { SHELL_CMD_KILL + ' ' + procId + "" }; TorServiceUtils.doShellCommand(cmd,log, false, false); @@ -290,22 +300,6 @@ public class TorService extends Service implements TorServiceConstants, Runnable procId = TorServiceUtils.findProcessId(TorServiceConstants.PRIVOXY_INSTALL_PATH); } - /* - //removing this for now - if (_webProxy != null) - { - try - { - //shutdown web proxy - _webProxy.stop(); - _webProxy = null; - } - catch (Exception e) - { - Log.i(TAG,"error stopping web proxy",e); - } - }*/ - } private void logNotice (String msg) @@ -335,17 +329,17 @@ public class TorService extends Service implements TorServiceConstants, Runnable if (torBinaryExists && privoxyBinaryExists) { - logNotice("Tor, Privoxy, IPtables binaries installed!"); + logNotice(getString(R.string.status_install_success)); - this.showToolbarNotification("Orbot Installed!", "Tor was successfully extracted and installed", R.drawable.tornotification); + showToolbarNotification(getString(R.string.status_install_success), R.drawable.tornotification); } else { - logNotice("Binary install FAILED!"); - - this.showToolbarNotification("Orbot FAIL!", "The binaries were unable to be installed", R.drawable.tornotification); + + logNotice(getString(R.string.status_install_fail)); + showAlert(getString(R.string.title_error),getString(R.string.status_install_fail)); return false; } @@ -354,11 +348,11 @@ public class TorService extends Service implements TorServiceConstants, Runnable StringBuilder log = new StringBuilder (); - Log.i(TAG,"Setting permission on Tor binary"); + logNotice("Setting permission on Tor binary"); String[] cmd1 = {SHELL_CMD_CHMOD + ' ' + CHMOD_EXE_VALUE + ' ' + TOR_BINARY_INSTALL_PATH}; TorServiceUtils.doShellCommand(cmd1, log, false, true); - Log.i(TAG,"Setting permission on Privoxy binary"); + logNotice("Setting permission on Privoxy binary"); String[] cmd2 = {SHELL_CMD_CHMOD + ' ' + CHMOD_EXE_VALUE + ' ' + PRIVOXY_INSTALL_PATH}; TorServiceUtils.doShellCommand(cmd2, log, false, true); @@ -367,17 +361,19 @@ public class TorService extends Service implements TorServiceConstants, Runnable public void initTor () throws Exception { - + // android.os.Debug.waitForDebugger(); + currentStatus = STATUS_CONNECTING; - logNotice("Tor is starting up..."); - this.sendCallbackMessage("starting..."); + logNotice(getString(R.string.status_starting_up)); + + sendCallbackMessage(getString(R.string.status_starting_up)); killTorProcess (); checkTorBinaries (); - - + + new Thread() { @@ -401,6 +397,8 @@ public class TorService extends Service implements TorServiceConstants, Runnable { try { runTorShellCmd(); + + setupTransProxy(true); } catch (Exception e) { Log.i(TAG,"Unable to start Tor: " + e.getMessage(),e); @@ -440,7 +438,7 @@ public class TorService extends Service implements TorServiceConstants, Runnable { sendCallbackMessage("Couldn't start Tor process...\n" + log.toString()); Thread.sleep(1000); - sendCallbackMessage("Trying to start Tor again...\n" + log.toString()); + sendCallbackMessage(getString(R.string.status_starting_up)); Thread.sleep(3000); attempts++; } @@ -457,7 +455,7 @@ public class TorService extends Service implements TorServiceConstants, Runnable logNotice("Tor process id=" + procId); - showToolbarNotification("Orbot starting...", "Tor is running", R.drawable.tornotification); + showToolbarNotification(getString(R.string.status_starting_up), R.drawable.tornotification); initControlConnection (); } @@ -489,7 +487,7 @@ public class TorService extends Service implements TorServiceConstants, Runnable if (privoxyProcId == -1) { - this.sendCallbackMessage("Couldn't start Privoxy process... retrying...\n" + log); + logNotice("Couldn't start Privoxy process... retrying...\n" + log); Thread.sleep(3000); attempts++; } @@ -506,18 +504,16 @@ public class TorService extends Service implements TorServiceConstants, Runnable } - - - + /* public String generateHashPassword () { - /* + PasswordDigest d = PasswordDigest.generateDigest(); byte[] s = d.getSecret(); // pass this to authenticate String h = d.getHashedPassword(); // pass this to the Tor on startup. -*/ + return null; - } + }*/ public void initControlConnection () throws Exception, RuntimeException { @@ -534,7 +530,7 @@ public class TorService extends Service implements TorServiceConstants, Runnable conn = TorControlConnection.getConnection(s); // conn.authenticate(new byte[0]); // See section 3.2 - sendCallbackMessage(baseMessage + ' ' + getString(R.string.tor_process_connecting_step2)); + sendCallbackMessage(getString(R.string.tor_process_connecting_step2)); Log.i(TAG,"SUCCESS connected to control port"); @@ -542,13 +538,20 @@ public class TorService extends Service implements TorServiceConstants, Runnable byte[] cookie = new byte[(int)fileCookie.length()]; new FileInputStream(new File(TOR_CONTROL_AUTH_COOKIE)).read(cookie); conn.authenticate(cookie); - + Log.i(TAG,"SUCCESS authenticated to control port"); - sendCallbackMessage(baseMessage + ' ' + getString(R.string.tor_process_connecting_step3)); + sendCallbackMessage(getString(R.string.tor_process_connecting_step2) + getString(R.string.tor_process_connecting_step3)); addEventHandler(); + if (configBuffer != null) + { + conn.setConf(configBuffer); + //conn.saveConf(); + configBuffer = null; + } + break; //don't need to retry } catch (Exception ce) @@ -568,29 +571,6 @@ public class TorService extends Service implements TorServiceConstants, Runnable } - public void modifyConf () throws IOException - { - // Get one configuration variable. - List options = conn.getConf("contact"); - options.size(); - // Get a set of configuration variables. - // List options = conn.getConf(Arrays.asList(new String[]{ - // "contact", "orport", "socksport"})); - // Change a single configuration variable - conn.setConf("BandwidthRate", "1 MB"); - // Change several configuration variables - conn.setConf(Arrays.asList(new String[]{ - "HiddenServiceDir /home/tor/service1", - "HiddenServicePort 80", - })); - // Reset some variables to their defaults - conn.resetConf(Arrays.asList(new String[]{ - "contact", "socksport" - })); - // Flush the configuration to disk. - conn.saveConf(); - - } /* private void getTorStatus () throws IOException @@ -640,7 +620,7 @@ public class TorService extends Service implements TorServiceConstants, Runnable conn.setEventHandler(this); conn.setEvents(Arrays.asList(new String[]{ - "ORCONN", "CIRC", "NOTICE", "ERR"})); + "ORCONN", "CIRC", "NOTICE", "WARN", "ERR"})); // conn.setEvents(Arrays.asList(new String[]{ // "DEBUG", "INFO", "NOTICE", "WARN", "ERR"})); @@ -701,7 +681,7 @@ public class TorService extends Service implements TorServiceConstants, Runnable if (msg.indexOf(TOR_CONTROL_PORT_MSG_BOOTSTRAP_DONE)!=-1) { currentStatus = STATUS_ON; - showToolbarNotification ("Orbot","Tor is enabled",R.drawable.tornotification); + showToolbarNotification (getString(R.string.status_activated),R.drawable.tornotification); } @@ -709,6 +689,15 @@ public class TorService extends Service implements TorServiceConstants, Runnable } + private void showAlert(String title, String msg) + { + + new AlertDialog.Builder(this) + .setTitle(title) + .setMessage(msg) + .setPositiveButton(android.R.string.ok, null) + .show(); + } public void newDescriptors(List orList) { @@ -783,6 +772,8 @@ public class TorService extends Service implements TorServiceConstants, Runnable } + private Intent launchContext = null; + public IBinder onBind(Intent intent) { // Select the interface to return. If your service only implements // a single interface, you can just return it here without checking @@ -807,6 +798,7 @@ public class TorService extends Service implements TorServiceConstants, Runnable * The IRemoteInterface is defined through IDL */ private final ITorService.Stub mBinder = new ITorService.Stub() { + public void registerCallback(ITorServiceCallback cb) { if (cb != null) mCallbacks.register(cb); } @@ -820,10 +812,103 @@ public class TorService extends Service implements TorServiceConstants, Runnable public void setProfile (int profile) { setTorProfile(profile); - sendCallbackMessage(""); } + public String getConfiguration (String name) + { + try + { + if (conn != null) + { + StringBuffer result = new StringBuffer(); + + List listCe = conn.getConf(name); + + Iterator itCe = listCe.iterator(); + ConfigEntry ce = null; + + while (itCe.hasNext()) + { + ce = itCe.next(); + + result.append(ce.key); + result.append(' '); + result.append(ce.value); + result.append('\n'); + } + + return result.toString(); + } + } + catch (IOException ioe) + { + Log.e(TAG, "Unable to update Tor configuration", ioe); + logNotice("Unable to update Tor configuration: " + ioe.getMessage()); + } + + return null; + } + /** + * Set configuration + **/ + public boolean updateConfiguration (String name, String value, boolean saveToDisk) + { + try + { + if (conn != null) + { + conn.setConf(name, value); + + if (saveToDisk) + { + // Flush the configuration to disk. + //conn.saveConf(); //NF 22/07/10 this is crashing right now + } + + return true; + } + else + { + if (configBuffer == null) + configBuffer = new ArrayList(); + + configBuffer.add(name + ' ' + value); + } + } + catch (IOException ioe) + { + Log.e(TAG, "Unable to update Tor configuration", ioe); + logNotice("Unable to update Tor configuration: " + ioe.getMessage()); + } + + return false; + } + + public boolean saveConfiguration () + { + try + { + if (conn != null) + { + + + // Flush the configuration to disk. + //this is doing bad things right now NF 22/07/10 + //conn.saveConf(); + + return true; + } + } + catch (Exception ioe) + { + Log.e(TAG, "Unable to update Tor configuration", ioe); + logNotice("Unable to update Tor configuration: " + ioe.getMessage()); + } + + return false; + + } }; private ArrayList callbackBuffer = new ArrayList(); @@ -864,4 +949,40 @@ public class TorService extends Service implements TorServiceConstants, Runnable mCallbacks.finishBroadcast(); } + + private void setupTransProxy (boolean enabled) + { + + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); + + boolean enableTransparentProxy = prefs.getBoolean("pref_transparent", false); + boolean transProxyAll = prefs.getBoolean("pref_transparent_all", false); + + logNotice ("Transparent Proxying: " + enableTransparentProxy); + + if (enabled) + { + + + if (hasRoot && enableTransparentProxy) + { + + TorTransProxy.setDNSProxying(); + TorTransProxy.setTransparentProxyingByApp(this,AppManager.getApps(this),transProxyAll); + + } + else + { + TorTransProxy.purgeNatIptables(); + + } + } + else + { + if (hasRoot) + { + TorTransProxy.purgeNatIptables(); + } + } + } } diff --git a/src/org/torproject/android/service/TorServiceConstants.java b/src/org/torproject/android/service/TorServiceConstants.java index 1d193be6..a0b7ed1a 100644 --- a/src/org/torproject/android/service/TorServiceConstants.java +++ b/src/org/torproject/android/service/TorServiceConstants.java @@ -6,10 +6,12 @@ public interface TorServiceConstants { public final static String TAG = "TOR_SERVICE"; + public final static String TOR_APP_USERNAME = "org.torproject.android"; + //home directory of Android application - public final static String TOR_HOME = "/data/data/org.torproject.android/"; + public final static String TOR_HOME = "/data/data/" + TOR_APP_USERNAME + "/"; - public final static String TOR_HOME_DATA_DIR = TOR_HOME + "cache/"; + public final static String TOR_HOME_DATA_DIR = TOR_HOME + "data/"; //name of the tor C binary public final static String TOR_BINARY_ASSET_KEY = "tor"; diff --git a/src/org/torproject/android/service/TorServiceUtils.java b/src/org/torproject/android/service/TorServiceUtils.java index ebc36557..ada14271 100644 --- a/src/org/torproject/android/service/TorServiceUtils.java +++ b/src/org/torproject/android/service/TorServiceUtils.java @@ -21,94 +21,10 @@ import android.util.Log; public class TorServiceUtils implements TorServiceConstants { - private static TorifiedApp[] apps = null; private final static String PREFS_KEY = "OrbotPrefs"; private final static String PREFS_KEY_TORIFIED = "PrefTord"; - public static void saveAppSettings (Context context) - { - if (apps == null) - return; - - final SharedPreferences prefs = context.getSharedPreferences(PREFS_KEY, 0); - - StringBuilder tordApps = new StringBuilder(); - - for (int i = 0; i < apps.length; i++) - { - if (apps[i].isTorified()) - { - tordApps.append(apps[i].getUsername()); - tordApps.append("|"); - } - } - - Editor edit = prefs.edit(); - edit.putString(PREFS_KEY_TORIFIED, tordApps.toString()); - edit.commit(); - - } - - public static TorifiedApp[] getApps (Context context) - { - if (apps != null) - return apps; - - final SharedPreferences prefs = context.getSharedPreferences(PREFS_KEY, 0); - - String tordAppString = prefs.getString(PREFS_KEY_TORIFIED, ""); - String[] tordApps; - - StringTokenizer st = new StringTokenizer(tordAppString,"|"); - tordApps = new String[st.countTokens()]; - int tordIdx = 0; - while (st.hasMoreTokens()) - { - tordApps[tordIdx++] = st.nextToken(); - } - - Arrays.sort(tordApps); - - //else load the apps up - PackageManager pMgr = context.getPackageManager(); - - List lAppInfo = pMgr.getInstalledApplications(0); - - Iterator itAppInfo = lAppInfo.iterator(); - - apps = new TorifiedApp[lAppInfo.size()]; - - ApplicationInfo aInfo = null; - - int appIdx = 0; - - while (itAppInfo.hasNext()) - { - aInfo = itAppInfo.next(); - - apps[appIdx] = new TorifiedApp(); - - apps[appIdx].setEnabled(aInfo.enabled); - apps[appIdx].setUid(aInfo.uid); - apps[appIdx].setUsername(pMgr.getNameForUid(apps[appIdx].getUid())); - apps[appIdx].setProcname(aInfo.processName); - apps[appIdx].setName(pMgr.getApplicationLabel(aInfo).toString()); - - // check if this application is allowed - if (Arrays.binarySearch(tordApps, apps[appIdx].getUsername()) >= 0) { - apps[appIdx].setTorified(true); - } - else - { - apps[appIdx].setTorified(false); - } - - appIdx++; - } - - return apps; - } public static int findProcessId(String command) { diff --git a/src/org/torproject/android/service/TorTransProxy.java b/src/org/torproject/android/service/TorTransProxy.java index 8c93cc8e..f2315823 100644 --- a/src/org/torproject/android/service/TorTransProxy.java +++ b/src/org/torproject/android/service/TorTransProxy.java @@ -93,7 +93,7 @@ public class TorTransProxy { } } - public static boolean setTransparentProxying(Context context, TorifiedApp[] apps) { + public static boolean setTransparentProxyingByApp(Context context, TorifiedApp[] apps, boolean forceAll) { String command = null; @@ -101,14 +101,24 @@ public class TorTransProxy { final StringBuilder script = new StringBuilder(); + StringBuilder res = new StringBuilder(); + int code = -1; + try { - int code; + for (int i = 0; i < apps.length; i++) { - - if (apps[i].isTorified()) + if (forceAll || apps[i].isTorified()) { + + if (apps[i].getUsername().equals(TorServiceConstants.TOR_APP_USERNAME)) + { + Log.i(TAG,"detected Orbot app - will not transproxy"); + + continue; + } + Log.i(TAG,"enabling transproxy for app: " + apps[i].getUsername() + "(" + apps[i].getUid() + ")"); //TCP @@ -129,17 +139,16 @@ public class TorTransProxy { } } - StringBuilder res = new StringBuilder(); String[] cmd = {script.toString()}; code = TorServiceUtils.doShellCommand(cmd, res, true, true); - String msg = res.toString(); - Log.e(TAG, msg); + String msg = res.toString(); + Log.e(TAG, msg); } catch (Exception e) { - Log.w(TAG, "error refreshing iptables: " + e); + Log.w(TAG, "error refreshing iptables: err=" + code + "; resp=" + res.toString(), e); } return false; }