Addons (1 comment)
Currently, two addons are shipped by default.
The folder layout was changed from including the xpi's in the repo to moving it out into a submodule(https://github.com/amoghbl1/orfox-addons).
Mobile mode changed back to the way it was, after the discussion about fingerprinting regardless of the UA that Orfox uses.
We have started a wiki page to answer questions about Orfox: Orfox_vs_Tor_Browser_FAQ
How is Orfox different than Tor Browser for desktop?
Orfox is built from the same source code as Tor Browser, but with a few minor modifications to the privacy enhancements to make them compatible with Android.
- The Orfox code repository is at https://github.com/guardianproject/tor-browser and the Tor Browser repository is here: https://gitweb.torproject.org/tor-browser.git/
- Orfox is built from the Tor Browser repo based on ESR38 (https://dev.guardianproject.info/issues/5146 https://dev.guardianproject.info/news/221) and has only two modified patches that were not relevant/necessary for Android
- Orfox includes a "Request Mobile Site" option that allows you to change the user-agent from the standard Tor Browser agent to a modified android/mobile one: "Mozilla/5.0 (Android; Mobile; rv:31.0) Gecko/20100101 Firefox/31.0". (https://dev.guardianproject.info/issues/5404)
How is Orfox different than Firefox for Android?
- Beyond the core Tor Browser components, Orfox also must ensure all Android-specific code is properly routed through the Tor proxy, and otherwise hardened to protect against data and privacy leaks.
- Orfox adds patches at the Java/Android app layer to enable proxying of all Java network/HTTP communications through the local Orbot HTTP proxy (localhost:8118). SOCKS proxying is not supported by default so more work needs to be done to enable that, but for now HTTP proxying is acceptable. (https://dev.guardianproject.info/issues/5235 https://dev.guardianproject.info/issues/5317)
Orfox removes the Android permissions for Contacts, Camera, Microphone, Location and NFC (https://dev.guardianproject.info/issues/3822)
I've modified the "Request Desktop Site" checkbox from the original fennec to "Request Mobile Site", this uses a different user agent-
"Mozilla/5.0 (Android; Mobile; rv:31.0) Gecko/20100101 Firefox/31.0".
This user agent has been added into check as well, therefore, the new build will identify to be the tor browser bundle on https://check.torproject.org even in the mobile mode.
arlora voiced concerns about this specific user agent and whether using this unusual one would make it easier to say that the browser was Orfox, I think this matter needs to be investigated further.
Removed the following permissions:
Accounts, Sync permissions
Need more info with:
Run at Startup
Install Shortcut, system settings, uninstall shortcuts
Removing the accounts and sync part might be harder than the current ones, working on that now.
Building on Jenkins (1 comment)
The build issues with jenkins has now been fixed and I think we're ready to ship out an alpha.
Work on permissions continues.
Rebranding complete (2 comments)
Today, I've been working on rebranding and got that done, but a few extra files are required since last times rebranding. Here's a list:
Here's the link for the new rebranded version == https://dev.guardianproject.info/attachments/download/1683/fennec-38.0.en-US.android-arm.apk
Java layer Proxying fixed (2 comments)
- mobile/android/base/favicons/LoadFaviconTask used apache.net.http.* and org.apache.http.*, this was migrated to the ch.boye library and Proxy has been applied to that connection.
- mobile/android/base/sync/net/BaseResource.java uses the ch.boye library but without proxy, this has been updated to use the tor proxy.
- Next finding was that the java.net.HttpURLConnection objects were not obeying the proxy rules either and all these calls have been modified to use the tor proxy. List of files modified in this manner:
The proxy rules being followed by Searcan be easily tested using the following steps.
Install the old app with noRootFirewall pre installed.
Click Yes in the would you like to turn on search suggestions part
At this point, the noRootFirewall app will see a request from Fennec amoghbl1
Uninstall and reinstall the new app.
Follow the same procedure described above and click yes, but this time the suggestions load and no requests are seen on noRootFirewall
Another fun fact, the new version also strips out native video casting support and things like that, so it's about 3mb smaller!
The android app doesn't use the browser/app/profile configs and hence I've moved 000-tor-browser.js located there into the mobile/android/app/mobile.js file.
I tried to add the js config as a separate file and make changes in the moz.build file but for some reason, didn't see that reflected in the app's config. Currently I've just appended all the settings, maybe a better way to do this can be figured out later.
Some configurations used in the https://github.com/guardianproject/OrfoxGeckoView repo are not present in this version, the right blend of configurations needs to be decided after further testing and discussions.
Fixed 4.4 Crash (1 comment)
The apk build on the orfox-tb_GECKO380esr_2015050513_RELBRANCH branch caused a crash in android 4.4 devices.
After a lot of testing, I figured that the file causing this was the XPCOMInit.cpp file. Replacing that produces an apk that runs fine on my old device but I need someone to review this.
Current orfox branch is therefore an exact copy of the tor-dev branch with the exception of two files. I think it's fine to move on to the java layer now, I shall come back to the changes in those files if needed on a later date.
The repo doesn't build right now on the jenkins server though, "You must download Google Play Services to build with native video casting support enabled. Run the Android SDK tool and install Google Play Services under Extras. See http://developer.android.com/google/play-services/setup.html for more info. (looked for /opt/android-sdk/extras/google/google_play_services/libproject/google-play-services_lib/libs/google-play-services.jar)" seems to be the problem, will figure out how to switch this off with the mozilla team and update it soon.
After more work on the patches and builds, I finally boiled it down to one file.
toolkit/xre/nsXREDirProvider.cpp seemed to be the one that causes problems. It was modified as a fix for https://trac.torproject.org/projects/tor/ticket/9173 . The current repo produces a working app when that file is replaced with an earlier file from the esr38release branch.
Currently I'm leaving the issue with that file at that and moving on to fixing the app for pre 5.0 which currently causes a crash. Discussion with the tbb-dev team about this is underway.
Current branch can be found at https://github.com/amoghbl1/tor-browser/tree/orfox-tb_GECKO380esr_2015050513_RELBRANCH . The Orfox repo is being updated in parallel as well to keep it up with building on the Jenkins server.
Also available in: Atom