Repository navigation
ShadowSocks support - #1688
ShadowSocks support#1688
Conversation
|
Even if we can not build the rust binaries within Orbot, could you still give more details on how its built? |
|
I think under Outbound Proxy Type, there should be an additional default radio button set to disabled. |
@tladesignz i also would like to see this, could you please commit a markdown file (or something similar) that explains the process you used. EDIT: I just added a script |
…lude shadowsocks and all options are listed below anyway
|
I made some small UI tweaks to the dialog... |
|
Since we are including the binaries directly, I made sure that the new |
…cks Configuration URL
|
Well this works, but yeah that approach is unfortunately pretty bad (to no fault of your own). Seems as if the But yeah, this works. I tweaked some small UI stuff, made a script to compile the rust code just to provide a way to get the binaries should we never need to modify them, and tested around it a bit. Feel free to merge it whenever you're ready. |
|
@bitmold I've made a few adjustments to the build script. |
|
When initially setting up an Outbound Proxy, there are no default types set. When the user wants to disable the Outbound Proxy, they must remove the host? Would it not be better if there was a way to just enable and disable the Outbound Proxy via the Type without having to remove the host? |
Well, it was documented somewhat inside the
True that. I'll add it.
These are all viable improvements. I'll add them. I currently have one problem with the build script: The fork? Why? Does the elevated minimal API seriously justify decoupling from the development of the original? I feel, not. Please let me know, what the reasoning behind that was, @bitmold. |
…ries: - Improved robustness. - Do not execute rustup-install script from foreign location, let user decide where to get rustup. - Shallow clone *original* source. - Simplified result copy. - Use log file for build command output.
|
Regarding my build script changes:
|
… other languages than English.
…oxy_type` selection, to be able to switch off the proxy without having to edit the host or shadowsocks URL fields.
all reasonable, was mostly just trying to get my bearings with it. |
The fork is not needed, thanks for reverting it back to the canonical repository. at the time I was toying with trying to make modifications to integrate shadowsocks-android with gradle (on my fork) but quickly saw that this was nontrivial, my fork in the script was leftover from that aborted experiment. We can use the canonical shadowsocks-android. It's worth noting here for posterity that we are hardly using In a slightly-more ideal world, Orbot would just have |
Positively, yes. The architecture of having the build system for one target of a lib residing in another repo is plain stupid, but I'd rather want to wait until somebody other will do the annoying work of fixing this. |
|
./build_shadowsocks.sh: 11: set: Illegal option -o pipefail I just changed it to: -#!/bin/sh Edit: The issue is actually that pipefail is a bash only feature and we set |
…tu, due to usage of pipefail
Sorry! Worked on my machine. 🤷🥴 |
…nd proxy set and connect with obsf4
… have an outbound proxy set and connect with obsf4
This implements #1684.
The ShadowSocks Rust binary is packaged as a pseudo-library and executed as a subprocess.
The binaries are provided within this commit as the build process is rather involved and cannot be reproduced within our project, as the used "org.mozilla.rust-android-gradle.rust-android" Gradle plugin is outdated and does not support Gradle 9 and newer.
Unfortunately, there's currently no implementation of a ShadowSocks client which exposes a proper library API and isn't super-complicated. (Like Outline's is.)
The configuration is super simple:
Select "ShadowSocks" as a proxy, copy the
ss://…URL into the now showing config entry field. Start Tor.I explicitly didn't implement single fields for each SS proxy argument, as typically the keys are auto-generated and super complicated to type, and the encryption options are many and not easy to understand.
The easiest thing to get such a config URL into that entry field is by using a QR code, scanning it and copy-paste it.