ABCDEFGHIJKLMNOPQRSTUVWXYZAAABACADAEAF
1
Q1 (August, Sept, Oct 2017)Q2 (Nov, Dec 2017 - January 2018)
Q3 (Feb, March, April 2018)
Q4 (May, June, July 2018)Q5 (August, Sept, Oct 2018)Q6 (Nov, Dec 2018 - Jan 2019)
Q7 (Feb, March, April 2019)
Q7 (May, June, July 2019) Q8 (August, Sept, Oct 2019)Q9 (Nov, Dec 2019 )Post-Project
2
Month 1 - augustMonth 2 - setpMonth 3 - octMonth 4 -novMonth 5 - decMonth 6Month 7Month 8Month 9Month 10Month 11Month 12Month 13Month 14Month 15Month 16Month 17Month 18Month 19Month 20Month 21Month 22Month 23Month 24Month 25Month 26Month 27Month 28Month 29
3
Objective O1: Build a Tor Browser for Android to empower mobile users to safely, anonymously, and securely interact with Internet resources and services.
4
Activity O1.1 Build a Tor Browser for Android with functionality, build processes, release schedules, security, censorship circumvention, and usability in parity with desktop Tor Browser.(Includes adding Tor Launcher and updating to latest FF ESR.) Port Torbutton; research cross- compilation options

Research state of Orfox.
Port Torbutton

Start integrating Tor Browser for Android into build system
Review installation/user stats from Play Store.

Review network connections/ country.

Review Play Store usability feedback.
Port Torbutton finish build integration.Fix reproducibility issues.Review network connections/ country.

Review Play Store usability feedback.

Review installation/user stats from Play Store.
Get first alpha releases out and integrate feedback

Check Google Play Store for app availability
Check Google Play Store for app availability

Work on integrating feedback from users

Further bundle refinement
Check Google Play Store for app availability.

Review installation/user stats from Play Store.

Confirm concurrent desktop/mobile releases.

Review network connections/country.

Review Play Store usability feedback.
Check Google Play Store for app availability

Bug fixing
Check Google Play Store for app availability

Bug fixing
Check Google Play Store for app availability.

Confirm concurrent desktop/mobile releases.

Review network connections/country.

Review installation/user stats from Play Store.

Review Play Store usability feedback.
Review Play Store usability feedback.Review Play Store usability feedback.Review Play Store usability feedback.Review Play Store usability feedback.Review Play Store usability feedback.Review Play Store usability feedback.Review Play Store usability feedback.Review Play Store usability feedback.Review Play Store usability feedback.
5
Activity O1.2 Research and possibly develop Android-specific fingerprinting defenses for Tor Browser for Android.Audit/prioritize mobile patch needs.Review/ prioritize work tickets for mobile browser.Test fingerprinting defenses.Release patchesRelease patchesTest fingerprinting defenses.Release patchesRelease patchesTest fingerprinting defenses.Release patchesRelease patchesTest fingerprinting defenses.
6
Activity O1.3: Work with Mozilla to merge built defenses back into Firefox Mobile.Upstream patches and help getting them integratedUpstream patches and help getting them integratedReview Moz. Bug Tracker for submission status.Upstream patches and help getting them integratedUpstream patches and help getting them integratedReview Moz. Bug Tracker for submission status.Upstream patches and help getting them integratedUpstream patches and help getting them integratedReview Moz. Bug Tracker for submission status.Upstream patches and help getting them integratedUpstream patches and help getting them integratedReview Moz. Bug Tracker for submission status.Review Moz. Bug Tracker for submission status.Review Moz. Bug Tracker for submission status.Review Moz. Bug Tracker for submission status.Review Moz. Bug Tracker for submission status.Review Moz. Bug Tracker for submission status.Review Moz. Bug Tracker for submission status.
7
Objective O2: Specifically lower the barriers to secure, anonymous interactions for mobile users with limited bandwidth, slow networks, and low-power devices.
8
Activity O2.1 Enable standalone use of Tor Browser for Android without separate Orbot installation.Port Tor Launcher.Port Tor Launcher.Investigate Orbot functionalityFix Orbot bugs that prevent integrationPort Tor Launcher and integrate OrbotBug fixingBug fixingTest confirm integrated browser connection to Tor.Review Play Store usability feedback.Review Play Store usability feedback.Review Play Store usability feedback.Review Play Store usability feedback.
9
O2.2 Improve usability of the Tor Browser for Android, relative to Orfox, including anti-censorship bridges.Complete in-app terminology and language updates.Reduce steps and increase progress visibility in Tor Network connections.Bug fixingBug fixingAdd opt-in automation for bridge selection.Bug fixingBug fixingBug fixingReview Play Store usability feedback.Review Play Store usability feedback.Review Play Store usability feedback.
10
Activity O2.3 Improve software architecture to reduce app size, reduce processing overhead (related to speed and power consumption), and increase app stability on low-RAM devices.All developers able to use OrFox begin doing so, for first-hand experience.

Informal survey of app providers and users to confirm felt bottlenecks.

Review Play Store usability feedback.
Instrument Tor to report wake/sleep, CPU requirements.

Collate results; draft requirements; identify other needed instrumentation.
Instrument Tor to report new relevant metrics.

Test network speed (downloads, Shadow).

Identify resource/performance bottlenecks for mobile users.
Development: reduce resource/performance bottlenecks.Development: reduce resource/performance bottlenecks.Development: reduce resource/performance bottlenecks.

Test network speed (downloads, Shadow).

Review Play Store usability feedback.
Based on 6-month results, re-identify bottlenecks.

Bugfixing and follow-ups as needed on earlier development.

Continue to identify/reduce.
Development: reduce resource/performance bottlenecks.

Bugfixing and follow-ups as needed on earlier development.
Development: reduce resource/performance bottlenecks.

Software bugfix and follow-up, as needed.

Test network speed (downloads, Shadow).

Review Play Store usability feedback.
If any unexpected bottlenecks found in last round of testing, solve them.

Bugfixing and follow-ups as needed on earlier development.
Development: Continue clean-up and testing.Test network speed (downloads, Shadow).

Review Play Store usability feedback.

Continue clean-up and testing; identify areas for future work.
Review Play Store usability feedback.Review Play Store usability feedback.Review Play Store usability feedback.Review Play Store usability feedback.Review Play Store usability feedback.Review Play Store usability feedback.Review Play Store usability feedback.Review Play Store usability feedback.Review Play Store usability feedback.
11
Activity O2.4 Improve the Tor Network’s controller interface to allow mobile apps to better control bandwidth and battery use.Contact application developers; informal survey; gather requirementsCollate results; draft requirements.Complete first round of design proposals

Stability/stress testing.
Development: create interface code; make it stable (not functional yet)Development: improve, debug interface code.Stability/stress testing.

Finalize interface.

Contact application developers; promote use of interface.

Development: improve actual control of bandwidth/CPU.
Development: improve actual control over bandwidth/cpuStability/stress testing.

Development: improve actual control over bandwidth/cpu
Development: improve actual control over bandwidth/cpuBugfixing and follow-ups as needed on earlier development.
Stability/stress testing.

Clean-up; testing; identify areas for future work.
Prep-outreach to app developers for feedback on error reportingPrep-report based on feedback from app developersPrep-outreach to app developers for feedback on error reportingPrep-report based on feedback from app developersPrep-outreach to app developers for feedback on error reportingPrep-report based on feedback from app developersPrep-outreach to app developers for feedback on error reportingPrep-report based on feedback from app developersPrep-outreach to app developers for feedback on error reporting
12
Activity O2.5 Enable better reporting of network and connection errors to apps that use Tor Network.Contact application developers; informal survey; gather requirementsCollate results; draft requirements.Complete first round of design proposals.

Confirm network error reporting (per release).
Feedback from application developers; confirm acceptanceDevelopment: create interface code; make it stable.Confirm network error reporting (per release).

