Skip to content

Instantly share code, notes, and snippets.

@thimes
Last active December 14, 2017 14:13
Show Gist options
  • Save thimes/ff46f79376d1a4b67c1524811f94f94e to your computer and use it in GitHub Desktop.
Save thimes/ff46f79376d1a4b67c1524811f94f94e to your computer and use it in GitHub Desktop.
My BashRc file
alias ls='ls -a -G'
alias ll='ls -l'
# adb commands targeted at specific devices without having to remember the device string
alias adbm='adb -s TA989069LK'
alias adbn='adb -s HT4CTJT01433'
alias adbs='adb -s 1a138b5e'
# copy prefs from an xml file to the device, save some of the settings setup work
function cpPrefs {
$(
adb push shared_prefs.xml /sdcard/temp_prefs.xml
cat <<EOF | adb shell
run-as com.myapp.packagename
cat /sdcard/temp_prefs.xml > /data/data/com.myapp.packagename/shared_prefs/com.myapp.packagename_preferences.xml
exit
exit
EOF
)
}
# navigate up in directory structure, with less work
function up {
if [ $# -eq 0 ]
then
cd ..
return
fi
ret=$PWD
(( numTimes = $1 ))
while [ $numTimes -gt 0 ]
do
ret=$ret'/..'
(( numTimes-- ))
done
cd $ret
}
# fb login, call it with a username, the password needs to be "test" though
function fbl {
sendString $1; tab; sendString test; tab; enter
}
# don't type stuff on the phone keyboard
function sendString {
#aadb shell input text $1
for i in $* ; do
adb shell input text $i
adb shell input keyevent 62
done
# delete the trailing space you entered!
adb shell input keyevent 4
}
# miss with that "up" command? just use `no <new_up_distance>` and your cd - will be correct still
alias no='cd - && up $1'
# setup prompt, simple here
export PS1='\w [\#] $ '
alias gs='git status'
alias gw='git whatchanged'
alias logme='adb logcat -v time *:S TRAVIS:V'
alias logr='adb logcat -v time *:S Retrofit:V'
alias user='aadb shell input text myRealUsername'
alias pass='aadb shell input text myRealPassword'
alias qauser='aadb shell input text realQaUsername'
alias qapass='aadb shell input text realQaPassword'
alias tab='aadb shell input keyevent 61'
alias enter='aadb shell input keyevent 66'
# login commands, must have username focused and not blocked by an autocomplete suggestion for email addresses..
alias login='user;tab;pass;tab;tab;enter'
alias loginm='adbm shell input text myRealUsername; adbm shell input keyevent 61; adbm shell input text myRealPassword; adbm shell input keyevent 61; adbm shell input keyevent 66'
alias loginn='adbn shell input text myRealUsername; adbn shell input keyevent 61; adbn shell input text myRealPassword; adbn shell input keyevent 61; adbn shell input keyevent 66'
# adb uninstall for my app
alias adbu='aadb uninstall com.myapp.packagename'
alias get='git'
alias gvim='mvim'
# Samsung devices need to calm their logging already, wow
alias quietLogs='adb logcat -v time STATUSBAR-NetworkController:S STATUSBAR-SignalClusterView:S LockPatternUtils:S STATUSBAR-BatteryController:S STATUSBAR-Clock:S STATUSBAR-StatusBarManagerService:S KeybuardViewMediator:S BatteryService:S'
# same as going to settings and hitting 'clear data' for the different apps
alias clearMyAppData='echo "adb shell pm clear com.myapp.packagename"; adb shell pm clear com.myapp.packagename'
# shortcuts for the clear data commands for the different apps
alias clma='clearMyAppData'
# toggle airplane mode - 2lazy4dat
alias airplane='adb shell am start -a android.settings.AIRPLANE_MODE_SETTINGS ; adb shell input keyevent 19 ; adb shell input keyevent 23 ; adb shell input keyevent 4'
function notes() {
#echo "===============================================" >> ~/notes/notes.txt
#date +"%b %d %Y - %A" >> ~/notes/notes.txt
#echo "===============================================" >> ~/notes/notes.txt
gvim +9999999 ~/notes/notes.txt
}
function push() {
git push origin HEAD:refs/publish/$1
}
function insL() {
adbu && adb install `ls -1t *.apk | sed -n '1 p'`
}
function updL() {
adb install -r `ls -1t *.apk | sed -n '1 p'`
}
function rmOrig() {
rm `find . -name '*.orig'`
}
function cpRes() {
if [ $# -eq 1 ]; then
for filename in `find . -name '*.png'`; do
destFilename=$1$(echo $filename | sed -e 's/^.\///g')
echo "cp $filename $destFilename"
cp -f $filename $destFilename
echo $?
done
else
echo "USAGE: cpRes <to there>"
fi
}
function renameResources() {
if [ $# -eq 2 ]; then
for filename in `echo 'm'; echo 'h'; echo 'xh'; echo 'xxh'; echo 'xxxh'`; do
mv drawable-"$filename"dpi/ drawable-"$filename"dpi/
done
else
echo "USAGE: renameResources old_filename.png new_filename.png (run this from res folder)"
fi
}
. ~/.git-completion.bash
#export ANDROID_HOME=/Applications/Android\ Studio.app/sdk/
export ANDROID_HOME=/Users/thimes/development/sdk
#TODO: figure out how to check if it's in the path or not already, but then
export PATH=$PATH:/Users/thimes/bin:$ANDROID_HOME/platform-tools:.:$ANDROID_HOME
export PATH=/usr/local/bin:$PATH:/Users/thimes/bin
export HISTIGNORE=' *'
export HISTTIMEFORMAT="%h %d %H:%M:%S "
export HISTSIZE=10000
export HISTFILESIZE=10000
export HISTCONTROL=ignorespace:erasedups
PROMPT_COMMAND='history -a'
shopt -s histappend
shopt -s cmdhist
@kyhule
Copy link

kyhule commented Jul 28, 2017

This is great stuff! Definitely going to use a bunch of these.

For clearing app data, I tend to be working on a bunch of different apps, each with multiple variants which are differentiated by unique applicationIds. I turned the clearing app data into a function to handle this use-case:

# same as going to settings and hitting 'clear data' for the different apps
alias clearMyAppData='clearAppData com.myapp.packagename $1'
# shortcuts for the clear data commands for the different apps 
alias clma='clearMyAppData $1'

function clearAppData() {
  if [ $# -eq 2 ]; then
    applicationId="$1.$2"
  elif [ $# -eq 1 ]; then
    applicationId="$1"
  else
    echo "USAGE: clearAppData [applicationId] [variant]"
    return
  fi
  echo "adb shell pm clear $applicationId"
  adb shell pm clear $applicationId
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment