xref: /aosp_15_r20/system/chre/tools/common.sh (revision 84e339476a462649f82315436d70fd732297a399)
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