Make a Cross-Platform Portable Browser Bundle
Tor Browser all ready supports being run as a portable browser from a USB drive, however, this creates a directory that's only compatible with one operating system.
I was recently thinking I could make a cross-platform portable instance (for Windows and Linux with shared data) by just copying the Linux folder on top of the extracted windows directory, however, I found there were several file conflicts,
Browser/dependentlibs.list List of depencices
Browser/omni.ja which is a binary file
Browser/precomplete which appears to be performing some platform-specific cleanup
Browser/tbb_version.json
- Windows ->
{"version":"9.5.3","architecture":"win64","channel":"release","locale":"en-US"}
- Linux ->
{"version":"9.5.3","architecture":"linux64","channel":"release","locale":"en-US"}
Browser/updapter.ini windows has an extra section containing
; IMPORTANT: This file should always start with a newline in case a locale
; provided updater.ini does not end with a newline.
; Application to launch after an update has been successfully applied. This
; must be in the same directory or a sub-directory of the directory of the
; application executable that initiated the software update.
[PostUpdateWin]
; ExeRelPath is the path to the PostUpdateWin executable relative to the
; application executable.
ExeRelPath=uninstall\helper.exe
; ExeArg is the argument to pass to the PostUpdateWin exe
ExeArg=/PostUpdate
Browser/browser/omni.ja binary file again but not the same size as the root version
Browser/TorBrowser/Data/Tor/torrc-defaults identical except for two lines on Windows and Linux
Windows
ClientTransportPlugin meek_lite,obfs2,obfs3,obfs4,scramblesuit exec TorBrowser\Tor\PluggableTransports\obfs4proxy.exe
## snowflake configuration
ClientTransportPlugin snowflake exec TorBrowser\Tor\PluggableTransports\snowflake-client.exe -url https://snowflake-broker.azureedge.net/ -front ajax.aspnetcdn.com -ice stun:stun.l.google.com:19302
Linux
ClientTransportPlugin meek_lite,obfs2,obfs3,obfs4,scramblesuit exec ./TorBrowser/Tor/PluggableTransports/obfs4proxy
## snowflake configuration
ClientTransportPlugin snowflake exec ./TorBrowser/Tor/PluggableTransports/snowflake-client -url https://snowflake-broker.azureedge.net/ -front ajax.aspnetcdn.com -ice stun:stun.l.google.com:19302
The only difference is the exec path syntax, this could likely be unified, in some way.
It would be nice if a fully cross-platform Portable Tor Browser Directory could be created, such that the user data is shared, an launcher links provide for each platform. Also to be considered is all version of the browser should be updated together, this implies creating a special multiple platform version which contains binaries for Windows, Linux and Mac, such that updating on any platform, would update all the binaries.