zacharee / Tweaker

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

F-Droid build

dot-mike opened this issue Β· comments

commented

Since the source code for application is available, have you considered publishing the app on F-Droid which is a FOSS catalog for apps on Android?

adding to the site F-Droid will be fine!

For this to happen @zacharee , Could you please tag your releases, and maybe attach a signed release APK to it, so that people can download and use your app, thanks!

The releases are uploaded and tagged https://github.com/zacharee/Tweaker/releases

Won't be happening, bc Tweaker is full of Google's trackers and unnecessary access requirements.. See https://reports.exodus-privacy.eu.org/en/reports/com.zacharee1.systemuituner/latest/#trackers

trackers and a lot of permissions are not a problem. I think they can add it if they want

They are. You don't seem to have a clue what matters at Fdroid πŸ˜‚ You might look that up before further talking

perhaps izzyondroid is less harsh on the requirements? anyhow some sort of repo is badly needed.

Yes, Izzy doesn't sign apps or watch repos as close as F-Droid does. I think there is a manifest on his page.

there is no official response from the developer. I am waiting for his answer so that he can explain whether it is planned to add F-Droid to the catalog or not. If planned, then you need to make a separate branch of the program where there will be no trackers. If it is not planned, then close the ticket and say that the addition will not be.

@IzzySoft What do you think about this app? It's lightweight enough for you, but it has CrashLytics and Firebase integrated.

commented

@Poussinou well, that's like the guy at the corner who has a knife you say, but forgot to tell me about the machine gun in his other hand πŸ™Š

Offending libs:
---------------
* BillingClient (/com/android/billingclient): NonFreeDep,NonFreeNet
* Crashlytics (/com/crashlytics): NonFreeDep,Tracking
* Google Ads (/com/google/ads): Ads,NonFreeDep
* Firebase Data Transport (/com/google/android/datatransport): NonFreeNet
* Google Mobile Services (/com/google/android/gms): NonFreeDep
* Firebase (/com/google/firebase): NonFreeNet,NonFreeDep
* Firebase Analytics (/com/google/firebase/analytics): NonFreeDep,Tracking
* Firebase Installations (/com/google/firebase/installations): NonFreeNet
* Tasker Plugin Library (/com/joaomgcd/taskerpluginlibrary): NonFreeAdd
* Tasker (/net/dinglisch/android/tasker): NonFreeAdd

10 offenders.

No probs with the Tasker plugin, but the 8 others are a bit too much, sorry.

@zacharee no offense meant by my intro. But are all those proprietary libraries really needed for the purpose? Let me group that with pointers to alternatives:

Mind cleaning up a bit to make your app free & libre? And when done so, maybe also pick a license (ideally one approved by OSI/FSF)? If you can reduce those 8 to less than 4 & have a license, be welcome to give me a ping to check again. Thanks in advance!

I don't really know why some of those libraries are in there.

I'm using:

  • BillingClient for donations if the user has GMS.
  • Crashlytics for crash reports.
  • Tasker for Tasker integration.

From what I remember I had to include the Analytics library even if it's not doing anything in order for Crashlytics to work. They might have fixed that by now. I have no idea why there's an ad library included.

I'll look into cleaning things up.

Here's a test build: https://github.com/zacharee/Tweaker/releases/tag/349-test.

I've replaced Crashlytics with Bugsnag (not entirely sold on their platform since it seems much more limited unless I want to pay $32/mo I just saw they provide free standard plans for open source projects, so I'm putting in an application now) and removed all the GMS and Firebase stuff as a result.

That should only leave BillingClient and Tasker.

BillingClient is only used for donations if the user has GMS on the device. Without GMS, PayPal links are shown instead. I'm a little wary of getting rid of it because of how much of a nightmare Google is about enforcing policies, especially when it comes to their cut of payments.

after the improvement, will it be possible to add F-Droid to the catalog?
Is it necessary to add analytics and error reports? You can make a separate version without analytics to accurately add to the catalog F-Droid?

commented

That should only leave BillingClient and Tasker.

Which would be acceptable – so let me check:

Offending libs:
---------------
* BillingClient (/com/android/billingclient): NonFreeDep,NonFreeNet
* Bugsnag exception reporter for Android (/com/bugsnag): Tracking
* Tasker Plugin Library (/com/joaomgcd/taskerpluginlibrary): NonFreeAdd
* Tasker (/net/dinglisch/android/tasker): NonFreeAdd

4 offenders.

Well, that looks much cleaner, doesn't it? Thanks a lot! One question I need to ask: How did you configure Bugsnag? Is it opt-in (i.e. disabled by default and only enabled if the user explicitly sets it) – or opt-out (enabled unless the user deactivates it)? The former is fine – the latter requires, as indicated, raising the Tracking flag.

wary of getting rid of it because of how much of a nightmare Google is

Oh, it definitely is. You might wish to look into "build flavors", so you could easily have one APK for Google with their stuff in and a separate one without. Many apps work that way.

after the improvement, will it be possible to add F-Droid to the catalog?

It's now acceptable for my repo, but not yet for F-Droid.org (that would only be possible if BillingClient is removed as well, e.g. using a build flavor). I'm just setting up your app for my repo now.

So: thanks @zacharee for your swift fix – feel encouraged to make a fully f/loss flavor for F-Droid!

There's no opt out for Bugsnag but I could add one. Even just generating separate signed APKs for the Play Store (before I realized I didn't need to do that) was hard enough for me to keep track of so I'm not sure if I can handle different variants.

commented

There's no opt out for Bugsnag but I could add one.

If you could make it opt-in (you could have a setting for that initially set to NULL, which would trigger a prompt to ask the user to opt-in, then save if yes or no was chosen), that would be even better and allow me to drop the Tracking flag.

Your app will show up here with the next sync around 7 pm UTC. Be welcome to pick a badge to link there e.g. from your Readme.

I'm not sure if I can handle different variants.

No need to hurry that decision, just think it over. I'm no Android dev so I'm not aware of all the details, but things can be automated. AFAIK there are even workflows available for Github releases, which would then take care for all the tasks you need when doing a release – including the attachment of APKs to your releases. A one-time setup – so to day, a "set and forget".

Rome wasn't built in a day (but it burnt down in one πŸ™Š), so one step at a time. That was just a huge step today, getting rid of quite a bunch of non-free components; keep something for another day Zach, think it over and decide then.

Version 350 includes a default-disabled toggle in the intro sequence and an option to enable/disable it on the home page.

commented

Thanks! I just triggered an update to that, and then removed Tracking (white-listing Bugsnag as it's opt-in now) and also NonFreeAdd (white-listing Tasker and the Tasker Library) as that's not really "promoted"; as far as I could see it is supported but not really "pushed upon the user". That leaves only NonFreeDep & NonFreeNet now, both just for the BillingClient. So next station replacing Monetarisation? πŸ˜ƒ

I don't see anything there that could work. The first option doesn't work with the Play API anymore, and the rest don't support Play at all.

commented

No – and that's the idea: to get rid of the (non-free) Play dependency. As pointed out, maybe with a separate "foss flavor" so you can keep that for your Playstore releases while getting the f/loss release "pure" – so it might become eligible for inclusion at F-Droid.org πŸ˜ƒ