Fork Android Client and Repo Questions


#1

Hi all. First post for me.

It is quite clear from the docs how to set up a private repo for sources and/or apk’s.
I am considering setting up a repo to support just a small group of applications (which, f-y-i, drive data acquisition hardware connected via TRRS & OTG) so that users in our ‘channel’ had a portal for app publication and updates etc.

The developers of these software (and hardware) modules want to sell extension points that complement the free apps. For example, base applications would offer certain functions, but advanced versions, some with hardware support, would (typically, but not exclusively) be made available upon some hardware detection events.
That’s how we see the world working for us.

The thing is that the Android applications cannot be open source. Please don’t ask why. That’s how it is.
The free (base) apps have great value for users -they are not junk/advertising; the extension points are items of real value that makers have invested heavily in (generally speaking they bring to market, at very low cost to the end user, items that were previously only available via very expensive routes, such as NI etc).

So, if I have considered cloning the Android f-droid (android-application) repo and modifying the clone (leaving it open-source of course) in order to support just a single f-droid repo where the android applications are not open-source. Is this okay ?


#2

So, if I have considered cloning the Android f-droid (android-application) repo and modifying the clone (leaving it open-source of course) in order to support just a single f-droid repo where the android applications are not open-source. Is this okay ?

Sure. F-Droid is widely used to host own repos with non-free apps. Here’s info on adapting F-Droid client to your needs. F-Droid client code is licensed under GPLv3, so you’ll have to provide source code of your modified version and that’s it.


#3

Everything you change to the codes, images, texts, sounds, videos, libraries…, not only for F-Droid but also Android app codes, you have to give to the community their modified source codes.


#4

Yes, this was clear. Any changes that I make to the f-driod package (let’s say via fork, for example) needs to become itself FOSS. The applications that are managed via the new “f-droid client/server pair” can, and will, however remain closed source.


#5

You could simply provide another repo for F-Droid. F-Droid already supports multiple repo’s. No need to fork. or you could go with Google Play . . .


#6

If you create your repo and want to include it in F-Droid, the source codes of the apps have to be available, or it’s not FOSS :slight_smile:


#7

The codebases for end-user applications are completely separate to the codebases for F-Droid Client App and F-Droid Repo.
That way, the non-free application codebases can remain closed source.
Any changes to either the F-Droid Client App or F-Droid Repo will of course be made open source.


#8

From your description, it seems you only need your own repo, then anyone can subscribe to that repo with F-Droid. You are also free to make a custom version of the client, but that’s totally unnecessary. The licenses of fdroidclient and fdroidserver do not affect the software that is built, distributed, and installed using them. The client is GPLv3+, but software with any license can be freely installed using the client app with no conflicts.


#9

About structuring things for charging for installing, you could use the existing client app to manage subscriptions to app repos, the plumbing for that is all there already, and the upcoming v1.1 release includes some tools to make it easier to provision repos that require a username/password or “API key” if you want to call it that.


#10

Thanks for all the feedback guys. Much appreciated.
In the end I just built my own updater app and built extensions to my springboot servers.

There are 2 basic reasons for this:
[1] avoiding a heavyweight dependency set
[2] not wanting to build 3rd party apps as part of any deployment process

cheers


#11

I can defintely understand wanting to keep dependencies as light as possible. If you find you need something more that includes client support, you can use fdroidserver to manage the repos, then build a lightweight client using the Java libraries: https://gitlab.com/fdroid/update-channels


#12

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.