[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: [tor-bugs] #28672 [Obfuscation/Snowflake]: Android reproducible build of Snowflake
#28672: Android reproducible build of Snowflake
-------------------------------------------------+-------------------------
Reporter: dcf | Owner: (none)
Type: project | Status: new
Priority: Medium | Milestone:
Component: Obfuscation/Snowflake | Version:
Severity: Normal | Resolution:
Keywords: tbb-mobile, tbb-rbm, | Actual Points:
TorBrowserTeam201904, GeorgKoppen201904 |
Parent ID: #19001 | Points:
Reviewer: | Sponsor:
| Sponsor19
-------------------------------------------------+-------------------------
Comment (by gk):
Replying to [comment:9 dcf]:
> Replying to [comment:6 gk]:
> > dcf: do you have a script/instructions somewhere on how to build the
whole thing which we could then translate into our `tor-browser-build`
process? If you plan to do that work yourself, you are more than welcome!
:). We'll likely put that on our plate otherwise.
>
> I didn't do anything beyond making sure that go-webrtc and snowflake
would compile for Android, because I don't know how the pluggable
transport integration works on Android. eighthave was showing us a
`gomobile bind` setup that doesn't use separate executables (requires
patching out `package main`) and I didn't know if that was how it was
going to be done.
>
> I think that go-webrtc will only require minor changes in
projects/webrtc/config and projects/snowflake/config. Here you can see the
changes we made in the upstream build script:
> https://github.com/keroserene/go-webrtc/pull/90/files#diff-
0b83f9dedf40d7356e5ca147a077acb4
> In projects/webrtc/config:
> * Set `TARGET_OS=android` `TARGET_CPU=arm`
> * Append `target_os = [ 'android' ]` to .gclient. I think it's safe to
do across all targets, as it only affects what gets downloaded.
> * In `gclient sync`, `echo n` to not agree to the proprietary Google
Play services license (also prevents the Play libraries from downloading).
You could alternately patch out this check, etc.
> * In `gn gen`, set `symbol_level=0`. This is needed to actually disable
debugging symbols; otherwise the libwebrtc is like 100 MB.
> * Upstream we are using Google's prebuilt arm-linux-androideabi-ar, but
it would be better to build your own.
> In projects/snowflake/config:
> * Set `GOOS=android` `GOARCH=arm`.
> * You may have to copy webrtc-android-armeabi-v7a.pc over webrtc-linux-
arm.pc, as in [https://gitlab.com/eighthave/snowflake/blob/master/.gitlab-
ci.yml#L92 eighthave's script].
Thanks, that's helpful.
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/28672#comment:12>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
_______________________________________________
tor-bugs mailing list
tor-bugs@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs