[guardian-dev] Bazaar/F-Droid: Two-tap vs One-tap provisioning

Hans-Christoph Steiner hans at guardianproject.info
Thu Mar 20 14:04:02 EDT 2014


On 03/20/2014 09:22 AM, Nathan of Guardian wrote:
> 
> Currently, with an app management system like F-Droid, it would require
> users to taps to setup our repo. Imagine a new user with nothing
> installed, visiting a page with two big "download" buttons:
> 
> 1) Tap to install F-Droid (one time bootstrap)
> or 1a) receive F-Droid via bluetooth/NFC or other peer share mechanism
> 
> 2) Tap to add Guardian Project repo (URI which F-Droid handles, auto
> sets up fetches and display available apps).
> 
> or 2a) Scan a QR code or NFC/Beam to receive the second URI
> 
> This isn't terrible, but it is twice as much work, and don't forget the
> #1 setup process is already quite annoying as an APK download due to
> finding the download notification, ensuring "trust unknown APK" is
> enabled, etc.
> 
> A question came up yesterday regarding how to in one download both
> provide a stock version of F-Droid, but then also somehow append or
> attach to that download the custom repo URI or other bootstrap config data.
> 
> We had a few ideas, including:
> 
> 1) Injecting data into the APK in a way that doesn't cause problems with
> the built-in signature (which isn't a signature of the whole APK/JAR
> file, just the relevant android bits).

Right now, I think pd0x and I agree that this might be the most feasible
approach.  The big minus is that it will change the hash of the APK, though
the APK signature will still validate.  Perhaps there is a way to remove the
added bit of info from META-INF and reset and timestamps so that the
FDroid.apk is reset to the original hash.


> 2) Use some sort of bonjour/zeroconf service if you are sharing this APK
> on a wifi LAN between peers to broadcast a peer repo

This is already implemented.  When it works, it should work very smoothly.
But this won't help with the initial bootstrapping of getting FDroid.apk onto
a device without it since there are no built-in mDNS/bonjour browser services
that I could find.


> 3) Generate a one-time use meta APK of some sort that contains both
> F-Droid APK and the config data.

Hmm... so it'd be an APK that includes and installs the FDroid.apk?  That
could work quite nicely if we can generate this APK on the device.  Perhaps
AIDE can provide some insight there.  The big downside here is that the user
will see the extra process of installing the second APK. That's more than one
extra click, I think.

I still think option #1, sticking data into the META-INF then removing it, is
probably our best bet for one click bootstrapping.

.hc

> Any other ideas? Thoughts on these approaches?
> 
> The goal is to support simple bootstrapping of dynamically addressed
> peer repos, as well as allow organizations to have their repo in F-droid
> by "default" with out requiring forks or white labeling.
> 
> +n
> 
> _______________________________________________
> Guardian-dev mailing list
> 
> Post: Guardian-dev at lists.mayfirst.org
> List info: https://lists.mayfirst.org/mailman/listinfo/guardian-dev
> 
> To Unsubscribe
>         Send email to:  Guardian-dev-unsubscribe at lists.mayfirst.org
>         Or visit: https://lists.mayfirst.org/mailman/options/guardian-dev/hans%40guardianproject.info
> 
> You are subscribed as: hans at guardianproject.info
> 

-- 
PGP fingerprint: 5E61 C878 0F86 295C E17D  8677 9F0F E587 374B BE81


More information about the Guardian-dev mailing list