Core F-Droid functionality is split into re-usable libraries to make using F-Droid technology in your own projects as easy as possible.
Note that all libraries are still in alpha stage. While they work, their public APIs are still subject to change.
- download library for handling (multi-platform) HTTP download of repository indexes, APKs and image assets
- index library for parsing/verifying/creating repository indexes
- database library to store and query F-Droid related information in a Room-based database on Android
Note that advanced security and privacy features are only available for Android:
- Rejection of TLS 1.1 and older as well as rejection of weak ciphers
- No DNS requests when using Tor as a proxy
- short TLS session timeout to prevent tracking and key re-use
Other platforms besides Android have not been tested and might need additional work.
Add this to your build.gradle
file
and replace [version]
with the latest version:
implementation 'org.fdroid:download:[version]'
Note that some features are only available for Android:
- index signature verification (
JarFile
is JVM only) - index stream processing (
InputStream
is JVM only) - index V2 diffing (reflection is JVM only)
- app device compatibility checking (requires Android)
Other platforms besides Android have not been tested and might need additional work.
Add this to your build.gradle
file
and replace [version]
with the latest version:
implementation 'org.fdroid:index:[version]'
An Android-only database library to store and query F-Droid related information such as repositories, apps and their versions. This library should bring everything you need to build your own F-Droid client that persists information.
Add this to your build.gradle
file
and replace [version]
with the latest version:
implementation 'org.fdroid:database:[version]'
You can list available gradle tasks by running the following command in the project root.
./gradlew :libs:download:tasks
Replace download
with the name of the library you want to view tasks for.
Bump version number in the library's gradle.properties
,
ensure you didn't break a public API and run:
./gradlew :libs:download:check :libs:download:connectedCheck
./gradlew :libs:download:publish
./gradlew closeAndReleaseRepository
Replace download
with the name of the library you want to publish.
See https://github.com/vanniktech/gradle-maven-publish-plugin#gradle-maven-publish-plugin for more information.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0