#!/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-userdebug" 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}" sleep 3 # set a unique serial number serialno=`fastboot getvar serialno 2>&1 > /dev/null` if [ "${serialno:10:6}" == "(null)" ]; then fastboot oem serialno else if [ "${serialno:10:15}" == "0123456789abcde" ]; then fastboot oem serialno fi fi fastboot getvar partition-size:ptable 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 vendor "${OUT_IMGDIR}"/vendor.img fastboot flash userdata "${OUT_IMGDIR}"/userdata.img