added docs folder and readme's
This commit is contained in:
parent
da061f40e3
commit
842f84e788
|
@ -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
|
|
@ -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?
|
||||||
|
// <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
|
||||||
|
// 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
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue