To install or update kodi on Amazon Fire TV or similar, use the following steps:
1.) Enable “adb debugging” as well as “apps from unknown sources” on the device and obtain its IP address.
On Amazon Fire TV:
The settings can be found in settings → system → developer options.
The IP address is listed in settings → system → about → network.
2.) Download the android arm version (depending on device) of kodi using the latest stable url from https://kodi.tv/download/#devbuilds or from the mirrors here http://mirrors.kodi.tv/releases/android/arm/
Nightly snapshots can be downloaded from here: http://mirrors.kodi.tv/nightlies/android/arm/
wget http://mirrors.kodi.tv/releases/android/arm/kodi-16.1-Jarvis-armeabi-v7a.apk
3.) Install adb (if necessary). On a debian linux based machine, the command is:
apt-get install android-tools-adb
4.) use adb to push the downloaded kodi apk file to the device, replace the IP address with the relevant IP of the device
adb connect 192.168.1.10 adb install -r kodi*
To edit configuration files manually, you can connect to the kodi device via adb and open a shell:
adb connect 192.168.1.10 adb shell cd /sdcard/Android/data/org.xbmc.kodi/files/.kodi/userdata
Note, android shell by default does not have an editor and copy command does not work. However, when side-loading busybox, vi/nano should be possible as per this article and file copy can be done via cat file > /sdcard/newfile  http://stackoverflow.com/questions/4714411/how-to-copy-and-edit-files-in-android-shell
The better way is to create files on a pc and then connect via adb and pull or push files.
adb connect 192.168.1.10 adb pull /sdcard/Android/data/org.xbmc.kodi/files/.kodi/userdata/advancedsettings.xml advancedsettings.xml adb push advancedsettings.xml /sdcard/Android/data/org.xbmc.kodi/files/.kodi/userdata
The following advancedsettings.xml file increases the buffer to avoid issues with high bitrate files:
<advancedsettings>
    <network>
        <buffermode>1</buffermode>
        <cachemembuffersize>157286400</cachemembuffersize>
        <readbufferfactor>20</readbufferfactor>
    </network>
</advancedsettings>
Add this as well to import watched status saved in nfo files (if present)
     <videolibrary>
          <importwatchedstate>true</importwatchedstate>
     </videolibrary>
Restart Kodi after adding or changing advancedsettings!
This bash script can be used to download the latest stable/nightly and install it via adb.
#!/bin/bash
###############################################################################
# Download and update latest Kodi build (nightly or stable) and install to a connected device.
###############################################################################
which adb >/dev/null 2>&1 || { \
    echo "adb doesn't exist in your path"; \
    exit 3; \
}
###############################################################################
# get latest versions (nightly and stable)
###############################################################################
NIGHTLY_URL=http://mirrors.kodi.tv/nightlies/android/arm/
STABLE_URL=http://mirrors.xbmc.org/releases/android/arm/
# get latest nightly build (NOTE: sed syntax could be better but works)
NIGHTLY=`curl -s $NIGHTLY_URL | grep apk | head -1 | sed 's/.*<a href="//g' | sed 's/".*//g'`
if [[ "$NIGHTLY" == "" ]]
then
    echo "Error fetching latest nightly version"
    exit
fi
# get latest nightly build (NOTE: sed syntax could be better but works)
STABLE=`curl -s $STABLE_URL | grep apk | head -1 | sed 's/.*<a href="//g' | sed 's/".*//g'`
if [[ "$STABLE" == "" ]]
then
    echo "Error fetching latest stable version"
    exit
fi
echo "latest nightly: $NIGHTLY"
echo "latest stable: $STABLE"
###############################################################################
# detect device connected via adb (NOTE: does not support multiple devices)
###############################################################################
adb start-server
((NUM_DEVICES = `adb devices | wc -l` - 2))
if [[ "$NUM_DEVICES" == 0 ]]
then
    echo "No devices connected.."
    read -p "Enter device IP address: " IP
    adb connect $IP
    # check again and exit if no devices
    ((NUM_DEVICES = `adb devices | wc -l` - 2))
    if [[ "$NUM_DEVICES" == 0 ]]
    then
        echo "No devices connected.."
        exit;
    fi
fi
###############################################################################
# choose nightly or stable version
###############################################################################
echo 'Select Download Option:'
select download in "Nightly" "Stable" "Exit" ; do
    case $download in
        "Nightly" ) break;;
        "Stable" ) break;;
        "Exit" ) echo "Exiting.."; exit;;
    esac
done
if [[ "$download" == "Nightly" ]]
then
    FILE=$NIGHTLY
    DOWNLOAD_URL=$NIGHTLY_URL
elif [[ "$download" == "Stable" ]]
then
    FILE=$STABLE
    DOWNLOAD_URL=$STABLE_URL
fi
# save to /tmp
TMP_FILE=/tmp/$FILE
rm $TMP_FILE 2>/dev/null
###############################################################################
# download
###############################################################################
echo "downloading: $FILE"
curl -# -L -o $TMP_FILE $DOWNLOAD_URL/$FILE
if [ ! -f $TMP_FILE ]
then
    echo "download failed!"
    exit
fi
###############################################################################
# install options
###############################################################################
echo 'Select Install Option:'
select result in "Upgrade" "Clean Install" "Exit" ; do
    case $result in
        "Upgrade" ) break;;
        "Clean Install" ) break;;
        "Exit" ) echo "Exiting.."; exit;;
    esac
done
###############################################################################
# clean install
###############################################################################
if [[ "$result" == "Clean Install" ]]
then
    echo "uninstalling.."
    adb uninstall org.xbmc.xbmc
fi
###############################################################################
# install with progress
###############################################################################
echo "installing $TMP_FILE"
SIZE=$(ls -l $TMP_FILE | awk '{print $5}')
#export ADB_TRACE=all
adb $device install -r $TMP_FILE
###############################################################################
# cleanup
###############################################################################
rm $TMP_FILE
#export ADB_TRACE=
#echo
#echo 'press any key to exit'
#read n