Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upload the Android App to a F-Droid repository #1261

Open
KoalaSat opened this issue May 1, 2024 · 24 comments
Open

Upload the Android App to a F-Droid repository #1261

KoalaSat opened this issue May 1, 2024 · 24 comments
Labels
Android enhancement 🆙 New feature or request

Comments

@KoalaSat
Copy link
Member

KoalaSat commented May 1, 2024

Is your feature request related to a problem? Please describe.
Users now have to access directly to the github page to be up to date with the Android app or using tools like obtanium. Would be great to have it available on a major F-Droid repository

@KoalaSat
Copy link
Member Author

KoalaSat commented May 1, 2024

Hello @IzzySoft I was thinking on you while I was creating this issue, can we apply to have Robosats available in your repo? 😃 I'll take care of adding all the necessary configurations to the Android App, which I assume will be the same as we did for Nostros. Thanks in advance!

@Reckless-Satoshi Reckless-Satoshi added Android enhancement 🆙 New feature or request labels May 5, 2024
@IzzySoft
Copy link

I could include one of the per-ABI builds (arm64 probably). Scan results look good except for one thing that will at least need clarification:

Dangerous flags:
----------------
* usesCleartextTraffic

@KoalaSat
Copy link
Member Author

I could include one of the per-ABI builds (arm64 probably). Scan results look good except for one thing that will at least need clarification:

Dangerous flags:
----------------
* usesCleartextTraffic

Probably introduced by the Tor engine library, the app only works over the Tor network.

@IzzySoft
Copy link

So it connects via a local (on-device) Tor proxy, with "cleartext" traffic just on-device?

@KoalaSat
Copy link
Member Author

KoalaSat commented May 11, 2024

So it connects via a local (on-device) Tor proxy, with "cleartext" traffic just on-device?

The proxy is loaded in-app with this library https://github.com/05nelsonm/kmp-tor/ and 100% of the traffic pass through it because everything is a .onion call

@IzzySoft
Copy link

OK, that makes it easy:

usesCleartextTraffic: used only on-device to communicate with the integrated Tor proxy

Guess you've nailed that even to localhost via network security policy? If not, you might want to do that (sorry, cannot help you with setting that up as that's beyond my knowledge).

That said: There's no APK at the latest release. Do you want me to pick up pre-releases then, or shall I wait for the next release having an APK?

@KoalaSat
Copy link
Member Author

@IzzySoft I'll take a look and do some test thanks!

We are planning to create the release this weekend, also we have a PR with the fastlane metadata, we'll ping you once we are ready 😁

Thank you again!

@KoalaSat
Copy link
Member Author

Fastlane files ready for review #1270

@IzzySoft
Copy link

Reviewed 😃 Just the full_description.txt needs a little formatting updates, as indicated.

@KoalaSat
Copy link
Member Author

@IzzySoft
Copy link

Preparing the listing here then 😃 Just one question left: Can the network service used be self-hosted? Is the server component FOSS? We might need the NonFreeNet or TetheredNet anti-feature here.

@IzzySoft
Copy link

PS: If you plan to get your app listed at F-Droid.org, the fastlane directory will need to go to the top level (root) of the repo. No issue for IzzyOnDroid where any custom location can be configured.

@KoalaSat
Copy link
Member Author

KoalaSat commented May 13, 2024

PS: If you plan to get your app listed at F-Droid.org, the fastlane directory will need to go to the top level (root) of the

Okay @IzzySoft thanks for the hint we'll move it right now! 🚀

@IzzySoft
Copy link

Please let me know when done, as I then need to update your app's config here as well 😉 And do not forget to answer the other questions please (server part):

Can the network service used be self-hosted? Is the server component FOSS? We might need the NonFreeNet or TetheredNet anti-feature here.

I know there are instructions for self-hosting – what is not clear is if one can choose that self-hosted server in the app itself. If not, it's TetheredNet. If the server part were not FOSS, it would be NonFreeNet.

Currently, your listing would look like this when "going live" around 6 pm UTC:

image

