From 842f84e788c6641362a047c2cd34cbc7060336b4 Mon Sep 17 00:00:00 2001 From: n8fr8 Date: Wed, 9 May 2012 23:08:00 -0400 Subject: [PATCH] added docs folder and readme's --- docs/GSoC.txt | 45 ++++++++++++++++++++++++ docs/WALKTHROUGH | 90 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 135 insertions(+) create mode 100644 docs/GSoC.txt create mode 100644 docs/WALKTHROUGH diff --git a/docs/GSoC.txt b/docs/GSoC.txt new file mode 100644 index 00000000..d1d851e1 --- /dev/null +++ b/docs/GSoC.txt @@ -0,0 +1,45 @@ +GSoC Plan +========= + +A tl;dr version +--------------- +I will be improving the Orbot UI/UX, and adding several features such as data statistics and also +implementing the TorCheck API. I plan on extending the ORLib library and also creating an ORLib enabled +app as a sort of primer for other third party apps to follow + +The full version +---------------- + +Orbot UI/UX +=========== +At the moment, the Orbot UI/UX is clustered and not very intuitive. I plan on improving the existing +elements of the UI and also add a variety of new features such as + +* A new Set – up Wizard ( which checks for iptables ) +* Changes to the preferences ( should be made to follow the Android guidelines) + +Orbot Core app work +=================== +At the moment, Orbot displays a successful connection without actually checking the connection. This is a +pressing issue, because the user is not notified if the set-up has failed, unless he/she manually checks +the torcheck web service. This should be made automatic by making using of the TorCheck API. Also, Orbot +should be configured to show more information about the data being transmitted such as - + +* Amount of data transferred +* Quality of the connection +* Number of circuits connected + +ORLib +===== +Currently, ORLib is very minimal at the moment, both in term of features and support/documentation. ORLib +is very critical to the use of Orbot as it provides transparent proxying on non-rooted devices ( A major +chunk of android phones are un-rooted). I intend to - + +* Improve the existing library by adding additional features + * Check for existing of Orbot + * Check status of connection to Tor + * Provide option to start Orbot via intent +* Request hidden service by port, and get return hidden service .onion address +* Create an ORLib enabled “Twitter, Status.net or other micro blogging Client” – A sort of primer for + third-party apps +* Improve the documentation diff --git a/docs/WALKTHROUGH b/docs/WALKTHROUGH new file mode 100644 index 00000000..c3107e65 --- /dev/null +++ b/docs/WALKTHROUGH @@ -0,0 +1,90 @@ + +. +└── org + └── torproject + └── android + ├── AppManager.java + //this is what helps us track the app-by-app torification + //and gets the app name, icon, etc for display - we have some problems here + //in normalizing the icon on the list label + //some of this code came originally from DroidWall project (yay open source) + + ├── boot + │ └── OnbootBroadcastReceiver.java + //i think this is a dup now and should be removed + + ├── HiddenServiceManager.java + //empty! but at some point i thought it would be good to aggregate HS functions here + + ├── OnBootReceiver.java + //this is the class registered in AndroidManifest.xml to handle Onboot events + //to start Orbot/Tor when the device boots if the user has elected to do so - what kind of permissions does this require? + // + // BTW, this shows up as a fairly unintrusive type perm request now in Android / in older versions (1.6 and earlier) + // it was reported "as read / monitor phone state" and paranoid Tor-types didn't like the idea of it + // in 1.6+ it has a much better UX in terms of having a more granular permisions around boot since it is a very + // common request - ah , that's awesome, i think i remember seeing sth of this sorts when i was going through the guardianproject mailing list. iirc this is something ioerror wanted + + + ├── Orbot.java + //our wonderful main activity! + + ├── ProcessSettingsAsyncTask.java + //this was just added in 1.0.5.x, but it was meant to help stop the UI blocking while processing settings and prefs + //it uses the AsyncTask feature of Android, which seems to work pretty well + //for this type of non-time critical function you just want to happen in the background at some point soon-ish + + ├── SettingsPreferences.java + // Settings activity that loads the res/xml/preferences.xml resource up + // has some custom event handlng, onActivityResult callback result code's as well + // basically meant to tell Orbot activity if critical settings have been modified and whether + // those new settings should be applied (like iptables/transproxy changes) + + ├── TorConstants.java + // globals! well, constants! but yeah, just a place to put values we use a lot + + ├── TorifiedApp.java + // object to store a single app's metadata for display in UI and for transproxy process + + ├── Utils.java + // random methods that can be useful, a.k.a. another place to put stuff + + ├── WizardActivity.java + // our original attempt at wizard activity that didn't get far + + └── WizardHelper.java + // the helper class that manages the dialog based wizard + + ├── service //okay the Service subpackage! + + │ ├── Api.java + //this is more code taken from DroidWall, that needs to be cleaned up and paired down to just what we need it for + //this is related to 1.0.5.x changes with how we bundle and install our C binaries (tor, privoxy and iptables) + + │ ├── ITorService.aidl + // the android remote interface definition file; + // this is the remote interface which the Orbot activity gets a reference to + // and that in the TorService is instantiated as the "binder" + + │ ├── ITorServiceCallback.aidl + // this is the callback interface that the Orbot activity instantiates, and passes + // to the ITorService; reverse of ITorService in a sense + + │ ├── TorBinaryInstaller.java + // this handles installation of binaries; uses Api.java; // tied into Wizard as well + + │ ├── TorServiceConstants.java + // reusable constants for just the Service package + + │ ├── TorService.java + // the main might powerful service class; Orbot and TorService are the front and backends of this whole app + // should run as a remote service, but the manifest doesn't seem to indicate that at the moment + + │ ├── TorServiceUtils.java + //utility methods for the service; specificaly check for root and tools for finding processID of background binaries + + │ └── TorTransProxy.java + // all the code for iptables transproxying management + + +