LinuxCommandLibrary

fdroidcl

Install, update, and manage F-Droid apps

TLDR

Fetch the F-Droid index

$ fdroidcl update
copy

Display information about an app
$ fdroidcl show [app_id]
copy

Download the APK file of an app
$ fdroidcl download [app_id]
copy

Search for an app in the index
$ fdroidcl search [search_pattern]
copy

Install an app on a connected device
$ fdroidcl install [app_id]
copy

Add a repository
$ fdroidcl repo add [repo_name] [url]
copy

Remove, enable or disable a repository
$ fdroidcl repo [remove|enable|disable] [repo_name]
copy

SYNOPSIS

fdroidcl [options] command [arguments...]
fdroidcl [options] subcommand [subcommand-options] [arguments...]

PARAMETERS

--help, -h
    Displays a comprehensive help message and exits.

--version, -V
    Prints the fdroidcl program's version number and exits.

--verbose, -v
    Increases the verbosity of the output, showing more details about operations.

--quiet, -q
    Decreases the verbosity of the output, suppressing non-essential messages.

--non-interactive
    Runs the command in non-interactive mode, avoiding prompts for user input.

DESCRIPTION

fdroidcl is a robust command-line interface (CLI) for interacting with the F-Droid open-source software repository. It empowers users to manage their F-Droid applications directly from the terminal, offering functionalities such as searching for apps, installing them, keeping them updated, and removing them. Unlike graphical F-Droid clients, fdroidcl is ideal for scripting, automation, and for users who prefer a text-based workflow. It leverages the F-Droid repository's metadata to provide comprehensive information about applications, including their descriptions, versions, and permissions. The tool supports managing multiple repositories, making it flexible for accessing various F-Droid-compatible sources. It's an essential utility for users who want fine-grained control over their Android applications without relying on proprietary app stores or a graphical user interface.

CAVEATS

  • fdroidcl requires adb (Android Debug Bridge) to be installed and properly configured on the system to interact with Android devices.
  • The Android device must have USB debugging enabled and be authorized for the adb connection.
  • It primarily manages F-Droid applications and does not interact with Google Play Store apps.
  • Installation typically happens via ADB, which means the device needs to be connected and recognized by ADB.

KEY SUBCOMMANDS

fdroidcl operates primarily through subcommands, each performing a specific task:

  • search <query>: Used to find applications in configured F-Droid repositories. The <query> can be part of the app name, package ID, or description.
  • install <package_id>: Installs the specified application on the connected Android device. Requires adb to be set up and the device to be connected.
  • update: Refreshes the local F-Droid repository index from configured sources, ensuring you have the latest app information.
  • show <package_id>: Displays detailed information about an application, including its description, versions, permissions, and metadata.
  • list: Lists all applications currently installed on the connected device that were managed by fdroidcl.
  • remove <package_id>: Uninstalls the specified application from the connected Android device.
  • repo: A subcommand itself, used for managing F-Droid repositories. Common uses include fdroidcl repo add <url> <fingerprint>, fdroidcl repo list, and fdroidcl repo remove <url>.

HISTORY

fdroidcl emerged as a project to provide a command-line alternative to the graphical F-Droid client, catering to developers, system administrators, and users who prefer terminal-based interactions or automation. Its development has focused on leveraging the existing F-Droid repository structure and adb capabilities to offer a seamless experience for managing open-source Android applications without requiring a GUI. It fills a niche for headless server setups or integrating F-Droid app management into larger scripts.

SEE ALSO

adb(1), apt(8), dnf(8), snap(1), flatpak(1)

Copied to clipboard