#!/bin/bash if [ -z "${ANDROID_HOST_OUT}" ]; then echo 'ANDROID_HOST_OUT not set. Please run lunch' exit 1 fi # Global variables BASE_DT_NAME="apply_fragment-base" OVERLAY_DT_1="multiple_overlay_1" OVERLAY_DT_2="multiple_overlay_2" OVERLAY_DT_3="multiple_overlay_3" OVERLAY_DT_4="multiple_overlay_4" ANDROID_HOST_BIN_LOCATION=${ANDROID_HOST_OUT}/bin IN_DATA_DIR="testdata" tmpdir=$(mktemp -d) trap 'rm -rf ${tmpdir};' EXIT dtc -@ -qq -O dtb -o "${tmpdir}/${BASE_DT_NAME}.dtb" "${IN_DATA_DIR}/${BASE_DT_NAME}.dts" dtc -@ -qq -O dtb -o "${tmpdir}/${OVERLAY_DT_1}.dtb" "${IN_DATA_DIR}/${OVERLAY_DT_1}.dts" dtc -@ -qq -O dtb -o "${tmpdir}/${OVERLAY_DT_2}.dtb" "${IN_DATA_DIR}/${OVERLAY_DT_2}.dts" dtc -@ -qq -O dtb -o "${tmpdir}/${OVERLAY_DT_3}.dtb" "${IN_DATA_DIR}/${OVERLAY_DT_3}.dts" dtc -@ -qq -O dtb -o "${tmpdir}/${OVERLAY_DT_4}.dtb" "${IN_DATA_DIR}/${OVERLAY_DT_4}.dts" cd $tmpdir apply_bin_path="${ANDROID_HOST_BIN_LOCATION}/ufdt_apply_overlay" $apply_bin_path "${BASE_DT_NAME}.dtb" "${OVERLAY_DT_1}.dtb" final_dt.dtb > /dev/null $apply_bin_path final_dt.dtb "${OVERLAY_DT_2}.dtb" final_dt.dtb > /dev/null $apply_bin_path final_dt.dtb "${OVERLAY_DT_3}.dtb" final_dt.dtb > /dev/null #verify that the overlay was correctly applied verify_bin_path="${ANDROID_HOST_BIN_LOCATION}/ufdt_verify_overlay_host" overlay_sets=( "${OVERLAY_DT_1}.dtb ${OVERLAY_DT_2}.dtb ${OVERLAY_DT_3}.dtb" "${OVERLAY_DT_1}.dtb ${OVERLAY_DT_2}.dtb ${OVERLAY_DT_3}.dtb ${OVERLAY_DT_4}.dtb" "${OVERLAY_DT_2}.dtb ${OVERLAY_DT_3}.dtb ${OVERLAY_DT_1}.dtb" "${OVERLAY_DT_3}.dtb ${OVERLAY_DT_1}.dtb ${OVERLAY_DT_2}.dtb" "${OVERLAY_DT_1}.dtb ${OVERLAY_DT_3}.dtb ${OVERLAY_DT_2}.dtb" "${OVERLAY_DT_2}.dtb ${OVERLAY_DT_1}.dtb ${OVERLAY_DT_3}.dtb" "${OVERLAY_DT_3}.dtb ${OVERLAY_DT_2}.dtb ${OVERLAY_DT_1}.dtb" "${OVERLAY_DT_1}.dtb ${OVERLAY_DT_2}.dtb" "${OVERLAY_DT_1}.dtb ${OVERLAY_DT_3}.dtb" "${OVERLAY_DT_2}.dtb ${OVERLAY_DT_3}.dtb" "${OVERLAY_DT_3}.dtb ${OVERLAY_DT_1}.dtb" "${OVERLAY_DT_2}.dtb ${OVERLAY_DT_1}.dtb" "${OVERLAY_DT_1}.dtb" "${OVERLAY_DT_2}.dtb" "${OVERLAY_DT_3}.dtb" "${OVERLAY_DT_4}.dtb" "" ) expected_out=(0 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1) for((i=0;i<${#overlay_sets[@]};i++)) do $verify_bin_path final_dt.dtb ${overlay_sets[$i]} >& /dev/null result=$? if [[ "$result" -ne "${expected_out[$i]}" ]] then echo "Incorrect overlay application/verification for" ${overlay_sets[$i]} exit 1 fi done echo "Overlays Verified Successfully" exit 0