Feature #2978

Task #3380: add signed repo support to FDroid

Include repo fingerprint for network service discovery.

Added by pd0x almost 4 years ago. Updated over 3 years ago.

Status:ClosedStart date:02/19/2014
Priority:NormalDue date:
Assignee:hans% Done:


Target version:swap repos with Bluetooth and Bonjour


Unfortunately unlike a URI intent we can't add a fingerprint parameter to the service kerplapp registers on the network that is subsequently discovered & added by the F-Droid client.

There are two obvious options:

  1. Have the F-Droid client perform an HTTP request when it completes service resolution (i.e. has a service name, IP address and port) to find the repo fingerprint
  2. Include the fingerprint in the service name, perhaps using some known delimiter to split out the fingerprint from the name for UX display purposes.

Approach 1 doesn't really buy us much, as it is essentially TOFU in the same way that the first request to the repo after being added will be.
Approach 2 has usability implications - the service name will be long, ugly and potentially confusing.

Related issues

Related to Bazaar - Task #2468: make F-Droid accept repo URLs via mDNS Closed 11/13/2013
Related to Bazaar - Task #2467: make Kerplapp broadcast the repo URL via mDNS Closed 11/13/2013


#1 Updated by hans almost 4 years ago

With option 2, I think we can handle the potential usability issues since we're controlling both sides: the mDNS broadcaster and the mDNS receiver. So if there is a delimiter that separates the name from the fingerprint, the broadcaster can transparently add that info, then the receiver can parse that data, then in the Add Local Repo UI, it can display things in a friendly manner.

For me the only open question is whether there is a length limit in the name field, or whether there is the possibility for any other fields in an mDNS record that we could commandeer. jmdns might provide more flexibility than NSD.

#2 Updated by pd0x almost 4 years ago

  • Parent task set to #2900

It sounds like using jmDNS allows for including an optional bit of text in the service advertisement we could use for the fingerprint, thereby avoiding polluting other devices doing network discovery with long scary looking service names from FDroid repos.

Implementing Feature #2900 will allow for solving this feature as well. Changing parent task to #2900.

#3 Updated by hans almost 4 years ago

  • Target version changed from improved security/usability to 134

#4 Updated by hans over 3 years ago

  • Target version changed from 134 to swap repos with Bluetooth and Bonjour

#5 Updated by hans over 3 years ago

  • Parent task changed from #2900 to #3380

Also available in: Atom PDF