URI scheme for repos based on OTRDATA, bluetooth, local wifi, etc.
|Target version:||swap repos with Bluetooth and Bonjour|
An FDroid repo uses its URL as its unique ID. That URL is linked with a public key for verifying its validity. When OTRDATA and Bluetooth methods are added, Fdroid will need a URL to use as the unique ID for those repos.
#2 Updated by hans almost 4 years ago
right now there is special URIs for
https:// connections, here is a potenial full mapping:
fdroidrepob://for Bluetooth RFCOMM
Also, I'm in the process of moving the fingerprint from the 'user' portion of the URI to the 'query string' portion of the URI, which makes more sense. Putting the fingerprint in the user portion confused the browser, which tried to log into the page using that as the username. For example:
- old style fingerprint as user:
- new style in query string:
Additionally, other bits of info can be included in the query string, like the wifi SSID and BSSID. This allows a URI to be sent via QR or NFC, then the receiver can check whether it is on the same wifi as the sender, which is necessary for local repos to work.
#3 Updated by n8fr8 almost 4 years ago
With the current rough plan for OTRDATA integration, F-droid will simply be accessing a 127.0.0.1 based HTTP (or possibly HTTPS) repo. In that design, it will not need to know any specific URI.
What we did discuss was support for HTTP auth via http://user:firstname.lastname@example.org:8888/fdroid/repo style format.
#4 Updated by hans almost 4 years ago
btspp:// hostname:[ CN | UUID]; parameters
The URL format for an RFCOMM StreamConnection :
btspp://hostname:[CN | UUID];parameters
hostnameis either localhost to set up a server connection, or the Bluetooth address to create a client connection.
PSMis the Protocol/Service Multiplexer value, used by a client connecting to a server.
CNis the Channel Number value, used by a client connecting to a server.
UUIDis the Universally Unique Identifier used when setting up a service on a server. Each
UUIDis guaranteed to be unique across all time and space.
Parameters include name to describe the service name, and the security parameters authenticate, authorize, and encrypt.
Example : Server RFCOMM URL:
btspp://localhost:2D26618601FB47C28D9F10B8EC891363;authenticate=false; encrypt=false;name= rfcommtest
A client RFCOMM URL:
localhost as a hostname indicates you want a server connection. To create a client connection to a known device and service, use the service's connection URL, found in its ServiceRecord.