Home | History | Annotate | Download | only in hikey
      1 #!/bin/bash
      2 if [ $# -eq 0 ]
      3   then
      4     echo "Provide the right /dev/ttyUSBX specific to recovery device"
      5     exit
      6 fi
      7 
      8 if [ ! -e "${1}" ]
      9   then
     10     echo "device: ${1} does not exist"
     11     exit
     12 fi
     13 DEVICE_PORT="${1}"
     14 PTABLE=ptable-aosp-8g.img
     15 if [ $# -gt 1 ]
     16   then
     17     if [ "${2}" == '4g' ]
     18       then
     19         PTABLE=ptable-aosp-4g.img
     20     fi
     21 fi
     22 
     23 INSTALLER_DIR="`dirname ${0}`"
     24 FIRMWARE_DIR="${INSTALLER_DIR}"
     25 
     26 # for cases that not run "lunch hikey-userdebug"
     27 if [ -z "${ANDROID_BUILD_TOP}" ]; then
     28     ANDROID_BUILD_TOP=${INSTALLER_DIR}/../../../../../
     29     ANDROID_PRODUCT_OUT="${ANDROID_BUILD_TOP}/out/target/product/hikey"
     30 fi
     31 
     32 if [ -z "${DIST_DIR}" ]; then
     33     DIST_DIR="${ANDROID_BUILD_TOP}"/out/dist
     34 fi
     35 
     36 #get out directory path
     37 while [ $# -ne 0 ]; do
     38     case "${1}" in
     39         --out) OUT_IMGDIR=${2};shift;;
     40         --use-compiled-binaries) FIRMWARE_DIR="${DIST_DIR}";shift;;
     41     esac
     42     shift
     43 done
     44 
     45 if [[ "${FIRMWARE_DIR}" == "${DIST_DIR}" && ! -e "${DIST_DIR}"/fip.bin && ! -e "${DIST_DIR}"/l-loader.bin ]]; then
     46     echo "No binaries found at ${DIST_DIR}. Please build the bootloader first"
     47     exit
     48 fi
     49 
     50 if [ -z "${OUT_IMGDIR}" ]; then
     51     if [ ! -z "${ANDROID_PRODUCT_OUT}" ]; then
     52         OUT_IMGDIR="${ANDROID_PRODUCT_OUT}"
     53     fi
     54 fi
     55 
     56 if [ ! -d "${OUT_IMGDIR}" ]; then
     57     echo "error in locating out directory, check if it exist"
     58     exit
     59 fi
     60 
     61 echo "android out dir:${OUT_IMGDIR}"
     62 
     63 sudo python "${INSTALLER_DIR}"/hisi-idt.py --img1="${FIRMWARE_DIR}"/l-loader.bin -d "${DEVICE_PORT}"
     64 sleep 3
     65 # set a unique serial number
     66 serialno=`fastboot getvar serialno 2>&1 > /dev/null`
     67 if [ "${serialno:10:6}" == "(null)" ]; then
     68     fastboot oem serialno
     69 else
     70     if [ "${serialno:10:15}" == "0123456789abcde" ]; then
     71         fastboot oem serialno
     72     fi
     73 fi
     74 fastboot flash ptable "${INSTALLER_DIR}"/"${PTABLE}"
     75 fastboot flash fastboot "${FIRMWARE_DIR}"/fip.bin
     76 fastboot flash nvme "${INSTALLER_DIR}"/nvme.img
     77 fastboot flash boot "${OUT_IMGDIR}"/boot.img
     78 fastboot flash system "${OUT_IMGDIR}"/system.img
     79 fastboot flash cache "${OUT_IMGDIR}"/cache.img
     80 fastboot flash userdata "${OUT_IMGDIR}"/userdata.img
     81