18:59:49 <sysrqb> #startmeeting S101 Core Android Components 15 March 2022 18:59:49 <MeetBot> Meeting started Tue Mar 15 18:59:49 2022 UTC. The chair is sysrqb. Information about MeetBot at http://wiki.debian.org/MeetBot. 18:59:49 <MeetBot> Useful Commands: #action #agreed #help #info #idea #link #topic. 18:59:58 <sysrqb> hello cyberta ! 19:00:03 <cyberta> :) hi 19:00:06 <sysrqb> indeed 19:00:12 <sysrqb> Pad: https://pad.riseup.net/p/sponsor101-android-components 19:01:27 <sysrqb> I didn't follow up with Guardian Project, so I don't know if _hc or anyone else is around 19:01:37 <PieroV> o/ 19:01:38 <sysrqb> and ping: aguestuser PieroV 19:01:42 <sysrqb> ah, hello :) 19:02:07 <sysrqb> this may be a short meeting 19:02:18 <kwadronaut[m]> O/ 19:02:20 <aguestuser> o/ 19:02:27 <sysrqb> but I wanted to meet and make sure we're on the same page 19:03:08 <cyberta> hi Ankit 19:03:17 <cyberta> Ankit joined LEAP recently 19:03:26 <sysrqb> o/ 19:03:29 <Ankit> Hello everyone 19:03:33 <cyberta> and will also help in the tor vpn project 19:03:34 <sysrqb> welcome 19:03:58 <cyberta> Ankit is an experienced Android dev as well 19:04:06 <sysrqb> excellent! 19:04:26 <Ankit> :) 19:04:29 <aguestuser> welcome Ankit! :) 19:04:45 <sysrqb> Ankit: this is the pad we use for taking meeting notes: https://pad.riseup.net/p/sponsor101-android-components 19:04:46 <PieroV> welcome :) 19:04:58 <sysrqb> in case you haven't seen it, we have some notes from last meeting there 19:05:32 <Ankit> yeah, looking through it, it was shared with me earlier. 19:05:36 <sysrqb> great 19:06:20 <sysrqb> to recap, last meeting we looked at Orbot's components, as documented by Guardian Project: https://docs.google.com/document/d/14mCr8c9pp5jGoGPQH-PB71YWTW6s-4dTjOKiQLgSrCs/edit 19:06:45 <sysrqb> and we discussed whether we think each component will be needed in a "tor vpn" 19:07:09 <sysrqb> and/or what feature/functionality will be needed instead of that existing component 19:07:38 <sysrqb> i believe last meeting we stopped at the last component - IPtProxy 19:07:54 <cyberta> aka pluggable transports 19:08:01 <sysrqb> yes 19:08:22 <sysrqb> currently, Guardian Project is developing it 19:08:40 <cyberta> tor-android and IPtProxy is also used in Bitmask/RiseupVPN 19:08:59 <sysrqb> the advantage of IPtProxy is that it combines the multiple Go lang pluggable transports into a single binary 19:09:41 <sysrqb> and, as a result, it reduces the total disk space needed becuase we don't include the same Go runtime in each binary for each PT 19:10:17 <cyberta> we also *need* to bundle all go libs into one big lib 19:10:30 <cyberta> to cross-compile them for mobile 19:10:45 <cyberta> using gomobile 19:10:59 <sysrqb> interesting. we were wondering if any other proejct was only using tor-android 19:11:11 <sysrqb> seems the answer is yes 19:11:24 <cyberta> yip 19:11:45 <sysrqb> did you implement your own wrapper and/or controller service, like OrbotService? 19:11:58 <sysrqb> or do you only needed the functionality exposed by TorService? 19:12:41 <cyberta> I basically forked TorService and added an interface for IPtProxy, it became a part of TorService 19:12:49 <cyberta> but it is mostly the original TorService code 19:12:59 <cyberta> I needed only minor adaptions 19:13:12 <sysrqb> okay, that's good to know 19:13:13 <cyberta> And it is started/stopped by intents 19:14:55 <cyberta> we use our API service to control the tor service, but that are implementation details 19:15:57 <sysrqb> yeah. i need to look closer at OrbotService and see what is it providing - in addition to TorService 19:16:44 <cyberta> Ankit and I can do that until next week, too 19:17:36 <sysrqb> that would be very helpful, yes please 19:17:37 <sysrqb> thanks 19:19:05 <sysrqb> and for the Go libs, you said you need to bundle them together into one big library 19:19:20 <sysrqb> is that because of how the Go code is called/executed? 19:19:28 <cyberta> that is right, you cannot have multiple go runtimes 19:19:41 <sysrqb> okay, that makes sense 19:19:55 <cyberta> but it is not hard to bundle them 19:20:07 <cyberta> we do the same for Bitmask/RiseupVPN with different components 19:20:56 <cyberta> however for now I only forsee that we would use IptProxy as go dependency or? 19:21:31 <sysrqb> you use other Go libraries Bitmask/RiseupVPN? 19:21:44 <cyberta> yes 19:21:58 <cyberta> as long at IptProxy lib keeps being maintained it sounds like the way to go to me 19:22:13 <sysrqb> for now, in the Tor VPN, i believe we only need obfsproxy and snowflake, and we can investigate how we want them integrated 19:23:11 <sysrqb> Tor Browser doesn't use IPtProxy, but I'm not against using it 19:23:42 <sysrqb> but that is a discussion where we should include the anti-censorship team 19:24:04 <cyberta> ok 19:24:11 <sysrqb> currently we only compile the obfsproxy and snowflake binaries, and bundle them in the app 19:25:05 <cyberta> that is fine, too, it's more a question of convenience and governance 19:25:11 <cyberta> (to me :)) 19:25:26 <sysrqb> i'm under the impress that Guardian Project would like Tor to take over responsility for IPtProxy, so that is a larger/different discussion, too 19:25:30 <sysrqb> *impression 19:27:25 <cyberta> shall I give an update wrt. onionmasq prototyping? 19:27:51 <sysrqb> cyberta: ah, yes please - I'm just typing some notes 19:28:32 <cyberta> we don't have the JNI yet ready for arti, but we're working on it 19:28:49 <cyberta> so the integration of arti into any java service is not yet finished 19:29:30 <cyberta> however I see it as the next pending step 19:30:09 <cyberta> next to that I investigated how we can build tor circuits per app 19:30:52 <cyberta> based on ip package to Android UID mapping 19:31:47 <cyberta> it seems to be possible to filter packages per app and handle them separately 19:32:44 <Ankit> Android VPN APIs also have provision to either exclude certain apps or include certain apps. 19:33:00 <cyberta> right 19:33:17 <cyberta> ankit will work on UI parts to select apps in the toy vpn prototype 19:33:33 <Ankit> yep 19:33:48 <sysrqb> excellent 19:34:05 <sysrqb> that's good progress 19:34:53 <cyberta> I think that's it for now wrt. onionmasq 19:34:56 <kwadronaut[m]> Committee 2 was talking about that last week a well (circuits per App). 19:35:08 <cyberta> interesting 19:35:20 <cyberta> what was the outcome? 19:35:30 <cyberta> and hi kwadronaut[m] :) 19:35:43 <sysrqb> part of our discussion at our last meeting here is how (or what) replaces TorService when we integrate Arti instead of Tor 19:36:05 <kwadronaut[m]> No answers iirc, hard questions because we're limited in what we can do. 19:36:13 <sysrqb> to me, this sounds like the JNI is in-progress and we should begin learning more about what is needed 19:37:05 <sysrqb> like, do we try dropping Arti into TorService, and just adapt TorService so it talked with Arti 19:37:26 <sysrqb> or do we build a new wrapper around Arti and that JNI 19:37:27 <cyberta> I think for a first iteration that is reasonable 19:37:39 <cyberta> (the former) 19:37:55 <sysrqb> i don't expect immediate answers, I know this is a work-in-progress :) 19:38:11 <sysrqb> okay 19:39:11 <sysrqb> we should be flexible, and have a goal of creating a library that makes Tor integration easy for developers 19:39:20 <kwadronaut[m]> The learning part is a good plan though :) 19:39:37 <sysrqb> if maintaining TorService is the best option, then that's fine with me 19:39:49 <sysrqb> kwadronaut[m]: yep :) 19:40:32 <sysrqb> but i want to make sure everyone understands that we are not required to use TorService if it's not best for us 19:42:07 <sysrqb> i know there are other discussions that will happen soon around defining the "Arti Interface" 19:42:13 <cyberta> is it a question if we are required to keep the API backwards compatible to current TorService? 19:42:28 <cyberta> so that it can be a drop-in replacement? 19:42:30 <sysrqb> so our "best option" may change as those discussion develop 19:42:39 <cyberta> or are we flexible with it as well? 19:42:56 <sysrqb> cyberta: i would argue that we're flexible there 19:43:06 <sysrqb> i would like to make migrating easy 19:43:13 <cyberta> ok, good 19:43:18 <sysrqb> but that isn't a specific priority of this project 19:45:22 <sysrqb> any other reports/comments/questions? 19:45:34 <cyberta> not from my side 19:45:57 <kwadronaut[m]> Logistics: next meeting in 2 weeks? 19:46:13 <sysrqb> i'll work on scheduling a meeting with Guardian Project regarding Orbot's components 19:46:22 <sysrqb> kwadronaut[m]: yes, that's correct 19:47:02 <cyberta> always tuesdays 19 UTC now, right? 19:47:10 <sysrqb> yes 19:47:13 <cyberta> cool 19:47:27 <kwadronaut[m]> Meeting gp sooner than later is a good idea, thanks for taking that on 19:47:57 <sysrqb> yep. alright, if nothing else, then thanks for coming everyone and talk with you soon! 19:48:06 <cyberta> ciao 19:48:11 <kwadronaut[m]> cyberta: No DST changes? Aguestuser had that question earlier today 19:48:21 <PieroV> bye 19:48:27 <sysrqb> #endmeeting