1trap 'onExit $?' EXIT 2 3onExit() { 4 if [ "$1" != "0" ]; then 5 echo -e "\e[31m" 6 echo " ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ " 7 echo "▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌" 8 echo "▐░█▀▀▀▀▀▀▀▀▀ ▐░█▀▀▀▀▀▀▀█░▌▐░█▀▀▀▀▀▀▀█░▌▐░█▀▀▀▀▀▀▀█░▌▐░█▀▀▀▀▀▀▀█░▌" 9 echo "▐░▌ ▐░▌ ▐░▌▐░▌ ▐░▌▐░▌ ▐░▌▐░▌ ▐░▌" 10 echo "▐░█▄▄▄▄▄▄▄▄▄ ▐░█▄▄▄▄▄▄▄█░▌▐░█▄▄▄▄▄▄▄█░▌▐░▌ ▐░▌▐░█▄▄▄▄▄▄▄█░▌" 11 echo "▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░▌ ▐░▌▐░░░░░░░░░░░▌" 12 echo "▐░█▀▀▀▀▀▀▀▀▀ ▐░█▀▀▀▀█░█▀▀ ▐░█▀▀▀▀█░█▀▀ ▐░▌ ▐░▌▐░█▀▀▀▀█░█▀▀ " 13 echo "▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░▌▐░▌ ▐░▌ " 14 echo "▐░█▄▄▄▄▄▄▄▄▄ ▐░▌ ▐░▌ ▐░▌ ▐░▌ ▐░█▄▄▄▄▄▄▄█░▌▐░▌ ▐░▌ " 15 echo "▐░░░░░░░░░░░▌▐░▌ ▐░▌▐░▌ ▐░▌▐░░░░░░░░░░░▌▐░▌ ▐░▌" 16 echo " ▀▀▀▀▀▀▀▀▀▀▀ ▀ ▀ ▀ ▀ ▀▀▀▀▀▀▀▀▀▀▀ ▀ ▀ " 17 echo " " 18 echo -e "\e[0m" 19 fi 20} 21 22onSuccess() { 23 echo -e "\e[92m\n" 24 echo "" 25 echo " ██████ ██ ██ ██ " 26 echo " ██ ██ ██ ██ ██ " 27 echo " ██ ██ █████ ██ " 28 echo " ██ ██ ██ ██ " 29 echo " ██████ ██ ██ ██ " 30 echo "" 31 echo -e "\e[0m" 32} 33 34onWarning() { 35 echo -e "\e[33m\n" 36 echo " █████ ███ █████ █████████ ███████████ ██████ █████ █████ ██████ █████ █████████ " 37 echo " ░░███ ░███ ░░███ ███░░░░░███ ░░███░░░░░███ ░░██████ ░░███ ░░███ ░░██████ ░░███ ███░░░░░███ " 38 echo " ░███ ░███ ░███ ░███ ░███ ░███ ░███ ░███░███ ░███ ░███ ░███░███ ░███ ███ ░░░ " 39 echo " ░███ ░███ ░███ ░███████████ ░██████████ ░███░░███░███ ░███ ░███░░███░███ ░███ " 40 echo " ░░███ █████ ███ ░███░░░░░███ ░███░░░░░███ ░███ ░░██████ ░███ ░███ ░░██████ ░███ █████ " 41 echo " ░░░█████░█████░ ░███ ░███ ░███ ░███ ░███ ░░█████ ░███ ░███ ░░█████ ░░███ ░░███ " 42 echo " ░░███ ░░███ █████ █████ █████ █████ █████ ░░█████ █████ █████ ░░█████ ░░█████████ " 43 echo " ░░░ ░░░ ░░░░░ ░░░░░ ░░░░░ ░░░░░ ░░░░░ ░░░░░ ░░░░░ ░░░░░ ░░░░░ ░░░░░░░░░ " 44 echo -e "\e[0m" 45} 46 47doRemount() { 48 $ADB root 49 sleep 3 50 set +e 51 REMOUNT_OUTPUT="$($ADB remount -R 2>&1)" 52 REMOUNT_OUTPUT="${REMOUNT_OUTPUT,,}" 53 REMOUNT_RESULT=$? 54 echo "$REMOUNT_OUTPUT" 55 if [[ $REMOUNT_RESULT != 0 || "$REMOUNT_OUTPUT" == *"remount failed"* ]]; then 56 exit 1 57 fi 58 set -e 59 if [[ "$REMOUNT_OUTPUT" == *"rebooting"* ]] 60 then 61 echo -e "\e[93m" 62 echo "██████╗ ███████╗██████╗ ██████╗ ██████╗ ████████╗██╗███╗ ██╗ ██████╗ " 63 echo "██╔══██╗██╔════╝██╔══██╗██╔═══██╗██╔═══██╗╚══██╔══╝██║████╗ ██║██╔════╝ " 64 echo "██████╔╝█████╗ ██████╔╝██║ ██║██║ ██║ ██║ ██║██╔██╗ ██║██║ ███╗" 65 echo "██╔══██╗██╔══╝ ██╔══██╗██║ ██║██║ ██║ ██║ ██║██║╚██╗██║██║ ██║" 66 echo "██║ ██║███████╗██████╔╝╚██████╔╝╚██████╔╝ ██║ ██║██║ ╚████║╚██████╔╝" 67 echo "╚═╝ ╚═╝╚══════╝╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝ " 68 echo " " 69 echo -e "\e[0m" 70 sleep 5 71 $ADB wait-for-device root && $ADB wait-for-device remount 72 fi 73} 74 75connectedProduct() { 76 echo "$($ADB shell getprop ro.build.product)" 77} 78 79checkConnectedProduct() { 80 checkDeviceRev 81 82 # Make sure connected device matches $TARGET_PRODUCT 83 CONNECTED_PRODUCT="$(connectedProduct)" 84 if [ "$TARGET_PRODUCT" != "$CONNECTED_PRODUCT" ] 85 then 86 echo "ERROR: Connected device ($CONNECTED_PRODUCT) does not match TARGET_PRODUCT. Please lunch $CONNECTED_PRODUCT first" 87 exit 1 88 fi 89} 90 91checkDeviceRev() { 92 set +e 93 GETPROP_OUTPUT="$($ADB shell getprop ro.boot.hardware.revision 2>&1)" 94 GETPROP_RESULT=$? 95 if [ $GETPROP_RESULT -ne 0 ] 96 then 97 echo "Cannot check device status via adb, please check device connection" 98 exit 1 99 elif [[ "$GETPROP_OUTPUT" =~ ^([DP]VT|MP).* ]] 100 then 101 echo "Device must be EVT or earlier for CHRE development" 102 exit 1 103 fi 104 set -e 105} 106