You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
HMG_QLine/qline_scripts/uninstall_qline.sh

98 lines
2.3 KiB
Bash

#!/usr/bin/env bash
# ===== Config =====
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
APP_PACKAGE="com.example.hmg_qline.hmg_qline"
LOG_DIR="$SCRIPT_DIR/logs"
# ===== Parse Arguments =====
while [[ $# -gt 0 ]]; do
key="$1"
case $key in
-ipfile)
IP_FILE="$2"
shift # past argument
shift # past value
;;
*)
echo "Unknown option: $1"
echo "Usage: sh uninstall_qline.sh -ipfile <device_ips.txt>"
exit 1
;;
esac
done
if [[ -z "$IP_FILE" ]]; then
echo "Usage: sh uninstall_qline.sh -ipfile <device_ips.txt>"
exit 1
fi
# ===== Wi-Fi Check ====
wifi_interface=$(networksetup -listallhardwareports | \
awk '/Wi-Fi|AirPort/{getline; print $2}')
current_ssid=$(networksetup -getairportnetwork "$wifi_interface" 2>/dev/null | \
awk -F': ' '{print $2}' | tr '[:upper:]' '[:lower:]')
expected_ssid="cloud solutions"
if [[ "$current_ssid" != "$expected_ssid" ]]; then
echo "❌ Not connected to required Wi-Fi network: $expected_ssid"
echo "🔌 Current network: ${current_ssid:-Not connected}"
exit 1
fi
echo "✅ Connected to correct Wi-Fi: Cloud Solutions"
# Create log dir
mkdir -p "$LOG_DIR"
# ===== Read IPs =====
if [[ ! -f "$IP_FILE" ]]; then
echo "❌ IP file not found at $IP_FILE"
exit 1
fi
ipList=()
while IFS= read -r line; do
[[ -n "$line" ]] && ipList+=("$line")
done < "$IP_FILE"
if [[ ${#ipList[@]} -eq 0 ]]; then
echo "❌ No IPs found in file"
exit 1
fi
echo "✅ Found ${#ipList[@]} IPs"
printf '%s\n' "${ipList[@]}"
# ===== Connect to Devices =====
for ip in "${ipList[@]}"; do
cleanIP="${ip%%:*}" # strip port if exists
echo "🔌 Connecting to $cleanIP..."
output=$(adb connect "$cleanIP:5555" 2>&1)
if [[ "$output" == *connected* ]]; then
echo "✅ Connected to $cleanIP"
else
echo "❌ Failed to connect to $cleanIP: $output"
fi
done
# ===== Get Connected Devices =====
devices=$(adb devices | awk 'NR>1 && $2=="device" {print $1}')
for device in $devices; do
echo "📱 Processing $device..."
echo "❌ Uninstalling app..."
adb -s "$device" uninstall "$APP_PACKAGE"
if [[ $? -eq 0 ]]; then
echo "✅ Successfully uninstalled $APP_PACKAGE from $device"
else
echo "❌ Failed to uninstall $APP_PACKAGE from $device"
fi
done
echo "✅ Done! Uninstallation process completed."