1*e1eccf28SAndroid Build Coastguard Worker#!/bin/bash 2*e1eccf28SAndroid Build Coastguard Worker 3*e1eccf28SAndroid Build Coastguard Worker 4*e1eccf28SAndroid Build Coastguard Worker# DEFINES 5*e1eccf28SAndroid Build Coastguard WorkerLUNCH_TYPE=generic-eng 6*e1eccf28SAndroid Build Coastguard Worker 7*e1eccf28SAndroid Build Coastguard Worker# GET SCRIPT LOCATION 8*e1eccf28SAndroid Build Coastguard WorkerDIR=`pwd` 9*e1eccf28SAndroid Build Coastguard WorkerBRANCH=(`cd $(dirname ${BASH_SOURCE[0]})/../../.. && pwd`) 10*e1eccf28SAndroid Build Coastguard Workercd $DIR 11*e1eccf28SAndroid Build Coastguard Worker 12*e1eccf28SAndroid Build Coastguard Worker 13*e1eccf28SAndroid Build Coastguard Worker# Usage info 14*e1eccf28SAndroid Build Coastguard Workershow_help() { 15*e1eccf28SAndroid Build Coastguard Worker echo " 16*e1eccf28SAndroid Build Coastguard Worker Usage: ${0##*/} [HELP] [DEVICE] 17*e1eccf28SAndroid Build Coastguard Worker Quickly switch to a specified device 18*e1eccf28SAndroid Build Coastguard Worker 19*e1eccf28SAndroid Build Coastguard Worker -h, -?, --help display this help message 20*e1eccf28SAndroid Build Coastguard Worker <blank> list currently attached devices 21*e1eccf28SAndroid Build Coastguard Worker DEVICE system switches to first device that 22*e1eccf28SAndroid Build Coastguard Worker matches this term 23*e1eccf28SAndroid Build Coastguard Worker 24*e1eccf28SAndroid Build Coastguard Worker Example: 25*e1eccf28SAndroid Build Coastguard Worker ./sdv prints all connected devices 26*e1eccf28SAndroid Build Coastguard Worker ./sdv angler switches to first angler 27*e1eccf28SAndroid Build Coastguard Worker ./sdv ang switches to first angler device 28*e1eccf28SAndroid Build Coastguard Worker ./sdv vol switches to volantis 29*e1eccf28SAndroid Build Coastguard Worker ./sdv 6P switches to Nexus 6P 30*e1eccf28SAndroid Build Coastguard Worker ./sdv 8X switches to first matching device 31*e1eccf28SAndroid Build Coastguard Worker (eg. 8XV5T15725000936) 32*e1eccf28SAndroid Build Coastguard Worker " 33*e1eccf28SAndroid Build Coastguard Worker echo 34*e1eccf28SAndroid Build Coastguard Worker} 35*e1eccf28SAndroid Build Coastguard Worker 36*e1eccf28SAndroid Build Coastguard Worker# help message 37*e1eccf28SAndroid Build Coastguard Workerif [[ ( $1 == "--help" ) || ( $1 == "-h" ) || ( $1 == "-?" ) ]]; then 38*e1eccf28SAndroid Build Coastguard Worker show_help 39*e1eccf28SAndroid Build Coastguard Worker return 40*e1eccf28SAndroid Build Coastguard Workerfi 41*e1eccf28SAndroid Build Coastguard Worker 42*e1eccf28SAndroid Build Coastguard Worker# if adb is not available, try to set it up 43*e1eccf28SAndroid Build Coastguard Workerif [ ! `which adb` ]; then 44*e1eccf28SAndroid Build Coastguard Worker echo "\"adb\" not setup. Using branch \"$BRANCH\" and lunch type \"$LUNCH_TYPE\"" 45*e1eccf28SAndroid Build Coastguard Worker DIR=`pwd` 46*e1eccf28SAndroid Build Coastguard Worker cd $BRANCH 47*e1eccf28SAndroid Build Coastguard Worker . build/envsetup.sh > /dev/null 48*e1eccf28SAndroid Build Coastguard Worker lunch $LUNCH_TYPE > /dev/null 49*e1eccf28SAndroid Build Coastguard Worker cd $DIR 50*e1eccf28SAndroid Build Coastguard Workerfi 51*e1eccf28SAndroid Build Coastguard Worker 52*e1eccf28SAndroid Build Coastguard Worker# get devices... 53*e1eccf28SAndroid Build Coastguard Workerif [ $# -eq 0 ]; then 54*e1eccf28SAndroid Build Coastguard Worker adb devices -l 55*e1eccf28SAndroid Build Coastguard Worker echo "Currently set to \"$ANDROID_SERIAL\"" 56*e1eccf28SAndroid Build Coastguard Worker# ...or switch to specified device 57*e1eccf28SAndroid Build Coastguard Workerelse 58*e1eccf28SAndroid Build Coastguard Worker STR=(`adb devices -l | grep "$1"`) 59*e1eccf28SAndroid Build Coastguard Worker if [ ${#STR[@]} -gt 0 ]; then 60*e1eccf28SAndroid Build Coastguard Worker export ANDROID_SERIAL="$STR" 61*e1eccf28SAndroid Build Coastguard Worker echo "Switched to device \"$ANDROID_SERIAL\"" 62*e1eccf28SAndroid Build Coastguard Worker else 63*e1eccf28SAndroid Build Coastguard Worker echo "Device \"$1\" not found" 64*e1eccf28SAndroid Build Coastguard Worker fi 65*e1eccf28SAndroid Build Coastguard Workerfi 66*e1eccf28SAndroid Build Coastguard Worker 67