git-annex is available for Android inside Termux or Nix-On-Droid.
This includes the [[git-annex assistant|/assistant]], for easy
syncing between your Android and other devices. You do not need
to root your Android to use git-annex.

(Alternatively, rather than installing git-annex on your Android device,
git-annex can run on your computer and use `adb` to pull and push changes
to the Android device. See [[tips/android_sync_with_adb]] for instructions
on using git-annex that way.)

[[!toc ]]

## Installation (Termux)

First, install [Termux](https://termux.com/). This is an Android app that can
run some Linux software in a terminal, including git-annex.

git-annex is not currently part of the Termux distribution, but it's easy
to install it. Paste these commands into Termux:

	pkg install wget
	wget https://git-annex.branchable.com/install/Android/git-annex-install
	source git-annex-install

## Installation (Nix-On-Droid)

Installing git-annex using
[Nix-On-Droid](https://github.com/t184256/nix-on-droid) is recommended
for more advanced users who want to use git-annex at the command line.
The git-annex webapp does not currently work in Nix-On-Droid (as a workaround, run `git annex webapp --listen 127.0.0.1` and copy-paste the URL in a browser).

To enter a shell with git-annex available to use,
run inside Nix-On-Droid: `nix-shell -p git git-annex`

To avoid needing to do that every time you start Nix-On-Droid,
you can add git and git-annex to your `environment.packages` in 
`~/.config/nixpkgs/nix-on-droid.nix` and then run 
`nix-on-droid switch`

## Starting git-annex assistant

Just run "git-annex webapp" inside Termux.
A browser window will open with the git-annex interface.

[[!img webapp.png alt="git-annex webapp"]]

## Closing and reopening the webapp

The webapp does not need to be left open after you've set up your
repository. As long as Termux (or Nix-On-Droid) is left open, git-annex 
will remain running and sync your files.

## Starting at power on

If you install the [Termux:Boot app](https://wiki.termux.com/wiki/Termux:Boot),
git-annex will be automatically started when your Android device
powers on. It will run in the background in whatever repositories you have
set up in the webapp.  

## Using the command line

If you prefer to use `git-annex` at the command line, you can do so inside
Termux or Nix-On-Droid. Here we'll make a repository for photos:

        cd ~/storage/dcim
        git init
        git-annex init

You can go on to set up a ssh remote pointing to a server, and sync
your files to and from it.

And so on. Most ways you would use git-annex on a Linux system work fairly
well in the Termux environment.

## Upgrading (Termux)

To upgrade to a new git-annex release, just run `git-annex-install` again.
