summaryrefslogtreecommitdiff
path: root/automated/lib/android-test-lib
blob: 034b15322e042e7de9a67cdd95a59609b7736587 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#!/bin/sh

initialize_adb() {
    if [ -z "${SN}" ]; then
        local number="$(adb devices | grep -wc 'device')"
        if [ "${number}" -gt 1 ]; then
            warn_msg "Device not specified; define SN or use '-s'"
            error_msg "More than one device or emulator found"
        elif [ "${number}" -eq 1 ]; then
            SN="$(adb devices | grep -w 'device' | awk '{print $1}')"
            export SN
        else
            error_msg "Device NOT found"
        fi
    fi

    adb -s "${SN}" shell ls / > /dev/null 2>&1
    if [ $? -eq 0 ]; then
        info_msg "Connected to device ${SN} successfully"
    else
        error_msg "Unable to connect to device ${SN}"
    fi
}

detect_abi() {
    # "| tr -d '\r'" is needed here, refer to the below issue.
    # https://code.google.com/p/android/issues/detail?id=2482
    abi="$(adb -s "${SN}" shell uname -m | tr -d '\r')"
    case $abi in
      armv7|armv7l|armv7el|armv7lh) abi="armeabi" ;;
      arm64|armv8|arm64-v8a|aarch64) abi="arm64" ;;
      *) error_msg "Unknown architecture" ;;
    esac
    info_msg "ABI: ${abi}"
}

install() {
    local file_path="$1"
    local file_name="$(basename "${file_path}")"

    if adb -s "${SN}" shell mount | grep system | grep -q ro; then
        # Remounts the /system partition on the device read-write
        info_msg "/system partition is read-only, remounting it read-write..."
        adb -s "${SN}" remount
    fi

    info_msg "Installing ${file_name}"
    adb -s "${SN}" push "${file_path}"  "/system/bin/"
    adb -s "${SN}" shell chmod 755  "/system/bin/${file_name}"
}

pull_output() {
    local device_output="$1"
    local host_output="$2"

    info_msg "Pulling output from devcie ${SN}"
    adb -s "${SN}" pull "${device_output}" "${host_output}"
}