(just the TetheredNet description was updated to "Server URL is currently hardcoded")

@KoalaSat
Copy link
Member Author

Can the network service used be self-hosted?

Not from the android app, all frontend clients are hardcoded to use very specific URL and there is no way for an end user to change it. The self-hosted options are meant to always refer to the web client, not the backend.

Is the server component FOSS?

Asking @Reckless-Satoshi to confirm, but I would say yes! You can find the list of main services for backend here https://github.com/RoboSats/robosats/blob/main/docker-compose.yml

@IzzySoft
Copy link

Thanks, then I got that correct with TetheredNet – and all is ready for the go-live later today. After checking, you are welcome to pick a badge to link there e.g. from your Readme (check the details; guess you might want one of the shields to accompany those already present there; shields are available in the detailed instructions here; you might wish to increase the cacheSeconds to something like 3600 or higher as updates won't happen more often than once a day, so 1h caching should be fine).

@KoalaSat
Copy link
Member Author

thank you so much for the support!! I'll ping you once we move fastlane to the root 😃

@Reckless-Satoshi
Copy link
Collaborator

Can the network service used be self-hosted? Is the server component FOSS? We might need the NonFreeNet or TetheredNet anti-feature here.

Yes. RoboSats has 2 components, the client (for example the Android app is a full client) and the coordinator (we could say this is "the server"). There is many clients and many coordinators. The coordinators are, of course, fully FOSS (this monorepo contains the coordinator codebase as well).

Anyone can run a coordinator, the only current limitation is that coordinators are whitelisted and hardcoded into the client (new coordinators must open an Issue and a PR in this repo for inclusion in the client).

In the near future, it would be trivial to add a feature for users to add new coordinators to their client through a form: although that might likely put users at risk...

@IzzySoft
Copy link

Thanks for clarification, @Reckless-Satoshi – that matches my guesses. Then we go with TetheredNet as configured for now. Once it's possible to configure the server URL in the app you'll simply let me know, and that anti-feature can be dropped again. Should such a feature not come we simply keep TetheredNet: it's rather a transparency hint than a "black mark". I can update its description if you suggest a different phrasing of course; I just wanted to keep it simple and easy to understand, even for beginners. Hope this is fine with you.

@KoalaSat
Copy link
Member Author

KoalaSat commented May 13, 2024

@IzzySoft fastlane has been moved to root

@IzzySoft
Copy link

Eek, and forgive the blind me: fastlane/metadata/android/<locale> is where F-Droid.org would expect it 🙈 See the freshly updated IzzyOnDroid Fastlane Documentation for details…

@KoalaSat
Copy link
Member Author

KoalaSat commented May 13, 2024

Eek, and forgive the blind me: fastlane/metadata/android/<locale> is where F-Droid.org would expect it 🙈 See the freshly updated IzzyOnDroid Fastlane Documentation for details…

Oops! Okay then I'll change it, is it required also for Izzydroid? Should we do it asap?

@IzzySoft
Copy link

is it required also for Izzydroid?

Nope, not at all (see the link in my previous comment: at IzzyOnDroid, any entry-point works as it's configured for each app explicitly. I've already adjusted it to the current location. It will just be needed if you decide for a listing at F-Droid.org.

And if you wonder, here are some details on that "entry-point":

  • fastlane/: all the fastlane stuff goes here. Including the fastlane binaries, should you want to use them.
  • fastlane/metadata/: here go the metadata. But there might be different platforms requiring different metadata, think e.g. of screenshots, so:
  • fastlane/metadata/android / fastlane/metadata/ios/: the metadata for the specific platforms.

That's the "official" locations by Fastlane. F-Droid.org and IzzyOnDroid have some freedom of interpretation, so F-Droid.org e.g. also accepts /metadata/<locale> and IzzyOnDroid quite any place with the locales as next directory level.

TL;DR: Nothing urgent. Just let me know if and when you change it, and ideally before you make another release after having changed it (so the updater finds it).

@KoalaSat
Copy link
Member Author

Great explanation! 👏👏

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Android enhancement 🆙 New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants