| trap 'onExit $?' EXIT |
| |
| onExit() { |
| if [ "$1" != "0" ]; then |
| echo -e "\e[31m" |
| echo " ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ " |
| echo "▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌" |
| echo "▐░█▀▀▀▀▀▀▀▀▀ ▐░█▀▀▀▀▀▀▀█░▌▐░█▀▀▀▀▀▀▀█░▌▐░█▀▀▀▀▀▀▀█░▌▐░█▀▀▀▀▀▀▀█░▌" |
| echo "▐░▌ ▐░▌ ▐░▌▐░▌ ▐░▌▐░▌ ▐░▌▐░▌ ▐░▌" |
| echo "▐░█▄▄▄▄▄▄▄▄▄ ▐░█▄▄▄▄▄▄▄█░▌▐░█▄▄▄▄▄▄▄█░▌▐░▌ ▐░▌▐░█▄▄▄▄▄▄▄█░▌" |
| echo "▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░▌ ▐░▌▐░░░░░░░░░░░▌" |
| echo "▐░█▀▀▀▀▀▀▀▀▀ ▐░█▀▀▀▀█░█▀▀ ▐░█▀▀▀▀█░█▀▀ ▐░▌ ▐░▌▐░█▀▀▀▀█░█▀▀ " |
| echo "▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌▐░▌ ▐░▌ " |
| echo "▐░█▄▄▄▄▄▄▄▄▄ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░█▄▄▄▄▄▄▄█░▌▐░▌ ▐░▌ " |
| echo "▐░░░░░░░░░░░▌▐░▌ ▐░▌▐░▌ ▐░▌▐░░░░░░░░░░░▌▐░▌ ▐░▌" |
| echo " ▀▀▀▀▀▀▀▀▀▀▀ ▀ ▀ ▀ ▀ ▀▀▀▀▀▀▀▀▀▀▀ ▀ ▀ " |
| echo " " |
| echo -e "\e[0m" |
| fi |
| } |
| |
| onSuccess() { |
| echo -e "\e[92m\n" |
| echo "" |
| echo " ██████ ██ ██ ██ " |
| echo " ██ ██ ██ ██ ██ " |
| echo " ██ ██ █████ ██ " |
| echo " ██ ██ ██ ██ " |
| echo " ██████ ██ ██ ██ " |
| echo "" |
| echo -e "\e[0m" |
| } |
| |
| onWarning() { |
| echo -e "\e[33m\n" |
| echo " █████ ███ █████ █████████ ███████████ ██████ █████ █████ ██████ █████ █████████ " |
| echo " ░░███ ░███ ░░███ ███░░░░░███ ░░███░░░░░███ ░░██████ ░░███ ░░███ ░░██████ ░░███ ███░░░░░███ " |
| echo " ░███ ░███ ░███ ░███ ░███ ░███ ░███ ░███░███ ░███ ░███ ░███░███ ░███ ███ ░░░ " |
| echo " ░███ ░███ ░███ ░███████████ ░██████████ ░███░░███░███ ░███ ░███░░███░███ ░███ " |
| echo " ░░███ █████ ███ ░███░░░░░███ ░███░░░░░███ ░███ ░░██████ ░███ ░███ ░░██████ ░███ █████ " |
| echo " ░░░█████░█████░ ░███ ░███ ░███ ░███ ░███ ░░█████ ░███ ░███ ░░█████ ░░███ ░░███ " |
| echo " ░░███ ░░███ █████ █████ █████ █████ █████ ░░█████ █████ █████ ░░█████ ░░█████████ " |
| echo " ░░░ ░░░ ░░░░░ ░░░░░ ░░░░░ ░░░░░ ░░░░░ ░░░░░ ░░░░░ ░░░░░ ░░░░░ ░░░░░░░░░ " |
| echo -e "\e[0m" |
| } |
| |
| doRemount() { |
| $ADB root |
| sleep 3 |
| set +e |
| REMOUNT_OUTPUT="$($ADB remount -R 2>&1)" |
| REMOUNT_OUTPUT="${REMOUNT_OUTPUT,,}" |
| REMOUNT_RESULT=$? |
| echo "$REMOUNT_OUTPUT" |
| if [[ $REMOUNT_RESULT != 0 || "$REMOUNT_OUTPUT" == *"remount failed"* ]]; then |
| exit 1 |
| fi |
| set -e |
| if [[ "$REMOUNT_OUTPUT" == *"rebooting"* ]] |
| then |
| echo -e "\e[93m" |
| echo "██████╗ ███████╗██████╗ ██████╗ ██████╗ ████████╗██╗███╗ ██╗ ██████╗ " |
| echo "██╔══██╗██╔════╝██╔══██╗██╔═══██╗██╔═══██╗╚══██╔══╝██║████╗ ██║██╔════╝ " |
| echo "██████╔╝█████╗ ██████╔╝██║ ██║██║ ██║ ██║ ██║██╔██╗ ██║██║ ███╗" |
| echo "██╔══██╗██╔══╝ ██╔══██╗██║ ██║██║ ██║ ██║ ██║██║╚██╗██║██║ ██║" |
| echo "██║ ██║███████╗██████╔╝╚██████╔╝╚██████╔╝ ██║ ██║██║ ╚████║╚██████╔╝" |
| echo "╚═╝ ╚═╝╚══════╝╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝ " |
| echo " " |
| echo -e "\e[0m" |
| sleep 5 |
| $ADB wait-for-device root && $ADB wait-for-device remount |
| fi |
| } |
| |
| connectedProduct() { |
| echo "$($ADB shell getprop ro.build.product)" |
| } |
| |
| checkConnectedProduct() { |
| checkDeviceRev |
| |
| # Make sure connected device matches $TARGET_PRODUCT |
| CONNECTED_PRODUCT="$(connectedProduct)" |
| if [ "$TARGET_PRODUCT" != "$CONNECTED_PRODUCT" ] |
| then |
| echo "ERROR: Connected device ($CONNECTED_PRODUCT) does not match TARGET_PRODUCT. Please lunch $CONNECTED_PRODUCT first" |
| exit 1 |
| fi |
| } |
| |
| checkDeviceRev() { |
| set +e |
| GETPROP_OUTPUT="$($ADB shell getprop ro.boot.hardware.revision 2>&1)" |
| GETPROP_RESULT=$? |
| if [ $GETPROP_RESULT -ne 0 ] |
| then |
| echo "Cannot check device status via adb, please check device connection" |
| exit 1 |
| elif [[ "$GETPROP_OUTPUT" =~ ^([DP]VT|MP).* ]] |
| then |
| echo "Device must be EVT or earlier for CHRE development" |
| exit 1 |
| fi |
| set -e |
| } |