#!/bin/bash
if [ $# -eq 0 ]
then
echo "Provide the right /dev/ttyUSBX specific to recovery device"
exit
fi
if [ ! -e "${1}" ]
then
echo "device: ${1} does not exist"
exit
fi
DEVICE_PORT="${1}"
PTABLE=ptable-aosp-8g.img
if [ $# -gt 1 ]
then
if [ "${2}" == '4g' ]
then
PTABLE=ptable-aosp-4g.img
fi
fi
INSTALLER_DIR="`dirname ${0}`"
FIRMWARE_DIR="${INSTALLER_DIR}"
# for cases that not run "lunch hikey-userdebu"
if [ -z "${ANDROID_BUILD_TOP}" ]; then
ANDROID_BUILD_TOP=${INSTALLER_DIR}/../../../../
ANDROID_PRODUCT_OUT="${ANDROID_BUILD_TOP}/out/target/product/hikey"
fi
if [ -z "${DIST_DIR}" ]; then
DIST_DIR="${ANDROID_BUILD_TOP}"/out/dist
fi
#get out directory path
while [ $# -ne 0 ]; do
case "${1}" in
--out) OUT_IMGDIR=${2};shift;;
--use-compiled-binaries) FIRMWARE_DIR="${DIST_DIR}";shift;;
esac
shift
done
if [[ "${FIRMWARE_DIR}" == "${DIST_DIR}" && ! -e "${DIST_DIR}"/fip.bin && ! -e "${DIST_DIR}"/l-loader.bin ]]; then
echo "No binaries found at ${DIST_DIR}. Please build the bootloader first"
exit
fi
if [ -z "${OUT_IMGDIR}" ]; then
if [ ! -z "${ANDROID_PRODUCT_OUT}" ]; then
OUT_IMGDIR="${ANDROID_PRODUCT_OUT}"
fi
fi
if [ ! -d "${OUT_IMGDIR}" ]; then
echo "error in locating out directory, check if it exist"
exit
fi
echo "android out dir:${OUT_IMGDIR}"
sudo python "${INSTALLER_DIR}"/hisi-idt.py --img1="${FIRMWARE_DIR}"/l-loader.bin -d "${DEVICE_PORT}"
fastboot flash ptable "${INSTALLER_DIR}"/"${PTABLE}"
fastboot flash fastboot "${FIRMWARE_DIR}"/fip.bin
fastboot flash nvme "${INSTALLER_DIR}"/nvme.img
fastboot flash boot "${OUT_IMGDIR}"/boot.img
fastboot flash system "${OUT_IMGDIR}"/system.img
fastboot flash cache "${OUT_IMGDIR}"/cache.img
fastboot flash userdata "${OUT_IMGDIR}"/userdata.img