# Setup Termux

Install Termux using F-Droid.

Update software repos.

    pkg update

Grant file access permissions using.

    termux-setup-storage

# Establishing an ssh connection

If network (such as eduroam) is blocking ssh trafic between machines, open a Wi-Fi Hotspot on your Linux machine and connect the Android device to it before using `rsync` or `ssh`.

## Configuring Android

Install the openssh server on Termux.

    pkg install openssh

Start the ssh server daemon.

    sshd

Get the ip address of the Android machine (in the Hotspot).

    ifconfig

    Warning: cannot open /proc/net/dev (Permission denied). Limited output.
    lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
            inet 127.0.0.1  netmask 255.0.0.0
            unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)

    rmnet0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1280
            inet 10.200.157.166  netmask 255.255.255.0  destination 10.200.157.166
            unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)

    wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 10.42.0.200  netmask 255.255.255.0  broadcast 10.42.0.210
            unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)

In this case 10.42.0.200.

The ssh server should now be running and listening on port 8022. You can check by running

    nmap -Pn <ip_address>

For me `<ip_address>` whould be 10.42.0.200.

Get the username.

    whoami

    u0_a700

Set a password for this user.

    passwd

## Connecting to Android via ssh

Make sure you have an ssh key pair on the Linux system. If not generate one using `ssh-keygen`.

Now connect to Android by `ssh`.

    ssh <username>@<ip_address> -p 8022

# Syncronising files with rsync

Install `rsync` on Termux and Linux. Make sure to keep your own openssl config.

    pkg install rsync

Now on your Linux machine, syncronise your Music library with rsync.

    rsync -av -e "ssh -p 8022" ~/Music <username>@<ip_address>:/data/data/com.termux/files/home/storage/music

## Refreshing the Android MediaStore

Android uses a Database to store files. In order to play your music, this database needs to be refreshed. This can be achieved by a reboot or by using adb to manually refresh it.

    sudo dnf install adb

Connect the Android device via USB and see if it is listed.

    adb devices

If it is, restart adb in TCP mode with port 5555

    adb tcpip 5555

Connect to the device using its .

    adb connect <ip_address>

Refresh MediaStore.

    adb shell am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN -d file:///data/data/com.termux/files/home/storage/music/