Towards a Reproducible F-Droid
f-droid.org
f-droid.org
There are constant updates, there is no distinction of whether they are imprortant or not (applies across the board of stores) but on on f-droid some developers seem to ne pushing things nightly. They get larger over time (KDE is now several GB as somehow almost everything must be updated every month) or they need app-by-app approval (f-droid)
Throwing out some ideas: initiate the concept of security updates (microsoft has it for ages). Bundle other updates in time (eg monthly). And definetely allow the user to have a set of apps that dont need individual approval all the time.
F-Droid in particular a) requires users to manually confirm updates, because they haven't implemented the new API that'd let them update apps silently b) used to throw errors when doing so, so each update turned into a minute of fiddling.
They have a long way to go before their software is usable. It's a shame because I would happily promote F-Droid to other people, if it worked.
Snap is a whole other can of worms. The ecosystem is like canonical's personal play store/app store.
For Android, there is Nix-on-Droid, built on top of Termux [1]. It would be wonderful if the Fdroid repository were made available as nix packages, but I don't believe that this is the case yet.
- https://reproducible.archlinux.org/ - Attempts to reproduce the distributed binary packages from source using reproducible builds tooling. This already works for a big chunk of packages.
- https://github.com/archlinux/archlinux-repro - This is a wrapper for Arch Linux build tooling that creates a build environment in a container that has the same packages installed as the original build environment back then. Software is expected to build reproducible in this environment and many ecosystems already do by default (Rust for example, to name one).
- https://github.com/kpcyrd/rebuilderd - This monitors the packages in Arch Linux, runs archlinux-repro on all of them and hosts the results. There are other projects supported but Arch Linux works best at the moment, and archlinux-repro offers the best integration I'm currently aware of.
There are surprisingly few people interested in running this stack on their own for verification purpose though.
Since these binaries are known anyway they might as well use a seed to allow verification of the published binaries with reproducible builds, then relink them into an unknown binary on the user's system after install (for example during boot as described in the 2nd post).
The closest experience I have is a GrapheneOS device where, after installing the Play Store, it ~daily tries to background install some VR app, no idea what that's about (purple hexagon logo, don't remember the name). I don't want this VR game on a work device. Installation fails because it requires manual confirmation (the store doesn't have background install permissions, which I think confuses the heck out of this google thing which is used to being a backdoor with superpowers) but the home screen keeps doing this animation to show another where this app is now loading, and fails some time later. For some reason it stopped prompting me with every attempt, not sure how I made it do that, but it switching home screens whenever I pick up the device is also annoying.
Background installs are totally a thing on the Play Store.
From my limited Googling at the time it seems you will only be prompted to install it if you already have an app installed that depends on it for certain functionality. Do you have any apps that might want to use the camera with AR-like effects?
Personally, I also stubbornly pressed "decline" on all the requests to install it. However, I gave in once I realised that:
1. I was probably the one that caused the install prompt (by installing Snapchat)
2. The shadiness of the app would likely not be worse than the other similar Google services I had already voluntarily installed
3. It would likely not be active except for when I'm using Snapchat
Now I haven't thought about that hassle in weeks.
Yes, the play store already does this.
As monetization becomes a bigger concern for a new app/service that was successful, I would tend to think that after a few cycles of getting better apps in general will get worse by increasing the amount of advertisements, requests for subscribing to something and dark pattern usage.
There's also the case of apps getting worse due to some company wanting to deprecate some feature in favor of another that is actually worse (some chat application that changed the way of doing video calls to take three clicks with loading times instead of one click ; some VPN app which changed the method of logging in so it takes one minute instead of one second)