Repo Browser

bashcards/bashcards-android
Card bundle: cards/521044661078--adb-agent-android-investigator

Front / Back (click to flip)

front
back
Click card to view front/back

Raw Script

#!/usr/bin/env bash
set -euo pipefail;bash -c $'[ -n "${BASH_VERSION:-}" ] || { command -v bash >/dev/null 2>&1 && exec bash "$0" "$@"; }\nR=\'\\033[0;31m\';G=\'\\033[0;32m\';B=\'\\033[0;34m\';N=\'\\033[0m\'\nT="${1:-}";D="";M=10;S=3;O="";Z=""\nS1="";S2="";k="";x="";y="";L="";a="";b="";f="";i="";t="";s=""\nn(){ command -v "$1" >/dev/null 2>&1; }\nc(){ tput cnorm 2>/dev/null; clear; }\np(){ read -r -p "Enter to continue... " _; }\ng(){ cat <<\'EOF\'\ndumpsys meminfo|Memory Usage|meminfo.txt\ndumpsys media.audio_flinger|Audio History|audio.txt\ndumpsys sensorservice|Sensors|sensors.txt\ndumpsys adb|ADB Info|adb.txt\ndumpsys account|Accounts|accounts.txt\ndumpsys persona|Personas|persona.txt\ndumpsys fingerprint|Fingerprint|fingerprint.txt\ndumpsys netstats|Network Stats|netstats.txt\ndumpsys mount|Mounts|mount.txt\ndumpsys power|Power|power.txt\ndumpsys dropbox|Crashes|dropbox.txt\ndumpsys location|Location|location.txt\ndumpsys notification|Notifications|notification.txt\ndumpsys telecom|Telecom|telecom.txt\ndumpsys lock_settings|Lock Settings|lock.txt\ndumpsys package|Packages|packages.txt\ndumpsys wifi|WiFi|wifi.txt\ndumpsys window|Windows|window.txt\ndumpsys stats|Stats|stats.txt\ndumpsys batterystats|Battery|battery.txt\ndumpsys usb|USB|usb.txt\ndumpsys clipboard|Clipboard|clipboard.txt\nEOF\n}\nu(){\n  n adb || { echo -e "${R}adb not installed${N}"; return 1; }\n  adb get-state >/dev/null 2>&1 || { echo -e "${B}Starting adb...${N}"; adb start-server >/dev/null 2>&1; sleep 1; }\n}\nd(){\n  u || return 1\n  D=""\n  for ((i=1;i<=M;i++)); do\n    if [[ -n "${T:-}" ]]; then\n      D="$T"\n      s="$(adb -s "$D" get-state 2>/dev/null)"\n      [[ "$s" == "device" ]] && echo -e "${G}Device: $D${N}" && return 0\n      echo -e "${B}Waiting for $D ($i/$M)${N}"\n    else\n      D="$(adb devices | awk \'NR>1 && $2=="device"{print $1; exit}\')"\n      [[ -n "${D:-}" ]] && echo -e "${G}Device: $D${N}" && return 0\n      echo -e "${B}Waiting for device ($i/$M)${N}"\n    fi\n    sleep "$S"\n  done\n  echo -e "${R}No device found${N}"\n  D=""\n  return 1\n}\nt0(){ c; read -r -p "Device serial (blank=auto): " T; p; }\nw0(){\n  c\n  read -r -p "Retries (10): " x\n  read -r -p "Sleep (3s): " y\n  [[ -n "${x:-}" ]] && M="$x"\n  [[ -n "${y:-}" ]] && S="$y"\n}\no0(){\n  Z="$(date +"%Y%m%d_%H%M%S")"\n  O="DumpSysReport_$Z"\n  mkdir -p "$O" || { echo -e "${R}Cannot create $O${N}"; return 1; }\n}\nr0(){\n  echo -e "${B}[$1/$2] $4${N}"\n  if adb -s "$D" shell $3 | tee "$O/$5"; then\n    S1="${S1}✔ $4\n"\n  else\n    S2="${S2}✖ $4\n"\n  fi\n  echo\n}\nl0(){\n  c\n  echo -e "${B}COMMAND SET${N}\\n"\n  i=0\n  while IFS= read -r L; do\n    [[ -z "${L:-}" ]] && continue\n    i=$((i+1))\n    IFS="|" read -r a b f <<< "$L"\n    printf "%2d) %s -> %s\\n" "$i" "$b" "$f"\n  done <<< "$(g)"\n  echo\n  p\n}\ns0(){\n  echo -e "${B}SUMMARY${N}"\n  echo -e "${G}OK:${N} $(printf "%s" "$S1" | sed \'/^$/d\' | wc -l | tr -d \' \')"\n  printf "%s" "$S1" | sed \'/^$/d\'\n  echo\n  echo -e "${R}FAIL:${N} $(printf "%s" "$S2" | sed \'/^$/d\' | wc -l | tr -d \' \')"\n  printf "%s" "$S2" | sed \'/^$/d\'\n  echo\n  echo -e "${B}OUT:${N} $O"\n}\na0(){\n  c\n  d || { p; return; }\n  o0 || { p; return; }\n  S1="";S2=""\n  t="$(g | wc -l | tr -d \' \')"\n  i=0\n  while IFS= read -r L; do\n    [[ -z "${L:-}" ]] && continue\n    i=$((i+1))\n    IFS="|" read -r a b f <<< "$L"\n    r0 "$i" "$t" "$a" "$b" "$f"\n  done <<< "$(g)"\n  s0\n  p\n}\ne0(){\n  c\n  d || { p; return; }\n  o0 || { p; return; }\n  l0\n  read -r -p "Number: " k\n  [[ -z "${k:-}" ]] && return\n  L="$(g | sed -n "${k}p")"\n  [[ -z "${L:-}" ]] && return\n  S1="";S2=""\n  IFS="|" read -r a b f <<< "$L"\n  r0 1 1 "$a" "$b" "$f"\n  s0\n  p\n}\nv0(){ c; [[ -z "${O:-}" ]] && echo -e "${R}No output yet${N}" || ls -lah "$O"; p; }\nwhile true; do\n  c\n  echo -e "${B}ADB DUMPSYS MENU${N}"\n  echo "Dev: ${T:-auto}  Retry:$M  Sleep:${S}s"\n  echo "Out: ${O:-none}"\n  echo\n  echo "1) Set device"\n  echo "2) Set retry/sleep"\n  echo "3) List commands"\n  echo "4) Run ALL"\n  echo "5) Run ONE"\n  echo "6) View output dir"\n  echo "q) Quit"\n  read -r -p "> " k\n  case "$k" in\n    1) t0;;\n    2) w0; p;;\n    3) l0;;\n    4) a0;;\n    5) e0;;\n    6) v0;;\n    q|Q) c; exit 0;;\n    *) echo -e "${R}Invalid${N}"; p;;\n  esac\ndone\n'

QR Payload

bash -c "$(echo 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 | base64 -d | gunzip)"
NameTypeSize
README.mdfile1,146
assetsdir
failedfile1