|
|
3 weeks ago | |
|---|---|---|
| .github/workflows | 11 months ago | |
| adb | 3 years ago | |
| contrib/completion/zsh | 1 year ago | |
| fdroid | 3 years ago | |
| testdata | 8 months ago | |
| .gitignore | 7 years ago | |
| LICENSE | 10 years ago | |
| README.md | 3 weeks ago | |
| clean.go | 3 years ago | |
| defaults.go | 1 year ago | |
| devices.go | 3 years ago | |
| download.go | 7 years ago | |
| go.mod | 11 months ago | |
| go.sum | 11 months ago | |
| install.go | 3 years ago | |
| list.go | 4 months ago | |
| main.go | 8 months ago | |
| main_test.go | 3 years ago | |
| repo.go | 9 months ago | |
| scan.go | 1 year ago | |
| search.go | 4 months ago | |
| setup.go | 1 year ago | |
| show.go | 3 years ago | |
| uninstall.go | 3 years ago | |
| update.go | 3 years ago | |
README.md
[!WARNING] Free and Open-Source Android is under threat.
Google will turn Android into a locked-down platform, restricting your essential freedom to install apps of your choice. Make your voice heard
fdroidcl
F-Droid desktop client. Requires Go 1.21 or later.
go install mvdan.cc/fdroidcl@latest
While the Android client integrates with the system with regular update checks and notifications, this is a simple command line client that talks to connected devices via ADB.
Quickstart
Download the index:
fdroidcl update
Show all available apps:
fdroidcl search
Install an app:
fdroidcl install org.adaway
Show all available updates, and install them:
fdroidcl search -u
fdroidcl install -u
Unofficial packages are available on: Debian and Ubuntu.
Commands
update Update the index
search [<regexp...>] Search available apps
show <appid...> Show detailed info about apps
install [<appid...>] Install or upgrade apps
uninstall <appid...> Uninstall an app
download <appid...> Download an app
devices List connected devices
scan Scan for known fdroid apps on a device
list (categories/users) List all known values of a kind
repo Manage repositories
setups Manage setups
clean Clean index and/or cache
defaults Reset to the default settings
version Print version information
An appid is just an app's unique package name. A specific version of an app can be selected by following the appid with a colon and the version code. The 'search' and 'show' commands can be used to find these strings. For example:
fdroidcl search redreader
fdroidcl show org.quantumbadger.redreader
fdroidcl install org.quantumbadger.redreader:85
new: you can manage the repositories now directly via cli
usage: fdroidcl repo
List, add, remove, enable or disable repositories.
When a repository is added, it is enabled by default.
List repositories:
$ fdroidcl repo
Modify repositories:
$ fdroidcl repo add <NAME> <URL>
$ fdroidcl repo remove <NAME>
$ fdroidcl repo enable <NAME>
$ fdroidcl repo disable <NAME>
new: you can manage automating installs using setups
usage: fdroidcl setup
List, add, remove, edit, and import/export setups.
Setups allow for mass installs onto an android device, excellent for backups.
List setups:
$ fdroidcl setup Show all setups
$ fdroidcl setup list <NAME> Show details about one setup
Modify setups:
$ fdroidcl setup new <NAME>
$ fdroidcl setup remove <NAME>
$ fdroidcl setup apply <NAME>
$ fdroidcl setup add-app <NAME> <APP-ID>
$ fdroidcl setup rm-app <NAME> <APP-ID>
$ fdroidcl setup add-repo <NAME> <REPO-NAME>
$ fdroidcl setup rm-repo <NAME> <REPO-NAME>
Export setups:
$ fdroidcl setup import <FILENAME>
$ fdroidcl setup export <NAME>
Config
You can configure what repositories to use in the config.toml file. On Linux,
you will likely find it at ~/.config/fdroidcl/config.toml.
You can run fdroidcl defaults to create the config with the default settings.
Advantages over the Android client
- Command line interface
- Batch install/update/remove apps without root nor system privileges
- No need to install a client on the device
What it will never do
- Run as a daemon, e.g. periodic index updates
- Act as an F-Droid server
- Swap apps with devices
Caveats
- Index verification relies on HTTPS (not the JAR signature)
- The tool can only interact with one device at a time
- Hardware compatibility of packages is not checked
FAQ
- What's the point of a desktop client?
This client works with Android devices connected via ADB; it does not install apps on the host machine.
- Why not just use the f-droid.org website to download APKs?
That's always an option. However, an F-Droid client supports multiple repositories, searching for apps, filtering by compatibility with your device, showing available updates, et cetera.