Development: improve, debug interface code.
Finalize interface code.

Begin porting management / error logic to new interface code

Begin experimental application integration with new API.
Continue porting management / error logic to new interface code: reach usable minimum version.Confirm network error reporting (per release).

Testing, debugging.
Revisions as needed, based on experience with integration.

Continued testing, debugging, integration.
Revisions as needed, based on experience with integration.

Continued testing, debugging, integration.
Confirm network error reporting (per release).

Clean-up; testing; identify areas for future work.
Prep-outreach to app developers for feedback on error reportingPrep-report based on feedback from app developersPrep-outreach to app developers for feedback on error reportingPrep-report based on feedback from app developersPrep-outreach to app developers for feedback on error reportingPrep-report based on feedback from app developersPrep-outreach to app developers for feedback on error reportingPrep-report based on feedback from app developersPrep-outreach to app developers for feedback on error reporting
13
Objective O3: Restructure sections of the Tor network codebase to enable developers to build censorship-resistant mobile apps that run on Tor.
14
Activity 03.1:
Redesign our module interactions and their documentation.
Begin writing documentation as described in June 2018 below.

Write up design document explaining unknowns for Rust dependencies in Tor
Draft of planned modularization design: sketch the ideal set of modules that we'd like to have, and how they should interact.

Build an object model of Tor as it SHOULD be, and of how it actually is. Both should be public and documented.
Finish "low-hanging-fruit" from original draftFurther improvements and simplifications, based on planned designs and developer feedback. Further improvements and simplifications, based on planned designs and developer feedback. Further improvements and simplifications, based on planned designs and developer feedback. Further improvements and simplifications, based on planned designs and developer feedback. Further improvements and simplifications, based on planned designs and developer feedback.
15
Activity 03.2: Refactor modules, making them more resilient and segregated.Identify factors that make some areas easier to modularize than others- i.e, test coverage, well-defined apis, isolated dependenices, etc.]

Identify easiest areas ('low-hanging fruit') to improve modular separation

Identify modules that should be optional.
Begin work on "low-hanging fruit" items from earlier draftsFinish "low-hanging-fruit" from original draftDirectory authority functionality is optional at compile-time.

Many relay-only modules are optional.
All relay-only modules are optional.

Initial support for in-process pluggable transports, if desired.
Further module refcactoring; more modules optional, based on application-developer feedback.Further module refcactoring; more modules optional, based on application-developer feedback.Further module refcactoring; more modules optional, based on application-developer feedback.Further module refcactoring; more modules optional, based on application-developer feedback.
16
Activity 03.3: Create and deploy a system to incorporate modules written in higher-level languages.Tor 0.3.3 ships, with some components optionally in RustTor 0.3.4 ships, with more components modularized and optionally in Rust.IF NO BLOCKERS ARE IDENTIFIED, 0.3.5 is the first Tor version to build with Rust by default. It remains optional.

Directory authority operation is written in Rust.
Apr 2019:
- IF NO BLOCKERS ARE IDENTIFIED, 0.3.6 is the first Tor version to depend on Rust.
Based on previous experience, more modules written in rust, and/or more blocking issues resolvedBased on previous experience, more modules written in rust, and/or more blocking issues resolvedBased on previous experience, more modules written in rust, and/or all blocking issues resolved
17
Activity 03.4: Create a system for isolating existing modules into separate processes.Begin work on list described in Month 11 below.Complete a list of underlying abstractions we will need to better factor our code. This might be message-passing; publish/subscribe; reference-counting with weak-references; top-level deferred jobs; futures; or who knows what else.

Identify where we can possibly leverage Rust features or external Rust crates for these underlying abstractions.
Have tools written to confirm how well Tor conforms (or doesn't) to intended modularizationComplete design writeup for multi-process isolation design, including abstractions, target modules, and threat models. This design must include plans for handling mobile platforms correctly.Backend implementations for multiprocess isolation are complete and well-documented.Multiprocess isolation in use for at least one target module (e.g., parsing, key management, etc)
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100